diff --git a/e107_admin/cpage.php b/e107_admin/cpage.php index ab4daf2a6..6ae4ec219 100644 --- a/e107_admin/cpage.php +++ b/e107_admin/cpage.php @@ -599,8 +599,10 @@ class page_admin_ui extends e_admin_ui 'page_comment_flag' => array('title'=> LAN_COMMENTS, 'tab' => 1, 'type' => 'boolean', 'data'=>'int', 'width' => '5%', 'thclass' => 'center', 'class' => 'center' ), 'page_password' => array('title'=> LAN_PASSWORD, 'tab' => 1, 'type' => 'text', 'data'=>'str', 'width' => 'auto', 'writeParms'=>array('password'=>1, 'nomask'=>1, 'size' => 40, 'class' => 'tbox e-password', 'generate' => 1, 'strength' => 1, 'required'=>0)), 'page_sef' => array('title'=> LAN_SEFURL, 'tab' => 1, 'type' => 'text', 'batch'=>true, 'data'=>'str', 'inline'=>true, 'width' => 'auto', 'writeParms'=>'size=xxlarge&sef=page_title'), + 'page_metatitle' => array('title'=> LAN_META_TITLE, 'tab' => 1, 'type' => 'text', 'data'=>'str', 'width' => 'auto', 'inline'=>true, 'writeParms'=>['size'=>'xxlarge']), + 'page_metadscr' => array('title'=> LAN_META_DESCRIPTION, 'tab' => 1, 'type' => 'textarea', 'data'=>'str', 'help'=>CUSLAN_82, 'width' => 'auto', 'writeParms'=>array('size'=>'xxlarge', 'rows'=>2, 'maxlength'=>155)), 'page_metakeys' => array('title'=> LAN_KEYWORDS, 'tab' => 1, 'type' => 'tags', 'data'=>'str', 'width' => 'auto', 'inline'=>true), - 'page_metadscr' => array('title'=> CUSLAN_11, 'tab' => 1, 'type' => 'textarea', 'data'=>'str', 'help'=>CUSLAN_82, 'width' => 'auto', 'writeParms'=>array('size'=>'xxlarge', 'rows'=>2, 'maxlength'=>155)), + 'page_metaimage' => array('title'=> CUSLAN_81, 'nolist'=>false, 'tab' => 1, 'type' => 'image', 'help'=> CUSLAN_82, 'width' => '110px', 'thclass' => 'center', 'class' => "center", 'nosort' => false, 'readParms'=>'thumb=60&thumb_urlraw=0&thumb_aw=60','writeParms'=>'media=page^&video=1', 'readonly'=>false), 'page_metarobots' => array('title' => LAN_ROBOTS, 'tab'=>1, 'type' => 'dropdown', 'data'=>'safestr', 'batch'=>true, 'inline'=>true, 'readParms'=>array('type'=>'checkboxes'), 'width' => 'auto', 'thclass' => 'left', 'class' => 'left', 'nosort' => false, 'filter'=>true), @@ -928,7 +930,7 @@ class page_admin_ui extends e_admin_ui { parent::CreateObserver(); $this->initCustomFields(0); - + $this->initSEOFields(); } @@ -944,9 +946,25 @@ class page_admin_ui extends e_admin_ui $this->initCustomFields($chap); $this->loadCustomFieldsData(); + $this->initSEOFields(); } + private function initSEOFields() + { + eHelper::syncSEOTitle('page-title', 'page-metatitle'); + + $seoTitleLimit = (int) e107::pref('core', 'seo_title_limit', 100); + $seoDescriptionLimit = (int) e107::pref('core', 'seo_description_limit', 180); + + $this->fields['page_metatitle']['writeParms']['counter'] = $seoTitleLimit; + $this->fields['page_metatitle']['help'] = e107::getParser()->lanVars(LAN_SEARCH_ENGINES_X_LIMIT, $seoTitleLimit); + $this->fields['page_metadscr']['writeParms']['counter'] = $seoDescriptionLimit; + $this->fields['page_metadscr']['help'] = e107::getParser()->lanVars(LAN_SEARCH_ENGINES_X_LIMIT, $seoDescriptionLimit); + + } + + /** * Filter/Process Posted page_field data; * @param $new_data diff --git a/e107_admin/newspost.php b/e107_admin/newspost.php index c05b820ef..5e616ad8e 100644 --- a/e107_admin/newspost.php +++ b/e107_admin/newspost.php @@ -27,31 +27,8 @@ e107::css('inline', " "); -e107::js('footer-inline', ' -$("#news-meta-title").focus(function() { - - var title = $("#news-title").val() + " | " + "'.SITENAME.'"; - - if(!$(this).val()) - { - $(this).val(title); - } - else - { - $(this).attr("placeholder",title); - } - -}); -$("#news-title").on("input change focus", function() -{ - var title = $("#news-title").val() + " | " + "'.SITENAME.'"; - $("#news-meta-title").attr("placeholder",title); - -}); - -'); class news_admin extends e_admin_dispatcher { @@ -434,9 +411,6 @@ class news_sub_form_ui extends e_admin_form_ui } - -define('NEWS_TITLE_META_LIMIT', 50); -define('NEWS_DIZ_META_LIMIT',155); // Main News Area. class news_admin_ui extends e_admin_ui @@ -477,9 +451,9 @@ class news_admin_ui extends e_admin_ui 'news_body' => array('title' => "", 'type' => 'method', 'data'=>'str', 'tab'=>0, 'nolist'=>true, 'writeParms'=>'nolabel=1', 'width' => 'auto', 'thclass' => '', 'class' => null, 'nosort' => false), 'news_extended' => array('title' => "", 'type' => null, 'data'=>'str', 'tab'=>0, 'nolist'=>true, 'noedit'=>true, 'writeParms'=>'nolabel=1', 'width' => 'auto', 'thclass' => '', 'class' => null, 'nosort' => false), - 'news_meta_title' => array('title' => LAN_TITLE, 'type' => 'text', 'data'=>'safestr', 'filter'=>true, 'tab'=>1, 'inline'=>true, 'width' => 'auto', 'help'=>'', 'writeParms'=>['size'=>'xxlarge', 'placeholder'=>'', 'counter'=>0, 'maxlength'=> 255], 'nosort' => false), + 'news_meta_title' => array('title' => LAN_META_TITLE, 'type' => 'text', 'data'=>'safestr', 'filter'=>true, 'tab'=>1, 'inline'=>true, 'width' => 'auto', 'help'=>'', 'writeParms'=>['size'=>'xxlarge', 'placeholder'=>'', 'counter'=>0, 'maxlength'=> 255], 'nosort' => false), 'news_meta_keywords' => array('title' => LAN_KEYWORDS, 'type' => 'tags', 'data'=>'safestr', 'filter'=>true, 'tab'=>1, 'inline'=>true, 'width' => 'auto', 'thclass' => '', 'class' => null, 'nosort' => false), - 'news_meta_description' => array('title' => LAN_DESCRIPTION,'type' => 'textarea', 'data'=>'safestr','filter'=>true, 'tab'=>1, 'width' => 'auto', 'thclass' => '', 'help'=>'', 'class' => null, 'nosort' => false, 'writeParms'=>array('size'=>'xxlarge', 'counter'=>0, 'maxlength'=>255, 'rows'=>2)), + 'news_meta_description' => array('title' => LAN_META_DESCRIPTION,'type' => 'textarea', 'data'=>'safestr','filter'=>true, 'tab'=>1, 'width' => 'auto', 'thclass' => '', 'help'=>'', 'class' => null, 'nosort' => false, 'writeParms'=>array('size'=>'xxlarge', 'counter'=>0, 'maxlength'=>255, 'rows'=>2)), 'news_meta_robots' => array('title' => LAN_ROBOTS, 'type' => 'dropdown', 'data'=>'safestr', 'tab'=>1, 'inline'=>true, 'readParms'=>array('type'=>'checkboxes'), 'writeParms'=>array('multiple'=>1), 'width' => 'auto', 'thclass' => 'left', 'class' => 'left', 'nosort' => false, 'batch'=>true, 'filter'=>true), 'news_sef' => array('title' => LAN_SEFURL, 'type' => 'text', 'batch'=>1, 'data'=>'str', 'tab'=>1, 'inline'=>true, 'width' => 'auto', 'thclass' => '', 'class' => null, 'nosort' => false, 'writeParms'=>array('size'=>'xxlarge', 'show'=>1, 'sef'=>'news_title')), @@ -962,8 +936,10 @@ class news_admin_ui extends e_admin_ui } - private function setSEOLimits() + private function initSEOFields() { + eHelper::syncSEOTitle('news-title', 'news-meta-title'); + $seoTitleLimit = (int) e107::pref('core', 'seo_title_limit', 100); $seoDescriptionLimit = (int) e107::pref('core', 'seo_description_limit', 180); @@ -977,27 +953,14 @@ class news_admin_ui extends e_admin_ui function EditObserver() { parent::EditObserver(); - - $title = $this->getFieldVar('news_title'). ' | '.SITENAME; - $placeholder = $this->getFieldVar('news_meta_title'); - - if(empty($placeholder)) - { - $this->fields['news_meta_title']['writeParms']['placeholder'] = html_entity_decode($title); - } - else - { - $this->fields['news_meta_title']['writeParms']['placeholder'] = html_entity_decode($placeholder); - } - - $this->setSEOLimits(); + $this->initSEOFields(); } function CreateObserver() { parent::CreateObserver(); - $this->setSEOLimits(); + $this->initSEOFields(); } diff --git a/e107_core/sql/core_sql.php b/e107_core/sql/core_sql.php index 8d3b8f04b..b657ad1f9 100755 --- a/e107_core/sql/core_sql.php +++ b/e107_core/sql/core_sql.php @@ -384,6 +384,7 @@ CREATE TABLE page ( page_subtitle varchar(250) NOT NULL default '', page_sef varchar (250) NOT NULL default '', page_chapter int(10) unsigned NOT NULL default '0', + page_metatitle varchar(255) NOT NULL default '', page_metakeys varchar (250) NOT NULL default '', page_metadscr mediumtext, page_metaimage varchar (250) NOT NULL default '', diff --git a/e107_handlers/application.php b/e107_handlers/application.php index e7bc7558b..8734ce453 100644 --- a/e107_handlers/application.php +++ b/e107_handlers/application.php @@ -5286,4 +5286,62 @@ class eHelper } + /** + * Duplicates the value from a title form field into the meta-title form field. + * @param str $titleID eg. news-title + * @param str $metaTitleID eg. news-meta-title + * @return void + */ + public static function syncSEOTitle($titleID, $metaTitleID) + { + + e107::js('footer-inline', ' + + $(window).on("load", function () { + + if(!$("#'.$metaTitleID.'").val()) + { + var title = $("#'.$titleID.'").val() + " | " + "'.SITENAME.'"; + var charlimit = $("#'.$metaTitleID.'").attr("data-char-count"); + + $("#'.$metaTitleID.'").attr("placeholder",title); + + if(title.length > charlimit) + { + $("#'.$metaTitleID.'").addClass("has-error"); + } + } + + }); + + + $("#'.$metaTitleID.'").on("ready focus", function() { + + var title = $("#'.$titleID.'").val() + " | " + "'.SITENAME.'"; + + if(!$(this).val()) + { + $(this).val(title); + } + else + { + $(this).attr("placeholder",title); + } + + }); + + + $("#'.$titleID.'").on("input change focus", function() + { + var title = $("#'.$titleID.'").val() + " | " + "'.SITENAME.'"; + $("#'.$metaTitleID.'").attr("placeholder",title); + + }); + + '); + + + } + + } diff --git a/e107_handlers/cache_handler.php b/e107_handlers/cache_handler.php index b72216e5d..1deb74a51 100644 --- a/e107_handlers/cache_handler.php +++ b/e107_handlers/cache_handler.php @@ -356,23 +356,26 @@ class ecache { { $path = null; - e107::getEvent()->trigger('cache_clear_all', ['type'=>$type,'mask'=>$mask]); + $event = e107::getEvent(); if($type =='content') { - $this->clear(); + $this->clear(); + $event->trigger('cache_clear_all', ['type'=>$type,'mask'=>$mask]); return; } if($type === 'system') { $this->clear_sys(); + $event->trigger('cache_clear_all', ['type'=>$type,'mask'=>$mask]); return; } if($type === 'browser') { e107::getConfig()->set('e_jslib_browser_cache', time())->save(false); + $event->trigger('cache_clear_all', ['type'=>$type,'mask'=>$mask]); return; } @@ -422,6 +425,8 @@ class ecache { unlink($path.$file); } } + + $event->trigger('cache_clear_all', ['type'=>$type,'mask'=>$mask]); } } diff --git a/e107_handlers/form_handler.php b/e107_handlers/form_handler.php index b04689fbc..3fc230e1a 100644 --- a/e107_handlers/form_handler.php +++ b/e107_handlers/form_handler.php @@ -4503,6 +4503,17 @@ var_dump($select_options);*/ public function columnSelector($columnsArray, $columnsDefault = array(), $id = 'column_options') { $columnsArray = array_filter($columnsArray); + + try + { + $tabs = e107::getAdminUI()->getController()->getTabs(); + } + catch (Exception $e) + { + // do something + } + + // navbar-header nav-header // navbar-header nav-header @@ -4527,10 +4538,21 @@ var_dump($select_options);*/ if (empty($fld['forced']) && empty($fld['nolist']) && $theType !== 'hidden' && $theType !== 'upload') { $checked = (in_array($key,$columnsDefault)) ? TRUE : FALSE; + $title = ''; + if(isset($fld['tab'])) + { + $tb = $fld['tab']; + if(!empty($tabs[$tb])) + { + $title = $tabs[$tb].": "; + } + } + $ttl = isset($fld['title']) ? defset($fld['title'], $fld['title']) : $key; + $title .= $ttl; $text .= " -