Опубликовано VladSavitsky
Задача: 

Некоторые модули некорректно работают с PHP 5.3. Многие хостеры имеют PHP 5.2 и для разработки нужно иметь среду близкую к серверной, поэтому нужно откатить обновление пакета php и всех с ним связанных

Сделайте бекап файла php.ini (в /etc/php5)

Создать выполняемый файл:

# remove all php packge
sudo aptitude purge `dpkg -l | grep php| awk '{print $2}' |tr "\n" " "`
# use karmiс for php pakage
# pin-params:  a (archive), c (components), v (version), o (origin) and l (label).
echo -e "Package: php5\nPin: release a=karmic\nPin-Priority: 991\n"  | sudo tee /etc/apt/preferences.d/php > /dev/null
apt-cache search php5-|grep php5-|awk '{print "Package:", $1,"\nPin: release a=karmic\nPin-Priority: 991\n"}'|sudo tee -a /etc/apt/preferences.d/php > /dev/null

Читать дальше...
Авторы решений:
Темы:
Версия Drupal:
| Добавить комментарий
Опубликовано VladSavitsky
Задача: 

Нужно создать программно CCK-поле. Например, может потребоваться создать CCK-поле из hook_update_N.

Решение:
В отличии от предыдущих версий ССК в версии под 6ку манипулирование полями из кода стало проще.

  • Сначала нужно создать поле с помощью пользовательского интерфейса CCK
  • Далее нужно использовать PHP-функцию var_export(), чтобы получить дамп поля ноды в виде массива:
    var_export(content_fields('field_ИМЯ_ПОЛЯ', 'ТИП_КОНТЕНТА'));

    См. API: http://drupalcontrib.org/api/function/content_fields

Вы получите большой массив, который вы можете скопировать в ваш код и использовать примерно так:

 

Читать дальше...
Авторы решений:
Темы:
Версия Drupal:
Модули:
| Добавить комментарий
Опубликовано VladSavitsky
Задача: 

Нужно отключить тело ноды (Body), чтобы оно не показывалось ни на форме, ни при просмотре ноды.

Решение

  • Открыть Content Types
  • Выбрать нужный тип контента и открыть
  • Найти филдсет Submission Form и просто очистить поле "Body Field Label"
  • Сохранить и проверить

Ни на форме создания, ни при просмотре ноды основного текста (Body) уже не будет.

Авторы решений:
Версия Drupal:
| Добавить комментарий
Опубликовано VladSavitsky
Задача: 

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

Решение
Старые URL уже не существуют, но могут использоваться. Нам нужно сделать 301й редирект со старого URL на новый.

Варианты

  • Редирект со старого URL на новый URL в файле .htaccess
  • Редирект со старого URL на новый URL с помощью модулей Pathauto и Global Redirect

Редирект со старого URL на новый URL в файле .htaccess

Самый простой вариант.
В файле .htaccess (в корне сайта) после:

<IfModule mod_rewrite.c>
  RewriteEngine on

добавить:
 

Читать дальше...
Опубликовано VladSavitsky
Задача: 

Нужно создать вид (представление) для Views программно, то есть в своем модуле.

Решение
Чтобы задать вид с помощью кода для Views 2 в Drupal 6 нужно:

  1. Создать вид, используя визуальный интерфейс Viws, как это обычно делается
  2. Сделать экспорт этого вида и получить код
  3. Заменить первую строку ($view = new view;) на $view = views_new_view();
  4. Далее можно показать, выполнить, вставить и всё, чего пожелаете (то есть $view->execute_display('default', array())

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

//создать новый вид

Читать дальше...
Авторы решений:
Темы:
Версия Drupal:
Модули:
| Добавить комментарий
Опубликовано VladSavitsky
Задача: 

Нужно сделать так, чтобы при смене (переключении) языка сайта ссылка на главную меняла свой якорь (текст). Например, "Главная" для русского, "Home" - для английского.

Решение

Авторы решений:
Версия Drupal:
Модули:
| Добавить комментарий
Опубликовано VladSavitsky
Задача: 

Если на сайте используется несколько языков (многоязычный сайт), но логотип и/или название сайта должно вести на главную на выбранном языке, а не на основном языке сайта

Решение

  • В папке текущей теме открыть файл page.tpl.php
  • В этом файле найти строку "$logo" - это вывод логотипа. Вывод названия сайта обычно находится где-то рядом.
  • Найти как формируется ссылка. Обычно это
    echo check_url($base_path);

    или
    print $base_path;
  • Заменить на:
    echo url('<front>', array('absolute' => TRUE));
Авторы решений:
Версия Drupal:
Drupal API:
| Добавить комментарий
Опубликовано VladSavitsky
Задача: 

На многоязычном сайте нужно на главной странице нужно вывести ноду, которая при смене языка сайта тоже будет меняться на соответствующий перевод.

Решение

На сайте должна быть установлена многоязычность и возможность делать перевод нод.
Далее нужно:

  • Открыть нужную ноду для редактирования и указать путь: "home".
    Указать синоним пути в настройках ноды
  • Сделать тоже самое для всех переводов, используя в качестве пути то же самое значение "home"
    Указать синоним пути в настройках ноды
  • Читать дальше...
Опубликовано VladSavitsky

Задача:

Найти на сайте страницы с большим PR.

Решение:

Онлайн-сервисы проверки PR страниц сайта

Читать дальше...
Опубликовано VladSavitsky

Задача:

Нужно в форме поиска вставить в поле текст "Поиск по сайту", который исчезает при клике мышью, то есть, когда курсор попрадет в это поле и поле получает фокус.

Читать дальше...
 
 
 

RSS-лента новостей

Dries Buytaert по-русски
]]>Русский поиск Drupal]]>

Перенос сайта из Joomla в Drupal
Перенос сайта из WordPress в Drupal

]]> Drupal - это бесплатная система управления контентом с открытым исходным кодом ]]>