We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 33272
    • 29 Posts
    Создал папку news в корне сайта, туда поместил скрипты импорта новостей с lenta.ru. Всего скриптов внутри папки 5 штук: index.php, full_news.php, config.php, work.php, news2.php. Создал сниппет с именем "news" с содержанием <?php include ("news/index.php");?>
    Вызываю этот сниппет в шаблоне в левой колонке (колонка создана через css). В левой колонке появились ссылки на новости с lenta.ru с картинками. В файле config.php определена переменная в которй указывается путь к странице, на которой нужно выводить полный текст новости относительно главной страницы сайта, я определил его так $NewsGrabberFullTextFile="news/news2.php". В то место страницы, где должен отображаться текст новости нужно вставить строку: <? echo $string;?> Я вставил ее в файл "news2.php" - содержание news2.php такое <?php
    include("full_news.php");
    $head=iconv(’windows-1251’, ’utf-8’, $head);
    echo $head;
    $string=iconv(’windows-1251’, ’utf-8’, $string);
    echo $string;
    ?>


    Теперь проблема: при наведении мыши на ссылки в левой колонке отображаются ссылки вида http://мой_сайт.ru/news/news2.php?date=1175630400&det=yukos2

    При нажатии на ссылку полная новость открывается, но етественно вне дизайна сайта, просто на белой странице браузера. Как сделать вывод в место основного контента, куда выводятся новости, комменты блога и т.п? Если нужно могу привести здесь исходный код всех скриптов. Может кто нибудь его еще и доработает не только для lenta.ru. Скрипт платный, да черт с ним, авось не убьют за 3 бакса wink. Прошу помочь мне и извините за тупость... не могу пока понять как применить Ditto и другие инструменты... Прошу также объясните популярно, есть например набор из нескольких скриптов, котрые находятся в определенной папке и выполняют определенный функционал. Каким образом интегрировать работу этой папки со скриптами в сайт на modx? Собственно вопрос как выводить рабочий контент из этой папки в соответствующее место текущего шаблон сайта. Надеюсь на вашу помощь, спасибо.



      Какая нахрен подпись?
      • 33272
      • 29 Posts
      Что даже в общих чертах никто не поможет?... Видать правда система не для средних умов... может я спросил про невозможное?
        Какая нахрен подпись?
        • 33272
        • 29 Posts
        Здесь совсем немного кода, привожу здесь содержание всех файлов, очень надеюсь, что кто нибудь переделает это дело для применения в сайтах на modx. Обидно, что сниппет [[news]] с содержанием <?php include ("news/index.php");?> нормально вывел ссылки на новости в левой колонке сайта, а вот дальше сделать так чтобы при нажатии на эти ссылки новости открывались где положено в шаблоне никак не получается. Итак поехали:

        1. config.php
        <?
        $NewsGrabberFullTextFile="news/news2.php";
        $YourSiteTitle="Бизнес форум";// Название Вашего сайта - будет отображаться в теге TITLE при выводе полного текста новости
        $showImg=1;//Отображение картинок в списке новостей. Поставьте 1 если хотите, чтобы картинки отображались и 0 если картинки не нужны

        // Тематика новостей

        // Раскоментируйте строку с нужной Вам тематикой

        //$tema="russia"; // В России
        //$tema="world"; // В мире
        //$tema="mideast"; // Ближний Восток
        //$tema="america"; // Америка
        //$tema="economy"; // Экономика
        $tema="business"; // Бизнес
        //$tema="finance"; // Финансы
        //$tema="politic"; // Политика
        //$tema="most"; // Масс-Медиа
        //$tema="culture"; // Культура
        //$tema="kino"; // Кино
        //$tema="sport"; // Спорт
        //$tema="science"; // Прогресс
        //$tema="internet"; // Интернет
        //$tema="digital"; // Технологии
        //$tema="game"; // Игры
        //$tema="mil"; // Оружие
        ?>

        2. full_news.php

        <?
        if(!isset($date, $det)){exit();}

        include("config.php");
        // ДЛЯ РАБОТЫ НА СЕРВЕРЕ
        $y=date("Y",$date);
        $m=date("m", $date);
        $d=date("d",$date);
        $url="http://lenta.ru/news/$y/$m/$d/$det/index.htm";
        include ("work.php");

        $ctrl="$d.$m.$y, ".date("H.i.s", $date);

        $begin=strpos($string,"<HEAD>");
        $end=strpos($string,"<link");
        $head=substr($string,$begin+7,$end-$begin-7);
        $head=trim($head);
        $head=str_replace("Lenta.ru:","$YourSiteTitle - Новости:",$head);
        $head="\n<!-- newsgrabber by http://coder.nw74.com -->\n".$head."\n";

        $begin=strpos($string, "<img src=http://pix.lenta.ru/news/");
        $end=strpos($string,"Ссылки по теме");
        $dl=$end-$begin;
        $string=substr($string,$begin, $dl);
        $string=strip_tags($string,’<img><p><h2>’);
        $string=str_replace("<p>","
        ",$string);
        $string=str_replace("<P></P>","",$string);
        $string=str_replace("<P class=links>","",$string);
        $string=str_replace("<H2>","<H2 class=\"news_zag\">",$string);

        $begin=strpos($string,">");
        $end=strpos($string, "<H2");
        $end=$end-2;
        $dl=$end-$begin-8;
        $r_str=substr($string, $begin+2, $dl);
        $string=str_replace($r_str,"",$string);

        $string="<div align=\"center\">".$string;
        $string=str_replace("</H2>","</H2></div><div align=\"justify\"",$string);
        $string=$string."</div>";
        ?>

        3. work.php

        <?
        $ch = curl_init();
        $timeout = 15; // set to zero for no timeout
        curl_setopt ($ch, CURLOPT_URL, $url);
        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $string = curl_exec($ch);
        curl_close($ch);

        ?>

        4.index.php


        <?
        include("config.php");

        // // Для локального тестирования
        // $url="lenta.ru.htm";
        // $url="internet.htm";
        // $url="game.htm";
        // include("../russia/local_testing.php");

        // Работа на сервере
        $url="http://www.lenta.ru/".$tema."/";
        include("work.php");

        // Получение списка новостей

        $begin=strpos($string,"</h3>");
        $string=substr($string,$begin);
        $end=strpos($string,"Все новости за текущее число");
        $string=substr($string,0,$end);
        // echo htmlspecialchars($string)."
        ";
        $mas=explode("<div class=\"item\">",$string);
        // $mas=explode("<p class",$string);
        for($i=0; $i<count($mas); $i++)
        {
        // ОПРЕДЕЛЕНИЕ ССЫЛКИ
        $begin=strpos($mas[$i],"<a href=/news/");
        $end=strpos($mas[$i],"/>");
        $link=substr($mas[$i],$begin+8,($end-$begin)-7);
        $mas[$i]=str_replace("
        ","",$mas[$i]);
        $mas[$i]=str_replace("</a>","",$mas[$i]);
        $mas[$i]=str_replace("</div>","",$mas[$i]);
        $begin=strpos($mas[$i], "<a href=/news/");
        $end=strpos($mas[$i],"/>");
        $strrep=substr($mas[$i],$begin,($end-$begin));
        $mas[$i]=str_replace($strrep,"",$mas[$i]);
        $mas[$i]=str_replace("/>","",$mas[$i]);

        if($i==0)
        {
        $begin=strpos($mas[$i],"<div class=\"main-time\">");
        $mas[$i]=substr($mas[$i],$begin);
        $mas[$i]=str_replace("<div class=\"main-time\">","",$mas[$i]);
        $mas[$i]=substr($mas[$i],0,strpos($mas[$i],"полный текст новости"));
        $str=substr($mas[$i],11,strpos($mas[$i],"<h2>")-12);
        $mas[$i]=str_replace($str,"",$mas[$i]);
        $mas[$i]=substr($mas[$i],0,strpos($mas[$i],"</h2>"));
        $mas[$i]=str_replace("<h2>","",$mas[$i]);
        }

        if(strstr($mas[$i],"<img src=http://img.lenta.ru/news/") and $i>0)
        {
        $begin=strpos($mas[$i],"<img src=http://img.lenta.ru/news/");
        $end=strpos($mas[$i],">");
        $st=substr($mas[$i],$begin,($end-$begin));
        $mas[$i]=str_replace($st,"",$mas[$i]);
        $mas[$i]=str_replace(">","",$mas[$i]);
        }
        if(strstr($mas[$i],"</td></tr></table>"))
        {
        $begin=strpos($mas[$i],"</td></tr></table>");
        $mas[$i]=substr($mas[$i],0,$begin);
        }
        $mas[$i]=str_replace("</TD><TD width=50% valign=top>","",$mas[$i]);
        $mas[$i]=str_replace("</TD><TD width=50% valign=top>","",$mas[$i]);
        $mas[$i]=iconv(’windows-1251’, ’utf-8’, $mas[$i]);
        // echo htmlspecialchars($mas[$i])."
        ---
        --".htmlspecialchars($link)."--
        ";
        $data=substr($link,6,10);
        $data=explode("/",$data);
        if(isset($data[1], $data[2]))
        {
        $data=mktime(0,0,0,$data[1],$data[2],$data[0]);
        $det=substr($link,16);



        $det=str_replace("/","",$det);
        $link="$NewsGrabberFullTextFile?date=$data&det=$det";

        if(isset($showImg) && $showImg==0){$mas[$i]=strip_tags($mas[$i]);}
        echo"<a href=\"$link\"> $mas[$i]</a>
        ";

        }
        }
        ?>

        5. проклятый news2.php (чуствую что в нем собака порылась;)

        <?php
        include("full_news.php");
        $head=iconv(’windows-1251’, ’utf-8’, $head);
        echo $head;
        $string=iconv(’windows-1251’, ’utf-8’, $string);
        echo $string;
        ?>

        Гуру помогите пожалуйста адаптировать это дело. Создавал сниппет с содержанием 5 пункта - не работает ни фига. Понятное дело, этот вывод работает только при нажатии на ссылку. Как сделать, чтобы результат по ссылке выводился в шаблон?

        Напоследок файл readme.txt

        1) Отредактируйте файл config.php

        а) Выберите нужную категорию новостей, соответствующую тематике Вашего сайта. Для этого нужно удалить символы // в начале строки (раскомментировать строку). Например, Ваш сайт посвящен играм. Чтобы отображать новости раздела игры необходимо привести строку
        //$tema="game"; // Игры

        к виду

        $tema="game"; // Игры

        ВНИМАНИЕ!!! Все остальные строки этого блока должны быть закоментированы

        б) Пропишите в переменной $NewsGrabberFullTextFile путь к странице, на которой вы собираетесь выводить полный текст новости относительно главной страницы сайта. Например $NewsGrabberFullTextFile="news.php".

        в) Пропишите в переменной $YourSiteTitle название Вашего сайта - оно будет отображаться на странице с полным текстом новости в теге TITLE.

        г) Если хотите, чтобы картинки все-таки отображались в списке новостей - измените значение переменной $showImg=0 на $showImg=1.

        2) Вставьте в то место страницы, где Вы планируйте отображать список новостей строку :

        <? include ("lentaru_newsgrabber/index.php");?>

        3) Для отображения тегов title и description в файле, указанном в переменной $NewsGrabberFullTextFile, нужно заменить строки:

        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
        <title>Untitled Document</title>
        на

        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
        <?
        include("lentaru_newsgrabber/full_news.php");
        echo $head;
        ?>

        Переменная $head содержит уже сформированные теги title и description

        4) Вставьте в то место страницы, где должен отображаться текст новости строку:

        <? echo $string;?>

        Если все сделано правильно, то на главной странице должен отображаться список новостей на заданную тему, а на странице, указанной в переменной $NewsGrabberFullTextFile должен отображаться полный текст новости.



          Какая нахрен подпись?
          • 33272
          • 29 Posts
          Ну спасибо огромное за помощь... поддержку я получил здесь хорошую... теперь осталось придумать куда девать мощь и гибкость системы grin
            Какая нахрен подпись?
            • 33694
            • 742 Posts
            Поддержку никто никому не обещал, т.ч. не нужно сарказма.

            Как видите, задача не на столько проста, чтоб даже у тех, кто глубоко знает систему в мозгу сразу родилось приемлимое легкореализуемое решение. Над нелегкореализуемым, нужно хорошенько подумать, поковыряться, пописать... потом всё это здесь изложить.
            Думаете тут все ради этого и сидят, и других дел нет ни у кого?
              • 33272
              • 29 Posts
              Это понятно, что никто никому ничего не должен...ну неужели никто не может объяснить как это сделать или объяснить что так невозможно сделать...какое то решение должно же быть.
                Какая нахрен подпись?
                • 33694
                • 742 Posts
                Читайте внимательно мой предыдущий пост, и особенно его последнее предложение.

                > Это понятно, что никто никому ничего не должен...
                Что то не видно, что вам понятно.
                  • 33272
                  • 29 Posts
                  > Что то не видно, что вам понятно.

                  Я что то не пойму ты меня строишь или что? Я попросил помощи у сообщества в надежде, что кто нибудь мне поможет. И не надо отвечать за всех, что у всех дел полно и т.п. Не можешь сам помочь по конкретно заданному вопросу нехуй учить меня жизни и писать в моей теме свои нравоучения. Или ты один тут такой умный что больше никто не сможет помочь?
                    Какая нахрен подпись?