|
|
|
|
|
|
Всякое |
Быстрый хак модуля Livejournal Crossposter (ljxp) для работы с полями CCKДовольно распространенный модуль Livejournal Crossposter (ljxp) предназначен для автоматической публикации материалов Drupal-сайтов на Livejournal-совместимых сервисах. Я уже как-то писал о его установке и настройке у себя в блоге и на Drupal.ru. Но у модуля есть один существенный недостаток - он кросспостит в ЖЖ только стандартные заголовки ноды и ее тело (body) в виде тизера или полного текста. Поля CCK в нем полностью игнорируются. И устранить этот недостаток пока можно только хаком. Сам модуль ljxp достаточно прост по своему устройству. Чтобы найти код, который формирует части сообщения передаваемого в ЖЖ через xmlrpc откроем основной файл модуля ljxp.module (я использовал последнюю версию 1.6). Найдем в нем функцию ljxp_post() в строке 402. Именно она и формирует из ноды требуемое по спецификации API ЖЖ сообщение и передает его на сайт. Если вы не используете системное body, то поля переменной $node->teaser и $node->body содержат пустое значение. Именно здесь мы их и можем заполнить любым содержанием. В принципе на этом идея хака понятна, но приведу один практический пример из собственных проектов. Я редко использую body, а для имитации его функционала применяю два поля: Анонс (field_resume) и Полный текст (field_text). В моем случае хак выглядит так (со строки 403): // begin of hack $node->teaser = $node->field_resume[0]['value']; $node->body = $node->field_resume[0]['value'] . $node->field_text[0]['value']; // end of hack В вашем случае потребуется написать другой код, зависящий от названий ваших полей и от того что вы желаете видеть до ЖЖ-ката, а что после. Есть и другой вариант, который подойдет для ноды с любым количеством полей: // begin of hack $node->teaser = node_view($node, TRUE, FALSE, FALSE); $node->body = node_view($node, FALSE, FALSE, FALSE); // end of hack Из недостатков, вы не сможете запостить таким образом поля со ссылками, файлы или картинки. Работа хака проверена только на текстовых полях. Да, знаю хак это плохо, но в данном случае иначе никак. |
|
Direqtor Home Page by ASIADATA. |
|
Отправить комментарий