RSS
 

Drupal 7

warning: Creating default object from empty value in /usr/local/www/jail4/kostya.in.ua/public_html/modules/taxonomy/taxonomy.pages.inc on line 34.

Drupal 7 + интеграция своего модуля с features

При необходимости перенесения каких-либо изменений в базе с одного сайта на другой, переливание всей базы, как правило, является достаточно проблематичным, а иногда и невозможным через наполнение сайта контентом. Для этого существует модуль Features. Чтобы подобных проблем не возникало, в этой статье мы расскажем, как создавать свою фичу (feature), как создавать в ней свои пункты и как экспортировать части сайта на другой сайт.

Порядок выполнения preprocess функций

Order of preprocess execution

as to which function runs in what order. Fortunately, there are just three simple rules that are used to determine the order of processing. They are as follows:

  1. All preprocess functions run before all process functions
  2. template_ prefixed[module]_ prefixed functions run
  3. next. [theme]_ prefixed functions run last

This results in the following order of execution for a particular theme hook:

  1. template_preprocess()
  2. template_preprocesss_HOOK()
  3. MODULE_preprocess()

Создание поля программно

Создаем программно поле-список:

$field_name = 'field_foo';
$field = field_info_field($field_name);
if (empty($field)) {
  $field = array(
    'field_name' => $field_name,
    'type' => 'list_text',
    'settings' => array(
      'allowed_values' => array(
        'a' => t('A'),
        'b' => t('B'),
        'c' => t('C'),
        'd' => t('D'),
      ),
    ),
  );
  field_create_field($field);
}
 
$instance = array(
  'field_name' => $field['field_name'],
  'entity_type' => 'node',
  'bundle' => 'foo',
  'label' => t('Foo'),
  'widget'=> array(

Паттерны проектирования в Drupal

Паттерны проектирования в Drupal
Larry Garfield (aka Crell)

"Хорошие программисты - ленивы", как говорит пословица. Это не значит, что хорошие программисты избегают выполнения своей работы; это значит, что они не любят делать работу, которую делать не нужно. Лучшим способом сделать это: не решать 2 отдельные задачи, а найти общий способ решения этих двух задач. Обычно это называется "повторным использованием кода", и это основа знаний любого человек, занимающегося разработкой софта.

Drupal 7: вывод графиков с помощью модуля flot

Написал тут модуль, который умеет выводить выбранные поля ноды в качестве графиков. Правда, тут выяснилось, что для моих задач ноды не очень подходят, так что буду его практически полностью переписывать. И чтобы добро не пропадало, вот:

<?php
 
function test_flot_menu() {
 
  $items['admin/config/flot'] = array(
    'title' => 'Flot settings',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('test_flot_settings_form'),
    'access callback' => TRUE,
    'type' => MENU_LOCAL_TASK,
  );
 
  $items['user/%/flot'] = array(
    'title' => 'Flot',

The Render API in Drupal 7

Одна из наиболее интересных новых фич в Drupal 7 - это улучшенный Render API.

Раньше, колбеки страниц, блоки и другие эелементы страницы возвращали простой HTML, который после просто вставлялся в в структуру страницы на уровне тем. В Drupal 7, вместо этого, вывод страницы представляет из себя массив.

В этом видео автор сначала представит концепцию renderable arrays и сделает обзор как они используются в Drupal 7 и насколько они отличаются от массивов Form API в Drupal 6. А после - расскажет об их многочисленных преимуществах.

Добавление своей ссылки в shortcut в Д7

Следующий код умеет добавлять свою ссылку в "панель быстрых ссылок" в Друпале 7.

/**
 *Implementation of hook_enable
 */ 
function module_enable() {
  require_once(drupal_get_path('module', 'shortcut').'/shortcut.admin.inc');
  $shortcut_set = shortcut_set_load('shortcut-set-1');
  $shortcut_link = array(
     'link_title' => '<Title of the link>',
     'link_path' => '<url>',
     'menu_name' => 'shortcut-set-1',     
  );
  shortcut_admin_add_link($shortcut_link, $shortcut_set, shortcut_max_slots());
  shortcut_set_save($shortcut_set);
} 

Drupal 7: программное создание нод, влкючающее field colletion

I had to import a few thousand items from a legacy database to a Drupal 7 site and found that it was quite easy to do so programmatically. Here I'll first show you the basic code for adding nodes and then I'll talk about different field types, including how to add images and term references (taxonomy). If you have any questions, just ask in the comments and I'll be happy to help!
Basic node creation - example

Drupal 7: bulk operations

Довольно недавно модуль bulk operations стал доступен в интерфейсной чатси Друпала в виде дополнительного поля, вместо типа форматирования.

Form elements inside Views! from NodeOne.se on Vimeo.