<?php | ||
Показаны сообщения с ярлыком drupal 7. Показать все сообщения
Показаны сообщения с ярлыком drupal 7. Показать все сообщения
4 янв. 2012 г.
Добавление свего валидатора формы
2 янв. 2012 г.
Drupal: Установка Drush на Windows
Drupal: Установка Drush на Windows | xandeadx.ru
Drush — это мощная утилита для управления друпалом из командной строки. С помощью неё можно скачивать, устанавливать, включать и выключать модули, проверять обновления, устанавливать темы, очищать кэш, делать синхронизацию баз и много другое.
Drush — это мощная утилита для управления друпалом из командной строки. С помощью неё можно скачивать, устанавливать, включать и выключать модули, проверять обновления, устанавливать темы, очищать кэш, делать синхронизацию баз и много другое.
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')),
);
14 нояб. 2011 г.
Ниже приведён беглый обзор модулей для работы с меню в Drupal.
Надеюсь многим он будет полезен и многие добавят свои описания и замечания к нему.
источник
http://www.drupal.ru/node/11082
Надеюсь многим он будет полезен и многие добавят свои описания и замечания к нему.
- 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
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_nodefunction 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;
}?>23 сент. 2011 г.
Theme_select
Для вывода select с собственными данными можно использовать функцию
дополнительные параметры
$sel = array('element'=>array(echo theme_select($sel);
'#type' => 'select',
'#ajax_processed'=>'myfunc',
'#options' =>array(1=>'first', 2=>'second', 3=>'third')
));
дополнительные параметры
//Array ( [element] => Array ( [#type] => select
//[#default_value] =>
//[#empty_value] => -1
//[#title_display] => invisible
//[#title] => Регион для блока Сейчас на сайте
//[#options] => Array ( [-1] => - Нет - [sidebar_first] => Левая колонка [sidebar_second] => Правая колонка [content] => Содержимое [header] => Заголовок [footer] => Подвал [highlighted] => Закреплено [help] => Справка )
//[#input] => 1
//[#multiple] => [#process] => Array ( [0] => form_process_select [1] => ajax_process_form )
//[#theme] => select
//[#theme_wrappers] => Array ( [0] => form_element )
//[#pre_render] => Array ( [0] => ctools_dependent_pre_render )
//[#defaults_loaded] => 1
//[#tree] => 1
//[#parents] => Array ( [0] => blocks [1] => user_online [2] => region )
//[#array_parents] => Array ( [0] => blocks [1] => user_online [2] => region )
//[#weight] => 0.005 [#processed] => 1
//[#required] =>
//[#attributes] => Array ( [class] => Array ( [0] => block-region-select [1] => block-region--1 ) )
//[#id] => edit-blocks-user-online-region
//[#name] => blocks[user_online][region]
//[#value] =>
//[#empty_option] => - Нет -
//[#ajax_processed] =>
//[#sorted] => 1
//[#children] => ) )
25 авг. 2011 г.
Программное добавление термина таксономии
Этот код работает для DRUPAL 7
поддерживается создание связей терминов и полей таксономии
PS:
Обязательно проверьте чтоб ваш скрипт был в кодировке utf
поддерживается создание связей терминов и полей таксономии
PS:
Обязательно проверьте чтоб ваш скрипт был в кодировке utf
/*** Arguments* name* vid* arg[parent] =0* arg[termFields] = array(array(key=>value))*/function _taxonomy_term_add($name, $vid, $arg = array()){$term = new stdClass;$term->name = $name;$term->vid = (int)$vid;$term->parent = (int)$arg['parent']>0? (int)$arg['parent'] : 0;$term->path = array("alias" => '',"pid" => null,"source" => null,"language" => "und","pathauto" => 1);if(isset($arg['termFields']) && is_array($arg['termFields'])){$termFields = $arg['termFields'];foreach($termFields as $field){list($fieldName,$fieldValue) = each($field);$term->{$fieldName} = array("und" => array(array("value" => $fieldValue)));}}taxonomy_term_save($term);_taxonomy_manager_update_voc($term->vid, $term->parent);taxonomy_terms_static_reset();return $term;}
/*** Helper function that updates the hierarchy settings of a voc*/function _taxonomy_manager_update_voc($vid, $parents = array()) {$voc = taxonomy_vocabulary_load($vid);if ($voc->vid == $vid) {$current_hierarchy = count($parents);if ($current_hierarchy > 2) {$current_hierarchy = 2;}if ($current_hierarchy > $voc->hierarchy) {$voc->hierarchy = $current_hierarchy;taxonomy_vocabulary_save($voc);}}}
//пример добавления термина
$termname = 'Кама';$vid = 4;$arg = array('parent' =>0'termFields' => array(array('taxonomy_field_name'=>$termname)));
_taxonomy_term_add($termname, $vid, $arg);
19 авг. 2011 г.
Как программно вывести exposed форму
Так можно вывести exposed форму даже если в views-е эта форма не вынесена в блок
PS:
Еще раз спасибо за решение deb
http://www.drupal.ru/node/67236
<?php function get_view_exposed_form($view_name = 'some_view', $display_id = 'some_display') {
if ($view = views_get_view($view_name)) {
if ($view->access($display_id)) {
$view->set_display($display_id);
if (isset($view->display_handler)) {
$view->init_handlers();
if ($view->display_handler->uses_exposed()) {
$exposed_form = $view->display_handler->get_plugin('exposed_form');
$rendered_form = $exposed_form->render_exposed_form();
$view->destroy();
return $rendered_form;
}
}
}
$view->destroy();
}
drupal_set_message('Something gone wrong', 'error');
return '';
}
}?>PS:
Еще раз спасибо за решение deb
http://www.drupal.ru/node/67236
Views preprocess функции
- hook_preprocess_views_view — вызывается перед темизацией всего представления.
- hook_preprocess_views_view_fields — вызывается перед темизацией строки с полями.
- hook_preprocess_views_view_field — вызывается перед темизацией поля в строке.
- hook_preprocess_views_view_unformatted — вызывается перед темизацией списка Unformatted list.
- hook_preprocess_views_view_list — вызывается перед темизацией списка HTML list.
- hook_preprocess_views_view_grid — вызывается перед темизацией Grid-а.
- hook_preprocess_views_view_table — вызывается перед темизацией таблицы.
- hook_preprocess_views_view_summary — вызывается перед темизацией упорядоченного summary списка.
- hook_preprocess_views_view_summary_unformatted — вызывается перед темизацией неупорядоченного summary списка.
- hook_preprocess_views_view_rss — вызывается перед темизацией rss ленты.
- hook_preprocess_views_view_row_rss — вызывается перед темизацией строки в rss ленте.
- hook_preprocess_views_exposed_form — вызывается перед темизацией формы с раскрытыми фильтрами.
1) Примеры использования views_pre_view
function examplemodule_views_pre_view(&$view, &$display_id, &$args){
if($view->name == 'mytestview){
//назначаем новый фильтр по ТИПУ МАТЕРИАЛА
$filterType = array(
"id" => "type",
"table" => "node",
"field" => "type",
"relationship" => "none",
"group_type"=> "group",
"ui_name"=> "",
"operator"=> "in",
"value"=> array($filterValue => $filterValue)
);
$view->display['default']->handler->options['filters']['type'] = $filterType ;
//меняем тип вывода на grid
$view->display['default']->handler->options['style_plugin'] = 'grid';
//меняем направление сортировки
$view->display['default']->handler->options['sorts']['title']['order'] = 'DESC';
}
}
2 авг. 2011 г.
Изменение Exposed filters
Изменение фильтра в exposed форме типа textfield на select
1) С помощью хука hook_form_alter
1) С помощью хука hook_form_views_exposed_form_alter
1) С помощью хука hook_form_alter
function mymodule_form_alter(&$form, &$form_state, $form_id) {
if($form_id=='views_exposed_form') {
$tmp = $form['field_foofieldname_value'];
$tmp['#type']='select';
$tmp['#options'] = array(''=>t('Any'),"12"=>12,"13"=>13,"14"=>14);
$tmp['#default_value']='';
$tmp['#size']='null';
$form['field_foofieldname_value']=$tmp;
}
1) С помощью хука hook_form_views_exposed_form_alter
function mymodule_form_views_exposed_form_alter(&$form, $form_state) {
//ловим форму по id
if ($form['#id'] == 'views-exposed-form-myviewsname-page-1'){
//ловим форму по id
if ($form['#id'] == 'views-exposed-form-myviewsname-page-1'){
$tmp = $form['field_foofieldname_value']; $tmp['#type']='select';
$tmp['#options'] = array(''=>t('Any'),"12"=>12,"13"=>13,"14"=>14);
$tmp['#default_value']='';
$tmp['#size']='null';
$form['field_foofieldname_value']=$tmp;
$tmp['#options'] = array(''=>t('Any'),"12"=>12,"13"=>13,"14"=>14);
$tmp['#default_value']='';
$tmp['#size']='null';
$form['field_foofieldname_value']=$tmp;
}
}
}
Вывод всех переменных в шаблоне
<?php
print print_r(array_keys(get_defined_vars()), 1);
// If you have devel.module installed, comment the line above and uncomment the line below
// dsm(array_keys(get_defined_vars())); ?>28 июл. 2011 г.
Обновление Drupal ядра
Для обновления ядра Drupal небходимо
1) удалить все папкпи кроме
3) запустить update в админке
ссылки:
http://www.siteground.com/tutorials/drupal-tutorial/drupal_upgrade.htm
1) удалить все папкпи кроме
- sites
- themes (если есть изменения в темах)
3) запустить update в админке
ссылки:
http://www.siteground.com/tutorials/drupal-tutorial/drupal_upgrade.htm
26 июл. 2011 г.
15 июл. 2011 г.
Drupal 7 - обновление модулей через админку
Был наслышан о автоматическом обновлении модулей в drupal 7, но после попытки самому установить или обновить модуль через админку и получил ошибку "Your server does not support installing modules and themes from this interface. Instead, install modules and themes by uploading them directly to the server, as described in the handbook."
После недолгих исканий нашел решение проблеммы
I looked into my phpinfo() of the web server, and found that there was no FTP support. I recompiled PHP from source with this config option added:
"--enable-ftp"
(the whole line of the PHP config options that I used:
) After that, I ran "make; make install" to get the "libphp5.so" for Apache HTTPd updated, and restarted the Apache web server. And that was it, the web interface for module installation worked.
Few things to note though:
1. I stopped the Apache server before PHP's "make install" was executed, to prevent an issue where "libphp5.so" can't be overwritten if it's in use.
2. the Drupal web site's "sites/all/modules" directory needs to be already created and owned by the Apache web server user to prevent errors such as:
3. Module dependency needs to be manually checked and installed.
(e.g. if installing Views , it's better to have Ctools installed first; otherwise, some error message flashed by (couldn't see clearly), even though it showed installation was successful)
После недолгих исканий нашел решение проблеммы
I looked into my phpinfo() of the web server, and found that there was no FTP support. I recompiled PHP from source with this config option added:
"--enable-ftp"
(the whole line of the PHP config options that I used:
'./configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-config-file-path=/etc' '--with-imap=/var/src/imap-2007e' '--with-gd' '--enable-mbstring' '--with-curl' '--with-mysql' '--with-pcre-regex=/usr/local' '--enable-pdo' '--with-pdo-mysql' '--with-zlib' '--enable-ftp' ) After that, I ran "make; make install" to get the "libphp5.so" for Apache HTTPd updated, and restarted the Apache web server. And that was it, the web interface for module installation worked.
Few things to note though:
1. I stopped the Apache server before PHP's "make install" was executed, to prevent an issue where "libphp5.so" can't be overwritten if it's in use.
2. the Drupal web site's "sites/all/modules" directory needs to be already created and owned by the Apache web server user to prevent errors such as:
Installation failed! See the log below for more information.
* Error installing / updating
* File Transfer failed, reason: Cannot chmod /var/www/drupal7/sites/all/modules/views.(e.g. if installing Views , it's better to have Ctools installed first; otherwise, some error message flashed by (couldn't see clearly), even though it showed installation was successful)
Подписаться на:
Сообщения (Atom)
Drupal 7 uses different hooks