Explorar el Código

#4548 - Add separate field for Meta title

roman.lesnikov@gmail.com hace 2 años
padre
commit
51ab83b3de

+ 14 - 1
inc/classes/BxDolTemplate.php

@@ -630,6 +630,7 @@ class BxDolTemplate extends BxDolFactory implements iBxDolSingleton
             'header_text' => '',
             'keywords' => array(),
             'location' => array(),
+            'title' => '',
             'description'  => '',
             'robots' => '',
             'base' => ['href' =>  BX_DOL_URL_ROOT],
@@ -806,6 +807,16 @@ class BxDolTemplate extends BxDolFactory implements iBxDolSingleton
         return $this->aPage;
     }
 
+    /**
+     * Set page meta title.
+     *
+     * @param string sTitle necessary page description.
+     */
+    function setPageMetaTitle($sTitle)
+    {
+        $this->aPage['title'] = $sTitle;
+    }
+    
     /**
      * Set page description.
      *
@@ -1796,7 +1807,9 @@ class BxDolTemplate extends BxDolFactory implements iBxDolSingleton
                 $sRet = $this->getMetaInfo();
                 break;
             case 'page_header':
-                if(isset($this->aPage['header']))
+                if (isset($this->aPage['title']) && !empty($this->aPage['title']))
+                    $sRet = bx_process_output(strip_tags($this->aPage['title']));
+                if(empty($sRet) && isset($this->aPage['header']))
                     $sRet = bx_process_output(strip_tags($this->aPage['header']));
                 break;
             case 'page_header_text':

+ 1 - 0
install/sql/system.sql

@@ -5574,6 +5574,7 @@ CREATE TABLE IF NOT EXISTS `sys_objects_page` (
   `visible_for_levels_editable` tinyint(4) NOT NULL DEFAULT '1',
   `url` varchar(255) NOT NULL,
   `content_info` varchar(64) NOT NULL,
+  `meta_title` varchar(255) NOT NULL,
   `meta_description` text NOT NULL,
   `meta_keywords` text NOT NULL,
   `meta_robots` varchar(255) NOT NULL,

+ 1 - 0
modules/boonex/english/data/langs/system/en.xml

@@ -587,6 +587,7 @@
 	<string name="_adm_bp_txt_page_layout_empty"><![CDATA[Select Layout...]]></string>
 	<string name="_adm_bp_txt_page_meta_description"><![CDATA[Page (Meta) Description]]></string>
 	<string name="_adm_bp_txt_page_meta_keywords"><![CDATA[Keywords]]></string>
+    <string name="_adm_bp_txt_page_meta_title"><![CDATA[Page (Meta) Title]]></string>
 	<string name="_adm_bp_txt_page_meta_robots"><![CDATA[Meta Robots]]></string>
         <string name="_adm_bp_txt_page_submenu"><![CDATA[Submenu]]></string>
 	<string name="_adm_bp_dsc_page_submenu"><![CDATA[Page submenu can be selected here]]></string>

+ 1 - 0
studio/classes/BxDolStudioBuilderPageQuery.php

@@ -74,6 +74,7 @@ class BxDolStudioBuilderPageQuery extends BxDolStudioPageQuery
             `tp`.`visible_for_levels` AS `visible_for_levels`,
             `tp`.`visible_for_levels_editable` AS `visible_for_levels_editable`,
             `tp`.`url` AS `url`,
+            `tp`.`meta_title` AS `meta_title`,
             `tp`.`meta_description` AS `meta_description`,
             `tp`.`meta_keywords` AS `meta_keywords`,
             `tp`.`meta_robots` AS `meta_robots`,

+ 9 - 0
studio/template/scripts/BxBaseStudioBuilderPage.php

@@ -1390,6 +1390,15 @@ class BxBaseStudioBuilderPage extends BxDolStudioBuilderPage
                 )
             ),
             'inputs' => array (
+                'meta_title' => array(
+                    'type' => 'textarea',
+                    'name' => 'meta_title',
+                    'caption' => _t('_adm_bp_txt_page_meta_title'),
+                    'value' => isset($aPage['meta_title']) ? $aPage['meta_title'] : '',
+                    'db' => array (
+                        'pass' => 'Xss',
+                    ),
+                ),
                 'meta_description' => array(
                     'type' => 'textarea',
                     'name' => 'meta_description',

+ 14 - 0
template/scripts/BxBasePage.php

@@ -49,6 +49,7 @@ class BxBasePage extends BxDolPage
         $this->_aHtmlIds = array(
             'help_popup' => $sHtmlId . '-help-popup-',
         );
+        $this->addMarkers(array('site_title' => getParam('site_title')));
     }
 
     public function performActionGetHelp ()
@@ -813,6 +814,10 @@ class BxBasePage extends BxDolPage
         if ($sPageTitle)
             $oTemplate->setPageHeader ($sPageTitle);
 
+        $sMetaTitle = $this->_getPageMetaTitle();
+        if ($sMetaTitle)
+            $oTemplate->setPageMetaTitle ($sMetaTitle);
+        
         $sMetaDesc = $this->_getPageMetaDesc();
         if ($sMetaDesc)
             $oTemplate->setPageDescription ($sMetaDesc);
@@ -1022,6 +1027,15 @@ class BxBasePage extends BxDolPage
         return $this->_replaceMarkers(_t($this->_aObject['meta_description']));
     }
 
+    /**
+     * Get page meta title.
+     * @return string
+     */
+    protected function _getPageMetaTitle()
+    {
+        return $this->_replaceMarkers(_t($this->_aObject['meta_title']));
+    }
+    
     /**
      * Get page meta image.
      * @return string

+ 1 - 1
template/scripts/BxBasePageHome.php

@@ -15,7 +15,7 @@ class BxBasePageHome extends BxTemplPage
     public function __construct($aObject, $oTemplate)
     {
         parent::__construct($aObject, $oTemplate);
-        $this->addMarkers(array('site_title' => getParam('site_title')));
+      
 
         $aCover = $this->getPageCoverImage();