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

2346
Всем привет! Давненько ничего не писал, но с недавних пор взялся за изучение html и css. Допиливал время от времени шаблоны для своих проектов, но базовых знаний не хватало. Так, что советую всем, кто не обладает базовыми знаниями в кодинге, СЕО и прочих премудростях сайтостроения восполнить пробелы знаний. Когда начинаешь понимать не только чего ты хочешь добиться, но и как это сделать - и работа спорится и удовольствия от своих трудов больше.
Ну да ладно, хватит лирики... Мне самому для своих проектов, периодически, приходилось прятать глубиномер от чужих глаз. Чтобы закрыть некоторые разделы контента, которые могли быть найдены в списке разделов. Чтобы юзеры заходили в меню и видели то, что им положено видеть. И не больше.
По умолчанию страницы формируются с глубиномером (подчеркнут красным):

Чтобы убрать этот самый глубиномер, необходимо подправить файл theme-layout.css (район 310 строки):
Код PHP:
  1. #breadcrumbs { margin:-20px; margin-bottom: 20px; background:#ecf0f1; padding:0 10px; position: relative;}
дописываем правило display со значением none:
Код PHP:
  1. /#breadcrumbs { margin:-20px; margin-bottom: 20px; background:#ecf0f1; padding:0 10px; position: relative; display:none;}
Но это решение, как оказалось, не слишком нравится поисковикам. Посему, лучшим признано решение в файле main.tpl.php удалить строки отвечающие за вывод глубинометра:
Код PHP:
  1. <?php if ($this->isBreadcrumbs()){ ?>
  2. <div id="breadcrumbs">
  3. <?php $this->breadcrumbs(array('strip_last'=>false)); ?>
  4. </div>
  5. <?php } ?>
После этих нехитрых манипуляций получаем такую картинку:
Функционал легкой настройки полей профиля, закладок профиля, поиска по полям профиля, настройки полей профиля при регистрации
Комментарии (13)
Glaz 13 декабря 2015 в 12:50 0
Мне вот на форуме посоветовали так я просто закомментировал эти строчки и все. Да и вроде поисковики не очень любят display:none; ну по крайней мере так было. Поправьте меня если не прав. Я поэтому и спросил на форуме что бы убрать правильнее. Оказалось все просто.
Fuze 13 декабря 2015 в 12:53 +1
А можно просто убрать в 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 } ?>
Савонарола 13 декабря 2015 в 13:07 0
Если пост нарушает какие-либо правила, удалю без вопросов. Просто сам несколько раз сталкивался с этой проблемой и не всегда находил решение поиском. Но если надо удалить, то удалю. Писал пост не для дополнительных плюсов в карму.
Glaz 13 декабря 2015 в 13:29 0
Зачем же. Вы же потратили время и хотели сделать полезное. Может вам лучше поправить само решение? Пост то полезный хоть и простой.
Савонарола 13 декабря 2015 в 13:42 0
Поправил
Fuze 13 декабря 2015 в 15:31 0
Если пост нарушает какие-либо правила, удалю без вопросов
Пост ничего не нарушает, я как вариант предложил более простое, на мой взгляд, решение.
Савонарола 13 декабря 2015 в 17:20 0
Спасибо за подсказ, как раз ваш метод я и прописал как наилучший при редактировании. В дебри php я еще не лез, пока html и css осваиваю.
Старый балбес 13 декабря 2015 в 16:47 +1
Я как вариант
Fuze:
я как вариант предложил более простое, на мой взгляд, решение.
Если и убрать (по необходимым требованиям- представление выводимых данных в шаблоне), то рациональным будет и убирать считывание-и формирование этих данных до вывода в шаблон, На мой взгляд это правомерное и правильное решение.
Если не нужно выводить эти данные, то абсолютно правильно будет и не формировать эти данные.
Разработчик Icms может это решить файлом конфигурации, или настройками администратора.

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

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

Чтобы не забыть что правил, если захочу вернуть обратной. ;)
Савонарола 13 декабря 2015 в 20:28 0
тоже верно, можно и забыть где чего правилось в коде
HostelB 14 декабря 2015 в 00:53 -1
Вы меня конечно извините, но к чему этот пост? Давайте накатаем пост про то как из main.tpl.php меню навигации передвинуть в самый вверх шаблона...И всё сообщество изумится, как-же раньше никто не додумался...Или как поменять фон шаблона и зафиксировать его на месте...Пост я плюсанул, но, не в обиду автору - изучайте более глубокие темы. В блогах люди хотят видеть рабочие решения, а не правки стандартного шаблона.
letsgo 14 декабря 2015 в 01:11 -3
Согласен с вами, но у меня тоже был курьез 5 лет назад, когда только начинал. Я выложил в блоге запись, как фразу в <p> разместить под аватаром. Я помню Fuze изумленно писал, что в блогах надо бы посложнее решения размещать. И он был прав))) Но понял я это позже.
Савонарола 14 декабря 2015 в 06:38 0
Будет и готовое решение в виде бесплатного шаблона на базе дефолтного с новыми позициями. Структуру сделал, осталось стили допилить.