Предлагаю решение

Конфликт Cleanr

15 октября 2010 в 14:41

Сегодня много времени убил на решение простого вопроса: почему у меня не работают кнопки в модуле Taxonomy Manager
Мне нужно было удалить много терминов, а вручную без этого модуля слишком долго особенно когда число переваливает хотя бы за 10. Так вот нажимаешь, к примеру, удалить или переместить а кнопка молчит. Переустанавливал Firefox, флэш плеер, зашел через Оперу на сайт, такая же песня - неактивные кнопки управления, хотя помню когда создавал свой сайт модуль здорово помог. Нашел решение на сайте drupal.org.
Для редактирования материалов на сайте я использую переключение с основной на тему Cleanr (очень удобная, нет ничего лишнего )
Так вот, из-за этой темы и была проблема с отображением. Нужно в теме Cleanr подредактировать файл template.php
в 18 строке:

$element['#attributes']['id'] = $element['#id'];

изменить на

if (!empty($element['#id'])) {
$element['#attributes']['id'] = $element['#id'];
}

И кнопки как ни странно начали работать вновь. Надеюсь кому-то это облегчит жизнь также как и мне.

КапельПак - очередная "недосборка" Друпала?

12 октября 2010 в 16:24

КапельПак - сборка Друпала

Что это?

КапельПак = Drupal-6.x + модули + руссификация.
Установочные профили: Русский язык,
Преднастроенные модули: нет.

Кому это нужно?

Мне)))
У опытных разработчиков подобное наверняка уже есть.
Может быть интересно новичкам.

Способ создания пункта меню "Редактировать личные данные" или "Мой трекер"

12 октября 2010 в 14:34

Здравствуйте уважаемые!

Как часто хочется добавить в меню пункт "Редактировать профиль" или "Мой трекер", но стандартные средства Друпала не позволяют это сделать (возможно плохо искал) и приходится писать код или смириться с невозможность вывести эти пункты меню.

Сегодня в голову пришла идея, попробовал и получилось! Не сочтите извращенцем, но я добавил эти пункты напрямую через базу.

Описываю шаги:

  1. Заходим в базу MySQL
  2. Жмем ссылку SQL (см. скрин)
  3. В текст запроса вставляем текст из файла menu_create.sql
  4. Жмем ОК
  5. Если ошибок не было, то заходим на свой сайт в Secondary menu
  6. Очищаем кеш (опционально)
  7. Готово!

Помимо ссылки "Редактировать профиль" создаются еще несколько ссылок, если не используете модули, выводящие эти ссылки в профиле пользователя - просто удалите их из Secondary menu обычным способом.

ЗЫ: при импорте в базу может выпасть сообщение о невозможности создания индекса - это значит, что меню с индексами, которые я прописал в sql-файле (50001, 50002, ...) уже имеются в базе, выход - отредактировать menu_create.sql.

Twitter PIN-based OAuth, include к модулям

12 октября 2010 в 4:36

Пост для тех разработчиков, кто собирается твиттовать автоматически по крону или по событию (не пользовательская аутентификация (browser auth)), сразу предупреждаю, довольно запутано. Сейчас использую на одном сайте, которые твиттует по крону статус станции для велосипедов.

Написал include чтобы твиттовать в Twitter с помощью PIN-based OAuth. Модуль twitter слишком "большой" для этого.

Использована статья http://articles.sitepoint.com/article/oauth-for-php-twitter-apps-part-1
Используется класс TwitterOAuth от Abraham Williams, смодифицироанный по статье, я его сразу включил в архив.

Использование:
1. Естественно регистриуем свой сайт в http://dev.twitter.com/apps/new , в Application Type выбираем Client, а Default Access type в Read & Write!. Остальные поля неважны, записываем выданные consumer и secret keys.

2. В файлах архива и в коде YOURMODULE меняем на название своего модуля всюду.

2. Теперь прописываем в своём модуле следующее, доступ по меню значит админский:

