Drupal

индекс
142,25

Полезные и интересные модули для Drupal 6.xx + Советы и трюки (Часть III)

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

Для тех, кто пропустил начало, вот ссылки на предыдущие обзоры: часть I и часть II
  • Autosave — автоматические сохранение ноды;
  • Better Formats — более гибкий функционал для форматов ввода, разграничение использования по рролям;
  • Compact forms — название говорит само за себя: компактные формы;
  • Context — не совсем уместно сравнивать с panels, но смысл в том же: управление и представление контента на страницах;
  • Email registration — регистрация на почтовый адрес, а не на ник ;
  • Embedded Media Field — удобная вставка изображений, аудио и видео;
  • Facebook Connect — Авторизация на сайте с помощью Facebook;
  • Features — с помощью этого модул можно создавать свои модули, для последующего использования на других сайтах (требуется Spaces);
  • Gravatar — Позволяет интегрировать в Drupal сервис Gravatar;
  • jwplayermodule — плеер от Longtail;
  • Login Destination — контролирует перемещение по страницам после авторизации;
  • Monthly Archive by Node Type — Архив записей, необходимая вещь для блога;
  • Node form columns — модуль позволяет разместить содержимое формы по колонкам;
  • Save Draft — позволяет сохранить запись как черновк;
  • Todolist — система управления заданиями и их распределениями на Ajax;
  • Twitter — позволяет отправлять сохранённую запись в твиттер;
  • Vertical tabs — изменяет внешний вид табов ноды на вертикальные;
  • Views accordion — Показ контента в виде аккордеона (JQuery accordion) при помощи Views;
  • Views attach — возможность прикрепить преставление к любому типу материалов
  • Views slideshow ddblock — создание слайдшоу при помощи Views;
  • Views slideshow imageflow — Галерея в виде слайдшоу;
  • Views slideshow slider — слайдер контента;
  • Views slideshow — Слайдшоу из любого типа материалов.

И по традиции, совет.

Показываем количество комментариев (если они есть, покажется их количество, если нет, то не покажется ничего, например, так сделано на Хабре)


/**
* Preprocessor for theme('comment_wrapper').
*/
function ВАША_ТЕМА_preprocess_comment_wrapper(&$vars) {
 $vars['hook'] = 'box';
 $vars['attr']['id'] = 'comments';
 $vars['attr']['class'] .= ' clear-block';
   
 if ($vars['content'] && $vars['node']->type != 'forum' && $vars['node']->comment_count != 0) {
  $vars['content'] = '<h2 class="box-title">'. t('Comments') .'</h2>'. $vars['content'];
 }
}


* This source code was highlighted with Source Code Highlighter.
+5
4 июня 2010, 17:37
43
EzS

комментарии (15)

0
stalkers #
Vertical tabs не заработал с версией jquery старше 1.2.6
+1
EzS #
Странно, у меня работает с 1.3.2
0
stalkers #
Возможно, мне стоит просто модуль обновить =) А возможно, дело еще и в используемом модуле Admin.
0
EzS #
И этот модуль я использую (Admin 6.x-1.0-beta3), в этой связке отличный интерфейс
+2
EzS #
Хочу отметить, что модуль Monthly Archive by Node Type и ему подобные не нужны, если вы используете Views (там уже есть архив, его надо просто включить).
+1
SkyCat #
Для комментариев можно сделать более гибкий вывод заголовка.

function phptemplate_comment_wrapper($content, $node) {
  static $node_type;
  if (isset($type)) $node_type = $type;
	if ($new = comment_num_new($node->nid)) {
		$new_comments = ', '.l(format_plural($new, '1 новый', '@count new'), 'node/'. $node->nid, array('fragment' => 'new'));
	}
	if ($content) {
		if ($node->type == 'yarcom_org') {
			if ($node->comment_count == 0) {
				return '<h4 id="comments">'. t('Отзывов пока нет').'</h4>
				<div class="com_desc">Вы можете высказать свое оригинальное мнение о данной организации.
Вы можете разместить на сайте отзыв, рецензию или статью о товарах или услугах компаний, которыми Вы пользовались.
Поставьте оценку качеству продукции или услуги.</div>' . $content;
			}
			else {
				return '<h4 id="comments">'. t('Отзывы о '. $node->title).' 
				<span class="comment_count">('.$node->comment_count.$new_comments.')</span> ↓</h4>' . $content;
			}
		}
		else {
			if ($node->comment_count == 0) {
				return '<h4 id="comments">'. t('Отзывов пока нет').'</h4>
				<div class="com_desc">Вы можете высказать свое оригинальное мнение о данном материале,
размещеннном на сайте.</div>' . $content;
			}
			else {
				return '<h4 id="comments">'. t('Отзывы о '. $node->title).' 
				<span class="comment_count">('.$node->comment_count.$new_comments.')</span> ↓</h4>' . $content;
			}
		}
	}
}

Этот код позволяет выводить не только количество комментариев, но и показывать новые комментарии (если есть). Если комментариев нет, то выводится другой текст. Также этот код позволяет выводить свои подписи к списку комментариев в зависимости от типа материала.
Я не программист и мое решение, вполне возможно, далеко от красоты и универсальности. Если кто-то сможет его улучшить, буду только рад.
0
brmn #
html лучше вынести в темплейт.
не хорошо мешать верску и код
0
SkyCat #
Знать бы еще, как это сделать в данном случае. ))
+1
brmn #
парсер лох, поэтому заберите файликом narod.ru/disk/21561196000/comment-template.txt.html
НЛО прилетело и опубликовало эту надпись здесь
0
EzS #
Когда пробовал модуль, делал галерею
0
cross #
Вот модуль Features. Очень сложный он, но по описанию позволяет делать серьезные вещи, можно ли о нем подробнее немного? :)
+1
EzS #
В двух словах: собираете какой-либо функционал из своих модулей, настроек, например, галерею (заголовок, cck-поле с мультизагрузкой, таксономией), делаете два представления: одно для показа категорий, второе для отображения категорий на странице с выбранной галереей, настраиваете показ вашей галереи. Теперь собранную вами галерею можно превратить в модуль с помощью Features: достаточно указать все зависимости вашего «модуля» и экспортировать.

Вкратце, но понятно для начала. Читайте документацию-)
0
cross #
Вот так система )) Не до конца конечно понимаю, но судя по всему очень удобна для разработки сайтов на потоке.
0
EzS #
Да, это удобно. Модуль только выглядит пугающе, на самом деле сложного ничего нет-)

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