AntonLV 7 лет назад
Родитель
Сommit
5f461ab46a

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

@@ -57,6 +57,48 @@ class BxBaseModGeneralTemplate extends BxDolModuleTemplate
         return ($mixedWrap === true || (is_array($mixedWrap) && isset($mixedWrap['wrap']) && $mixedWrap['wrap'] === true)) ? $this->_wrapInTagJsCode($sContent) : $sContent;
     }
 
+    public function getTitleAuto($aData, $iMaxLen = 20, $sEllipsisSign = '...')
+    {
+        $CNF = &$this->getModule()->_oConfig->CNF;
+
+        if(isset($aData[$CNF['FIELD_TITLE']]))
+            return $this->getTitle($aData);
+
+        $sResult = $this->getText($aData);
+        if(strlen($sResult) > 0 && $iMaxLen > 0)
+            $sResult = strmaxtextlen($sResult, $iMaxLen, $sEllipsisSign);
+
+        return $sResult;
+    }
+
+    public function getTitle($aData, $mixedProcessOutput = BX_DATA_TEXT)
+    {
+        $CNF = &$this->getModule()->_oConfig->CNF;
+        
+        if(!isset($aData[$CNF['FIELD_TITLE']]))
+            return '';
+
+        $sResult = $aData[$CNF['FIELD_TITLE']];
+        if($mixedProcessOutput !== false && !empty($sResult))
+            $sResult = bx_process_output($sResult, (int)$mixedProcessOutput);
+
+        return $sResult;
+    }
+
+    public function getText($aData, $mixedProcessOutput = BX_DATA_HTML)
+    {
+        $CNF = &$this->getModule()->_oConfig->CNF;
+        
+        if(!isset($aData[$CNF['FIELD_TEXT']]))
+            return '';
+
+        $sResult = $aData[$CNF['FIELD_TEXT']];
+        if($mixedProcessOutput !== false && !empty($sResult))
+            $sResult = bx_process_output($sResult, (int)$mixedProcessOutput);
+
+        return $sResult;
+    }
+
     public function getProfileLink($mixedProfile)
     {
     	if(!is_array($mixedProfile))
@@ -83,8 +125,8 @@ class BxBaseModGeneralTemplate extends BxDolModuleTemplate
         $CNF = &$this->getModule()->_oConfig->CNF;
 
         $aVars = $aData;
-        $aVars['entry_title'] = !empty($CNF['FIELD_TITLE']) && isset($aData[$CNF['FIELD_TITLE']]) ? bx_process_output($aData[$CNF['FIELD_TITLE']]) : '';
-        $aVars['entry_text'] = !empty($CNF['FIELD_TEXT']) && isset($aData[$CNF['FIELD_TEXT']]) ? bx_process_output($aData[$CNF['FIELD_TEXT']], BX_DATA_HTML) : '';
+        $aVars['entry_title'] = $this->getTitle($aData);
+        $aVars['entry_text'] = $this->getText($aData);
 
         if (!empty($CNF['OBJECT_METATAGS'])) {
             $oMetatags = BxDolMetatags::getObjectInstance($CNF['OBJECT_METATAGS']);

+ 1 - 1
modules/base/text/classes/BxBaseModTextPageEntry.php

@@ -29,7 +29,7 @@ class BxBaseModTextPageEntry extends BxBaseModGeneralPageEntry
 
         $sTitle = $sUrl = $sIcon = "";
         if ($this->_aContentInfo && CHECK_ACTION_RESULT_ALLOWED === $this->_oModule->checkAllowedView($this->_aContentInfo)) {
-            $sTitle = isset($this->_aContentInfo[$CNF['FIELD_TITLE']]) ? $this->_aContentInfo[$CNF['FIELD_TITLE']] : strmaxtextlen($this->_aContentInfo[$CNF['FIELD_TEXT']], 20, '...');
+            $sTitle = $this->_oModule->_oTemplate->getTitleAuto($this->_aContentInfo);
             $sUrl = BX_DOL_URL_ROOT . BxDolPermalinks::getInstance()->permalink('page.php?i=' . $CNF['URI_VIEW_ENTRY'] . '&id=' . $this->_aContentInfo[$CNF['FIELD_ID']]);
             $sIcon = $CNF['ICON'];
 

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

@@ -660,8 +660,6 @@ class BxBaseModTextTemplate extends BxBaseModGeneralTemplate
             $sText = $oMetatags->metaParse($aData[$CNF['FIELD_ID']], $sText);
         }
 
-        $sTitle = bx_process_output($sTitle);
-
         $aTmplVarsMeta = array();
         if(!empty($CNF['OBJECT_MENU_SNIPPET_META'])) {
             $oMenuMeta = BxDolMenu::getObjectInstance($CNF['OBJECT_MENU_SNIPPET_META'], $this);
@@ -717,20 +715,6 @@ class BxBaseModTextTemplate extends BxBaseModGeneralTemplate
         );
     }
 
-    protected function getTitle($aData)
-    {
-        $CNF = &$this->getModule()->_oConfig->CNF;
-
-        return isset($aData[$CNF['FIELD_TITLE']]) ? $aData[$CNF['FIELD_TITLE']] : '';
-    }
-
-    protected function getText($aData)
-    {
-        $CNF = &$this->getModule()->_oConfig->CNF;
-
-        return isset($aData[$CNF['FIELD_TEXT']]) ? $aData[$CNF['FIELD_TEXT']] : '';
-    }
-
     protected function getSummary($aData, $sTitle = '', $sText = '', $sUrl = '')
     {
         $CNF = &$this->getModule()->_oConfig->CNF;

+ 10 - 1
modules/boonex/photos/classes/BxPhotosTemplate.php

@@ -56,7 +56,7 @@ class BxPhotosTemplate extends BxBaseModTextTemplate
         $aTmplVars = array_merge($aTmplVars, array(
             'content_description_before' => '',
             'entry_photo' => $sImage,
-            'entry_title_attr' => bx_html_attribute($aContentInfo['title']),
+            'entry_title_attr' => bx_html_attribute($this->getTitle($aContentInfo)),
             'content_description_after' => ''
         ));
 
@@ -183,6 +183,15 @@ class BxPhotosTemplate extends BxBaseModTextTemplate
 
         return $aResult;
     }
+    
+    public function getTitle($aData, $mixedProcessOutput = BX_DATA_TEXT)
+    {
+        $sTitle = parent::getTitle($aData, $mixedProcessOutput);
+        if(!empty($sTitle))
+            return $sTitle;
+
+        return _t('_sys_txt_no_title');
+    }
 }
 
 /** @} */

