Здравствуйте, друзья. Итак, мучаюсь уже давно, но никак не могу найти решение. Обращаюсь за помощью.
На сайте стоит модуль feeds, которые собирает новости с rss источников. Есть полк filed_source и поле filed_yii.
Filed_source- это url новости на сайте-источнике
Field_yii - должно быть поле с укороченной ссылкой на этот источник. То есть, объясняя проще: для сбора статистики, когда и сколько человек перешли по этой ссылке. Обычное укорочение ссылок. Есть свой сервис для этого на yourls.
Есть api, по которому легко можно программно укоротить ссылку. Но вот проблема: как перезаписать значение поля перед сохранением материала?
Первый вариант думал сделать с Feeds Tamper PHP, но так и не понял каким образом поставить значение поля field_source
Вот сам код:
<?php
$username = '111';
$password = '333';
// EDIT THIS: the query parameters
$url = Здесь должно быть значение поля field_source;
$keyword = 'ozh';
$title = 'Super blog!';
$format = 'simple';
$api_url = 'http://yi2.ru/yourls-api.php';
///////////////////////////////////////////////////////////////////
///////////////////////////// SCRIPTS /////////////////////////////
///////////////////////////////////////////////////////////////////
// Init the CURL session
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $api_url );
curl_setopt( $ch, CURLOPT_HEADER, 0 ); // No header in the result
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); // Return, do not echo result
curl_setopt( $ch, CURLOPT_POST, 1 ); // This is a POST request
curl_setopt( $ch, CURLOPT_POSTFIELDS, array( // Data to POST
'url' => $url,
'keyword' => $keyword,
'title' => $title,
'format' => $format,
'action' => 'shorturl',
'username' => $username,
'password' => $password
) );
$data = curl_exec($ch);
curl_close($ch);
return
$data;?>
Второй вариант это rules, но опять таки, никогда с ним не работал и не знаю как это сделать.
Буду благодарен за подсказку и наводку)
Комментарии
Неужели никто не знает решения?
Покажите ваш код сохранения материала
Я не очень вас Вас понял. Нода создаётся модулем Feeds.
Как вариант менять вашу ссылку уже после сохранения материала модулем Feeds. Загрузили уже созданный материал, поменяли ссылку, сохранили материал
Спасибо большое, но вопрос в другом. Как её получить? Это можно сделать и с рулс и программно. Но, мне нужно получить значение поля field_source и подставить значение в код для генерации ссылки.
Как-то так:
<?php
$node = node_load($nid); $longUrl = $node->field['field_LONGURL'][LANGUAGE_NONE][0]['value']; $shortURL = СУПЕРФУНКЦИЯ_ИЗМЕНЕНИЯ_URL($longUrl); $node->field['field_SHORTURL'][LANGUAGE_NONE][0]['value'] = $shortURL; node_save($node);
?>
Писал на коленке
Спасибо большое. Подскажите, пожалуйста, где использовать этот код?
После импорта через модуль Feeds. Скорее всего нужно будет отловить это событие через хук