Убираем глубиномер

+12
3.1K
Всем привет! Давненько ничего не писал, но с недавних пор взялся за изучение html и css. Допиливал время от времени шаблоны для своих проектов, но базовых знаний не хватало. Так, что советую всем, кто не обладает базовыми знаниями в кодинге, СЕО и прочих премудростях сайтостроения восполнить пробелы знаний. Когда начинаешь понимать не только чего ты хочешь добиться, но и как это сделать — и работа спорится и удовольствия от своих трудов больше.
Ну да ладно, хватит лирики… Мне самому для своих проектов, периодически, приходилось прятать глубиномер от чужих глаз. Чтобы закрыть некоторые разделы контента, которые могли быть найдены в списке разделов. Чтобы юзеры заходили в меню и видели то, что им положено видеть. И не больше.
По умолчанию страницы формируются с глубиномером (подчеркнут красным):
Иллюстрация
Чтобы убрать этот самый глубиномер, необходимо подправить файл theme-layout.css (район 310 строки):
  1. #breadcrumbs { margin:-20px; margin-bottom: 20px; background:#ecf0f1; padding:0 10px; position: relative;}
дописываем правило display со значением none:
  1. /#breadcrumbs { margin:-20px; margin-bottom: 20px; background:#ecf0f1; padding:0 10px; position: relative; display:none;}
Но это решение, как оказалось, не слишком нравится поисковикам. Посему, лучшим признано решение в файле main.tpl.php удалить строки отвечающие за вывод глубинометра:
  1. <?php if ($this->isBreadcrumbs()){ ?>
  2. <div id="breadcrumbs">
  3. <?php $this->breadcrumbs(array('strip_last'=>false)); ?>
  4. </div>
  5. <?php } ?>
После этих нехитрых манипуляций получаем такую картинку:
Иллюстрация
0
Glaz Glaz 9 лет назад #
Мне вот на форуме посоветовали так я просто закомментировал эти строчки и все. Да и вроде поисковики не очень любят display:none; ну по крайней мере так было. Поправьте меня если не прав. Я поэтому и спросил на форуме что бы убрать правильнее. Оказалось все просто.
+1
Fuze Fuze 9 лет назад #
А можно просто убрать в main.tpl.php шаблона строки
Код HTML:
  1. <?php if ($this->isBreadcrumbs()){ ?>
  2. <div id="breadcrumbs">
  3. <?php $this->breadcrumbs(array('strip_last'=>false)); ?>
  4. </div>
  5. <?php } ?>
0
Савонарола Савонарола 9 лет назад #
Если пост нарушает какие-либо правила, удалю без вопросов. Просто сам несколько раз сталкивался с этой проблемой и не всегда находил решение поиском. Но если надо удалить, то удалю. Писал пост не для дополнительных плюсов в карму.
0
Glaz Glaz 9 лет назад #
Зачем же. Вы же потратили время и хотели сделать полезное. Может вам лучше поправить само решение? Пост то полезный хоть и простой.
0
Савонарола Савонарола 9 лет назад #
Поправил
0
Fuze Fuze 9 лет назад #
Если пост нарушает какие-либо правила, удалю без вопросов
Пост ничего не нарушает, я как вариант предложил более простое, на мой взгляд, решение.
0
Савонарола Савонарола 9 лет назад #
Спасибо за подсказ, как раз ваш метод я и прописал как наилучший при редактировании. В дебри php я еще не лез, пока html и css осваиваю.
+1
Старый балбес Старый балбес 9 лет назад #
Я как вариант
Fuze:
я как вариант предложил более простое, на мой взгляд, решение.
Если и убрать (по необходимым требованиям- представление выводимых данных в шаблоне), то рациональным будет и убирать считывание-и формирование этих данных до вывода в шаблон, На мой взгляд это правомерное и правильное решение.
Если не нужно выводить эти данные, то абсолютно правильно будет и не формировать эти данные.
Разработчик Icms может это решить файлом конфигурации, или настройками администратора.

Код PHP:
  1. public function breadcrumbs($options=array()){
  2. $config = cmsConfig::getInstance();
  3. [b] if($config->breadcrumbs){[/b]
  4. $default_options = array(
  5. 'home_url' => $config->host,
  6. 'strip_last' => true
  7. );
  8. $options = array_merge($default_options, $options);
  9. if ($this->breadcrumbs){
  10. if ($options['strip_last']){
  11. unset($this->breadcrumbs[sizeof($this->breadcrumbs)-1]);
  12. } else {
  13. $this->breadcrumbs[sizeof($this->breadcrumbs)-1]['is_last'] = true;
  14. }
  15. }
  16. $this->renderAsset('ui/breadcrumbs', array(
  17. 'breadcrumbs' => $this->breadcrumbs,
  18. 'options' => $options
  19. ));
  20. }
  21. }
+3
Денис Васильевич Денис Васильевич 9 лет назад #
Я бы так сделал:

Код PHP:
  1. <?php if ($this->isBreadcrumbs()){ ?>
Заменил на:
Код PHP:
  1. <?php
  2. /// 0 - откл. 1 - вкл.
  3. $glubinomer = 0;
  4. if ($glubinomer && $this->isBreadcrumbs()){ ?>

Чтобы не забыть что правил, если захочу вернуть обратной. ;)
0
Савонарола Савонарола 9 лет назад #
тоже верно, можно и забыть где чего правилось в коде
HostelB HostelB 9 лет назад #
Комментарий удален
-4
letsgo letsgo 9 лет назад #
Согласен с вами, но у меня тоже был курьез 5 лет назад, когда только начинал. Я выложил в блоге запись, как фразу в <p> разместить под аватаром. Я помню Fuze изумленно писал, что в блогах надо бы посложнее решения размещать. И он был прав))) Но понял я это позже.
0
Савонарола Савонарола 9 лет назад #
Будет и готовое решение в виде бесплатного шаблона на базе дефолтного с новыми позициями. Структуру сделал, осталось стили допилить.

Еще от автора

Функционал легкой настройки полей профиля, закладок профиля, поиска по полям профиля, настройки поле
Кроме новостного функционала обсуждал, с одним программером с фриланса, возможность реализации в инстанте функционала легкой настройки в админке полей
Компонент онлайн-газеты
Есть возможность привлечь для написания компонента онлайн-газеты толкового программера. Скидываемся на функционал.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.