Custom display data
Views or custom queries?
User story
И достал Я бубен...
Slicing.
Однажды один очень гордый* клиент принес готовые спецификации, ТХ, слайсы и сказал
- Слушай, дарагой*, нужно вот, сделать это, это и это.
Спустя некоторое время..
- Нам нужно поменять это, это и вот это.
- Вы не можете это менять. Вы вообще не можете менять css, html и js.
- Как мы не можем это поменять?
- @#$ @#$ %%%! %&#$! ^&! (не переводимая игра слов)*
Условия
Core: Drupal 7*
Contrib modules
- CTools
- Views
- Devel
Кеширования нет
Более 100 000 нод
- базовый тип Article
- наличие поля Image type
*чистая установка, минимум core модулей, локализация, MySql/Apache
Views
+
- Простота использования/низкий базовый порог знаний
- Удобство
- Расширяемость/масштабируемость
- Минимум коддинга
- Готовый функциональный набор
-
- Сложные выборки требуют знаний API
- Ограничения в темминге без определенных знаний
- Нагрузка (при больших объемах)
- Не всегда вменяемые sql запросы
- Зависимость
Custom
+
-
Нагрузка (ниже)
-
Удобство работы с динамическими запросами
-
Расширяемость/масштабируемость/интеграция
-
Прозрачный коддинг, ничего лишнего
-
Удобная темизация, и как следствие - интеграция в сложные решения
-
- Необходимы знания по API, темизации, кешированию etc.
- Затраты по времени
- Расширяемость/масштабируемость*
- Уязвимость*
Решения
Display
-
Core (blocks, pages via Views)
-
Contrib modules (CTools, Panels, Pages, etc)
-
Custom (theme_* functions)
additionally
- Queries via Views, output via custom theme_* functions/templates
- Queries via Views, output via node_view*
Query via Views
Steps
-
Запросы с помощью views
-
Page (node) preprocess, views_get_view_result({view_name}, {display_name}) и views_embed_view({view_name}, {display_name}, {args})*
-
Custom theme_*/templates for output
additionally
- Возможность менять вывод как угодно
- Возможность вставок в поток и комбинирования вывода без значительных "танцев с бубном"
- Отсутствие костылей и велосипедов, хотфиксов и соблюдение стандартов
- Печеньки и котики
Don't use Kostili&Velosipedi methods
Custom display data
By t1mm1
Custom display data
- 761