kuzyakiev: Блог

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

Не создается ЧПУ при клонировании(переводе) ноды, паттерн [menupath-raw]

15 октября 2010 в 11:29

ЗАДАЧА:
Есть типы категория(typical), подкатегория(subtypical).
Нужно при создании страницы subtypical делать для неё чпу типа www.site.com/typical/subtypical
И создавать ноды перевода на все остальные языки с чпу типа www.site.com/en/typical/subtypical

РЕШЕНИЕ:
Создадим по меню в каждом языке. В меню будем добавлять наши typical и subtypical
ЧПУ задаётся pathauto при помощи паттерна [menupath-raw].html
Для клонирования нод при создании, модулем rules ловим событие After saving new content с условием IF Created content is Subtypical и командой DO Execute custom PHP code в котором вызываем файл

<?php
// $node->promote = 1 | 0; use as my publish\unpublish
   
    $node->tnid = $node->nid;
    $_node = new stdClass();
    $_node = drupal_clone($node);
    $node->promote = 1;
    node_save($node);
   
    // Delete unique params
    unset($_node->nid);
    unset($_node->vid);
   
    // Get menu parent id from format menu-logical-ru:652 where «menu-logical-ru» and 652 is id of parent menu(not node id)
    $def_lang_plid = substr($node->menu['parent'],16);
    // Take parrent menu node->nid from link_path (stored in format «node/%»)
    $def_parrent_nid = substr(db_result(db_query("SELECT link_path FROM menu_links WHERE mlid = '$def_lang_plid'")),5);
    // Take parrent node->tnid
    $def_parrent_tnid = db_result(db_query("SELECT tnid FROM node WHERE nid = '$def_parrent_nid'"));
   
    // Take list of languages except our node->langeage

Как удалить переводы ноды после её удаления

15 октября 2010 в 2:25

Привет, есть мультиязычный сайт. При удалении ноды нужно удалять её переводы. Подскажите как это сделать.
Пытался через rules

Где бы разместить ф-цию что бы её видно было...

1 июня 2010 в 21:54

Привет всем, так сложилось что я на друпале делаю разные сниппеты.
Для страниц разных типов использую контемплейт который ложит файлыв sites/default/contemplates/
Для блоков использую <?php include("sites/default/snippets/block/block_name.php")?> иногда со страниц и в body блока
Для страниц типа page использую <?php include("sites/default/snippets/page/page_name.php")?> в body блока

Как бы мне создать файл куда бы я складывал общие ф-ции, для вызова из всех перечисленных структур.
Как это организованно у Вас?

Уважаемые гуру друпала, обьясните парадокс кода

12 декабря 2009 в 16:28

Есть у нас function drupal_get_form($form_id) {...} В includes/form.inc, line 48 и есть у нас стандартный модуль poll где в строке 516(+/-)

Объясните пожалуйста способ и область применения Drupal.attachBehaviors

26 ноября 2009 в 14:22

Нашёл я эту функцию, в попытках выполнить кастомный javascript в viewsе которую возращает ajax (сформированый в views).
Собственно сабж: способ и область применения Drupal.attachBehaviors

/**
 * Attach all registered behaviors to a page element.
 *
 * Behaviors are event-triggered actions that attach to page elements, enhancing
 * default non-Javascript UIs. Behaviors are registered in the Drupal.behaviors
 * object as follows:
 * @code
 *    Drupal.behaviors.behaviorName = function () {
 *      ...
 *    };
 * @endcode
 *
 * Drupal.attachBehaviors is added below to the jQuery ready event and so
 * runs on initial page load. Developers implementing AHAH/AJAX in their
 * solutions should also call this function after new page content has been
 * loaded, feeding in an element to be processed, in order to attach all
 * behaviors to the new content.
 *
 * Behaviors should use a class in the form behaviorName-processed to ensure
 * the behavior is attached only once to a given element. (Doing so enables
 * the reprocessing of given elements, which may be needed on occasion despite
 * the ability to limit behavior attachment to a particular element.)
 *
 * @param context
 *   An element to attach behaviors to. If none is given, the document element
 *   is used.
 */

Drupal.attachBehaviors

Как сделать path как параметр?

11 ноября 2009 в 5:12

