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

Листалка страниц Ctrl + стрелки влево/вправо

6 марта 2009 в 6:37

Собственно, пробуйте модуль листания страниц
Отписывайтесь об ошибках.
Тестировалось на гарланде, но дкумаю и на других темах будет работать, если пейджинг не переопределен.
Если у вас он переопределен, то разберетесь как подправить под себя Wink

Сниппет: Как установить атрибут disabled полю CCK

1 марта 2009 в 6:19

В очередной раз перекапывая Form API столкнулся с проблемой установки ССК-полю значения disabled.

<?php
/**
* @file
* Custom module to set the disabled attribute of CCK fields.
*/

/**
* Implementation of hook_form_alter().
*/
function mysnippet_form_alter(&$form, $form_state, $form_id) {
if (isset($form['type']) && isset($form['#node'])) {
// Use this check to match node edit form for a particular content type.
if ('mytype_node_form' == $form_id) {
$form['#after_build'][] = '_mysnippet_after_build';
}
// Use this check to match node edit form for any content type.
// if ($form['type']['#value'] .'_node_form' == $form_id) {
// $form['#after_build'][] = '_mysnippet_after_build';
// }
}
}

/**
* Custom after_build callback handler.
*/
function _mysnippet_after_build($form, &$form_state) {
// Use this one if the field is placed on top of the form.
_mysnippet_fix_disabled($form['field_myfield']);
// Use this one if the field is placed inside a fieldgroup.
// _mysnippet_fix_disabled($form['group_mygroup']['field_myfield']);
return $form;
}

/**
* Recursively set the disabled attribute of a CCK field
* and all its dependent FAPI elements.
*/
function _mysnippet_fix_disabled(&$elements) {
foreach (element_children($elements) as $key) {
if (isset($elements[$key]) && $elements[$key]) {

// Recurse through all children elements.
_mysnippet_fix_disabled($elements[$key]);
}
}

if (!isset($elements['#attributes'])) {
$elements['#attributes'] = array();
}

[решено] Views + комбинирование нескольких полей

19 января 2009 в 10:36

Во Views2 есть замечательная возможность "склеивать" несколько полей воедино.
Но, наряду с добряками, есть и минусы.
В частности никак не могу понять как хукнуть эту функцию склейки на предмет отсекания пустых полей.
Т.е., например, есть поля "Город" (обязательное), "Улица", "Номер дома".
После группировки поле имеет вид "г. Мухосранск, ул.Пупкина, 5".
Но если нет улицы и дома, то поле принимает некашерный вид: "г. Мухосранск, ,"

Есть какое-нибудь решение?

[РЕШЕНО] hook_nodeapi и изменение $node->title

6 января 2009 в 15:53

<?php
function timerko_form_alter(&$form, $form_state, $form_id) {
switch($form_id) {
case 'expertopinion_node_form':
$form['title']['#weight'] = -10;
$form['title']['#value'] = (!$form['title']['#value']) ? 'Дефолтный заголовок' : '';
$form['title']['#type'] = 'hidden';
break;
}
return;
}

function timerko_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
switch ($op) {
case 'insert':
case 'update':
if ($node->type == 'expertopinion') {
$expert_nid = $node->field_expertreference[0]['nid'])
$expert = db_fetch_array(db_query("SELECT title FROM node WHERE nid=%d", $expert_nid);
$node->title = check_plain($expert['title']);
print_r($node);
}
break;
}
}
?>

print_r() в timerko_nodeapi() выдает $node->title который нужен, а вот записывается в базу все равно как "Дефолтный заголовок".
Что я не так делаю?
PS. $node->field_expertreference[0]['nid'] - поле Node Reference

Cайт газеты New York Observer на Drupal

18 декабря 2008 в 18:12

Blog API - борьба с картинками

16 декабря 2008 в 17:32

Вообщем, блогклиенты работаю "на ура". Но есть одна большая проблема.

WLW никак не хочет отправлять картинки и вываливается с ошибкой:

Не удается опубликовать следующие изображения, поскольку блог не поддерживает публикацию изображений.
---список изображений и тумб---
Программа Windows Live Writer может быть настроена для публикации изображений в учетных записях FTP.
Настроить учетную запись FTP для публикации изображений сейчас?

[РЕШЕНО] Drupal хорош, но тормозной до жути

14 декабря 2008 в 14:22

Полтора месяца назад, после перехода на 6.х, ощутил значительный скачок в производительности системы в сторону увеличения времени генерации страниц. Доступ к странице модулей вообще начинает доводить до состояния анабиоза.
Танцы с бубном вокруг выделенного сервера не привели ни к какому сколько-нибудь значимому результату.
В состоянии здравого ума и трезвой памяти я сделал вывод о сильно разросшейся системе управления, изначально напичканой излишними модулями и кривой реализацией основных функций/модулей. В частности это касается реализации модулей Views и CCK, на которые 90% пользователей делают основной упор.

