Просмотр исходного кода

#4145 - Uploader's enhancement (text apps)

roman.lesnikov@gmail.com 3 лет назад
Родитель
Сommit
d5be4c0547

+ 7 - 0
inc/classes/BxDolCmtsQuery.php

@@ -272,6 +272,13 @@ class BxDolCmtsQuery extends BxDolDb
         if(($oCf = $this->_oMain->getObjectContentFilter()) !== false)
             $sWhereClause .= $oCf->getSQLParts($this->_sTable, 'cmt_cf');
 
+        bx_alert('comment', 'get_comments', 0, bx_get_logged_profile_id(), array(
+            'system' => $this->_oMain->getSystemInfo(), 
+            'join_clause' => &$sJoinClause, 
+            'where_clause' => &$sWhereClause, 
+            'params' => &$aBindings
+        ));
+        
         $sQuery = "SELECT
                 COUNT(*) 
             FROM `{$this->_sTable}` 

+ 5 - 5
inc/js/classes/BxDolUploader.js

@@ -239,17 +239,18 @@ BxDolUploaderBase.prototype.deleteGhost = function (iFileId) {
 };
 
 BxDolUploaderBase.prototype._clearErrors = function () {
-    $('#' + this._sPopupContainerId + ' #' + this._sErrorsContainerId).html('');
+    $(' #' + this._sErrorsContainerId).html('');
     this._isErrorShown = false;
 }
 
 BxDolUploaderBase.prototype._showError = function (s, bAppend) {
+    console.log('#' + this._sPopupContainerId + ' #' + this._sErrorsContainerId);
     if (s == undefined || !s.length)
         return;
     if (!bAppend)
-        $('#' + this._sPopupContainerId + ' #' + this._sErrorsContainerId).html(this._sTemplateError.replace('{error}', s));
+        $('#' + this._sErrorsContainerId).html(this._sTemplateError.replace('{error}', s));
     else
-        $('#' + this._sPopupContainerId + ' #' + this._sErrorsContainerId).prepend(this._sTemplateError.replace('{error}', s));
+        $('#' + this._sErrorsContainerId).prepend(this._sTemplateError.replace('{error}', s));
     this._isErrorShown = true;
 };
 
@@ -461,7 +462,6 @@ function BxDolUploaderHTML5 (sUploaderObject, sStorageObject, sUniqId, options)
             this._uploader = null;
 
         var $this = this;
-
         var _options = {
             allowProcess: false,
             allowRevert: false,
@@ -484,7 +484,7 @@ function BxDolUploaderHTML5 (sUploaderObject, sStorageObject, sUniqId, options)
             },
             onerror: (error) => { 
                 if (error.main)
-                    $this._showError(error.main + '. ' + error.sub, true);
+                    $this._showError(error.main + '. ' + error.sub);
             },
             onprocessfiles: (files) => { 
                 $this.onUploadCompleted(''); 

+ 2 - 1
modules/base/general/classes/BxBaseModGeneralTemplate.php

@@ -719,6 +719,7 @@ class BxBaseModGeneralTemplate extends BxDolModuleTemplate
             'storage_private' => '0',
             'btn_class' => '',
             'button_title' => '',
+            'attrs' => "class='hidden'"
         ];
 
         $sAddCode = $this->parseHtmlByName('image_tweak.html', [
@@ -733,7 +734,7 @@ class BxBaseModGeneralTemplate extends BxDolModuleTemplate
             'uploader' => $oUploader->getUploaderButton($aParamsButtons),
             'uploader_js' => $sUploadersJs,
         ]); 
-        $this->addJsTranslation(['_sys_txt_form_entry_input_image_reposition_info']);
+        $this->addJsTranslation(['_sys_txt_form_entry_input_image_reposition_info']);        
         return $sAddCode;
     }
 

+ 3 - 2
modules/base/general/template/image_tweak.html

@@ -3,12 +3,13 @@
     <a href="javascript:" class="bx-btn bx-btn-small bx-image-edit-buttons-save hidden" title="<bx_text:_sys_uploader_image_reposition_save />" onclick="oBxDolImageTweak__unique_id__.savePosition()"><i class="sys-icon check"></i></a>
     <a href="javascript:" class="bx-btn bx-btn-small bx-image-edit-buttons-cancel hidden" title="<bx_text:_sys_uploader_image_reposition_cancel />" onclick="oBxDolImageTweak__unique_id__.cancelPosition()"><i class="sys-icon times"></i></a>
     <a href="javascript:" class="bx-btn bx-btn-small bx-image-edit-buttons-upload" title="<bx_text:_sys_uploader_image_upload />" onclick="oBxDolImageTweak__unique_id__.showUploaderForm()"><i class="sys-icon upload"></i></a>
