Блог пользователя - stillfinder

Drupal 8 -> Знакомимся с консолью (Drupal Console)

Аватар пользователя stillfinder
6

Что такое Drupal консоль?

Это интерфейс командной строки(CLI), предназначенный для генерации стандартного кода, взаимодействия и отладки Drupal.
Изначально проект задумывался как утилита скаффолда, но потом консоль выросла в полноценную CLI утилиту.
Drupal консоль делает использование Symfony консоли и других сторонних компонентов, которые позволяют автоматически генерировать большую часть кода необходимую для модуля Drupal 8. В дополнению к этому консоль позволяет взаимодействовать с Вашим Drupal проектом.

Ошибки Drush в Drupal 8 и как их лечить

Аватар пользователя stillfinder
2

Если вы работаете с Drupal и видите ошибки при выполнении Drush команд похожие на эту:

Drupal 8 -> Блоки и конфигурация

Аватар пользователя stillfinder
3

Block API в Drupal 8 была изменена таким образом, что сейчас блоки являются плагинами(plugins) и сущностями(entities) одновременно. Блоки в Drupal 8 совмещают в себе две разных API структуры: Block Plugin API, которое является автономным повторно используемым API, и Block Entity API, которое представляет собой конкретный вариант использования блока и управление его видимости. Это означает, что блоки теперь являются объектами с полями и работают с новой системой плагинов введенной в Drupal 8.

Drupal 8 в 2 шага

Аватар пользователя stillfinder
4

Drupal 8 - это последняя стабильная версия Drupal, современная, которая использует PHP 5.4+, REST совместимая, объектно-ориентированная. Концепция осталась прежней, но подход изменился. Drupal 8 использует возможности объектно-ориентированного программирования(ООП) для большинства подсистем, благодаря фреймворку Symfony 3.

Как мне объявить модуль?

В Drupal 8 для объявления модуля нужен только файл YAML (.info.yml):

Drupal 7. Замена строк (текста) по-умолчанию, не используя систему перевода.

Аватар пользователя stillfinder


Методы

  1. Редактирование settings.php
  2. Модуль String Overrides
  3. Использование hook_boot()

Метод 1: Редактирование settings.php

Плюсы

  • Быстрый метод для небольшого количества строк.
  • Менее доступен в тех случаях, когда вы хотитесохранить некоторый контроль даже после предоставления прав администратора.

Минусы

  • Работает только для английского.
  • Нету административных страниц, необходим доступ к серверу (FTP / SFTP / SSH). Сложно управлять изменениями не разработчикам.

Процедура

  1. Открываем на редактирование файл settings.php,
  2. Находим в конце файла следующие строки:
0 Thanks

Search API Views пустое поле Excerpt

Аватар пользователя stillfinder

Доброго дня!

При создании поиска на сайте с использованием Search API + Views + Database search, столкнулся с такой проблемой - если добавить во view поле Excerpt (которое должно показывать часть ноды с подсвеченными ключевыми словами) показывает пустоту. То есть оно находит ноды, но именно поле Search: Excerpt остается пустое. Буду благодарен за любую подсказку/информацию.

0 Thanks

Прокачиваем скорость разработки под Drupal с помощью Drush

Аватар пользователя stillfinder

Drush (от Drupal shell) — утилита с интерфейсом командной строки, созданная для управления и администрирования Drupal сайтов, доступна как и для Linux, Unix, Mac OS X, так и для Windows систем. Drush используется многими разработчиками, например, для скачивания/установки/удаления модулей, установки сайтов на Drupal, применении обновлений модулей в базе данных, бэкапа сайта и многого другого.

Drush позволяет очень сильно сэкономить время, когда нужно выполнить типичные задачи или автоматизировать часто выполняемые действия. Например, бэкап сайта, очистка кэша, восстановление сайта из бэкапа. Для того, чтобы пользоваться Drush - его сначала нужно установить. Итак, приступим.

Установка Drush

Mac OS X, Linux

0 Thanks

Прокачиваем скорость разработки под Drupal с помощью Drush

Аватар пользователя stillfinder

Drush (от Drupal shell) — утилита с интерфейсом командной строки, созданная для управления и администрирования Drupal сайтов, доступна как и для Linux, Unix, Mac OS X, так и для Windows систем. Drush используется многими разработчиками, например, для скачивания/установки/удаления модулей, установки сайтов на Drupal, применении обновлений модулей в базе данных, бэкапа сайта и многого другого.

