Форум русской поддержки Joomla!® CMS
09.12.2016, 23:26:03 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Нужно обернуть "Хлебные Крошки" в разметку

 (Прочитано 778 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Victor333
Давно я тут
****

Репутация: +1/-0
Offline Offline

Сообщений: 265



« : 25.10.2013, 09:26:41 »

Добрый вечер.
Как правильно обернуть этот код в разметку.

Код в php кусок из "Хлебных крошек". Помогите пожалуйста.

Код:
<div class="breadcrumbs<?php echo $moduleclass_sfx; ?>">
<?php if ($params->get('showHere', 1))
    {
        echo '<span class="showHere">' .JText::_('MOD_BREADCRUMBS_HERE').'</span>';
    }

    // Get rid of duplicated entries on trail including home page when using multilanguage
    for ($i = 0; $i < $count; $i ++)
    {
        if ($i == 1 && !empty($list***91;$i***93;->link) && !empty($list***91;$i-1***93;->link) && $list***91;$i***93;->link == $list***91;$i-1***93;->link)
        {
            unset($list***91;$i***93;);
        }
    }

    // Find last and penultimate items in breadcrumbs list
    end($list);
    $last_item_key = key($list);
    prev($list);
    $penult_item_key = key($list);

    // Generate the trail
    foreach ($list as $key=>$item) :
    // Make a link if not the last item in the breadcrumbs
    $show_last = $params->get('showLast', 1);
    if ($key != $last_item_key)
    {
        // Render all but last item - along with separator
        if (!empty($item->link))
        {
            echo '<a href="' . $item->link . '" class="pathway">' . $item->name . '</a>';
        }
        else
        {
            echo '<span>' . $item->name . '</span>';
        }

        if (($key != $penult_item_key) || $show_last)
        {
            echo ' '.$separator.' ';
        }

    }
    elseif ($show_last)
    {
        // Render last item if reqd.
        echo '<span>' . $item->name . '</span>';
    }
    endforeach; ?>
</div>

С низу примерно как должно быть

Код:
<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/" itemprop="url"><span itemprop="title">Первый</span></a></div> 
<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/" itemprop="url"><span itemprop="title">Второй</span></a></div> 
<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="/" itemprop="url"><span itemprop="title">Третий</span></a></div>
Записан
Arkadiy
Группа развития
*****

Репутация: +432/-0
Offline Offline

Пол: Мужской
Сообщений: 5317


Крепитесь, други.


« Ответ #1 : 25.10.2013, 09:35:00 »

Код:
<div class="breadcrumbs<?php echo $moduleclass_sfx; ?>">
<?php if ($params->get('showHere', 1))
    {
        echo '<span class="showHere">' .JText::_('MOD_BREADCRUMBS_HERE').'</span>';
    }

    // Get rid of duplicated entries on trail including home page when using multilanguage
    for ($i = 0; $i < $count; $i ++)
    {
        if ($i == 1 && !empty($list***91;$i***93;->link) && !empty($list***91;$i-1***93;->link) && $list***91;$i***93;->link == $list***91;$i-1***93;->link)
        {
            unset($list***91;$i***93;);
        }
    }

    // Find last and penultimate items in breadcrumbs list
    end($list);
    $last_item_key = key($list);
    prev($list);
    $penult_item_key = key($list);

    // Generate the trail
    foreach ($list as $key=>$item) :
    // Make a link if not the last item in the breadcrumbs
    $show_last = $params->get('showLast', 1);
    if ($key != $last_item_key)
    {
        // Render all but last item - along with separator
        if (!empty($item->link))
        {
            echo '<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="' . $item->link . '" ><span itemprop="title">' . $item->name . '</span></a></div> ';
        }
        else
        {
            echo '<span itemprop="title">' . $item->name . '</span>';
        }

        if (($key != $penult_item_key) || $show_last)
        {
            echo ' '.$separator.' ';
        }

    }
    elseif ($show_last)
    {
        // Render last item if reqd.
        echo '<span itemprop="title">' . $item->name . '</span>';
    }
    endforeach; ?>
</div>
Записан
Victor333
Давно я тут
****

Репутация: +1/-0
Offline Offline

Сообщений: 265



« Ответ #2 : 25.10.2013, 09:42:17 »

а itemprop="url ?
Записан
Victor333
Давно я тут
****

Репутация: +1/-0
Offline Offline

Сообщений: 265



« Ответ #3 : 25.10.2013, 09:53:50 »

Arkadiy
Сам добавил, вроде получилось! Спасибо вам, все заработало!

Код:
<a href="' . $item->link . '" itemprop="url"><span itemprop="title">' . $item->name . '</span></a>
Записан
Beer
Живу я здесь
******

Репутация: +41/-1
Offline Offline

Сообщений: 1050


БИРУ - БИР!


« Ответ #4 : 22.07.2015, 11:17:24 »

На последнем
Код:
// Render last item if reqd.
echo '<div class="hide" itemscope itemtype="http://data-vocabulary.org/Breadcrumb"><a href="' . $item->link . '" itemprop="url"><span class="hide" itemprop="title">' . $item->name . '</span></a></div>';
' . $item->link . ' не хочет выводиться - href="/"

Код:
<div class="hide" itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
  <a href="/" itemprop="url">
    <span class="hide" itemprop="title">Название материала</span>
  </a>
</div>

А гугль по стандарту требует:
url:   отсутствует (обязательное)

Как поправить?
Записан
ChaosHead
Профи
********

Репутация: +382/-10
Online Online

Пол: Мужской
Сообщений: 4397



« Ответ #5 : 22.07.2015, 13:17:28 »

Готовый модуль
http://extensions.joomla.org/extension/microbread

В настройках модуля есть выбор альтернативного макета: под bootstrap или под обычный HTML

Да и тут помню была тема, где я всё расписывал, в плоть до того, чтобы вывести ссылкой и последний текущий пункт крошек.
« Последнее редактирование: 22.07.2015, 13:20:59 от ChaosHead » Записан
Beer
Живу я здесь
******

Репутация: +41/-1
Offline Offline

Сообщений: 1050


БИРУ - БИР!


« Ответ #6 : 22.07.2015, 16:22:46 »

Что-то я подумал, что штатными средствами лучше обойтись, не привлекая сторонние плагины.
Записан
ChaosHead
Профи
********

Репутация: +382/-10
Online Online

Пол: Мужской
Сообщений: 4397



« Ответ #7 : 22.07.2015, 17:29:44 »

ну подсмотрите у них как сделано
Записан
Beer
Живу я здесь
******

Репутация: +41/-1
Offline Offline

Сообщений: 1050


БИРУ - БИР!


« Ответ #8 : 22.07.2015, 17:36:05 »

Вот с этим и проблема: Поставил модуль этот - MicroBread. В менеджере расширений его вижу - включен, а в менеджере модулей - его почему-то нет....
Записан
ChaosHead
Профи
********

Репутация: +382/-10
Online Online

Пол: Мужской
Сообщений: 4397



« Ответ #9 : 22.07.2015, 17:58:29 »

Создайте его в менеджере модулей и опубликуйте
Записан
Beer
Живу я здесь
******

Репутация: +41/-1
Offline Offline

Сообщений: 1050


БИРУ - БИР!


« Ответ #10 : 22.07.2015, 18:40:21 »

Вот я что-то тупанул..... сенкс за науку.

В принципе - он выводит точно так же как и штатный, допиленый здесь в теме. На последний пункт (открытый материал) он не ставит url, из-за чего Гугль говорит:
url:   отсутствует (обязательное)
Записан
ChaosHead
Профи
********

Репутация: +382/-10
Online Online

Пол: Мужской
Сообщений: 4397



« Ответ #11 : 22.07.2015, 20:39:00 »

Получи url текущей страницы, сделай ссылкой по аналогии с другими пунктами.
Записан
Beer
Живу я здесь
******

Репутация: +41/-1
Offline Offline

Сообщений: 1050


БИРУ - БИР!


« Ответ #12 : 22.07.2015, 20:58:46 »

Аналогия не срабатывает:
Код:
<a href="' . $item->link . '" itemprop="url">
В этом пункте выдает
Код:
<a href="/" itemprop="url">

Моих познаний больше не хватает...
Записан
ChaosHead
Профи
********

Репутация: +382/-10
Online Online

Пол: Мужской
Сообщений: 4397



« Ответ #13 : 22.07.2015, 22:15:10 »

Ссылку на текущую страницу можете получить как $_SERVER['REQUEST_URI']
т.е. $item->link замените на $_SERVER['REQUEST_URI']
Записан
Beer
Живу я здесь
******

Репутация: +41/-1
Offline Offline

Сообщений: 1050


БИРУ - БИР!


« Ответ #14 : 22.07.2015, 22:57:48 »

Ведь заработало!
Осталось только малеха причесать вывод.
Спасибо тебе большое ГОЛОВА!
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet