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

Файл i18n-ascii.txt для русской транслитерации pathauto. Кому надо - качаем!

22 октября 2010 в 0:43

Всем привет.
Как известно, чтобы транслитировать УРЛы, создаваемые модулем pathauto, нужен файлик i18n-ascii.txt. Если брать его из поставки pathauto, то там можно найти много лишнего, к тому же, не все символы адекватно интерпретированы.

Например:

Е = "Ie" (хотелось бы видеть E)
Й = "I" (хотелось бы видеть J)

На выходе получаются не совсем адекватные УРЛы, которые могут помешать продвижению сайта. Кроме того, они некрасивы.

Например:

тёща => t-shcha (буквы ё там тоже не было)
сколько => skol-ko
бессонница => biessonnitsa

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

з.ы Файл только для русского языка!
Спасибо за внимание.

[РЕШЕНО] Номера ноды в автозаполняемом заголовке.

20 октября 2010 в 21:44

Не претендую на уникальность текста, но кому-то пригодится. По крайней мере, сам себе в закладки брошу. Тема для D6 явно не раскрыта, решение кусочно можно насобирать, например, отсюда для D5.

Суть проблемы: Автоматически заполнять заголовок страницы, не давая возможности вносить его пользователю (то есть скрыть от ввода). Полезно сами знаете где.
Условие: Заполнение должно быть уникальным. Используется для этого номер ноды "nid".

Решение:

Система темизации Drupal 6

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

Темизация Вспомнилось мне недавно мое участие на Extreme Camp, проходившем в Москве и, как следствие, мой доклад на этом действе. Доклад был поднят, перечитан и несколько подредактирован - получилось весьма симпатичное HOWTO по системе темизации Drupal.

Полагаю, что данный "мануал" будет весьма полезен для людей, только начинающим знакомиться с Drupal и погрязших в дебрях его темизации.

e-commerce + node_import 6.x

15 октября 2010 в 20:12

сборка: Drupal 6 + CCK + E-Commerce + Node Import

Не смог найти поддержку импорта E-Commerce в модуле Node Import для 6-ой версии Drupal.
При импорте постоянно ругалось на обязательность поля Цена (Price), которое не заполнялось из файла .CSV.
Однако в 5-ой версии node_import поддержка E-Commerce есть.

Пришлось немного подправить решение из 5-ой версии - может кому пригодится (файл прикреплен).
необходимо ecommerce/ec_product.inc скопировать в node_import/supported/
Буду рад если сообщите какое решение в текущий момент использовать правильнее.

Также потратил время на поиск импорта привязки словаря к материалу (поддержка taxonomy в cck для node_import) - ответ нашел здесь.
файл content_taxonomy.inc необходимо скопировать в node_import\supported\cck

Конфликт 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) и выбираем, какой тип материала будем обновлять.
В поле ниже вставляем код, скопированный из выдачи экспорта
Жмём ок

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

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

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