Последние записи

Работа с филдами и с типом материала

mbaev 07.05.2015, 18:42

Для начала переменные содержащие название типа материала и филда, которые мы будем создавать/удалять.

  1. $content_type = 'article';
  2. $field_name   = 'yandex_field';

Как удалить тип материала?

  1. node_type_delete($content_type);

Как удалить поле (field)?

Установка и настройка CKFinder

mbaev 10.01.2015, 18:11

Мне показалась интересной задача настройки файлового браузера CKFinder (в связке с текстовым редактором CKEditor). При устновке с первого раза "что-то пошло не так" и пришлось немного разобраться. Хотя материала на эту тему достаточно, но русскоязычного топика я не нашел.

Установим модуль

Распаковать все это нужно следующим образом

Как программно получить ноду

mbaev 05.11.2014, 10:17

Для программного получения (загрузки) ноды есть как минимум 2 пути и нужно понимать в каких случаях что использовать.

1-ый вариант (node_load, entity_load)

Использование функции node_load гарантирует безошибочную загрузку ноды, при этом если мы попытаемся 100 раз загрузить одну и туже ноду, то она будет загружена 100 раз со всеми вытекающими: загрузка данных из базы и формирование entity.(см. Upd: 07.11) В Drupal 7, entity интегрирован в ядро, по этому node_load(1) равнозначно entity_load('node', array(1))

Как создать свой модуль

mbaev 03.11.2014, 11:20

Для создания своего модуля необходимо иметь 2 обязательных файла с расширениями .info и .module:

  1. example
  2.   |-example.info
  3.   |-example.module

Обязательными данными в этих файлах являются:

example.info
  1. name = example
  2. core = 7.x

Info-файл, как понятно из расширения, это всего лишь описательный файл, который может содержать также зависимости от других модулей или версии ядра, список подключаемых php файлов, и ссылку на страницу конфигурации модуля.
Исполнительный файл модуля может быть пустой, при этом сам модуль уже будет отображаться в списке модулей на странице "/admin/modules".

Пример создания страницы модуля

К примеру, создадим страницу на которой выведем сообщение о создании страницы.

Как заставить action link выполняться по ajax'у

mbaev 24.10.2014, 12:04

Чтобы заставить ссылку, программно созданную, выполняться ajax'ом достаточно навешать на неё класс 'use-ajax', но в hook_menu() это сделать невозможно потому, что:

An array of options to be passed to l() when generating a link from this menu item. Note that the "options" parameter has no effect on MENU_LOCAL_TASK, MENU_DEFAULT_LOCAL_TASK, and MENU_LOCAL_ACTION items.

Предположим у нас есть ссылка:

Специфичность (приоритеты) в css

mbaev 11.08.2014, 11:12
Tags

Таблица специфичности (приоритетов) стилей, как их рассчитывают браузеры. Иногда нужно знать для того, чтобы понимать стоит ли в данной ситуации пытаться переопределить стили навешанные на "id" стилями навешанными на класс.
Специфичность это некоторая условная величина, вычисляемая следующим образом. За каждый идентификатор (в дальнейшем будем обозначать их количество через a) начисляется 100, за каждый класс и псевдокласс (b) начисляется 10, за каждый селектор тега и псевдоэлемент (c) начисляется 1. Складывая указанные значения в определённом порядке, получим значение специфичности для данного селектора.

Сайты на Drupal

mbaev 04.08.2014, 10:44

Иногда нужно перед заказчиком показать уровень серьёзности cms/cmf Drupal, а для этого нужно показать сайты - изготовленные на Drupal. Запомним список некоторых из них:

Таблица с перетаскиванием строк (draggable table)

mbaev 30.04.2014, 10:08

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