Свой description для страниц топиков
Цель: создания своего description для страниц топиков.
1. Дополнительное поле при создание топика.
2. Счетчик символов при заполнение и валидация
3. Условие для страниц топиков
после, примерно 408 строке (в пределах класса) вставляем:
В файле: classes/actions/ActionTopic.class.php
после строки (145 строка)
вставляем:
после строки (244 строка)
вставляем:
после строки (380 строка)
вставляем:
В файле: templates/skin/synio/actions/ActionTopic/add.tpl
после:
вставить:
В файле: templates/language/russian.php
добавим:
после:
вставить:
В файле: classes/modules/topic/entity/Topic.entity.class.php
после строки (46 строка)
вставить:
В файле: classes/actions/ActionAjax.class.php
вместо строки (987 строка)
вставляем:
В файле: templates/skin/synio/header.tpl
вместо:
вставляем:
1. Дополнительное поле при создание топика.
2. Счетчик символов при заполнение и валидация
3. Условие для страниц топиков
1. Дополнительное поле при создание топика
В файле: classes/modules/topic/entity/Topic.entity.class.phpпосле, примерно 408 строке (в пределах класса) вставляем:
public function getAnonsContent() { $this->extractExtra(); if (isset($this->aExtra['anons_content'])) { $anonscontent=$this->aExtra['anons_content']; return $anonscontent; } return null; } public function setAnonsContent($data) { $this->extractExtra(); $this->aExtra['anons_content']=$data; $this->setExtra($this->aExtra); }
В файле: classes/actions/ActionTopic.class.php
после строки (145 строка)
$_REQUEST['topic_forbid_comment']=$oTopic->getForbidComment();
вставляем:
$_REQUEST['topic_anonscontent']=$oTopic->getAnonsContent();
после строки (244 строка)
$oTopic->setTitle(strip_tags(getRequest('topic_title')));
вставляем:
$oTopic->setAnonsContent(getRequest('topic_anonscontent'));
после строки (380 строка)
$oTopic->setTitle(strip_tags(getRequest('topic_title')));
вставляем:
$oTopic->setAnonsContent(getRequest('topic_anonscontent'));
В файле: templates/skin/synio/actions/ActionTopic/add.tpl
после:
<p><label for="topic_title">{$aLang.topic_create_title}:</label> <input type="text" id="topic_title" name="topic_title" value="{$_aRequest.topic_title}" class="input-text input-width-full" /> <small class="note">{$aLang.topic_create_title_notice}</small></p>
вставить:
<p><label for="topic_anonscontent">{$aLang.topic_create_anons}:</label> <small class="note">{$aLang.topic_create_anons_notice}</small> <textarea rows="4" id="topic_anonscontent" name="topic_anonscontent" class="input-text input-width-full js-wall-reply-parent-text">{$_aRequest.topic_anonscontent}</textarea> </p>
В файле: templates/language/russian.php
добавим:
'topic_create_anons' => 'Анонс', 'topic_create_anons_notice' => 'Краткое описание, рекламный текст, 140 символов, который побуждает к прочтению топика. Отображается при поиске в поисковых системах и при добавлении в социальные сети',
2. Счетчик символов при заполнение и валидация
В файле: templates/skin/synio/actions/ActionTopic/add.tplпосле:
<script type="text/javascript"> jQuery(document).ready(function($){ ls.blog.loadInfo($('#blog_id').val()); }); </script>
вставить:
{literal} <script type="text/javascript"> jQuery(document).ready(function($){ $("#topic_anonscontent").charCount({ allowed: 140, warning: 0 }); }); </script> {/literal}
В файле: classes/modules/topic/entity/Topic.entity.class.php
после строки (46 строка)
$this->aValidateRules[]=array('link_url','url','allowEmpty'=>false,'label'=>$this->Lang_Get('topic_link_create_url'),'on'=>array('link'));
вставить:
$this->aValidateRules[]=array('anonscontent','string','max'=>140,'min'=>100,'allowEmpty'=>false,'label'=>$this->Lang_Get('topic_create_anons'),'on'=>array('topic','link','photoset'));
В файле: classes/actions/ActionAjax.class.php
вместо строки (987 строка)
$oTopic->_Validate(array('topic_title','topic_text','topic_tags','topic_type'),false);
вставляем:
$oTopic->_Validate(array('topic_title','topic_anonscontent','topic_text','topic_tags','topic_type'),false);
3. Условие для страниц топиков
за решение третьего пункта спасибо AndreySuperstarВ файле: templates/skin/synio/header.tpl
вместо:
<meta name="description" content="{$sHtmlDescription}">
вставляем:
<meta name="description" content="{if !$oTopic}{$sHtmlDescription}{else}{$oTopic->getAnonsContent()}{/if}">
14 комментариев
Если бы можно было еще как-то переводить существующий рейтинг для того чтобы можно получить вот такую штуку
Рейтинг schema.org. У них там сделано на странице вот так:
В моем проекте я сомневаюсь, что пользователи будут заполнять это поле, поэтому предложил бы следующее решение.
1. Скрыть поле «анонс» для всех, кроме админа и сделать необязательным его заполнения (для того, чтобы иметь возможность самому его описывать и избавить пользователей от лишних действий).
2. Прописать в хедере, чтобы Анонс показывался, если он есть, в остальных случаях показывался description по умолчанию.
Что думаете, Bartol ?
п.с. возможно кто-то поможет реализовать 2ой пункт?
в общем-то из-за этого откатил все назад и купил seopremium )
строку
В топике об этом не написано.