db_merge Drupal 7

Опубликовано 2012.02.28 в разделе Drupal.

В Drupal 7 DataBase API есть замечательная функция-db_merge. Используя её можно легко вставить строку, или сделать update строки. Суть её работы заключается в том,что она ищет строку по заданному условию. И если находит-выполняет update, а если нет-то insert. Разберем её на примере. Допустим имеем таблицу 'peoples', в которой хранится список сотрудников. И нам нужно сотруднику с именем Jonson установить поле money на 10. А если этого сотрудника нет-завести его.

Обзор Drupal 8

Опубликовано 2012.02.19 в разделе Drupal.

Решил поставить на локальную машину Drupal 8. Сразу обратил внимание что папок в корне CMS стало меньше.Появилась папка core, в которую и переехала часть прежних папок.Думаю это несомненно плюс.С такой структурой новички не будут сломя голову загружать свои модули в папку с модулями ялра,как это делали в предыдущих версиях,вплоть до седьмой.Сам Drupal решил поставить на PHP 5.4. Ошибки были даже на стадии установки. В админке тоже некоторые функции не отрабатывались,не удалось даже включить несколько модулей.

Интеграция внешних скриптов в Drupal

Опубликовано 2012.02.11 в разделе Drupal.

Чтобы интегрировать переменные друпала в свой скрипт-достаточно подключить к своему скрипту ядро друпала:
  1. define('DRUPAL_ROOT', getcwd()."\..\\"); //правильно укажите путь
  2. include_once DRUPAL_ROOT . '/includes/bootstrap.inc';
  3. drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
Всё бы ничего,но если вы используете в своих скриптах сессии-то Drupal их не увидит,так как по умолчанию он хранит их в БД. Для решения этой проблемы просто поместите вконце своего скрипта:
  1. drupal_session_commit();

Пропала половина админского меню в Drupal

Опубликовано 2012.01.20 в разделе Drupal.

Иногда такое случается - заходишь на сайт под админом, а в админке половины меню нехватает! Не зайти в список модулей, блоков или ещё куда-нибудь. Чиста кэша, запуск крона проблем не решает. Из-за чего это происходит-это просто глюк БД. Толи запрос не полностью прошел, или долгий скрипт не отработался полностью, или хостер перезагружал базу...или просто потому что гладиолус. Диагноз не так страшен. На самом деле просто побилось меню. Достаточно всего лишь пересобрать меню. Делается это очень просто. Открываем index.php

Модуль новостей drupal

Опубликовано 2012.01.03 в разделе Drupal.

Модуля как такового нет. Делать его никто не стал, ввиду того, что базовый функционал Drupal позволяет сделать новости кому как угодно. Сейчас мы с вами создадим этот модуль буквально за 15 минут.
 
Что нам для этого надо,разберем по порядку:
 
  • Создать тип материала
  • Задать поля материала
  • Создать страницу новостей
  • Создать новостной блок
 
Использовать будем Drupal 7.

Вывод двухуровневого словаря таксономии + jQuery

Опубликовано 2011.12.27 в разделе Drupal.

Термины таксономии в виде ссылок выводятся простым снипетом,даже с количеством привязанных нод. Если словарь двухуровневый-можно поступить следующим образом: Я также сразу закладываю возможность использовать jQuery эффект аккордиона Аргументом функции будет номер вашего словаря. Помещайте эти функции в свой модуль. Можете скачать заготовку модуля. Там есть исходники, потрете в них лишнее и запишите в него только эти 2 функции.
  1. function get_taxonomy_top($vid=2){
  2. echo '<div id="accordion">';</div>

Внешняя авторизация Drupal

Опубликовано 2011.12.18 в разделе Drupal.

Внешняя авторизация позволяет пользователям входить на ваш сайт используя учетные данные от различных популярных сервисов. Для чего это нужно? Например у вас на сайте есть какой то интересный сервис,или просто информация,доступная только авторизованным пользователям. Посетитель может не захотеть регистрироваться у вас и покинет ваш сайт. Таким образом вы потеряете потенциального

Создание модуля Drupal

Опубликовано 2011.12.12 в разделе Drupal.

Очень часто начинающие друпалеры задают один и тот же вопрос-как создать таб(или вкладку,кому как нравится). Или ещё что-нибудь несложное. Более опытные пользователи предлагают им набор модулей. Или же написать свой модуль. В этом нет ничего сверхсложного, но многие тем не менее не могут это переварить. В этой статье я расскажу как написать модуль с минимальными затратами, используя только самое главное, без чего не обойтись по определению,отбросив всё более-менее сложное.

Глобальная переменная $user

Опубликовано 2011.12.12 в разделе Drupal.

Глобальная переменная user хранит в себе основную информацию о текущем пользователе. То есть находясь на сайте в эту переменную помещается ваш ник,дата регистрации,e-mail и так далее. Получить эту переменную можно в любой функции любого модуля,главное чтоб она была объявленной. То есть в коде функции необходимо написать
  1. global $user
. Вывести переменную можно с помощью функции print_r , не echo , так как это не строка. Drupal 7: Итак,выводим:
  1. global $user;
  2. echo '<pre>';
  3. print_r($user);
  4. echo '</pre>';
Я запускаю эту функцию на реальном сайте и вижу:

Как узнать браузер на php. Кроссбраузерная верстка в Drupal.

Опубликовано 2011.11.23 в разделе Drupal.

Верстая сайт очень часто, точнее почти всегда, встаёт вопрос о кроссбраузерности верстки. Каждый браузер отображает верстку как ему заблагорассудится. Если нормальные браузеры ещё туда-сюда, так интернет эксплорер-это тихий ужас...кошмар веб разработчиков... А теперь по теме. Кроссбраузерность достигается так: Определяем браузер. Под каждый браузер пишем свои хаки. Определить браузер поможет следующая функция:
  1. function cb_get_browser()
  2. {
  3. $ua = $_SERVER['HTTP_USER_AGENT'];
  4.  
  5. if (stristr($ua, 'Opera')) return 'Opera';