РЕШЕНО! Кастомные Хлебные крошки при редактирование материала

Главные вкладки

Аватар пользователя iNFerNo iNFerNo 8 сентября 2011 в 10:46

При просмотре нода имеет хлебные крошки вида - Главная/Каталог/Видео/Заголовок позиции в каталог

при редактирование : Главная/Заголовок ноды

но нужно - Главная/Каталог/Видео/Заголовок позиции в каталог/Заголовок ноды

возможно ли такое?

Комментарии

Аватар пользователя G.A. Vinogradov G.A. Vinogradov 8 сентября 2011 в 10:52

Я такое кодом делал. Если "Главная/Каталог/Видео/Заголовок позиции в каталог" сделано через Custom Breadcrumbs, то код небольшой получается. Надо?

Аватар пользователя G.A. Vinogradov G.A. Vinogradov 8 сентября 2011 в 11:06
<?php
function [your_module]_form_alter(&$form, &$form_state$form_id){
  if (
$form['#id'] == 'node-form' && $form['type']['#value'] == '[your_node_type]'){
    if (
$form['nid']['#value']) {
        
$node node_load($form['nid']['#value']);
        
$breadcrumb db_fetch_object(db_query("SELECT * FROM {custom_breadcrumb} WHERE bid = [your_custom_breadcrumb_id]" ));
        
$breadcrumb->breadcrumb_type 'node';
        
custom_breadcrumbs_set_breadcrumb($breadcrumb, array('node' => $node));
    }
  }
}
?>

Это конечно, можно считать "грязным хаком", но мне было некогда искать правильное решение.

Аватар пользователя iNFerNo iNFerNo 8 сентября 2011 в 11:20

в свой модуль в функцию формальтер нужно вставить это получается

if ($form['#id'] == 'node-form' && $form['type']['#value'] == '[link-to-catalog]'){
    if ($form['nid']['#value']) {
        $node = node_load($form['nid']['#value']);
        $breadcrumb = db_fetch_object(db_query("SELECT * FROM {custom_breadcrumb} WHERE bid = [29]" ));
        $breadcrumb->breadcrumb_type = 'node';
        custom_breadcrumbs_set_breadcrumb($breadcrumb, array('node' => $node));
    }
  }

если все верно, тогда что-то на странице редактирование материала Типа - link-to-catalog
крошки те же ... что и были без этого когда.

Аватар пользователя iNFerNo iNFerNo 8 сентября 2011 в 11:31

ай яй яй..................... точно!

и через "_" название типа материала.

Спасибо.

Пи.Эс.
а для таба модуля права доступа (node_access) можно тем же макаром сделать?

Аватар пользователя G.A. Vinogradov G.A. Vinogradov 8 сентября 2011 в 11:37

iNFerNo wrote:
Пи.Эс. а для таба модуля права доступа (node_access) можно тем же макаром сделать?

Если там есть форма, то определите id формы и действйте примерно тем же макаром.
Только там ноду придется делать по-другому:
$node = node_load(arg(1));

Аватар пользователя G.A. Vinogradov G.A. Vinogradov 8 сентября 2011 в 11:47

iNFerNo wrote:
Даже не так а для любого таба ноды конкретного типа можно решить вопрос с крошками?

Можно конечно Wink
Попробуйте так:

<?php
function [your_module]_init(){
    if (
arg(0) != 'node') return;
    
$node node_load(arg(1));
    if (
$node->type != '[your_node_type]' return;

    

// Breadcrumbs code here
}
?>
Аватар пользователя iNFerNo iNFerNo 8 сентября 2011 в 11:42

а такой вопрос может что посоветуете.

там в custom_breadcrumb можно использовать php и вывод крошек по пути

допустим есть путь /node/*/nodeaccess

можно ли эти крошки привязать для конкретного типа материала и сделать аналог того что выше?