Drush позволяет очень сильно сэкономить время, когда нужно выполнить типичные задачи или автоматизировать часто выполняемые действия. Например, бэкап сайта, очистка кэша, восстановление сайта из бэкапа. Для того, чтобы пользоваться Drush - его сначала нужно установить. Итак, приступим.

Установка Drush

Mac OS X, Linux

0 Thanks

Export Settings - Drupal модуль для экспорта настроек сайта.

Аватар пользователя stillfinder

Иногда бывает необходимо быстро и без ошибок перенести определенные настройки Drupal сайта и некоторых его модулей. Они хранятся в таблице variable базы данных Drupal. Но если использовать для этих целей, например phpmyadmin, то это не всегда бывает удобно и возможно. Создавать sql запрос, который поменяет определенные значения полей этой таблицы тоже не совсем удобно и быстро. Существенно проще отметить необходимые настройки и скачать сгенерированный модуль, который после включения применит необходимые(ранее отмеченные) настройки на новом сайте.

0 Thanks

Sublime Text 3 для Drupal разработчика

Аватар пользователя stillfinder

В ранее я писал как настроить Sublime Text 2 для Drupal разработчика. По многочисленным просьбам представляю Вашему вниманию аналогичную статью, но по настройке Sublime Text 3.
Итак, Вы скачали и установили Sublime Text 3.

Package Control

