Улучшение speedbar для DLE (хлебные крошки)

Выведем ваш сайт в ТОП выдачи
Хочешь увидеть свой сайт в ТОПе выдачи поисковиков ещё при жизни?
Улучшение speedbar для DLE (хлебные крошки)

Возникла у меня необходимость вывести speedbar (хлебные крошки для сайта DataLife Engine) не в main.tpl а именно в fullstory.tpl (в полной новости), но при добавлении туда тега {speedbar} он не выводит местоположение (путь) пользователя, а показывает сам тег.

Решение простое: в корне сайта (пользуюсь Filezilla) в файле \engine\modules\main.php найдите вот такую строку:

echo $tpl->result['main'];

Ее можно найти почти в самом конце файла.

Для более комфортного поиска я пользуюсь Sublime Text, включить поиск в Саблайме можно сочетанием клавиш Ctrl+f. Можно использовать и Notepad++, кто как привык.

И выше данной строки добавить:

$tpl->result['main'] = str_ireplace("{full -speedbar}", $tpl->result['speedbar'], $tpl->result['main']);

Для вывода хлебных крошек в новости DLE используйте тег {full -speedbar}.

Теперь все заработает.

Внимание: уберите пробел в теге вывода и в самом коде!

Убираем текущее название новости в speedbar

Для того чтоб название вашей статьи не повторялось не дублировалось в хлебных крошках speedbar, нужно в /engine/engine.php заменить вот эту строчку:

if ($titl_e) $s_navigation .= " {$config['speedbar_separator']} " . $titl_e;

(У меня она была на 911 строке) Заменить на:

if($titl_e AND $dle_module!='showfull') $s_navigation .= ">" . $titl_e;

Замена h1 на title в хлебных крошках speedbar для dle

Многие Вебмастера (в том числе и я) делают разные заголовки для H1 и title, и правильно делают!

Изначально в Спидбаре в текущем местоположении выводится заголовок h1, для того чтоб заменить его вывод на Метатег title, нужно в том же /engine/engine.php найти:

if (($subaction != '' or $newsid != '') and $news_found) $titl_e = $metatags['title'];

(Примерно на 780 строке) и в место него вставить:

if (($subaction != '' or $newsid != '') and $news_found) $titl_e = !empty($metatags['header_title']) ? stripslashes($metatags['header_title']) : $metatags['title'];

Вот пожалуй и все, с тегом {speedbar} разобрались. Кстати, кавычки елочки можно поменять на любой другой спец.символ в админке. Настройка системы -> Новости -> Разделитель для модуля 'speedbar'. Все, пока!

Оптимизация

Вступившие в диалог 9

  1. Alex
    Alex (сказал) от 2017-02-15
    Проблему решил, не заметил в самом коде main.php убрать пробел в {full_-speedbar}
    1. Mr. EdЯn (ответил) от 2017-02-15
      Рад, что разобрались без моего участия ).
  2. Alex
    Alex (сказал) от 2017-02-15
    Не работает в dle 11.2, после правок в полной новости пишет сам тег {full-speedbar} Кеш чистил. В чем может быть проблема?
  3. Игорт
    Игорт (сказал) от 2016-11-28
    как сделать чтобы не title или h1 выводилось а допполе ? а то у меня и там и там всякие слова ненужные, а надо чтобы именно ключ выводился нужный )
    1. Mr. EdЯn (ответил) от 2016-11-29
      Ну и зачем тебе лишний переспам?
      Я не знаю как это сделать.
  4. Юрий
    Юрий (сказал) от 2016-10-12
    Обновите статью, что в версии dle 11 и выше нужно менять в файле: \engine\modules\main.php
    1. Mr. EdЯn (ответил) от 2016-10-12
      Спасибо! Обновил.
  5. Sergey
    Sergey (сказал) от 2016-03-08
    Вы яндекс рекомендации почитайте, что они пишут. h1 и title должны быть одинаковы, так робот лучше понимает семантику статьи или материала, лучше индексирует и ранжирует. И я думаю спорить со мной не надо, я апеллирую первоисточником)
    1. Mr. EdЯn (ответил) от 2016-03-08
      Не имелось в виду делать их полностью разными. Например основную ключевую фразу (слово) можно вывести и в h1 и в title, а менее важные разделить между этими заголовками, таким образом статья прекрасно сможет продвигаться по трём ключам ).
      Я обращался по этому поводу к Платону, вот его ответ:
      Да, можно.
      Каких-то подобных требований и ограничений у нас нет.

Оставить отзыв