Опубликовал Максим Баев, 13 октября 2016, 14:53
Заставить работать какую-либо вьюху с ajax не сложно. Достаточно зайти в настройки и установить параметр Use Ajax: Yes.
К сожалению, модуль Views не предоставляет JS API для программного обновления этой вьюхи. Поэтому, пишем свою функцию (комментарии в коде):
function refreshView(view_id, display_id) {
var instances = Drupal.views.instances,...
Опубликовал Максим Баев, 30 сентября 2016, 13:55
Снипет для аттача изображения к ноде.
<?php
// Загружаем изображение в публичную папку.
$file_path = file_save_data(file_get_contents('/my_local_path/img1.jpg'), 'public://remote_name.jpg');
// Дальше нам нужно создать entity wrapper. Делаем это для существующей ноды с nid=3.
$wrapper = entity_metadata_wrapper('node',...
Опубликовал Максим Баев, 24 мая 2016, 13:24
В Drupal'е очень легко авторизовать пользователя. Для этого нужно знать всего лишь User ID.
<?php
$uid = 1;
$account['uid'] = $uid;
user_login_submit(array(), $account);
После авторизации таким способом, пользователь будет перенаправлен на страницу пользователя. Иногда этого делать на надо, тогда можно авторизовать более...
Опубликовал Максим Баев, 23 мая 2016, 12:13
Для того, чтобы программно отправить сообщение из Drupal, нужно использовать 2 функции, одна из которых - hook_mail().
Итак, простое тестовое сообщение.
<?php
function example_callback() {
$to = 'mail@example.com';
$key = 'example_email';
$params = array(
'body' => t('Test message')
);
drupal_mail(...
Опубликовал Максим Баев, 20 мая 2016, 12:43
По умолчанию, в Drupal'е есть несколько дисплеев для нод: teaser, full, default, rss,...
Создать дополнительный тип отображения нод очень просто:
<?php
/**
* Implements hook_entity_info_alter().
*/
function EXAMPLE_entity_info_alter(&$entity_info) {
$entity_info['node']['view modes']['some_new_display'] = array(...