+ 2 - 5
modules/boonex/photos/template/form_ghost_template_upload.html

@@ -4,11 +4,8 @@
         <img src="{file_icon}" class="bx-def-round-corners bx-base-general-icon bx-base-general-icon-{file_id}" />
     </div>
     <span class="bx-base-general-uploader-ghost">
-        <b><bx_text:_bx_photos_form_entry_input_title /></b>
-        <br />
-        <input class="bx-def-font-inputs bx-form-input-text bx-def-margin-sec-bottom" type="text" value="{file_title_attr}" name="title-{file_id}" /> <br />
-
+        <b><bx_text:_bx_photos_form_entry_input_title /></b> <br />
+        <input class="bx-def-font-inputs bx-form-input-text bx-def-margin-sec-bottom" type="text" value="" name="title-{file_id}" /> <br />
         <a class="bx-btn bx-btn-small bx-def-margin-sec-right" href="javascript:void(0);" onclick="bx_base_general_delete_ghost('{file_id}', '{file_url}', '{file_icon}', ['__editor_id__'], {js_instance_name});"><bx_text:_sys_txt_form_entry_input_picture_delete /></a>
-
     </span>
 </div>

+ 16 - 3
modules/boonex/polls/classes/BxPollsTemplate.php

@@ -40,7 +40,7 @@ class BxPollsTemplate extends BxBaseModTextTemplate
         $oTemplate = BxDolTemplate::getInstance();
         $oTemplate->addCssStyle($CNF['STYLES_POLLS_EMBED_CLASS'], $CNF['STYLES_POLLS_EMBED_CONTENT']);
         $oTemplate->setPageNameIndex(BX_PAGE_EMBED);
-        $oTemplate->setPageHeader(strmaxtextlen($this->_oConfig->getTitle($aContentInfo), 32, '...'));
+        $oTemplate->setPageHeader($this->getTitleAuto($aContentInfo));
         $oTemplate->setPageContent('page_main_code', $this->getJsCode('entry') . $aBlock['content']);
         $oTemplate->getPageCode();
         exit;
@@ -124,9 +124,22 @@ class BxPollsTemplate extends BxBaseModTextTemplate
         );
     }
 
-    protected function getTitle($aData)
+    public function getTitleAuto($aData, $iMaxLen = 32, $sEllipsisSign = '...')
     {
-        return $this->_oConfig->getTitle($aData);
+        $sResult = $this->getTitle($aData);
+        if(strlen($sResult) > 0 && $iMaxLen > 0)
+            $sResult = strmaxtextlen($sResult, $iMaxLen, $sEllipsisSign);
+
+        return $sResult;
+    }
+
+    public function getTitle($aData, $mixedProcessOutput = BX_DATA_TEXT)
+    {
+        $sResult = $this->_oConfig->getTitle($aData);
+        if($mixedProcessOutput !== false && !empty($sResult))
+            $sResult = bx_process_output($sResult, (int)$mixedProcessOutput);
+
+        return $sResult;
     }
 
     protected function getSummary($aData, $sTitle = '', $sText = '', $sUrl = '')