gn@drupal.org: Блог

Главные вкладки

i18nsync и "дополнительные поля"

3 августа 2009 в 18:30

В модуле интернационализации i18n есть субмодуль i18nsync, предназначенный для синхронизации полей при переводе - чтобы эти поля можно было унаследовать от оригинальной ноды, а не вводить заново, ну и присоединённые файлы не дублировать. Список доступных для синхронизации полей должен включать стандартные поля ноды и поля CCK. Кроме того, в readme.txt говорится о возможности синхронизации дополнительных полей, если их прописать в settings.php:

<?php// Available fields for synchronization, for all node types.
$conf['i18nsync_fields_node'] = array(
  'field1' => t('Field 1 name'),
  'field2' => t('Field 2 name'),
  ...
); ?>

Но навскидку непонятно, какие поля можно добавлять, кроме "standard node fields and cck fields", которые должны быть доступны и так. Кто-нибудь уже пробовал добавлять для синхронизации какие-то поля или переменные? Что можно вытащить дополнительно?

Симметризация URL'ов по языковому префиксу

3 августа 2009 в 15:21
Когда я делаю многоязычный сайт, мне хочется сделать адреса страниц симметричными по языковому префиксу, так чтобы перевод en/smth был виден по адресу ru/smth, и так далее.
Зачем? "Во-первых, это красиво!", как говорится в старом еврейском анекдоте :)).
Во-вторых, это минимизирует проблемы с внутренними ссылками: при переводе материалов не нужно каждый раз исправлять "dogs" на "sobaki" или "node/374" на "node/395", и всё равно попадёшь по внутренней ссылке куда надо.
Как это сделать? Если сайт состоит из пары десятков нод, то легко прописать все адреса вручную. Но как автоматизировать этот процесс, если нод много? Как настроить pathauto, чтобы при создании перевода сохранялся url_alias оригинальной ноды? Поле, которое связывает перевод с оригиналом - это поле "tnid" (=nid_оригинала) в таблице "node", поэтому напрашивается идея создать [tnid] token (тем более что теперь есть субмодуль "tokenSTARTER", предназначенный для дописывания собственных токенов). Сделать это тупо навскидку у меня не получилось - может, кто-нибудь подскажет, в чём грабли, может, tnid нужно доставать не через $node->tnid, а как-то более хитро?
Или у кого есть другие варианты решения? (Вводить дополнительные "технические" поля только для синхронизации адресов не хочется).

Сайт с субсекциями и разными вариантами алиасов для одной ноды - ?

1 сентября 2008 в 19:12

Есть сайт под некоей CMS, к-рый нужно перевести под Drupal 6 с сохранением существующих URL-ов.
Сайт двуязычный (en|ru), и в нём есть главная страница (example.com/en/ или /ru/), и есть пару субсекций (как бы "субсайтов"), посвящённых более узкой тематике (example.com/en/topic1/ и так далее), с модифицированным оформлением (заголовок, цвета, логотипы и т.п.).
На сайте есть каталог статей, в котором можно вести поиск с главного сайта и с субсайтов. При этом одна и та же статья видна под URL'ом типа /en/articles/booklets/123, если искать её в каталоге главного сайта, и под URL'ом типа /en/topic1/articles/booklets/123, если выходить на неё с субсайта.

Так что каждая статья должна быть доступна под несколькими урлами: без префикса, и з префиксами topic1, topic2 и так далее; наличие или отсутствие префикса влияет на оформление страницы.

Как воспроизвести это в Друпале?

Понятно, что можно прописать для каждой ноды по несколько алиасов, но при этом (1) не хочется размножать в несколько раз таблицу url_alias в базе данных, (2) как это автоматизировать через pathauto? и (3) как при этом контролировать, чтобы из нескольких алиасов, прописанных для страницы, во views'ах для каждого субсайта выводился не первый или последний, а тот, в котором нужный префикс?
Делать несколько частично пересекающихся баз данных тоже не хотелось бы.

Многоязычность в Drupal 6

19 февраля 2008 в 15:31

Может, я чего-то недопонимаю, но пока что меня очень разочаровывает multilanguage support в Drupal 6. Я сделал пару многоязычных сайтов сначала на Drupal 4 + i18n, потом на Drupal 5 + Localizer, а в D6 обещали включить многоязычие в core, и я уже ожидал всеобщее щастье безо всяких дополнительных модулей и патчей.

Проблема с кэшированием: что подкрутить в настройках MySQL?

16 января 2008 в 14:18

Есть сайт на Друпале 5.* на дешёвом хостинге, PHP 4.4.7, MySQL 4.1.10, в целом работает нормально, но есть одна проблемка. Время от времени некоторые страницы перестают выводиться для анонимных посетителей: вместо этого выдаётся "page not found". Для зарегистрированных посетителей (то есть при считывании страницы не из кэша, а прямо из базы данных) выводятся нормально. Если очистить кэш-таблицы базы данных (например, отключить кэширование сайта и снова включить), проблема пропадает. На какое-то время.

Проблемы с загрузкой CSS под русским Apache

4 сентября 2007 в 13:32

Есть сайт на Друпале, который нормально работает на разных хостингах и на локальном сервере (у меня Uniform Server for Win). Нужно перенести его на новый хостинг, где, как оказывается, стоит русский Apache. Переношу как обычно, сайт запускается - и сразу наблюдается проблема с кодировкой: Апач навязывает браузеру win-1251, и приходится вручную переключать его на utf-8 (хотя utf-8 корректно прописан в заголовке страницы).

Пропала кнопка/закладка редактирования страниц

18 ноября 2006 в 21:18

Сайт под Drupal 4.7.4, в какой-то момент для контента типа page пропала кнопка/закладка редактирования "edit". Открываю страницу -- а кнопки нет, как будто я не администратор, а просто прохожий. Я, конечно, могу редактировать страницы через administer -> content или через прямой ввод URL ".../node/**/edit" , но это неудобно.
При этом для контента типа story кнопка/закладка редактирования по-прежнему видна.
С правами доступа вроде тоже всё в порядке.
Никто с таким не сталкивался?