Первое, что нужно сделать - это установить Package Control. Для этого в активном окне Sublime Text 3 нажимаем комбинацию клавиш ctrl+` для вызова консоли и вставляем туда следующий код:
 

0 Thanks

Количество результатов Views в меню

Аватар пользователя stillfinder

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

snimok_ekrana_2014-02-10_v_12.18.01.png

Для реализации этого можно добавить в своем модуле следующий код:

<?php
/**
* Implements hook_preprocess_HOOK().
*/
function mymodule_preprocess_menu_link(&$variables) {
if ($variables['element']['#href'] == 'my-menu-item-path') { // my-menu-item-path - заменяем на путь нашего пункта меню

0 Thanks

Программное создание и обновление полей типа field collection

Аватар пользователя stillfinder

Field Collection - удобный модуль, который позволяет создавать составные поля, То есть поля, которые содержат внутри себя другие поля. Например, это может быть поле, состоящее из двух разных полей - термина таксономии и числовое поле. В этой статье мы поговорим о программном создании экземпляров field collection добавлении их к ноде, а также, о программном редактировании Field Collection в Drupal.

0 Thanks

Sublime Text 2 для Drupal разработчика

Аватар пользователя stillfinder

Многим людям очень нравится редактор кода Sublime Text 2. Некоторые просто фанатеют от него, другие не очень хвалят. В этой статье я попробую оценить полезность данного инструмента для Drupal разработчика со своей субъективной точки зрения.

  1. Установим Sublime. Для этого перейдем на http://www.sublimetext.com/2, выберем подходящий для нас дистрибутив, скачаем и установим. Здесь вроде все стандартно

0 Thanks

Временное сохранение массива на стороне сервера для формы с 2-я ajax сабмитами

Аватар пользователя stillfinder

Вопрос состоит в следующем: в своем модуле есть форма с 2-я сабмитами, которые работают по аяксу. Нужно чтобы при нажатии первого сабмита, на стороне сервера происходило сохранение массива с числами, который будет доступен при нажатии на второй сабмит. Ищу наиболее правильный вариант реализации, возможно не совсем правильная формулировка "сохранение на стороне сервера", но думаю суть все поняли. Теперь код:

Сама форма

<?phpfunction bublesort_form($form, &$form_state) {
    $form=array();
    
    $form['result'] = array(
        '#title' => 'Result',
        '#description' => 'decs.',
        '#prefix' => '<div id="canvas_result_div">', 
        '#suffix' => '</div>', 
    );
    
    $form['shuffle'] = array(
        '#type' => 'submit',?>
0 Thanks

Временное сохранение массива на стороне сервера для формы с 2-я ajax сабмитами

Аватар пользователя stillfinder

Вопрос состоит в следующем: в своем модуле есть форма с 2-я сабмитами, которые работают по аяксу. Нужно чтобы при нажатии первого сабмита, на стороне сервера происходило сохранение массива с числами, который будет доступен при нажатии на второй сабмит. Ищу наиболее правильный вариант реализации, возможно не совсем правильная формулировка "сохранение на стороне сервера", но думаю суть все поняли. Теперь код:

Сама форма

<?phpfunction bublesort_form($form, &$form_state) {
    $form=array();
    
    $form['result'] = array(
        '#title' => 'Result',
        '#description' => 'decs.',
        '#prefix' => '<div id="canvas_result_div">', 
        '#suffix' => '</div>', 
    );
    
    $form['shuffle'] = array(
        '#type' => 'submit',
        '#value' => t('Shuffle'),
        '#name' => 'shuffle',?>
0 Thanks

Добавляем перечеркнутое поле старая цена в Ubercart Views (Drupal).

Аватар пользователя stillfinder

Итак задача: у нас есть вывод материалов типа уберкартовский продукт, и нам нужно добавить перечеркнутое поле с текущей ценой (старая цена), а вместо цены вывести старое значение - 12%. То есть у нас в шопе все как бы подешевело на 12% и мы доносим это все нашим клиентам. Приступим.

Чтобы отнять от числа какой-то процент, пользуемся следующей формулой:
n-p%=n*(1-p/100)
Для 12% (Х-12%):
Х-12%==Х*(1-12/100)==Х*0.88

0 Thanks

Изменяем внешний вид элементов формы с помощью jqTransform

Аватар пользователя stillfinder

Допустим нас достал тот факт, что внутренние элементы формы выглядят чересчур стандартно, и нам захотелось изменить внешний вид элементов формы, сделать элементы формы красивыми, интересными и привлекательными, сделать интересные селекты, чекбоксы и другие элементы. Для того, чтобы улучшить внешний вид форм быстро и без особых забот нам на помощь приходит библиотека jqtransform.

Для начала скачиваем библиотеку вот здесь http://stillfinder.net/sites/default/files/jqtransform.zip или идем в гугль и ищем где можно скачать

Далее содержимое архива заливаем сюда /sites/all/themes/Ваша_тема/js/
Структура папок такая /sites/all/themes/Ваша_тема/js/jqtransform/jqtransformplugin/ - папка jqtransformplugin в папке jqtransform

0 Thanks

Drupal. Плавное исчезновение текста при наведении на поле ввода. (placeholder)

Аватар пользователя stillfinder

Демку(видео) можно глянуть тут http://stillfinder.net/blog/drupal-plavnoe-ischeznovenie-teksta-pri-nave...

Допустим у нас есть форма созданная с помощью модуля webform и мы хотим, чтобы название поля выводилось внутри самого поля, а при наведении мышки на это поле название исчезало. Для этого добавляем в наш css следующий код:

CSS:

.webform-component label {
position:absolute;
color: grey;
margin-top: 4px;
margin-left: 4px;
}

А в javascript файл темы такой кучек кода:

JavaScript:

$(document).ready(function(){
//alert(1);
$('.webform-client-form label').each(function(i){
var label=this;
var input=$("#"+($(this).attr('for')).toString());
$(input).blur(function(){
$(input).removeClass("focus");
0 Thanks

Вывод комментариев и формы комментариев в блоке

Аватар пользователя stillfinder

Бывает, что нужно вывести комментарии и форму их добавления в отдельном блоке, например, для вывода комментариев в табах quick tabs. Итак приступим

Создаем Views типа комментарии. В этом views создаем дисплей типа Блок. В нем вывод полей содержимого и заголовков комментариев.

Комментарий: Заголовок
Комментарий: Содержимое

В аргументах указываем следующее:
Комментарий: Nid
Подставим аргумент Nid "по умолчанию", PHP-Код и туда вписываем:
$path = $_GET['q'];
$path = explode('/', $path);
return $path[1];

В подвале нашего виевс выводим форму добавления комментариев. Для этого пишем туда следующий php код:
<?php
$path = $_GET['q'];
$path = explode('/', $path);
$nid_comment = $path[1];

$formComment = drupal_get_form('comment_form', array('nid' => $nid_comment ));

0 Thanks

Zen - Создание субтемы

Аватар пользователя stillfinder

Вот иногда бывает просят тебя подправить сайт, который делал кто-то другой, ты открываешь, и радуешься: там тема Zen или что-то подобное. Все сделано через жопу. Ребята даже субтему не научились делать, а просто начали тупо вносить правки в код Zena. Кто-то другой, модератор сайта, или мАНАГЕР какой-нибудь, или горе-программер, взяли и зашли в админку, увидели что друпал хочет обновить тему. Скачали новую версию зена, залили, и пришел пиздец сайту. Вот чтобы этого не было, маленькая инструкция для тех, кто взялся делать темы на Zen или аналогах.

0 Thanks