+    __uploader__
 </div>
 <div class="hidden">
     <div id="bx-form-input-files-__unique_id__-upload-result"></div>
-    __uploader__
-    __uploader_js__
 </div>
+
+__uploader_js__
 <script> 
     $( document).ready(function() {
         oBxDolImageTweak__unique_id__ = new BxDolImageTweak('__unique_id__', '__action_url__', '__id__', '__field__', '__js_object__', __allow_tweak__);

+ 1 - 0
modules/base/groups/js/invite_popup.js

@@ -8,6 +8,7 @@
  * @{
  */
 
+
 function BxBaseModGroupsInvitePopup(oOptions) {
     this._sActionsUrl = oOptions.sActionUrl;
     this._sPopupId = oOptions.sPopupId == undefined ? {} : oOptions.sPopupId;

+ 12 - 12
modules/base/profile/classes/BxBaseModProfileTemplate.php

@@ -346,12 +346,6 @@ class BxBaseModProfileTemplate extends BxBaseModGeneralTemplate
             else
                 $sUrlCover = $this->getImageUrl('cover.svg');
 
-            $sCoverTweak = '';
-            $sUniqIdCover = genRndPwd (8, false);
-            if ($bIsAllowEditCover){
-                $sCoverTweak = $this->_prepareImage($aData, $sUniqIdCover, $CNF['OBJECT_UPLOADERS_COVER'], $CNF['OBJECT_STORAGE_COVER'], $CNF['FIELD_COVER'], true);
-            }
-            
             $sAddClassCover = "";
             if(isset($CNF['FIELD_COVER']) && isset($CNF['OBJECT_UPLOADERS_COVER']) && isset($CNF['OBJECT_STORAGE_COVER']) && isset($CNF['OBJECT_IMAGES_TRANSCODER_COVER'])){
                 bx_alert('system', 'image_editor', 0, 0, array(
@@ -370,6 +364,12 @@ class BxBaseModProfileTemplate extends BxBaseModGeneralTemplate
                 ));
             }
             
+            $sCoverTweak = '';
+            $sUniqIdCover = genRndPwd (8, false);
+            if ($bIsAllowEditCover && empty($sAddCode)){
+                $sCoverTweak = $this->_prepareImage($aData, $sUniqIdCover, $CNF['OBJECT_UPLOADERS_COVER'], $CNF['OBJECT_STORAGE_COVER'], $CNF['FIELD_COVER'], true);
+            }
+            
             $aTmplVarsShowCover = [
                 'cover_popup_id' => $sCoverPopupId,
                 'cover_url' => $sUrlCover,
@@ -396,12 +396,6 @@ class BxBaseModProfileTemplate extends BxBaseModGeneralTemplate
             $sUrlPicture = $this->urlPicture ($aData);
             $sUrlPictureChange = bx_absolute_url(BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_EDIT_ENTRY'] . '&id=' . $aData[$CNF['FIELD_ID']]));
 
-            $sPictureTweak = '';
-            $sUniqIdPicture = genRndPwd (8, false);
-            if ($bIsAllowEditPicture){
-                $sPictureTweak = $this->_prepareImage($aData, $sUniqIdPicture, $CNF['OBJECT_UPLOADERS_PICTURE'], $CNF['OBJECT_STORAGE'], $CNF['FIELD_PICTURE'], false);
-            }
-            
             $sAddClassPicture = "";
             if(isset($CNF['FIELD_PICTURE']) && isset($CNF['OBJECT_UPLOADERS_PICTURE']) && isset($CNF['OBJECT_STORAGE']) && isset($CNF['OBJECT_IMAGES_TRANSCODER_THUMB'])){
                 bx_alert('system', 'image_editor', 0, 0, array(
@@ -419,6 +413,12 @@ class BxBaseModProfileTemplate extends BxBaseModGeneralTemplate
                    'add_code' => &$sAddCode
                 )); 
             }
+            
+            $sPictureTweak = '';
+            $sUniqIdPicture = genRndPwd (8, false);
+            if ($bIsAllowEditPicture && empty($sAddCode)){
+                $sPictureTweak = $this->_prepareImage($aData, $sUniqIdPicture, $CNF['OBJECT_UPLOADERS_PICTURE'], $CNF['OBJECT_STORAGE'], $CNF['FIELD_PICTURE'], false);
+            }
 
             $aTmplVarsShowAvatar = array(
                 'add_class' => $sAddClassPicture,

+ 13 - 0
modules/base/text/classes/BxBaseModTextTemplate.php

@@ -643,15 +643,25 @@ class BxBaseModTextTemplate extends BxBaseModGeneralTemplate
             )); 
         }
 
+        $sImageTweak = '';
+        $sUniqIdImage = genRndPwd (8, false);
+        if ($bIsAllowEditPicture && empty($sAddCode)){
+            $sImageTweak = $this->_prepareImage($aData, $sUniqIdImage, $CNF['OBJECT_UPLOADERS'], $CNF['OBJECT_STORAGE'], $CNF['FIELD_THUMB'], true);
+        }
+
+        
         $aVars['content_description_before'] = '';
         $aVars['content_description_after'] = '';
         $aVars['bx_if:show_image'] = array(
             'condition' => !empty($sImage),
             'content' => array(
                 'entry_image' => $sImage,
+                'image_settings' => isset($CNF['FIELD_THUMB_POSITION']) ? $this->_getImageSettings($aData[$CNF['FIELD_THUMB_POSITION']]) : '',
                 'add_class' => $sAddClassPicture,
                 'img_class' => $sAddClassPicture != '' ? 'bx-media-editable-src' : '',
                 'additional_code' => $sAddCode,
+                'image_tweak' => $sImageTweak,
+                'unique_id' => $sUniqIdImage,
             )
         );
         
@@ -888,6 +898,8 @@ class BxBaseModTextTemplate extends BxBaseModGeneralTemplate
         $bBadgesSingle = isset($aParams['badges_single']) ? $aParams['badges_single'] : false;
         $bBadgesCompact = isset($aParams['badges_compact']) ? $aParams['badges_compact'] : false;
 
+        $sCoverData = isset($aData['thumb_data']) ? $aData['thumb_data'] : '';
+        
         $aTmplVars = array (
             'class' => $this->_getUnitClass($aData,(isset($aParams['template_name']) ? $aParams['template_name'] : '')),
             'id' => $aData[$CNF['FIELD_ID']],
@@ -917,6 +929,7 @@ class BxBaseModTextTemplate extends BxBaseModGeneralTemplate
                     'content_url' => $sUrl,
                     'thumb_url' => $sPhotoThumb ? $sPhotoThumb : '',
                     'gallery_url' => $sPhotoGallery ? $sPhotoGallery : '',
+                    'image_settings' => $this->_getImageSettings($sCoverData),
                     'strecher' => str_repeat('&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ', 40),
                 ),
             ),

+ 1 - 1
modules/base/text/template/css/main.css

@@ -59,7 +59,7 @@
     display: block;
 
     width: 100%;
-    height: 300px;
+    min-height: 300px;
     object-fit: cover;
 }
 .bx-media-phone .bx-base-text-unit-cover img {

+ 4 - 2
modules/base/text/template/entry-text.html

@@ -1,9 +1,11 @@
 <div class="bx-content-description-before">__content_description_before__</div>
 <div class="bx-content-description">
     <bx_if:show_image>
-        <div class="bx-base-text-entity-image mb-4 text-center __add_class__">
-            <img class="rounded __img_class__" src="__entry_image__" />
+        <div class="bx-base-text-entity-image mb-4 text-center __add_class__ relative flex justify-center items-center">
+            <img class="rounded __img_class__ aspect-video object-cover bg-cover bx-image-edit-source-__unique_id__" style="background-image:url(__entry_image__); __image_settings__"  src="<bx_icon_url:spacer.gif />"/>
+            __image_tweak__
         </div>
+        
         __additional_code__
     </bx_if:show_image>
     <div class="bx-base-text-entity-content bx-def-constraint-list bx-def-constraint-pre bx-def-constraint-object bx-def-constraint-iframe bx-def-constraint-img bx-def-vanilla-html">

+ 1 - 1
modules/base/text/template/unit.html

@@ -1,7 +1,7 @@
 <div class="bx-base-text-unit bx-base-text-unit-ext bx-def-box bx-def-box-round-corners bx-def-color-bg-box mb-3 md:mb-4 lg:mb-6 text-left">
     <bx_if:thumb>
         <div class="bx-base-text-unit-cover flex-shrink-0 m-1">
-            <img class="h-48 w-full object-cover rounded" src="__gallery_url__" alt="">
+            <img class="bx-base-text-unit-cover bg-cover aspect-video object-cover bx-def-round-corners" alt="__title__" style="background-image:url(__gallery_url__); __image_settings__" src="<bx_icon_url:spacer.gif />" />
         </div>
     </bx_if:thumb>
     <div class="bx-base-text-unit-text p-3 md:p-4 lg:p-6 pt-2 md:pt-3 lg:pt-5 box-border">

+ 10 - 10
modules/base/text/template/unit_gallery.html

@@ -1,24 +1,24 @@
 <div class="__class__ bx-base-text-unit bx-base-text-unit-gallery bx-def-gal-unit-size flex flex-col w-full p-2 box-border">
-    <div class="bx-base-text-unit-cnt bx-def-box bx-def-box-round-corners bx-def-color-bg-box">
+    <div class="bx-base-text-unit-cnt bx-def-box bx-def-box-round-corners bx-def-color-bg-box h-full">
         <bx_if:thumb>
             <a href="__content_url__" title="__summary_attr__">
-                <div class="flex-shrink-0 m-1">
-                    <img class="h-48 w-full object-cover rounded" src="__gallery_url__" alt="">
+                <div class="shrink-0 m-1">
+                    <img class="rounded  aspect-video object-cover bg-cover w-full" alt="__title__" style="background-image:url(__gallery_url__); __image_settings__" src="<bx_icon_url:spacer.gif />"  />
                 </div>
             </a>
         </bx_if:thumb>
         <bx_if:no_thumb>
-            <div class="bx-def-gal-img-column flex-shrink-0 m-1">
+            <div class="bx-def-gal-img-column shrink-0 m-1">
                 <div class="bx-base-text-unit-no-thumb flex flex-col items-center justify-center h-48 p-4 bg-gradient-to-b from-red-400 to-red-500 box-border rounded-md"></div>
             </div>
         </bx_if:no_thumb>
-        <div class="bx-base-text-unit-text p-3 md:p-4 lg:p-6 pt-2 md:pt-3 lg:pt-5 box-border">
-            <div class="bx-base-text-unit-info flex text-sm text-gray-500 dark:text-gray-400">
-                <bx_if:meta><div class="bx-base-general-unit-meta pb-2">__meta__</div></bx_if:meta>
-            </div>
+        <div class="bx-base-text-unit-text flex flex-col flex-1 p-3 md:p-4 lg:p-6 pt-1 md:pt-2 lg:pt-3 box-border">
+            <div class="bx-base-text-unit-badges pb-1 lg:pb-2">__badges__</div>
             <div class="bx-base-text-unit-title flex-inline flex-2 max-h-14 truncate text-left">
-                <a href="__content_url__">__title__</a>
-                __badges__
+                <a href="__content_url__" class="text-left">__title__</a>
+            </div>
+            <div class="bx-base-text-unit-info flex flex-1 flex-col justify-end text-sm text-gray-500 dark:text-gray-400">
+                <bx_if:meta><div class="bx-base-general-unit-meta pt-2">__meta__</div></bx_if:meta>
             </div>
         </div>
     </div>

+ 0 - 25
modules/boonex/artificer/data/template/bx_posts/unit_gallery.html

@@ -1,25 +0,0 @@
-<div class="__class__ bx-base-text-unit bx-base-text-unit-gallery bx-def-gal-unit-size flex flex-col w-full p-2 box-border">
-    <div class="bx-base-text-unit-cnt bx-def-box bx-def-box-round-corners bx-def-color-bg-box h-full">
-        <bx_if:thumb>
-            <a href="__content_url__" title="__summary_attr__">
-                <div class="shrink-0 m-1">
-                    <img class="h-48 w-full object-cover rounded" src="__gallery_url__" alt="">
-                </div>
-            </a>
-        </bx_if:thumb>
-        <bx_if:no_thumb>
-            <div class="bx-def-gal-img-column shrink-0 m-1">
-                <div class="bx-base-text-unit-no-thumb flex flex-col items-center justify-center h-48 p-4 bg-gradient-to-b from-red-400 to-red-500 box-border rounded-md"></div>
-            </div>
-        </bx_if:no_thumb>
-        <div class="bx-base-text-unit-text flex flex-col flex-1 p-3 md:p-4 lg:p-6 pt-1 md:pt-2 lg:pt-3 box-border">
-            <div class="bx-base-text-unit-badges pb-1 lg:pb-2">__badges__</div>
-            <div class="bx-base-text-unit-title flex-inline flex-2 max-h-14 truncate text-left">
-                <a href="__content_url__" class="text-left">__title__</a>
-            </div>
-            <div class="bx-base-text-unit-info flex flex-1 flex-col justify-end text-sm text-gray-500 dark:text-gray-400">
-                <bx_if:meta><div class="bx-base-general-unit-meta pt-2">__meta__</div></bx_if:meta>
-            </div>
-        </div>
-    </div>
-</div>

+ 1 - 1
modules/boonex/artificer/data/template/mod_text/css/main.css

@@ -10,7 +10,7 @@
     display: block;
 
     width: 100%;
-    height: 300px;
+    min-height: 300px;
     object-fit: cover;
 }
 .bx-base-text-unit-ext .bx-base-text-unit-text {

+ 3 - 0
modules/boonex/artificer/data/template/system/css/cover.css

@@ -50,4 +50,7 @@ import url(../../../../../../../template/css/cover.css);
 }
 .bx-image-edit-buttons-no-image .bx-image-edit-buttons-edit{
     display: none;
+}
+.bx-image-edit-buttons .bx-uploader-html5-drop-area{
+    display: none;
 }

+ 1 - 1
modules/boonex/lucid/data/template/bx_posts/unit.html

@@ -1,4 +1,4 @@
-<div class="bx-base-text-unit bx-base-text-unit-ext bx-def-box bx-def-round-corners bx-def-color-bg-box bx-def-margin-bottom">
+xzx<div class="bx-base-text-unit bx-base-text-unit-ext bx-def-box bx-def-round-corners bx-def-color-bg-box bx-def-margin-bottom">
 	<bx_if:thumb>
 		<div class="bx-base-text-unit-cover">
 			<img class="bx-base-text-unit-cover bx-def-round-corners" alt="__title__" src="__thumb_url__" />

+ 0 - 1
modules/boonex/persons/classes/BxPersonsConfig.php

@@ -46,7 +46,6 @@ class BxPersonsConfig extends BxBaseModProfileConfig
             'FIELD_TITLE' => 'fullname',
             'FIELD_TEXT' => 'description',
             'FIELD_PICTURE' => 'picture',
-            'FIELD_PICTURE_POSITION' => 'picture_data',
             'FIELD_COVER' => 'cover',
             'FIELD_COVER_POSITION' => 'cover_data',
             'FIELD_BIRTHDAY' => 'birthday',

+ 2 - 1
modules/boonex/posts/classes/BxPostsConfig.php

@@ -50,6 +50,7 @@ class BxPostsConfig extends BxBaseModTextConfig
             'FIELD_FILE' => 'files',
             'FIELD_POLL' => 'polls',
             'FIELD_THUMB' => 'thumb',
+            'FIELD_THUMB_POSITION' => 'thumb_data',
             'FIELD_LINK' => 'link',
             'FIELD_ATTACHMENTS' => 'attachments',
             'FIELD_VIEWS' => 'views',
@@ -147,7 +148,7 @@ class BxPostsConfig extends BxBaseModTextConfig
             'OBJECT_GRID_ADMINISTRATION' => 'bx_posts_administration',
             'OBJECT_GRID_COMMON' => 'bx_posts_common',
             'OBJECT_GRID_CATEGORIES' => 'bx_posts_categories',
-            'OBJECT_UPLOADERS' => array('bx_posts_simple', 'bx_posts_html5'),
+            'OBJECT_UPLOADERS' => array('bx_posts_html5'),
             'OBJECT_CONTENT_INFO' => 'bx_posts',
             'OBJECT_CMTS_CONTENT_INFO' => 'bx_posts_cmts',
             

+ 1 - 1
modules/boonex/posts/classes/BxPostsSearchResult.php

@@ -21,7 +21,7 @@ class BxPostsSearchResult extends BxBaseModTextSearchResult
             'object_metatags' => 'bx_posts',
             'title' => _t('_bx_posts_page_title_browse'),
             'table' => 'bx_posts_posts',
-            'ownFields' => array('id', 'title', 'text', 'thumb', 'author', 'added'),
+            'ownFields' => array('id', 'title', 'text', 'thumb', 'thumb_data', 'author', 'added'),
             'searchFields' => array(),
             'restriction' => array(
                 'author' => array('value' => '', 'field' => 'author', 'operator' => '='),

+ 0 - 1
modules/boonex/timeline/template/uploader_button_html5_attach.html

@@ -1 +0,0 @@
-<bx_include_base:../modules/base/text/template/uploader_button_html5_attach.html />

+ 4 - 0
template/css/cover.css

@@ -56,6 +56,10 @@
     display: none;
 }
 
+.bx-image-edit-buttons .bx-uploader-html5-drop-area{
+    display: none;
+}
+
 .bx-cover-gradient {
     position: absolute;
     width: 100%;