К сожалению готовых решений для вывода просмотренных нод на drupal.org я не нашел, по этому на просторах интернета для Drupal 7 был найден модуль session_recent_nodes, который выводит из сессии пользователя последние просмотренные ноды. По-умолчанию в настройках блока можно выбрать тип материалов для отслеживания, количество выводимых нод и тип вывода - списком с заголовками либо превью ноды. Сразу хочется отметить, что превью лично у меня выводилось коряво, даже если найтроить отображение содержимого, по этому остановился на варианте списка.

Во вложении изначальный вариант модуля, который я нашел. 

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

Для исправления этого слегка исправим функцию session_recent_nodes_block_view

// Render as list of links.
    case 'title':
        $links = array();

        foreach ($recent_nodes as $data) {
		
			$node = node_load($data['nid']);
			
			$image = field_get_items('node', $node, 'field_image');
			
			$node_image_url = image_style_url('m150', $image['0']['uri']);
			
			$node_image = '<img src="'.$node_image_url.'" alt="'.$node->title.'"/>';
			
			$variable = '<div class="field-image">'.$node_image.'</div><div class="field-title"><span>'.$node->title.'</span></div>';

			$class = sprintf('recent-node-%d', $data['nid']);
			
			$links[] = $variable;
        };
		
		$content = implode($links);
		
    break;

Таким образом у нас выведется обработанный html код из двух блоков, с изображением ноды и с заголовком. По такому примеру можно добавить в вывод другие поля ноды.

Тэги

Добавить комментарий

Простой текст

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.