Дабы не быть голословным, привожу пример работы drupal на сервере с настройками: CPU 600Mhz, 160Mb memory, 4000Mb disk.
Вывод на главной странице 10 последних записей блога, темизированных через node-blog.tpl.php, в котором просто расписаны div и phint $node->....

данные по devel после трех перезагрузок сервера:
Page execution time was 37415.49 ms.
Page execution time was 35212.13 ms.
Page execution time was 36423.23 ms.

ЗЫ. если кто-то сможет мне объяснить, как заставить drupal работать в 30 раз быстерее - с меня пЫво (или на пЫво через WMR/WMZ)

Добавление роли пользователю

10 декабря 2008 в 9:09

Столкнулся с проблемой добавления пользователям определенной роли.
Ни через страницу "Пользователи", ни через изменение профиля, никак дру не реагирует.
Кто-нибудь сталкивался с такой проблемой?

Мультисайтинг (и вновь...)

8 декабря 2008 в 7:49

Создаю в папке site подпапку name.mysite.ru
в ней папку themes с одной темой, которую прописываю в settings.php подпапки name.mysite.ru
в том же settings.php вставляю
<?php
$conf = array( 'site_name' => 'Название сайта', 'theme_default' => 'mytheme');
?>
Все прекрасно работает.
Вопрос в том, как мне теперь поставить на главном домене главную страницу одну, а на поддоменах свои?
Т.е.
mysyte.ru/mainpage - главная
1.mysite.ru/otherpage1
1.mysite.ru/otherpage2
3.mysite.ru/otherpage3

Exposed filters - Select list

26 ноября 2008 в 4:31

В качестве внешнего фильтра вьюса в блоке представляю термины таксономии. Select List при выводе списка этого фильтра ставит метку selected не на первый элемент списка <Any>, а на второй. Как заставить dru собрать SL по своему?

Темизация поля views

23 ноября 2008 в 15:50

Имеем CCK поле field_sectors (Text/SelectList)
Список допустимых значений, напрмер:
1|Элемент 1
2|Элемент 2
3|Элемент 3
Допускается множественный выбор значений.

в файл views-view-fields--VIEWNAME.tpl.php выводится уже сформированный, обернутый в дивы список выбранных значений.
Мне же надо получить key и label значений этого поля, либо по своему сформировать этот список.
Попытки получить их через views-view-field--field-sectors-value.tpl.php ни к чему не привели.

Где я не так сыграл?

Жуткий тормоз

21 ноября 2008 в 15:06

При работе под зарегистрированным аккаунтом "подтормаживает" сайт.
В админке в некоторых случаях страницы вообще по одной-две минуты открываются.
В чем может быть проблема?
Может какой "ядерный" модуль отключить?

ЗЫ. В системном журнале очень много записей типа "Структурный анализ JavaScript файла sites/all/modules..."

hook_form_alter не видит CCK поля

15 ноября 2008 в 7:42

свой boardadd.module
<?php
function boardadd_form_alter(&$form, $form_state, $form_id) {
switch ($form_id) {
case 'sale_node_form':
print_r($form);
break;
}
}
?>

Drupal 6.6
print_r() не выводит данные по полям CCK.
Танцы с бубном не привели ни к какому результату.
Какие у кого идеи?

Свой шаблон для сайта

9 ноября 2008 в 16:40

С выходим 2-й ССыКи, таки решился на переезд на 6-ку.
И тут же наткнулся на проблему создания своей темы. В 5-ке как-то все проще было.

Делал так

  1. Сделал page.tpl.php (Я так понял, что он не сильно отличается от 5-ки)
  2. прописал в .info name, core, version

И что-то не едет мой паровозю Т.е. он едет, но сам page.tpl.php не подключается. Только style.css от моей темы.

составление breadcrumb

3 октября 2008 в 4:09

есть страница тизеров, выводимая вьюсом. "крошки" "Главная / ИмяВьюса". Когда заходим в ноду, то "крошки" становятся "Главная / Нода1", а надо "Главная / ИмяВьюса / Нода1".
Как правильно формировать "крошки"?

Контролируемый вывод таксономии

12 сентября 2008 в 16:10

Публикуется некое объявление. Термины словаря прописываются линейно, т.е. прописана иерархия.
Напр: Toyota -- Corolla

При табличном выводе посредством views получаю связку "Corolla Toyota", что не есть хорошо.
$cell['data'] дает мне уже html строку, которую нет смысла разбирать.
Подскажите, плз, где мне контролировать вывод таксономии?