Вывод текущей страницы в глубиномере текстом без ссылки

+20
2.66K
Сколько не видел сайтов — на всех текущая страница отображается текстом без ссылки. Да и вообще, ссылка на саму себя не есть гуд.
//здесь как обычно, ну вы знаете

Установка

//Код и номера строк из 1.10.3

1. Файл /core/classes/page.class.php, найти функцию:
  1. 207 /**
  2.  * Печатает глубиномер
  3.  * @param string $separator
  4.  */
  5. public function printPathway($separator='→'){
  6. //тут код
  7. }
и заменить её на:
  1. public function printPathway($separator='→'){
  2.  
  3. $inCore = cmsCore::getInstance();
  4. $inConf = cmsConfig::getInstance();
  5.  
  6. //Проверяем, на главной мы или нет
  7. if (($inCore->menuId()==1 && !$inConf->index_pw) || !$inConf->show_pw || !is_array($this->pathway)) { return false; }
  8.  
  9. $pathway = array();
  10. $items = sizeof($this->pathway)-1;
  11. foreach($this->pathway as $key => $value){
  12. if($key < $items){
  13. $pathway[] = '<a href="'.$this->pathway[$key]['link'].'" class="pathwaylink">'.$this->pathway[$key]['title'].'</a>';
  14. }elseif(!$inConf->short_pw){
  15. $pathway[] = $this->pathway[$key]['title'];
  16. }
  17. }
  18. if($pathway)echo '<div class="pathway">'.implode(' '.$separator.' ', $pathway).'</div>';
  19. }
На этом вы можете остановиться, если вам не нужна настройка этой функции.
Если нужна, то надо изменить в предыдущем коде строку:
  1. $pathway[] = $this->pathway[$key]['title'];
на:
  1. if($inConf->lasttxt_pw)$pathway[] = $this->pathway[$key]['title'];
  2. else $pathway[] = '<a href="'.$this->pathway[$key]['link'].'" class="pathwaylink">'.$this->pathway[$key]['title'].'</a>';

Реализуем настройку

2. Файл /admin/applets/config.php, после примерно!:
  1. 463 <tr>
  2. <td><strong><?php echo $_LANG['AD_PAGE_PATHWAY']; ?></strong></td>
  3. <td>
  4. <label><input name="short_pw" type="radio" value="0" <?php if (!$inConf->short_pw) { echo 'checked="checked"'; } ?>/><?php echo $_LANG['YES']; ?></label>
  5. <label><input name="short_pw" type="radio" value="1" <?php if ($inConf->short_pw) { echo 'checked="checked"'; } ?>/><?php echo $_LANG['NO']; ?></label>
  6. </td>
  7. </tr>
вставить:
  1. <tr>
  2. <td><strong>Выводить текущую страницу без ссылки:</strong></td>
  3. <td>
  4. <label><input name="lasttxt_pw" type="radio" value="1" <?php if ($inConf->lasttxt_pw) { echo 'checked="checked"'; } ?>/><?php echo $_LANG['YES']; ?></label>
  5. <label><input name="lasttxt_pw" type="radio" value="0" <?php if (!$inConf->lasttxt_pw) { echo 'checked="checked"'; } ?>/><?php echo $_LANG['NO']; ?></label>
  6. </td>
  7. </tr>
Почему я написал "примерно", потому что у вас может не быть ещё языковых переменных там, следовательно ориентируйтесь по input name="short_pw". И! возможно придётся поменять <?php echo $_LANG['YES']; ?>, <?php echo $_LANG['NO']; ?> на Да и Нет.

Продолжим...

3. В этом же файле находим нечто похожее (ибо менялось несколько раз в разных версиях) на:
  1. 69 $newCFG['short_pw'] = cmsCore::request('short_pw', 'int');
По аналогии с найденной строкой ниже вставляем (в моём случае):
  1. $newCFG['lasttxt_pw'] = cmsCore::request('lasttxt_pw', 'int');
На этом всё.

