+8

Название ссылок в меню отличное от названия страницы + тайтлы для ссылок в меню

valeriii-amiro-cms il y a 11 ans mis à jour par R@Me0 il y a 11 ans 2
Ссылки меню идут без тайтлов, что не есть хорошо, далее вступает противоречие между дизайном и СЕО, т.к. с точки зрения СЕО название страницы должно быть полным и соответственно длинным, а с точки зрения дизайна в меню названия ссылок должны быть короткими.

Технически решить эту проблемму не сложно, нужно просто добавить по 2 поля в таблицы пайдж, ньюз и т.д а также по 2 импута в админки для страниц, новостей и етс. , прописать в oTpl->parse названия этих столбцов, ну а дальше дело техники просто добавить нужные переменные в шаблоны.

Сейчас это все можно сделать с помощью "хака" например вот так http://www.amiro.ru/forum/ljubye-voprosy-ot-novichkov/nazvanija-stranic-i-nazvanie-ssylki?id_message=20429#m20429

или написал свой модуль используя все теже поля для картинок.

public function getDbHTML(){

      //$this->fillDB();

      $rows = '';

      $sql = "SELECT `name`,`img_menu_normal`,`script_link` FROM `cms_pages` WHERE `parent_id` = 20082";

      /**

       * @var AMI_DBRecordset

       */

       //echo "AAAAA".$this->aParams['active_script']."AAAAA";

      $oRS = AMI::getSingleton('db')->select($sql);

      foreach($oRS as $aRecord){

if(empty($aRecord['img_menu_normal'])){$aRecord['img_menu_normal']=$aRecord['name'];}

      if($this->aParams['active_script'] == $aRecord['script_link'])

      {

   

          $rows .= $this->oTpl->parse($this->tplBlock . ':item_act', $aRecord);

}else{ 

   $rows .= $this->oTpl->parse($this->tplBlock . ':item', $aRecord);

}

      }

      $res = $this->oTpl->parse($this->tplBlock . ':menu', array('rows' => $rows));

      return $res;

  }

и в теплее описать

<!--#set var="menu" value="##rows##"-->

<!--#set var="item" value="<a href="##script_link##" title="##name##">##img_menu_normal##</a><br />"-->

<!--#set var="item_act" value="<span>##img_menu_normal##</span><br />"-->

Одним словом сделать можно, но я вчера вставлял в сайт 17 страниц и если честно заколебался из админки всталять урлы а потом снимать галочку отображать в главном меню)).

Реализовать данную задачу не сложно, и как мне видится архи полезно, к томуже во многих ЦМС это реализовано, более того данная задача не вызовет дополнительной нагрузки на сервер и решение не требует доп зопросов к базе данных, в отличии от моего решения, через плагин который формирует запрос и тянет свой темплей.

Спасибо за внимание, надеюсь на плодотворное сотрудничество.

З.Ы. При открытом коде реализовать задачу время получаса, для человека работающего с кодом данного движка задача реализуется минут за 15 )), конечно т.к. код не открыт могут выплыть подводные камни, но на первый взгляд явных косяков быть не должно))

Залил сайт ни хостинг .. мой первый сайт на амиро ) можете меня поздравить). Объясню "мою" идею на примере ( мою в контексте вашей системы, на самом деле идее столет в обед и она используется во всех цмс которые умеют формировать меню)   и так сайт http://www.sprintplast.ru/ страница http://www.sprintplast.ru/about.html .. название страницы "Информация о нашей компании" а название ссылки "О компании" тайтл ссылки " Информация о компании ООО «СПРИНТ-ПЛАСТ» " . Надеюсь теперь понятно, что я имел ввиду.
Что в результате мы получили?
1. Не нарушение дизайна .. 
2. поисковики теперь знают, что на этой странице хранится информация о компании спринт пласт
3. Заголовок страницы имеет вменяемый человеческий вид.
Собственно все . спасибо за внимание.

Вообще то, в админке все реализовано, кроме разных названий страницы и h1.

Тайтл страницы задается на вкладке "Параметры и SEO"

Но это не проблема. Чтобы задавать h1 какой угодно, нужно просто в шаблоне вывода страниц (не помню сейчас как он точно называется), нужно убрать вывод ##name## в контент страницы. Тогда название пункта меню не будет выводиться как h1. Чем это хорошо? А тем, что сеошник может поставить тайтл h1 не в начало страницы.


К примеру вначале пойдет какая нибудь цитата, а потом уже идет h1.


По вашему методу, h1 всегда будет в начале контента, что не всегда хорошо и не всегда нужно. Например в каталоге. Сначала могут идти товары, а потом h1, а заголовок раздела может указываться в диве со стилем как у h1...


Да и вообще, Ваш вариант какой то геморный :)


PS. Хотя, может я как то не так Вас понял?

Вы имели в виду:

  1. название ссылки - это: <a....> \это название ссылки\ </a>?
  2. Тайтл - это <title>\а это тайтл\</title>?
  3. Название страницы - <h1>\тут название страницы\</h1>?

Все верно?