Hello world))
Нашел пост о интересном методе внутренне перелинковке, читать здесь.
Суть метода
[#]Под текстом каждой статьи на своих и клиентских сайтах я делаю список из 5-ти ранее опубликованных статей из рубрики. Замечу, что многие делают подобные списки, но зачастую в них ссылки на последние статьи. Я же линкую именно предыдущие, грубо говоря если у текущей статьи ID = 10, то в списке предыдущих будут статьи с ID 9,8,7,6,5. Каждая статья получает минимум 4 вечных внутренних ссылки.
[/#]
Подскажите как это реализовать на Drupal?
Комментарии
views?
Взблевнул
пить меньше надо
Как-то искал подобный модуль, и не нашёл, потому что все, что ни попадались, понимали перелинковку как преобразование заданных слов в ссылки.
В итоге под статьёй сделал ссылки на все статьи (их было немного), просто добавив дополнительное меню. Мне кажется, это было удачное решение, и без лишнего модуля обошлось, и быстро, и просто.
Но, если найдётся модуль, добавляющий ссылки под статьями, буду признателен.
Заказывал себе подобный модуль.
Создает блок со ссылками на предыдущие и последующие ноды определенных типов материалов. Как работает можно посмотреть здесь http://irkutskmemorial.ru/kirovskii-raion/ul-chehova-23 там внизу под нодой блок с четырьмя ссылками-картинками, одна на следующую, одна на текущую и 2 на предыдущие ноды. Что конкретно выводится (картинки ли или заголовки или еще что) настраивается через tpl файл.
Если кому будет интересен модуль, поделюсь.
Во вложение скрин настроек блока.
Здравствуйте.
А как вы делаете перелинковку в тексте на другие страницы? Это ручная обработка текста или с помощью какого либо модуля?
Когда-то разбирался с модулями перелинковки в Друпал - Модули Друпал. Похожие материалы.
Обычно привык делать с помощью http://drupal.org/project/relevant_content.
Но вот задумался что не всегда действительно правильно делать "похожие материалы" динамическими по общим тегам, в некоторых случаях логично к примеру просто предыдущие... надо обдумать.
Даже так скажу, для вывода товара желательно, чтобы выводились разные варианты (как новые товары, так и что-то из старого), а вот со статьями возможно логичнее действительно постоянные ссылки...
обычно выводят "похожие материалы" а не тупо последние 5
я вывожу похожие (пример: http://www.hr-portal.ru/article/obzor-rynka-truda-pozitsii-yurist-moskva) . А где вывести, ниже, выше - вопросы темизации вообще то
Да, похожие материалы, но из последних пяти, а тут как бы смысл, чтобы выводить не последние пять по нужной тематике, а близкие по ID материалы соответствующей тематики, т.е. ссылки будут статичными, что вообщем-то "мае сенс".
Очень интересно, поделись.
Во вложении
Подскажите настройки?
Делал во views, просто блок "похожие записи", там они просто по таксономии отбирались, а как сделать такую логику?
Задам этот вопрос гуру views, как сделать такую логику?
Конечно же вручную, машина сама никак не поймет где вы хотите поставить ссылку.
модуль Alinks
А просто блок + немного php?
Наипростейщий запрос к базе и темизация по вкусу в одном флаконе, можно справится за 5-10 строчек кода.
А может есть пара минут написать этот запрос для блока? Без темизации, естественно)
Дело в том что я не только не знаю названия ваших типов материалов, а следовательно и имена таблиц БД, но так же и не знаю по какому термину или полю фильтровать похожие, так что считаю просьбу невыполнимой.
А возможно написать в запросе "таблица_нужный_тип_материала"? Также и с термином? Или в каждом конкретном случае индивидуально?
сильно много будет подобных величин, но вечером попробую скопировать свой код.
Да, на основании чего-то будет гораздо проще переделать под себя, чем писать с нуля, особенно, если ни разу не писал под Drupal
<?php
$similar_sql = sprintf('SELECT node.nid as nid, node.created AS date FROM node node
LEFT JOIN term_node tnode on tnode.vid = node.vid
LEFT JOIN term_node tnode2 on tnode2.vid = node.vid
WHERE node.created < %s AND
tnode.tid = %s AND
tnode2.tid = %s AND
node.language = "ru" AND node.status <> 0
ORDER BY date DESC LIMIT 0,5;',$node->created, $node->field_propertytype[0]['value'], $node->field_cityloc[1]['value']);
?>
Вот мой код..
Запрос к БД, возвращающий 5 нод с датой создания меньше текущей и с одинаковыми терминами таксономии, упорядоченный от более нового к более старому.
Спасибо! Сейчас попробую.
Попробовал - не получилось))) Что именно изменять на свое, можете подсказать?
Что именно "не получилось" и где вы это вставляли в чистой виде? о_О
Эх ладно...
Вот код, поместите его в шаблон ноды вашего типа материала в самый конец.
Теперь у нас есть переменная $node с которой можно работать...
<?php
$similar_sql = sprintf('SELECT node.nid as nid, node.created AS date FROM node node
LEFT JOIN term_node tnode on tnode.vid = node.vid
LEFT JOIN term_node tnode2 on tnode2.vid = node.vid
WHERE node.created < %s AND
tnode.tid = %s AND
tnode2.tid = %s AND
node.language = "ru" AND node.status <> 0
ORDER BY date DESC LIMIT 0,5;'
,$node->created, $node->field_propertytype[0]['value'], $node->field_cityloc[1]['value']); //здесь меняем поля $node->field_propertytype[0]['value'] и $node->field_cityloc[1]['value'] на
//название ваших полей с терминами таксономии, если без них то запрос будет выглядеть так: $similar_sql = sprintf('SELECT node.nid as nid, node.created AS date FROM node node
WHERE node.created < %s AND
node.language = "ru" AND node.status <> 0
ORDER BY date DESC LIMIT 0,5;'
,$node->created); //Для начала можете попробовать такой запрос
//Далее осуществляем сам запрос:
$result = db_query($similar_sql); //И теперь выводим результат: if ($result->num_rows > 0) {print ('<p><h3>похожие объекты</h3><div>');
while ($data = db_fetch_object($result)) {
$snode = node_load($data->nid);
print node_view($snode,true);
}
print '</div></p>';
}
?>
Мучался-мучался... ничего не получилось. На Нулледе подсказали другое решение проблемы. Может кому поможет. http://www.nulled.cc/threads/229878/