xandeadx.ru Блог музицирующего веб-девелопера

DrupalМодуль Autocomplete Widgets for Text and Number Fields

Опубликовано в

Описание

Модуль Autocomplete Widgets for Text and Number Fields, как понятно из названия, добавляет для текстовых полей и списков новый тип виджета — поле с автодополнением:

Поле с автодополнением

Автодополнение может происходить как данными из уже добавленных полей, так и по заранее определённому списку.

DrupalКак на странице материала вывести в блоке ноды из этой же категории

Опубликовано в

Распространённая задача — в блоке на странице материала, вывести ноды из категории, к которой принадлежит просматриваемый материал.

Способ 1

1. Создаём представление.

2. Добавляем дисплей Блок.

3. Добавляем фильтры (по типу материала, статусу и т.п.), меняем настройки по вкусу.

4. Добавляем контекстный фильтр по полю, в котором прописана категория материала (в примере это field_category).

DrupalСоздание многоязычного сайта с помощью модулей Content translation и i18n (видео, eng)

Опубликовано в

Видео урок от японского коллеги об одном из способе создания многоязычного сайта — с помощью модулей Content translation (в ядре) и i18n:

DrupalПодходы к многоязычности в Drupal (скринкаст, eng)

Опубликовано в

Скринкаст от Gábor Hojtsy (главный по интернационализации друпала), в котором он рассказывает о двух моделях создания многоязычного контента в Drupal 7, их архитектурных проблемах и что намечается в Drupal 8:

РазноеЛокализация (l10n) vs Интернационализация (i18n)

Опубликовано в

Цитата с вики:

Есть важное различие между интернационализацией и локализацией. Интернационализация — это адаптация продукта для потенциального использования практически в любом месте, в то время как локализация — это добавление специальных функций для использования в некотором определённом регионе. Интернационализация производится на начальных этапах разработки, в то время как локализация — для каждого целевого языка.

т.е. интернационализация это основа (код, архитектура), на которой будет проводится локализация приложения на конкретный язык.

DrupalМногоязычные уведомления модуля Simplenews

Опубликовано в

Чтобы пользователи, подписывающиеся на рассылку Simplenews, получали подтверждающие письма на языке, на котором они просматривают сайт, нужно:

1. Обновить Simplenews до версии выше 7.x-1.0-alpha2 (сейчас это 7.x-1.x-dev).

2. Включить модуль Variable translation из пакета i18n.

3. На странице admin/config/regional/i18n/variable включить поддержу перевода для сообщений Simplenews (скриншот).

DrupalДобавляем CSS классы в body на основе текущего пути

Опубликовано в

Если на сайте используется модуль Path, то удобно иметь в body цепочку классов на основе текущего пути. Например если открыта страница news/world/title то в body должно быть:

<body class="... path-news path-news-world path-news-world-title">

Код, добавляющий эти классы:

/**
 * Preprocess function for theme_html()
 */
function THEMENAME_preprocess_html(&$vars) {
  $request_path_array = explode('/', request_path());
  if ($request_path_array) {
    if ($request_path_array[0] == $GLOBALS['language']->language) {
      unset($request_path_array[0]);
    }
    $class = 'path';
    foreach ($request_path_array as $arg) {
      $class .= '-' . $arg;
      $vars['classes_array'][] = $class;
    }
  }
}

MySQLВычислить возраст по дате рождения

Опубликовано в

Чуть подправленный вариант SQL запроса из официальной документации:

SELECT
  birthday,
  (YEAR(CURRENT_DATE) - YEAR(birthday)) - (DAYOFYEAR(CURRENT_DATE) < DAYOFYEAR(birthday)) AS age
FROM users

Смысл следующий — первым шагом вычитаем из текущего года, год рождения, вторым шагом вычитаем единичку если дня рождения в этом году ещё не было.

birthday это поле с типом date или datetime.