Ошибки Drush в Drupal 8 и как их лечить
Если вы работаете с Drupal и видите ошибки при выполнении Drush команд похожие на эту:
Если вы работаете с Drupal и видите ошибки при выполнении Drush команд похожие на эту:
Плюсы
Минусы
Процедура
Доброго дня!
При создании поиска на сайте с использованием Search API + Views + Database search, столкнулся с такой проблемой - если добавить во view поле Excerpt (которое должно показывать часть ноды с подсвеченными ключевыми словами) показывает пустоту. То есть оно находит ноды, но именно поле Search: Excerpt остается пустое. Буду благодарен за любую подсказку/информацию.
Drush (от Drupal shell) — утилита с интерфейсом командной строки, созданная для управления и администрирования Drupal сайтов, доступна как и для Linux, Unix, Mac OS X, так и для Windows систем. Drush используется многими разработчиками, например, для скачивания/установки/удаления модулей, установки сайтов на Drupal, применении обновлений модулей в базе данных, бэкапа сайта и многого другого.
Drush позволяет очень сильно сэкономить время, когда нужно выполнить типичные задачи или автоматизировать часто выполняемые действия. Например, бэкап сайта, очистка кэша, восстановление сайта из бэкапа. Для того, чтобы пользоваться Drush - его сначала нужно установить. Итак, приступим.
Drush (от Drupal shell) — утилита с интерфейсом командной строки, созданная для управления и администрирования Drupal сайтов, доступна как и для Linux, Unix, Mac OS X, так и для Windows систем. Drush используется многими разработчиками, например, для скачивания/установки/удаления модулей, установки сайтов на Drupal, применении обновлений модулей в базе данных, бэкапа сайта и многого другого.
Drush позволяет очень сильно сэкономить время, когда нужно выполнить типичные задачи или автоматизировать часто выполняемые действия. Например, бэкап сайта, очистка кэша, восстановление сайта из бэкапа. Для того, чтобы пользоваться Drush - его сначала нужно установить. Итак, приступим.
В ранее я писал как настроить Sublime Text 2 для Drupal разработчика. По многочисленным просьбам представляю Вашему вниманию аналогичную статью, но по настройке Sublime Text 3.
Итак, Вы скачали и установили Sublime Text 3.
Первое, что нужно сделать - это установить Package Control. Для этого в активном окне Sublime Text 3 нажимаем комбинацию клавиш ctrl+` для вызова консоли и вставляем туда следующий код:
Field Collection - удобный модуль, который позволяет создавать составные поля, То есть поля, которые содержат внутри себя другие поля. Например, это может быть поле, состоящее из двух разных полей - термина таксономии и числовое поле. В этой статье мы поговорим о программном создании экземпляров field collection добавлении их к ноде, а также, о программном редактировании Field Collection в Drupal.
Многим людям очень нравится редактор кода Sublime Text 2. Некоторые просто фанатеют от него, другие не очень хвалят. В этой статье я попробую оценить полезность данного инструмента для Drupal разработчика со своей субъективной точки зрения.
Вопрос состоит в следующем: в своем модуле есть форма с 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',?>
Вопрос состоит в следующем: в своем модуле есть форма с 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',?>
Итак задача: у нас есть вывод материалов типа уберкартовский продукт, и нам нужно добавить перечеркнутое поле с текущей ценой (старая цена), а вместо цены вывести старое значение - 12%. То есть у нас в шопе все как бы подешевело на 12% и мы доносим это все нашим клиентам. Приступим.
Чтобы отнять от числа какой-то процент, пользуемся следующей формулой:
n-p%=n*(1-p/100)
Для 12% (Х-12%):
Х-12%==Х*(1-12/100)==Х*0.88
Допустим нас достал тот факт, что внутренние элементы формы выглядят чересчур стандартно, и нам захотелось изменить внешний вид элементов формы, сделать элементы формы красивыми, интересными и привлекательными, сделать интересные селекты, чекбоксы и другие элементы. Для того, чтобы улучшить внешний вид форм быстро и без особых забот нам на помощь приходит библиотека jqtransform.
Для начала скачиваем библиотеку вот здесь http://stillfinder.net/sites/default/files/jqtransform.zip или идем в гугль и ищем где можно скачать
Далее содержимое архива заливаем сюда /sites/all/themes/Ваша_тема/js/
Структура папок такая /sites/all/themes/Ваша_тема/js/jqtransform/jqtransformplugin/ - папка jqtransformplugin в папке jqtransform
Бывает, что нужно вывести комментарии и форму их добавления в отдельном блоке, например, для вывода комментариев в табах 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 ));
Вот иногда бывает просят тебя подправить сайт, который делал кто-то другой, ты открываешь, и радуешься: там тема Zen или что-то подобное. Все сделано через жопу. Ребята даже субтему не научились делать, а просто начали тупо вносить правки в код Zena. Кто-то другой, модератор сайта, или мАНАГЕР какой-нибудь, или горе-программер, взяли и зашли в админку, увидели что друпал хочет обновить тему. Скачали новую версию зена, залили, и пришел пиздец сайту. Вот чтобы этого не было, маленькая инструкция для тех, кто взялся делать темы на Zen или аналогах.
Немного помучившись с отправкой поля типа дата через xml-rpc на друпаловский сайт из программы на C# было найдено такое решение:
XmlRpcStruct node = new XmlRpcStruct();
string field_exclusive_date_to = "10.05.2024 0:00:00";
DateTime dtfield_exclusive_date_to = DateTime.Parse(field_exclusive_date_to);
AddArrayDateToNode("field_exclusive_date_to", dtfield_exclusive_date_to, node);
///
/// Добавляет в ноду поле с датой (Drupal Date)
///
///
///
///
/// Нужно написать в блоге каком то как это делать, ато все ебуться и никто еще не нашел.
private static void AddArrayDateToNode(string fieldname, DateTime dt, XmlRpcStruct node)
{
XmlRpcStruct sMainDate = new XmlRpcStruct();
XmlRpcStruct sDate = new XmlRpcStruct();
sDate["year"] = dt.Year.ToString();
sDate["month"] = dt.Month.ToString();
sDate["day"] = dt.Day.ToString();
sMainDate["value"] = sDate;
object[] oDate = new object[] { sMainDate };
node[fieldname] = oDate;
}
Все дело в том, что на Drupal сайте Date Api хранит дату немного не в том формате в котором отображает. Следовательно получение и отправка поля CCK типа Date будет сильно различаться.
Источник: http://stillfinder.blogspot.com/2011/05/drupal-xmlrpc-date-api-services....
Здравствуйте!
Пишу на C# программу, которая сможет обмениваться с Drupal сайтом посредством xml-rpc протокола(модуль services) и столкнулся со следующей проблемой: при попытке использовать file.get возвращается ошибка 401, доступ запрещен. Хотя в правах повыставлял уже все что нужно и ненужно. Возможно кто-то работал с модулем services или у кого-то есть соображения по поводу решения данной проблем.
Заранее благодарен за ваши советы.