Как сделать что бы все страницы www.example.com/sort/* приходили как параметры в конкретный файл.
Напр
www.example.com/sort/age:26/
www.example.com/sort/age:26-35/
www.example.com/sort/age:26-35/height:165-185/
www.example.com/sort/age:22/height:165-185/english/

Как сделать resize+crop без потери части рисунка?

5 ноября 2009 в 20:10

Примеры:


Я хочу сделать квадратные превьюшки, как на примере.
То есть если рисунок узкий то он слева и справа дополняется собой и потом режется 150*150 или если рисунок широкий то он дополняется сверху и снизу собой и потом режется.

Как сделать домашнюю страницу не друпаловской?

4 сентября 2009 в 13:13

Привет всем, как сделать домашнюю страницу(www.site.org/index.php или просто www.site.org) не друпаловской? То есть там не будет подгрузки друпаловских скриптов, хедера, футера, ... Там будет обычная статика(заставка) с ссылками на друпаловские страницы

Привязать некоторые блоки к физ. файлам

12 мая 2009 в 12:17

Добрый день,
очень хотелось бы некоторые блоки привязать к физ. файлам что бы удобней было вести разработку. Это как то возможно?

[решено] Как узнать ссылку на рисунок имея его id (image_field)

9 мая 2009 в 15:30

И так, что имеем.
Модули Views, ССК, ImageField, FileField
Материал «our_guest» состоящий из трех текстовых полей и рисунка (type: file, widget: image).

Далее в модуле Views я сформировал нужный мне запрос

SELECT node.nid AS nid,
   node.title AS node_title,
   node_data_field_guest_name.field_guest_name_value AS node_data_field_guest_name_field_guest_name_value,
   node.type AS node_type,
   node.vid AS node_vid,
   node_data_field_guest_name.field_guest_date_value AS node_data_field_guest_name_field_guest_date_value,
   node_data_field_guest_name.field_image_guest_fid AS node_data_field_guest_name_field_image_guest_fid,
   node_data_field_guest_name.field_image_guest_list AS node_data_field_guest_name_field_image_guest_list,
   node_data_field_guest_name.field_image_guest_data AS node_data_field_guest_name_field_image_guest_data,
   node_revisions.teaser AS node_revisions_teaser,
   node_revisions.format AS node_revisions_format
 FROM node node
 LEFT JOIN content_type_our_guest node_data_field_guest_name ON node.vid = node_data_field_guest_name.vid
 LEFT JOIN node_revisions node_revisions ON node.vid = node_revisions.vid
 WHERE node.type IN ('our_guest')

и формирую свой блок посредствам

<?php$result = db_query("...");
while ($row = db_fetch_object($result)) {
   echo $row->node_title;
   ...
   /*print_r($row); //-кому интересно как посмотреть структуру результата */

}?>

Впрос как получить картинку, все что я пока имею:
[node_data_field_guest_name_field_image_guest_fid] => 4

Облегчить жизнь конечного пользователя

6 мая 2009 в 19:15

Как сделать так что бы при добавлении материала отдельно можно было бы загрузить картинку, а в тексте материала задать её с помощью {image1}?

Установка, тонкости.

29 апреля 2009 в 11:32

При установки Drupal возникла потребность редактирования структурных элементов.
Например, мне необходимо вывести меню ввиде:

<ul>
    <li>
        <a href="#">Item 1</a>
        <a href="#">Item 2</a>
    </li>
    <li>
        <a href="#">Item 3</a>
        <a href="#">Item 4</a>
    </li>
    ...
</ul>

Для этого, логично что нужно подредактировать код вывода меню, при том необходимо создать шаблон только для конкретного меню — другие будут выглядеть иначе. Вопрос в том как найти(создать) файл(темплейт, что ещё) который занимается выводом меню?

Также есть потребность редактировать такие структуры как «заметка», «история», «новость». ВозможноСтопудов придется редактировать ещё какие то структуры. По этому было бы полезным если бы кто-то поделился технологией поиска нужных файлов и нужных частей кода. Обычно при работе с другими движками мне для решения всех проблем хватало поиска по всем файлам, но тут облом. Например: меню в drupal имеет типичные класы css: leaf, expanded, collapsed — но поиска по всем файлам не дал не одного php файла((