Вход • Регистрация

Как импортировать стороннюю RSS-ленту в diafan.CMS?

  • 18 марта 2014 г.
  • Как импортировать RSS (допустим из IPB) в блок на сайте?
    • 18 марта 2014 г. , редакция: 18 марта 2014 г.
    • Как временный вариант:
      Код

      <?php

      include_once("write_rss.php");//подключаем файл с функцией вывода RSS-новостей

      //адрес новостей (URL-адрес RSS потока)
      $url_rss="http://www.diafan.ru/news/rss/";

      //количество выводимых новостей
      $kol_print_news=10;
      //имя файла для хранения RSS-новостей на локальном сервере (то есть кэш-файл)
      $file_rss="cache_rss.xml";
      //время обновления, в часах
      $hclock=1;

      print_rss($url_rss,$file_rss,$hclock,$kol_print_news);//вызываем функцию вывода RSS-новостей

      ?>
      • 19 марта 2014 г.
      • Спасибо! Вечером постараюсь попробовать.

        Вопросы.
        1. write_rss.php - такого файла в системе не нашел, его откуда брать или вот это содержимое класть в него?
        2. Можно ли 2 и более потоков?
        • 20 марта 2014 г.
        • Ну скрипт не мой, нашёл в закромах, когда-то пользовался. Файл write_rss.php в архиве
          • 20 марта 2014 г.
          • Понял, что-то сразу этот файл не заметил
            • 20 марта 2014 г. , редакция: 20 марта 2014 г.
            • заголовок поправьте у темы (как испортировать), а то не понятно: то ли "импортировать", то ли "экспортировать", то ли вовсе "испортить".
  • 22 апреля 2015 г. , редакция: 22 апреля 2015 г.
  • В тот раз из форума IPB импортировал нормально. А теперь импортирую rss из другого движка.
    Вопрос, как ограничит количество выводимых символов текст из RSS.
    Использую тот же файл write_rss.zip выложенный Евгением. Часть кода в том файле изменил на:
    Код
    $t.="<div class='forum-topic'>
    <div class='topic-title'><a href='".$link[1]."' target='_blank'>".$title[1]."</a></div>
    <div class='anons'>" .$description[1]. "</div>"
    .( $date ? "<div class='topic-date'>".date("d.n.Y",$date) : "" ) ."</div>
    </div>";

    как прописать вместо:
    <div class='anons'>" .$description[1]. "</div>"
    чтобы можно было обрезать на определенном количестве символов?
    Пытаюсь подсмотреть отсюда, но не пойму как применить...
    • 22 апреля 2015 г. , редакция: 22 апреля 2015 г.
    • Попробуй это:
      Код
      $t.="<div class='forum-topic'>
      <div class='topic-title'><a href='".$link[1]."' target='_blank'>".$title[1]."</a></div>";

      $text = $description[1];
      $text = strip_tags($text); // удаляем html теги, так как они считаются за слова.
      $array = explode(" ", $text); // перерабатываем строку в массив
      $array = array_slice($array, 0, 20); // выбираем первые 20 слов-элементов
      $newtext = implode(" ", $array); // массив снова перерабатываем в строку

      if ($newtext != $text) {
      echo '<div class="anons"><p>' . $newtext . '...' . '</p></div>';
      } // если анонс больше указанного количества символов то добавляем многоточие при обрезке
      else {
      echo '<div class="anons"><p>' . $newtext . '</p></div>';
      }


      "<div>"
      .( $date ? "<div class='topic-date'>".date("d.n.Y",$date) : "" ) ."</div>
      </div>";
      • 22 апреля 2015 г.
      • Благодарю Вас! Ограничение по количеству слов работает как надо.
        Но теперь надо как-то мне разобраться что делать с дивами, а то даты пропали, а заголовки топиков все оказались не в своем месте (ниже анонсов одним списком).
  • 22 апреля 2015 г.
  • Переделал код Андрея вот так:
    Код
    // Выводим блок топика
    echo '<div class="forum-topic">';
    echo '<div class="topic-title"><a href="'.$link[1].'" target="_blank">'.$title[1].'</a></div>';

    $text = $description[1];
    $text = strip_tags($text); // удаляем html теги, так как они считаются за слова.
    $array = explode(" ", $text); // перерабатываем строку в массив
    $array = array_slice($array, 0, 20); // выбираем первые 20 слов-элементов
    $newtext = implode(" ", $array); // массив снова перерабатываем в строку
    if ($newtext != $text) {
    echo '<div class="anons"><p>' . $newtext . '...' . '</p></div>';
    } // если анонс больше указанного количества символов то добавляем многоточие при обрезке
    else {
    echo '<div class="anons"><p>' . $newtext . '</p></div>';
    }

    echo '<div class="topic-date">' .( $date ? "".date("d.n.Y",$date) : "" ) .'</div>';
    echo '</div>';
    // Конец блока топика


    Теперь работает как надо.
    Андрей, спасибо! Выручили!

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум