Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Добавление новых строк во все новости

Тема в разделе "Вопросы- ответы", создана пользователем Select-Films.ru, 12 апр 2016.

12.04.16 в 03:26
13.08.16 в 15:09
90
7.633
0
  1. TopicStarter Overlay
    Select-Films.ru

    Select-Films.ru Бывалый

    Регистрация:
    5 апр 2016
    Сообщения:
    239
    Лучших ответов:
    0
    Рейтинги:
    +54 / 2 / -0
    [​IMG]

    Йо-хо-хо друзья! Возник вопрос, и дабы не ломать голову - спрошу, так как возможно что изобретать велосипед не придется.

    Имеем допустим 1000 фильмов на DLE движке 10.6 цилиндровом. Каждый фильм имеет в fullstory описание к примеру состоящее из:
    • - оригинального названия
    • - года
    • - страны
    • - жанра
    Можно ли, заполнить разом во всех имеющихся фильмах, вновь созданную строку - к примеру: "дата релиза"?
    На DLE стоят модули PKinoPoisk/HD Light/MoonSerials (на всякий случай указал).
    Или только ручками по каждому фильму тык-тык-тык....?

    Спасибо.
     
  2. Intention

    Intention Местный

    Регистрация:
    15 янв 2016
    Сообщения:
    2.098
    Лучших ответов:
    0
    Рейтинги:
    +690 / 2 / -0
    Ну только если одну и туже :D
    Ну и как всегда банальщина - свой специальный парсер, при заходе в новость дописывает данные с КП
    автоматом
     
  3. TopicStarter Overlay
    Select-Films.ru

    Select-Films.ru Бывалый

    Регистрация:
    5 апр 2016
    Сообщения:
    239
    Лучших ответов:
    0
    Рейтинги:
    +54 / 2 / -0
    Печаль... :( Я так и думал, что скорее всего каждую новость по отдельности нужно обрабатывать. Надо нанимать негров...
     
  4. iNol

    Команда форума VIP Кинотрафик v2

    Регистрация:
    14 сен 2015
    Сообщения:
    476
    Лучших ответов:
    0
    Рейтинги:
    +306 / 0 / -0
    Такой парсер написать - кружка чая остыть не успеет.
     
    • Нравится Нравится x 1
  5. iNol

    Команда форума VIP Кинотрафик v2

    Регистрация:
    14 сен 2015
    Сообщения:
    476
    Лучших ответов:
    0
    Рейтинги:
    +306 / 0 / -0
    Так, навскидку, не проверял в работе

    Код для ololo.php:

    Код:
    <?php
    if( ! defined( 'DATALIFEENGINE' ) ) die("I have nothing to say to you");
    
    
    // ОБЯЗАТЕЛЬНО ЗАПОЛНИТЕ ДАННЫЕ ОПЦИИ СВОИМИ ЗНАЧЕНИЯМИ!
    $ololo_opt = array (
    
    'field_prem' => 'заполнить', // Доп поле, куда будут записываться данные по премьере.
    
    );
    
    // ДАЛЕЕ НИЧЕГО НЕ ТРОГАТЬ!
    global $row;
    $xfieldsdata = xfieldsdataload($row["xfields"]);
    $newsid = is_numeric($newsid) ? intval($newsid) : false; if($newsid === false) return; 
    $kpid = is_numeric($kpid) ? intval($kpid) : false; if($kpid === false) return;
    
    if($xfieldsdata[$ololo_opt["field_prem"]] == '')
    {
        $api_result = file_get_contents('http://api.kinopoisk.cf/getFilm?filmID='.$kpid);
        $api_result = json_decode($api_result, true);
    
        $xfieldsdata[$ololo_opt["field_prem"]] = $api_result['rentData']['premiereRU'];
    
        foreach($xfieldsdata as $key => $value) $arr_field[] = $key . "|" . str_replace('|', '&#124;', str_replace("'", '&#039;', $value));
        $xfieldsdata = implode("||", $arr_field);
        $db->query( "UPDATE " . PREFIX . "_post SET xfields = '$xfieldsdata' WHERE id = {$newsid}");
    }
    unset($xfieldsdata);
    ?>
    
    Засунуть файл в папку modules
    В шаблоне фуллстори сделать подключение:
    {include file="/engine/modules/ololo.php?newsid={news-id}&kpid=[xfvalue_kpid]"} где
    [xfvalue_kpid] - поле с id кинопоиска
     
    • Нравится Нравится x 4
  6. Intention

    Intention Местный

    Регистрация:
    15 янв 2016
    Сообщения:
    2.098
    Лучших ответов:
    0
    Рейтинги:
    +690 / 2 / -0
    @iNol, Зря)) щас скажет что ему не доп полем надо)))
     
  7. Жека

    Команда форума VIP Кинотрафик v2

    Регистрация:
    16 авг 2015
    Сообщения:
    1.248
    Лучших ответов:
    0
    Рейтинги:
    +570 / 9 / -0
    А можно вставить айди кинопоиска во все новости? У меня в половине нету
     
  8. Beats

    Beats Бывалый

    Регистрация:
    17 июл 2015
    Сообщения:
    198
    Лучших ответов:
    0
    Рейтинги:
    +14 / 0 / -0
    @iNol,
    1 Создал доп поле premiereru
    2 Создал ololo.php и закинул в /engine/modules/
    3 Прописал свои значения
    Код:
    'field_prem' => 'premiereru', // Доп поле, куда будут записываться данные по премьере.
    4 в fullstory прописал
    {include file="/engine/modules/ololo.php?newsid={news-id}&kpid=[xfvalue_idkp]

    Ничего не происходит
    win 1251 dle 10.4
     
  9. iNol

    Команда форума VIP Кинотрафик v2

    Регистрация:
    14 сен 2015
    Сообщения:
    476
    Лучших ответов:
    0
    Рейтинги:
    +306 / 0 / -0
    До - http://prntscr.com/ar789p
    После - http://prntscr.com/ar78f8
    Код - http://prntscr.com/ar78he - не изменился
    Шаблон - http://prntscr.com/ar78og

    Вывод - что-то неверно сделано или подключены какие-то другие модули, пишущие в доп поля.
     
  10. Beats

    Beats Бывалый

    Регистрация:
    17 июл 2015
    Сообщения:
    198
    Лучших ответов:
    0
    Рейтинги:
    +14 / 0 / -0
    @iNol, провтыкал "}
    ))
    и еще, я так понимаю в любом случае нужно зайти в редактировать новость и пересохранить?
     
  11. iNol

    Команда форума VIP Кинотрафик v2

    Регистрация:
    14 сен 2015
    Сообщения:
    476
    Лучших ответов:
    0
    Рейтинги:
    +306 / 0 / -0
    Нет. Если включен кэш, дата не появится на страничках, пока он не будет сброшен.
     
  12. Beats

    Beats Бывалый

    Регистрация:
    17 июл 2015
    Сообщения:
    198
    Лучших ответов:
    0
    Рейтинги:
    +14 / 0 / -0
    @iNol, разобрался
    а как сделать дату типа 16 мая 2015, а не 16.05.2015 ??
     
  13. iNol

    Команда форума VIP Кинотрафик v2

    Регистрация:
    14 сен 2015
    Сообщения:
    476
    Лучших ответов:
    0
    Рейтинги:
    +306 / 0 / -0
    Если извращенно то:
    Код:
    $kokoko = $api_result['rentData']['premiereRU'];
    if(!empty($kokoko)) $kokoko = str_replace(array('.01.','.02.',итд),array(' января ',' февраля ', итд),$kokoko);
    $xfieldsdata[$ololo_opt["field_prem"]] = $kokoko;
    
     
  14. Beats

    Beats Бывалый

    Регистрация:
    17 июл 2015
    Сообщения:
    198
    Лучших ответов:
    0
    Рейтинги:
    +14 / 0 / -0
    И наверное последний вопросик!))
    Возможно ли в ololo.php прописать еще например Премьера (мир) и Премеьра (укр)?
    Спасибо!
     
  15. zaren3000

    zaren3000 Бывалый

    Регистрация:
    2 ноя 2015
    Сообщения:
    914
    Лучших ответов:
    0
    Рейтинги:
    +194 / 0 / -0
    а как сам ид кп прописать в новости в поле? не очень понимаю
     
  16. zaren3000

    zaren3000 Бывалый

    Регистрация:
    2 ноя 2015
    Сообщения:
    914
    Лучших ответов:
    0
    Рейтинги:
    +194 / 0 / -0
    'field_prem' => 'premiereru', // Доп поле,

    вместо field_prem - field_idkp?
     
  17. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.411
    Лучших ответов:
    32
    Рейтинги:
    +4.034 / 116 / -0
    А лучше так
    PHP:
    <?php
    if( ! defined'DATALIFEENGINE' ) ) die("I have nothing to say to you");

    // ОБЯЗАТЕЛЬНО ЗАПОЛНИТЕ ДАННЫЕ ОПЦИИ СВОИМИ ЗНАЧЕНИЯМИ!
    $ololo_opt = array (
        
    'field_prem' => 'заполнить'// Доп поле, куда будут записываться данные по премьере.
    );

    // ДАЛЕЕ НИЧЕГО НЕ ТРОГАТЬ!
    $newsid is_numeric($newsid) ? intval($newsid) : false; if(!$newsid) return;
    $kpid is_numeric($kpid) ? intval($kpid) : false; if(!$kpid) return;
    $xf_row $db->super_query("SELECT xfields FROM " PREFIX "_post WHERE `id`='{$newsid}'");
    $xfieldsdata xfieldsdataload($xf_row["xfields"]);
    $db->free();
    if(empty(
    $xfieldsdata[$ololo_opt["field_prem"]]))
    {
        
    $api_result file_get_contents('http://api.kinopoisk.cf/getFilm?filmID='.$kpid);
        
    $api_result json_decode($api_resulttrue);

        
    $xfieldsdata[$ololo_opt["field_prem"]] = $api_result['rentData']['premiereRU'];

        foreach(
    $xfieldsdata as $key => $value$arr_field[] = $key "|" str_replace(array('|',"'"), array('&#124;','&#039;'), $value);
        
    $xfieldsdata implode("||"$arr_field);
        
    $db->query"UPDATE " PREFIX "_post SET xfields = '$xfieldsdata' WHERE `id`='{$newsid}'");
    }
    unset(
    $arr_field);
    unset(
    $ololo_opt);
    $db->free();
    И не использовать global $row;
     
  18. zaren3000

    zaren3000 Бывалый

    Регистрация:
    2 ноя 2015
    Сообщения:
    914
    Лучших ответов:
    0
    Рейтинги:
    +194 / 0 / -0
    @Gameer а можешь по моей теме подсказать?

    а как сам ид кп прописать в новости в поле? не очень понимаю
     
  19. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.411
    Лучших ответов:
    32
    Рейтинги:
    +4.034 / 116 / -0
    не понял, куда и что прописать ?
     
  20. zaren3000

    zaren3000 Бывалый

    Регистрация:
    2 ноя 2015
    Сообщения:
    914
    Лучших ответов:
    0
    Рейтинги:
    +194 / 0 / -0
    мне нужно прописать id кинопоиска во все новости автоматом в свое допполе. как это сделать?
     
Яндекс.Метрика