function YOURMODULE_menu() {
// меню настройки вашего модуля уже можеть быть!
  $items['admin/settings/YOURMODULE'] = array(
    'title' => 'YOURMODULE settings',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('YOURMODULE_settings'),
    'access arguments' => array('administer site configuration'),
  );
//...
//а вот это обязательно:
  $items['admin/settings/YOURMODULE/twitter/register'] = array(

Любительская темизация вывода views

11 октября 2010 в 21:43

Допустим, у нас есть View, который на основе таксономии сортирует какие-то материалы. И надо изменить вывод на экран кода, стилей, да и вообще, избавиться от тонн кода, который views включает в код страницы.
Как это сделал я, новичок:
В папке с темой создал файл views-view.tpl.php, чтобы оверрайдить родной из модуля views. Туда идёт одна строчка кода:

<?php print $rows; ?>

В той же папке темы создаётся файл с именем views-view-fields--PATH.tpl.php, где PATH - это то, что в пункте Path в соотвествующем view. Туда (у меня) пошёл вот такой код:

<div class="post">
<h2><?php print $fields['title']->content ?></h2>
<span><?php print format_date($fields['created']->raw, 'custom', "d.m.Y"); ?></span>
<?php print $fields['teaser']->content ?>
</div>

Чтобы посмотреть все переменные, в файле views-view-fields--PATH.tpl.php надо прописать строчку

<?php dsm($fields) ?>

ну и в page.tpl.php, там, где надо, чтобы вывелась информация

<?php $messages ?>

[решение] Обновление набора полей ССК

11 октября 2010 в 16:45

Неделю назад я спрашивал про обновление набора полей.
Вопрос решён не был и я искал решение. Нашёл.

Дано:
два сайта (девелоперский и боевой)
CCK
Новый тип материала

Задача
перенести новые поля с дев-сайта на боевой не пересоздавая тип материала

Решение
забакапьте базу боевого сайта

DEV-сайт

Идём на экспорт типов материалов admin/content/types/export и выбираем, какие поля и с какого типа экспортировать
Копируем полученный код в буфер

Боевой сайт

Идём на импорт (admin/content/types/import) и выбираем, какой тип материала будем обновлять.
В поле ниже вставляем код, скопированный из выдачи экспорта
Жмём ок

Наслаждаемся обновлённым набором полей.

Почему нельзя убить тип материала и сделать новый?
"Осиротевшие" ноды повиснут и обновлять руками геморройно будет.

Почему ты написал этот пост, если решение лежит на поверхности?
В мой тред никто не ответил, я решил, что или никто не знает или все типа умные и не снизойдут.

Страницы Views не отображается в Breadcrumbs

11 октября 2010 в 13:27

Столкнулся с проблемой: у страниц views не отображается нормально breadcrumbs.
Суть в том что системная функция menu_get_item возвращает пустой title для такой страницы и соответственно в крошках отображается пустое место.

Чистим RSS и вообще приводим к нужному виду

8 октября 2010 в 21:13

Выводилось моё RSS очень криво. Т.е. зачем-то пихало в фид все картинки из поста, да ещё и в оригинальном размере. Поэтому было принято решение побороть это дело решительно и беспощадно. Может, конечно, предложенный метод вызовет ухмылку на лицах знатоков, но это ничего; авось кому приглянётся да и понадобится.

Итак, берём модуль contemplate и устанавливаем его обычным образом. Далее идём /admin/content/types/templates и настраиваем темплейт вывода RSS для определённого вида материала, т.е. кликаем на edit template напротив него. Последняя секция - RSS нам и интересна. В поле RSS template я вставил вот такой код, предварительно убрав оттуда то, что было по умолчанию:

<img src="http://**********.ru/<?php print $node->field_image[0]['filepath'] ?>" align="left" width="130" />
<?php print strip_tags($node->teaser) ?>

т.е. что оно делает? Выводит первую картинку поста по левому краю и шириной 130 пикселей, справа от картинки - тизер, из которого вырезаны все html теги.

Вот такая методика. Естественно, энтузиаст какой тут может разойтись на всю ширь кодерской фантазии - тут вам и notepad ++ в руки, как говорится.

После обновления до версии PathAuto 6-1.4 и до версии Tokens 6-1,14 перестали переводиться токены [menupath-raw]

7 октября 2010 в 16:39

Проблема возникла в том, что перестали транслитерироваться автоматические пути.
При просмотре настроек синонимов (вкладка автоматические пути) в разделе Node Paths перестаил отображаться список Токены, возможных для подстановки.

Поискал решение и вот здесь http://drupal.org/node/881270#comment-3500134
нашел следующее:
Pathauto 6.x-2.x-dev от Sep 24th или позже
Token 6.x-1.x-dev от Sep 24th или позже

Установил и заработало!

Доска объявлений средствами Drupal

7 октября 2010 в 12:03

Мое решение по созданию «доски объявлений» на Drupal читайте в моём блоге.

http://www.maiboroda.ru/solutions/doska-obyavlenij-sredstvami-drupal/