Recommended Posts

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вообще в нескольких местах, в т.ч.

apps\system\lib\sitebill_krascap.php

apps\system\lib\sitebill.php

в function get_breadcrumbs ( $items ) заменить символ / на свой

Но, надо иметь ввиду, что исправление здесь только до следующего обновления ядра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вообще

apps\system\lib\sitebill_krascap.php

apps\system\lib\sitebill.php

в function get_breadcrumbs ( $items ) заменить символ / на свой

Но, надо иметь ввиду, что исправление здесь только до следующего обновления ядра.

 

Выводится по-прежнему, кеш чистил в админке и в браузерах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

тогда конкретнее, где именно необходимо заменить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

подозреваю, что apps\system\lib\sitebill.php

$rs = implode(' / ', array_reverse($ra));

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если срочно, то пост выше. Но, правильнее, вариант переопределения в main.php. Тогда останется после обновления.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

чудес не бывает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не поверите, но ничего не изменилось. Как был наклонный слеш так и остался.

А что вы правили и что нужно чтобы появилось вместо слешей?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что вы правили и что нужно чтобы появилось вместо слешей?

Вместо слешей должны были появиться стрелки вправо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вместо слешей должны были появиться стрелки вправо.

Что правили для этого?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После $breadcrumbs=$this->getBreadcrumbs($params); есть такое

$this->template->assign('realty_breadcrumbs', explode(' → ', $breadcrumbs)); - здесь поставил стрелку вместо слеша

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Было бы неплохо , если при наведении курсора мыши на разделы между стрелками, например на Продажа - выпадало Аренда, или при наведении на Квартира выпадало Дом, Комната, Дача и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

После $breadcrumbs=$this->getBreadcrumbs($params); есть такое

$this->template->assign('realty_breadcrumbs', explode(' → ', $breadcrumbs)); - здесь поставил стрелку вместо слеша

В этой функции как раз идет разделение на составляющие. Explode - разделяет. Ищите по ключевому слову implode - тут нужно менять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Было бы неплохо , если при наведении курсора мыши на разделы между стрелками, например на Продажа - выпадало Аренда,

 

Вы имеете ввиду так? Тогда это уже не breadcrumbs, а полноценное меню получается.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так и не ответили на мой вопрос.

Если точнее то вот тут

/apps/system/lib/sitebill.php

    /**     * Get category breadcrumbs     * @param array $params     * @param array $category_structure     * @param string $url     * @return string     */    function get_category_breadcrumbs( $params, $category_structure, $url = '' ) {        $rs = '';                if ( !isset($params['topic_id']) || is_array($params['topic_id']) ) {            return $rs;        }        //foreach ( $category_structure['childs'][0] as $item_id => $catalog_id ) {        if($category_structure['catalog'][$params['topic_id']]['url']!=''){        	$ra[] = '<a href="'.rtrim($url,'/').'/'.$category_structure['catalog'][$params['topic_id']]['url'].'">'.$category_structure['catalog'][$params['topic_id']]['name'].'</a>';        }else{        	$ra[] = '<a href="'.rtrim($url,'/').'/topic'.$params['topic_id'].'.html">'.$category_structure['catalog'][$params['topic_id']]['name'].'</a>';        }                $parent_category_id = $category_structure['catalog'][$params['topic_id']]['parent_id'];        while ( $category_structure['catalog'][$parent_category_id]['parent_id'] != 0 ) {            if ( $j++ > 100 ) {                return;            }	        if($category_structure['catalog'][$parent_category_id]['url']!=''){	        	$ra[] = '<a href="'.rtrim($url,'/').'/'.$category_structure['catalog'][$parent_category_id]['url'].'">'.$category_structure['catalog'][$parent_category_id]['name'].'</a>';	        }else{	        	$ra[] = '<a href="'.rtrim($url,'/').'/topic'.$parent_category_id.'.html">'.$category_structure['catalog'][$parent_category_id]['name'].'</a>';	        }            $parent_category_id = $category_structure['catalog'][$parent_category_id]['parent_id'];        }        if ( $category_structure['catalog'][$parent_category_id]['name'] != '' ) {       	 	if($category_structure['catalog'][$parent_category_id]['url']!=''){	        	$ra[] = '<a href="'.rtrim($url,'/').'/'.$category_structure['catalog'][$parent_category_id]['url'].'">'.$category_structure['catalog'][$parent_category_id]['name'].'</a>';	        }else{	        	$ra[] = '<a href="'.rtrim($url,'/').'/topic'.$parent_category_id.'.html">'.$category_structure['catalog'][$parent_category_id]['name'].'</a>';	        }        }      	$ra[]='<a href="'.SITEBILL_MAIN_URL.'/">'.Multilanguage::_('L_HOME').'</a>';        $rs = implode(' / ', array_reverse($ra));        return $rs;    }

НО!

Если вы будете самостоятельно править этот файл, то работоспособность скрипта вам не гарантирую. И судя по вашим предыдущим постам, уже сломали что-то )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ок, спасибо, гребаный макбук пересохраняет изменяемый файл в другой кодировке, поэтому невольно ломается)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всё думал, что мне не нравилось в этой фичи, вроде всё работает.

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

Чисто имхо (и с идеологией bootstrap v.3):

Первый тэг <a> меняем на <li class="active">

все остальные тэги <а> просто оборачиваем в <li>.

Получаем как на картинке.

post-1927-0-66143700-1400968963_thumb.pn

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Постараемся в будущих версиях все крошки вынести в массив, чтобы можно было так с ними работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. Базовый файл /apps/system/lib/frontend/view/kvartira_view.php

2. Делаем /template/frontend/имя_шаблона/main/view/kvartira_view.php с содержимым

class Local_Kvartira_View extends Kvartira_View {}

3. В /template/frontend/realia/main/main.php

находим двоестрочия

require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/view/kvartira_view.php');
$kvartira_view = new Kvartira_View();
и заменяем их на
require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/frontend/view/kvartira_view.php');
require_once(SITEBILL_DOCUMENT_ROOT.'/template/frontend/'.$this->getConfigValue('theme').'/main/view/local_kvartira_view.php');
$kvartira_view = new Local_Kvartira_View();

 

4. Теперь мы имеем свой локальный обработчик просмотра карточки.

5. Из базового файла (п.1) тянем в свой файл (п.2) функцию 

protected function getBreadcrumbs($params){     require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/structure/structure_manager.php');     $Structure_Manager = new Structure_Manager();     $category_structure = $Structure_Manager->loadCategoryStructure();     return $this->get_category_breadcrumbs( $params, $category_structure, SITEBILL_MAIN_URL.'/' );}

6. И вот тут уже изголяемся. Можем придумать свой алгоритм ХК, можем использовать то, что есть.

Например

protected function getBreadcrumbs($params){     require_once(SITEBILL_DOCUMENT_ROOT.'/apps/system/lib/admin/structure/structure_manager.php');     $Structure_Manager = new Structure_Manager();     $category_structure = $Structure_Manager->loadCategoryStructure();     $bcstr=$this->get_category_breadcrumbs( $params, $category_structure, SITEBILL_MAIN_URL.'/' );$bcarray=explode(' / ', $bcstr);return implode('*', $bcarray);}

В результате ХК склеенные звездочкой. Не самый оптимальный путь, но довольно быстрый.

 

В целом, думаю, направление понятное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас