29 нояб. 2011 г.

drupal 7 создание массива options функцией drupal_map_assoc

 $form['nice_menus_type_' . $delta] = array(
    '#type' => 'select',
    '#title' => t('Menu Style'),
    '#description' => t('right: menu items are listed on top of each other and expand to the right') . '<br />' . t('left: menu items are listed on top of each other and expand to the left') . '<br />' . t('down: menu items are listed side by side and expand down'),
    '#default_value' => variable_get('nice_menus_type_' . $delta, 'right'),
    '#options' => drupal_map_assoc(array('right', 'left', 'down')),
  );

24 нояб. 2011 г.

Пользовательские переменныые в MySQL


You can store a value in a user-defined variable in one statement
and then refer to it later in another statement. This enables you
to pass values from one statement to another.
User-defined variables are
connection-specific
. That is, a user variable defined
by one client cannot be seen or used by other clients. All
variables for a given client connection are automatically freed
when that client exits.

User variables are written as
@var_name, where the
variable name var_name consists of
alphanumeric characters, “.”,
_”, and
$”. A user variable name can
contain other characters if you quote it as a string or identifier
(for example, @'my-var',
@"my-var", or @`my-var`).


23 нояб. 2011 г.

Новые возможности ООП в PHP5

Учитывая, что PHP на сегодняшней день является крайне популярной технологией программирования серверной части сайтов, а также то, что версия PHP 4, по утверждениям многих, была революционной по сравнению с предыдущими, новая пятая по счету версия вызывает обоснованный интерес среди веб-разработчиков.
Однако, по словам создателей PHP 5, ничего революционного в этот раз ожидать не стоит - текущие изменения носят всего лишь ”эволюционный” характер. Тем не менее, сделанные дополнения являются давно ожидаемыми, крайне полезными и весьма своевременными.
В первую очередь переработке подвергся весь механизм работы с объектами. И если в предыдущих версиях объектно-ориентированное программирование на PHP было возможно в минимальной степени, из-за чего и использовалось на практике не часто, то PHP 5 обладает великолепным потенциалом реализации объектного программирования. Кроме этого, PHP обогатился рядом ценных расширений для работы с XML, различными источниками данных, генерации графики и пр.

14 нояб. 2011 г.

Ниже приведён беглый обзор модулей для работы с меню в Drupal.

Надеюсь многим он будет полезен и многие добавят свои описания и замечания к нему.


  • Quick Admin Menus - JS меню администратора
  • Drupal Administration Menu - JS навесок, который показывает в админке пункты меню для админки(быстрая и удобная навигация по админке)
  • Administration Menu Dropdown - добавка к предыдущему, позволяющая скрывать его по Ctrl+Tab
  • DHTML Menu - делает любое вложенное меню разворачивающимся без перезагрузки страницы
  • Quickmenu - примерный аналог, позволяющий сделать преобразовать обычное меню в разворачивающееся
  • Аieldset Menus - с расширеными настройками(сильно не разбирался)
  • Dropdown Menu - выводит через тему JS меню с нескольким уровнями вложенности
  • YUI Menu - использует YUI модуль для создания JS выпадающего многоуровневого меню (с красивой анимации)
  • SimpleMenu - JS меню в виде блока, прикрепляемое к верху.
  • Nice Menus - только CSS для большинства браузеров, и с минимумом JS для IE меню
  • Nice Primary Menus - вместе с предыдущим делает красивое меню для Primary
  • Lucid menu - клон Nice menus с расширенными настройками
  • imagemenu - в админке drupal меню добавляет свои пункты, для создания меню из картинок(одна из них реагирует на hover)
  • jumpmenu - добавляет в блок комбобокс со списком пунктов люого выбраного меню
  • loginmenu - простой модуль, создающий ссылку на /login страницу
  • Menu Block Split - позволяет разбить меню по нескольким блокам и управлять ими
  • Menu Display API - модуль для поддержки других модулей(ставится, только если его требуют другие модули)
  • Menu per Role - делает пункты меню доступными в зависимости от роли
  • Menu Subtree Permissions - позволяет пользователям изменять части меню, не давая разрешения для всего меню.
  • Sitemenu - Модуль предоставляет "site map" стиль для страницы с навигацией по по категориям сайта и другие варианты
  • Menu Trim - Модуль обеспечивает хитрое сворачивание\разворачивание меню для уменьшения количества отображаемых пунктов
  • Submenu Tree - Позволяет организовывать сложные древовидные меню
  • Menu Tree - Простая структура меню Drupal
  • Remove Non-viewable Menu Items - гарантирует, что пользователь не увидет те пункты меню, которые ему не положены по роли
  • Sliced Menu - создает под каждый уровень меню свой блок
  • Menu Trails - Улучшения стандартного меню(в чем суть сильно не понятно)
  • Menu Translation Этот модуль обеспечивает, удобный интерфейс чтобы перевести пункты меню (i18n модуля).
  • MiniMenus - Google-подобную регистрацию на сайте
  • OG Menu - Позволяет делать меню, видимое только членам группы.
  • Tax'o'Menu - навигация по словарям таксономии
  • Taxonomy menu - добавляет в меню ссылки на термины таксономии.
  • Menu Page?
  • Menu Scout?

источник
http://www.drupal.ru/node/11082

12 нояб. 2011 г.

Полезные модули для Drupal 7

Регистрация и профиль пользователя

Profile2
user registrationpassword
Email_registration - Allow users to register using only an email address, ie. without username.
http://drupal.org/project/logintoboggan
http://drupal.org/project/captcha_pack
http://drupal.org/project/terms_of_use
http://drupal.org/project/hidden_captcha
http://drupal.org/project/service_links
http://drupal.org/project/loginza


Интерфейс

http://drupal.org/project/toolbar_hide













10 нояб. 2011 г.

Принцип использования темизации и препроцесс функций


<?php
theme
('uc_abas_V',array('elements' => $vie) );?>


А так же добавив:

<?phpfunction uc_abas_preprocess_uc_abas_V(&$variables) {
    
template_preprocess_node($variables);
}
?>



uc_abas - имя модуля

uc_abas_V - имя темы которую регестрируем

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


<?php//Регестрируем тему, файл темы node.tpl.php,
//в той же папке что и модуль
function uc_abas_theme() {
    return array(
        
'uc_abas_V'  => array(
            
'template' => 'node',
        ),
    );
}
//Хук вносим изменения в переменные,
//так как это бы сделал template_preprocess_node
function uc_abas_preprocess_uc_abas_V(&$variables) {
    
template_preprocess_node($variables);
}
//Рендерим ноду с указанным ID, делаем этот рендер нашей темой!
//в theme через элемент массива 'elements' => $vie,
//передаем данные чтоб все в uc_abas_preprocess_uc_abas_V
//нормально работало
function uc_abas_amen() {
   
    
$nod=node_load(1);
    
$vie=node_view($nod);
   
    
$res=array(
        array(
'#markup' => theme('uc_abas_V',array('elements' => $vie) )),
    );
   
    return 
$res;   

}
?>