Smarty Forum Index Smarty
The discussions here are for Smarty, a template engine for the PHP programming language.

title and description generation

 
Post new topic   Reply to topic    Smarty Forum Index -> Language: Russian
View previous topic :: View next topic  
Author Message
tragic_audio
Smarty n00b


Joined: 27 Nov 2020
Posts: 3

PostPosted: Fri Nov 27, 2020 6:34 pm    Post subject: title and description generation Reply with quote

Привет сообщество!
Помогите советом. Уже всю голову сломал Very Happy
В целях SEO-оптимизации своего небольшого интернет-магазина на Smarty решил разобраться почему на страницах с товарами отсутствует тег title. С другими тегами тоже местами чехарда, но они хотя бы есть.
Структура сайта проста: категория-подкатегория-товар. На страницах с категориями и подкатегориями тег title есть.
Например у страницы с аккумуляторами https://alfataganrog.ru/catalog/istochniki-pitanija/akkumulyatornye-batarei
тег такой
Code:
<title>Аккумуляторные батареи / Источники питания / Альфа-Таганрог</title>

но у страницы с самим товарами этой категории и других тега нет.
Я стал копать. И сначала думал прописать что то в шаблоне header.tpl, но уже тогда стало понятно что нужно сформировать какое то условие генерации тега. Как это сделать я не знал, но был уверен, что такое условие уже где то есть. Так я нашел файл init.php в папке с движком smarty на сервере в этом файле, кроме всего прочего, есть такое код:
Code:
if (count($current_directory) == 1) {
   $current_directory = $current_directory[0];
   $title = $current_directory['name']." / ".$title;
   $description = $title;
   if ($page != ""){
      $page_html = $mysql->query("select * from `pages` where `url`='$page' and `directory`=".$current_directory['id']." and visible = 1");
      if (count($page_html) == 1) {
         $page_html = $page_html[0];
         $title = $page_html['name']." / ".$title;
         $description = $title;
         $current_page_index = -1;
         $find = 2;
         $smarty->assign("current_page_index",$current_page_index);
         $smarty->assign("page_html",$page_html);
      }
   }
   else{
      //выводим главную страницу
      $page_html = $mysql->query("select * from `pages` where `directory`=".$current_directory['id']." and main = 1 order by main asc,id");
      if (count($page_html) > 0) {
         $page_html = $page_html[0];
         $page = $page_html['url'];
         $title = $page_html['name']." / ".$title;
         $description = $title;
         $current_page_index = -1;
         $find = 2;
         $smarty->assign("current_page_index",$current_page_index);
         $smarty->assign("page_html",$page_html);
      }
      else{
         $page_html = $current_directory;
         $page = $directory;
         $current_page_index = -1;
         $find = 2;
         $smarty->assign("current_page_index",$current_page_index);
         $smarty->assign("page_html",$page_html);
      }
   }
}

в коде шаблона header.tpl так:
Code:
<title>{$title}</title>


Правильно ли я понимаю, что генерация тега title происходит благодаря коду в файле init.php? Если, да, то какое условие нужно дописать чтобы страницы с описанием товаров наконец его получили?

upd. нашел переменную которая содержит название товара: $products_info.name. Если ее захардкодить в header.tpl кодом
Code:
<title>{$products_info.name}</title>

то получаем то, что нужно, но тогда заголовки категорий и подкатегорий товаров по понятным причинам пропадают.
Back to top
View user's profile Send private message
AnrDaemon
Administrator


Joined: 03 Dec 2012
Posts: 1749

PostPosted: Fri Nov 27, 2020 8:58 pm    Post subject: Reply with quote

Правильно понимаете.
Но сама идея подобной генерации тайтла неверна.
Больше того, подобная организация каталога неверна.

Но ваша проблема решается не просто а очень просто.
Используйте модификатор |default

Code:
{$title|default:$products_info.name}
Back to top
View user's profile Send private message
tragic_audio
Smarty n00b


Joined: 27 Nov 2020
Posts: 3

PostPosted: Sat Nov 28, 2020 5:59 am    Post subject: Reply with quote

AnrDaemon wrote:
Правильно понимаете.
Но сама идея подобной генерации тайтла неверна.
Больше того, подобная организация каталога неверна.

Но ваша проблема решается не просто а очень просто.
Используйте модификатор |default

Code:
{$title|default:$products_info.name}

Я вставил ваш код в шаблон header.tpl но результата это не дало. Забыл уточнить что сайт использует устаревшую версию шаблонизатора 2.6.14.
Сайт разрабатывал не я, и было это очень давно поэтому понять логику неизвестного девелопера мне понять сложно.
Back to top
View user's profile Send private message
AnrDaemon
Administrator


Joined: 03 Dec 2012
Posts: 1749

PostPosted: Mon Nov 30, 2020 12:33 am    Post subject: Reply with quote

Обновите движок, какие проблемы?…
Back to top
View user's profile Send private message
tragic_audio
Smarty n00b


Joined: 27 Nov 2020
Posts: 3

PostPosted: Mon Nov 30, 2020 6:56 pm    Post subject: Reply with quote

AnrDaemon wrote:
Обновите движок, какие проблемы?…

пожалуй придется так и сделать
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Smarty Forum Index -> Language: Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Protected by Anti-Spam ACP