Стена для заметок

2011/10/15

DrupalКак вывести любой блок в любом месте (D7-8)

$block = module_invoke('имя_модуля', название_хука, delta);

название_хука — (в отличие от D6, где мы бы написали 'block', 'view'), теперь делается проще Широкая улыбка : 'block_view'

Вывести пользовательский блок

Т.е. чтобы вывести пользовательский блок под номером 1, делаем так:


$block = module_invoke('block', 'block_view', '1');
print $block['content'];
?>

Вывести блок предоставленный модулем

Если же блок конкретного модуля всего один, то дельту можно вообще не указывать. На примере ниже показано, как вывести блок поиска в drupal 7:


$block = module_invoke('search', 'block_view');
print render($block['content']);
?>

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

Вывести блок из views

Ну, тут, тоже все просто и по тому же принципу: module_invoke('имя_модуля', название_хука, delta).

Например, выводим блок из представления (т.е. views) с названием 'comments_recent':

$block = module_invoke('views', 'block_view', 'comments_recent-block');
print render($block['content']);

2011/10/15

DrupalКак вывести любой блок в любом месте (D6)

С помощью следующего сниппета, можно вывести любой блок в любое место или шаблон.


$block = module_invoke('имя_модуль', хук, $op, delta);
print $block['content'];
?>

хук = 'block'
$op = edit, view, alter
delta или id (номер блока)

2011/10/11

DrupalDebug — функция отладки в ядре drupal 7 и 8

В drupal 7 есть уже встроенная функция debug, используемая для вывода отладочной информации. Её можно использовать, как в файлах модуля и так и темы.

Например, вставим в шаблон node.tpl.php такую строку:

debug($content['links']['comment']); ?>

И получим следующее:

debug output

В друпал 6 в ядре функции отладки нет, поэтому там стандартно В Drupal 6.

2011/10/8

DrupalBUEditor кнопки «Отменить» и «Вернуть»

Для того, чтобы пользоваться кнопками «Отменить» (Undo) и «Вернуть» (Redo), вам нужно выполнить следующее:

  1. Добавит скрипт:
    %BUEDITOR/library/bue.history.js
  2. И добавить 2 кнопки в ваш редактор:
    1. Кнопка «Отменить»: js: E.undo();
    2. Кнопка «Вернуть»: js: E.redo();

И все дела Подмигивание

2011/10/8

DrupalBUEditor автовставка элемента списка (LI)

У моего любимого BUEditor'а так же есть и такая особенность, как авто-вставка <li>. Достаточно лишь поставить курсор после закрывающего , нажать Enter и вы получите новую пару… совершенно бесплатно. Широкая улыбка

Чтобы активировать эту фичу, добавьте к файлам вашего редактора этот скрипт:

%BUEDITOR/library/bue.li.js

Кстати можете попробовать, если еще не пробовали, анонимусам это так же доступно.

2011/10/8

DrupalАвтозакрытие тегов в BUEditor

Для того чтобы добавить в bueditor функционал авто-вставки закрывающего тега, нужно сделать лишь одну вещь, а именно — добавить скрипт bue.autocomplete.js в ваш сет редактора. Для этого нажмите отредактировать редактор и в поле Пути редактора -→ Файлы расширений добавить нижеследующее:

%BUEDITOR/library/bue.autocomplete.js

И тогда после ввода любого тега будет вставляться его закрывающий тег.

2011/05/26

DrupalИзменить язык всех материалов на сайте

Меняем язык всех материалов на нужный или нейтральный.

Меняем с английского на русский язык:

UPDATE `node` SET `language` = 'ru' WHERE `node`.`language` = 'en' LIMIT 100 ;

Или например делаем материалы нейтральными по отношению к языку вместо принадлежности их к русскому языку:

UPDATE `node` SET `language` = '' WHERE `node`.`language` = 'ru' LIMIT 100 ;

2011/03/30

DrupalКак удалить лишние строки из таблицы `locales_source`

Строки для перевода прописываются в таблице `locales_source` для каждого модуля, но если модуль(и) удалены, ничего от туда не удаляется, т.е. табличка только разбухает, т.о. процент переведенного все меньше и меньше… хотя и все, что можно, переведено.

Чтобы почистить, делаем запрос в базу данных, для «название_модуля»:

SELECT *
FROM `locales_source`
WHERE `location` LIKE '%название_модуля%'

Так как строки для перевода имею связь с адресами страниц и, как правило, в путях админки присутствует название модуля, то по этому названию вы найдете лишние строки.

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

SELECT *
FROM `locales_source`
WHERE `location` LIKE '%слово1%слово2%'

2010/07/22

DrupalОпубликовать или снять с публикации все комментарии

Опубликовать все комментарии

UPDATE `comments` SET `status` = '0';

Снять с публикации все комментарии

UPDATE `comments` SET `status` = '1';

2010/05/25

DrupalКомманды для запуска хрона

Одну из следующих команд можно использовать для запуска cron через свой файл my-cron.sh Улыбка

в зависимости от того, где wget или curl:

/usr/bin/wget -O - -q -t 1 http://ваш-сайт.ру/cron.php > /dev/null 2>&1
wget -O - -q -t 1 http://ваш-сайт.ру/cron.php > /dev/null 2>&1 :)
/usr/bin/curl --silent --compressed http://ваш-сайт.ру/cron.php

для запуска cron через php нужно указывать полный путь до cron.ph:

/usr/bin/php /home/user/var/ваш-сайт.ру/cron.php >/dev/null 2>&1

Комментарии