Сниппеты

Небольшой код, который облегчает жизнь

Drupal: Как программно добавить к ноде картинку

Пример добавления к ноде 123 картинки path/to/file/example.jpg (после добавления она будет доступна по адресу sites/default/files/images/example.jpg):

Drupal: Как добавить контент в ноду перед её выводом

Для модулей:

/**
* Implements of hook_node_view().
*/
function MODULENAME_node_view($node, $view_mode, $langcode) {
if ($view_mode == 'full') {
$node->content['mycontent'] = array(
'#markup' => 'My node content',
'#weight' => 10,
);
}
}

подробнее

Drupal: Запретить пользователям добавлять одинаковые комментарии

Бывает что из-за плохой связи или медленной работы сайта, пользователи жмут на кнопку добавления комментария по несколько раз, что приводит к дублям сообщений. Решается это просто:

user relationships add/remove friend link in user profile node

При использовании модуля content_profile и user_relationships вы модифицируете шаблон user-profile.tpl.php, например в моём случае → у меня все профили - ноды. Код ниже позволит вам вывести ссылку Добавить/Удалить друга в ноде.

User last seen date

Отображение даты последнего "входа" на сайт пользователем.

<?php

$u = user_load($uid);

print floor((time() - $u->access) / 86400);

// will display 1 day ago

?>

printing guestbook module on user-profile.tpl.php

        <?php

                if (module_exists('guestbook')) {

                        if(!$account->guestbook_status){

                print '

Стена

';

        print guestbook_page($account, $op = NULL, $op_id = NULL, $page = TRUE);

                        }

                }

        ?>

Drupal: Как навесить на одну из форм свой обработчик (submit callback)

/**
* Реализация hook_form_FORM_ID_alter()
*/
function mymodule_form_[FORM_ID]_alter(&$form, $form_state) {
// добавить свой обработчик ПОСЛЕ основного
$form['#submit'][] = 'mymodule_mysubmit';
 
// добавить свой обработчик ПЕРЕД основным
array_unshift($form['#submit'], 'mymodule_mysubmit');
 
// добавить свой обработчик ВМЕСТО основного
$key = array_search('[FORM_ID]_submit', $form[

userpoints. Показываем счетчик баллов на странице профиля (Content_profile)

Если у вас возникла необходимасть в отображении количества баллов на странице профиля пользователя, то это можно сделать следующим образом:

<?php

print userpoints_get_current_points($node->uid);

?>

privatemsg - my messages (x) link in node-custom.tpl.php

Используя функцию privatemsg_title_callback() мы можем вывести счетчик новых сообщений рядом с ссылкой - My Messages.

print l(privatemsg_title_callback(), 'messages');

вывод комментариев и формы комментирования в любом месте

Данный сниппет позволяет хранить форму комментирования и сами комментарии в переменных, которые в дальнейшем можно вывести, например, в page.tpl.php:

RSS-материал