Пользуясь случаем, передаю привет! всем, кто меня знает хочу сказать letsgo, что если он переведёт оставшуюся часть стоимости скриптов за собственно их поддержку, то я смогу ему их тут же вернуть, ибо я отказываюсь от обязательств поддержки таким людям. После чего он сможет забрать свою надуманную претензию из арбитража полностью удовлетворённым.
+3
Олег Васильевич я Олег Васильевич я 9 лет назад #
Совсем недавно думал, если попросить lokanaft сделать такую фиксу, сделает бесплатно?
Почти мистика...
0
Def Def 9 лет назад #
а как сделать обрезку текста этого?) а то бывает название статьи большое и не помещается в нужное пространство по ширине(
0
lokanaft lokanaft 9 лет назад #
Строка:
Код PHP:
  1. $pathway[] = $this->pathway[$key]['title'];
Должна иметь такой вид:
Код PHP:
  1. $pathway[] = mb_substr($this->pathway[$key]['title'], 0, цифра_сколько_нужно_оставить_символов);
для этого.
+1
Clear Clear 9 лет назад #
Хорошее решение. Только я лично всегда отключаю в настройках сайта, "Показывать текущую страницу в глубиномере" поскольку считаю что она там ни к Чему, есть же заголовок сразу крупный, а так дубль текста выходит. Кто как думает ?
0
picaboo picaboo 9 лет назад #
столько усилий и все бесполезно. смысла отображать заголовок в глубинометре - нет. ни ссылкой, ни текстом, поскольку сразу за глубинометром в 99% случаев идет заголовок статьи. А уж тем более длинный заголовок резать глубинометром...
0
lokanaft lokanaft 9 лет назад #
У каждого своё мнение на этот счёт) Мне например, доставляет дискомфорт отсутствие последней крошки.
Вот, кстати, сразу же первый результ из "загуглил" в сниппете:
Последний элемент этой строки обычно не является ссылкой, а представляет собой простой текст – заголовок страницы, на которой посетитель находится в данный момент.
0
picaboo picaboo 9 лет назад #
Дискомфорта не будет если последним будет заголовок. просто все дело в том как расположены крошки в разметке страницы.
0
lokanaft lokanaft 9 лет назад #
Ну это уже надо прям подгонять дизайн, чтобы это было явно. Даже на этой странице это не явно.
0
picaboo picaboo 9 лет назад #
--Ну это уже надо прям подгонять дизайн, чтобы это было явно. Даже на этой странице это не явно. --
ну вот тебе и первая проблема - для человека это не нужная информация, так как он и так видит по заголовку где он и дублировать еще раз информацию в соседней строке - глупо. для поисковика же, вообще все выглядить как сурсы страницы, тоесть подряд по коду
Главная &#8594; Блоги &#8594; Лунный блог &#8594; Вывод текущей страницы в глубиномере текстом без ссылки Вывод текущей страницы в глубиномере текстом без ссылки
ты считаешь что это полезно для сео? или это для особо тупых юзеров которые сразу не поняли где они оказались, оказались. и им надо два раза повторить, повторить.
0
lokanaft lokanaft 9 лет назад #
Ну значит я особо, особо тупой юзер)
0
lezginka.ru lezginka.ru 9 лет назад #
picaboo , не согласен.
готет требует указать путь от главной страницы
0
picaboo picaboo 9 лет назад #
им лень парсер нормальный сделать, вот и требуют
0
lokanaft lokanaft 9 лет назад #
Вот видите, picaboo, не мне (особо, особо тупому юзеру) одному это нужно)
0
lezginka.ru lezginka.ru 9 лет назад #
+
lokanaft , а как сделать автора статьи "текстом" ?
+1
Clear Clear 9 лет назад #
в коде шаблона удалить код ссылки
Вместо
Код PHP:
  1. <a href="{profile_url login=$article.user_login}">{$article.author}</a>
Оставить только {$article.author}

А вообще не стоит спорить кому как надо, выводить последний пункт хлебных крошек. Лично я считаю что он ни к чему, ну а кто то иначе. В любом случае полезно для разбора
0
Clear Clear 9 лет назад #
в коде шаблона удалить код ссылки
Вместо
Код PHP:
  1. <a href="{profile_url login=$article.user_login}">{$article.author}</a>
Оставить только {$article.author}

А вообще не стоит спорить кому как надо, выводить последний пункт хлебных крошек. Лично я считаю что он ни к чему, ну а кто то иначе. В любом случае полезно для разбора

Еще от автора

Ajax подгрузка контента для двойки
Ну что, товарищи, сегодня вы своими руками сможете сделать ajax подгрузку записей контента.
AJAX подгрузка комментов для двойки
Как следует из названия, дополнение ограничивает полный вывод всех комментов записи и позволяет пользователю при необходимости посмотреть следующие.
ContentWatch - проверка уникальности добавляемого контента для icms2
Компонент позволяет проверять уникальность текста с помощью сервиса Content-Watch.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.