Попросисли меня изменить титл в WebAsyst. Как не странно там у информационных страниц заголовок является и названием пункта меню и значением title. Несколько не продуманно на мой взгляд, для seo я бы даже сказал это серьезная проблема, ключевики задавать можно, описание можно а title нет. Вот эту проблему мне и понадобилось решить, добавить в админке поле title чтоб его можно было задавать прямо на странице редактирования.
C WebAsyst я работал первый раз и не особо зная как что там работает я решил не добавлять новое поле а взять одно из сободных и на данном сайте неиспользуемых полей. Этим поле стало английское название страницы.
Самое сложное не забить туда title, а сделать вывод из данного поля информации в title. По скольку как там что работает для меня остается практически догадкой то менять title будем в самом шаблоне в файле head.html.
Менять будем по средством php, вставить php стандратным способом у нас не выйдет, но есть неплохая возможность вставить php спец тегами.
Для того чтоб движок начал обрабатывать php в шаблоне нам необходимо включить функцию которая по умолчанию отключена, для этого меняем в файле published/SC/html/scripts/classes/class.viewsc.php значение переменной c:
$this->security_settings['PHP_TAGS'] = false;
на
$this->security_settings['PHP_TAGS'] = true;
После этого движок начинает обрабатывать заключенное в спец символы php прямо в шаблоне. И так открываем файл шаблона для редактирования - published/publicdata/ваша_папка/attachments/SC/themes/ваша_тема/head.html
Под словом "ваша_папка" я имел ввиду папку которая лежит у вас в publicdata у меня там одна, так что думаю не ошибетесь или же методом тыка найдете ее.
Данные таких статичных страниц находятся в mysql таблице aux_page_name_ru следовательно оттуда нам их и надо вывести. Пишем небольшой скрипт и заменяем стандартный тег <title> этим скриптом, чтоб было понятней показываю ниже.
Было:
<title>{$page_title|default:$smarty.const.CONF_DEFAULT_TITLE|escape:'html'}</title>
Стало:
<title>
{php}
$x =$_SERVER['REDIRECT_URL'];
$x = str_replace("/", "", $x);
$table= mysql_query("SELECT aux_page_name_ru, aux_page_name_en FROM SC_aux_pages WHERE aux_page_slug='$x'") or die(mysql_error());
$row1 = mysql_fetch_array($table, MYSQL_BOTH);
if ($row1[aux_page_name_en]==''){
{/php}
{$page_title|default:$smarty.const.CONF_DEFAULT_TITLE|escape:'html'}
{php}
}
else{
echo $row1[aux_page_name_en];
}
{/php}</title>
Идем в админку забиваем в поле английского название требуемый title, и наслаждаемся.
Вот вроде бы и все,тестим проверяем как работает, вносим свои замечания. На этом этапе можно сказать что для поиска мы стали более милы.