Хак Найти похожие новости

Тема в разделе "DLE", создана пользователем dragonstyle, 25 июл 2009.

Информация :
Актуальная версия DataLife Engine 11.2
( Final Release v.11.2 | Скачать DataLife Engine | Скачать 11.2 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.1 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. dragonstyle

    dragonstyle Читатель

    Заблокирован
    Регистр.:
    17 ноя 2008
    Сообщения:
    524
    Симпатии:
    479
    [​IMG]
    Описание: Возможность при добавлении новости с сайта проверять на дубликаты, как в админке..

    Устоновка:
    1. в файле engine/modules/addnews.php
    находим:
    Код:
    $tpl->set( '{tags}', '' );
    после вставляем:
    Код:
    $relatednews = "
        <SCRIPT LANGUAGE="JavaScript">
        function find_relates ( )
        {
            var ajax = new dle_ajax();
    
            var title = ajax.encodeVAR( document.getElementById('title').value );
            var varsString = "title=" + title;
    
            ajax.onShow ('');
            ajax.requestFile = 'engine/ajax/find_relates.php';
            ajax.method = 'POST';
            ajax.element = 'related_news';
            ajax.sendAJAX(varsString);
    
            return false;
    
        };
        </SCRIPT>
    <tr>
            <td width="140" height="29" style="padding-left:5px;">{$lang['addnews_title']}</td>
            <td><input class="bbcodes" type="button" onClick="find_relates(); return false;" value="Найти похожие новости" ><span id="related_news"></span></td>
    </tr>
    ";
                $tpl->set( '{related}',  $relatednews);
    2. в файле templates/ваш_шаблон/addnews.tpl
    вставляем тег {related} в любое удобное для вас место, там будет выводиться кнопка "Найти похожие новости".

    Вот и всё, Удачи.
     
    eshkin нравится это.
  2. pilisos

    pilisos Постоялец

    Регистр.:
    17 авг 2008
    Сообщения:
    55
    Симпатии:
    3
    [Хак] Найти похожие новости

    Не работает на 8.0 пишет:
    Parse error: syntax error, unexpected T_STRING in /var/www/pilisos/data/www/qiq2.ru/engine/modules/addnews.php on line 380
    В чем может быть причина помогите настроить?
     
  3. Dark Angell

    Dark Angell Читатель

    Заблокирован
    Регистр.:
    29 фев 2008
    Сообщения:
    1.036
    Симпатии:
    690
    строчку не дано выложить на которую ругаеться?
     
  4. pilisos

    pilisos Постоялец

    Регистр.:
    17 авг 2008
    Сообщения:
    55
    Симпатии:
    3
    Я же написал что как добавляю код при нажатии на добавить новость пишет то что я выложил вверху.

    Добавлено через 16 минут
    Здесь пишут по другому но тоже не работает:
    _http://4dle.ru/hacks/1147157800-najjti-pokhozhie-novosti_html

     
  5. dragonstyle

    dragonstyle Читатель

    Заблокирован
    Регистр.:
    17 ноя 2008
    Сообщения:
    524
    Симпатии:
    479
    :
    Так сделай:

    Код:
    ===============================
    ===============1===============
    ===============================
    в modules/addnews.php
    после: 
    ---
    			$tpl->set( '{tags}', '' );
    ---
    вставить:
    ---
    $relatednews = "
        <SCRIPT LANGUAGE=\"JavaScript\">
    	function find_relates ( )
    	{
    		var ajax = new dle_ajax();
    
    		var title = ajax.encodeVAR( document.getElementById('title').value );
    		var varsString = \"title=\" + title;
    
    		ajax.onShow ('');
    		ajax.requestFile = 'engine/ajax/find_relates.php';
    		ajax.method = 'POST';
    		ajax.element = 'related_news';
    		ajax.sendAJAX(varsString);
    
    		return false;
    
    	};
        </SCRIPT>
    <tr>
            <td width=\"140\" height=\"29\" style=\"padding-left:5px;\">{$lang['addnews_title']}</td>
            <td><input class=\"bbcodes\" type=\"button\" onClick=\"find_relates(); return false;\" value=\"Найти похожие новости\" ><span id=\"related_news\"></span></td>
    </tr>
    ";
    			$tpl->set( '{related}',  $relatednews);
    ---
    ===============================
    ==============2================
    ===============================
    в templates/ваш_шаблон/addnews.tpl
    куда нужно выводить форму вставить:
    ---
    {related}
    --- 
    ===============================
    ===============================
    ===============================
    и для title в templates/ваш_шаблон/addnews.tpl
    прописать id="title"
    вот что примерно получиться:
    <input type="text" id="title"  name="title"  class="
    ;f_textarea" value="" style="width:98%; height:15px" maxlength="150">
    ====
    Удачи.
     
    pilisos нравится это.
  6. Tadasi

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    а так что бы произвести поиск похожих новостей по title и удалить их все из уже имеющейся базы? Очень нужен такой скриптик.
    p.s. есть скриптик, который чистит базу на похожие новости ориентируясь на линк картинки - кому надо пишите, выложу ,)
     
  7. pilisos

    pilisos Постоялец

    Регистр.:
    17 авг 2008
    Сообщения:
    55
    Симпатии:
    3
    Да интересует выкладывай, я так понял он удаляет одинаковые новости с сайта?
     
  8. Tadasi

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    Он удаляет одинаковые новости, основываясь на одинаковые урлы картинок в новостях!

    PHP:
    <?PHP
    //                          COPYRIGHT FDSTAR.NET
    @error_reporting(E_ALL E_NOTICE);
    @
    ini_set('display_errors'true);
    @
    ini_set('html_errors'false);
    @
    ini_set('error_reporting'E_ALL E_NOTICE);

    define('DATALIFEENGINE'true);

    $member_id FALSE;
    $is_logged FALSE;
    $content '';

    define('ROOT_DIR'dirname (__FILE__));
    define('ENGINE_DIR'ROOT_DIR.'/engine');
    define('DROP_IMAGES'false);


    @include (
    ENGINE_DIR.'/data/config.php');
    if (!
    $config['version_id']) die("Datalife Engine not installed. Please run install.php");
    require_once 
    ENGINE_DIR.'/classes/mysql.php';
    require_once 
    ENGINE_DIR.'/data/dbconfig.php';

    $sql "SELECT *,count(*) as `post_counter` 
            FROM `"
    PREFIX"_post` 
            GROUP BY `alt_name` 
            ORDER BY `post_counter` DESC"
    ;
    $res $db->query($sql);
    $row $db->get_row($res);

    if(
    $row && count($row))
    {
        if(
    $row['post_counter']<=1)
        {
            die(
    'COMPLETE !');
        }
        if(
    DROP_IMAGES)
        {
            
    $sql"SELECT * 
                    FROM `"
    PREFIX"_images` 
                    WHERE `news_id`='
    {$row['id']}' ";
        
            
    $res2 $db->query($sql);
            while(
    $row2 $db->get_row($res2))
            {
                
    $images_array split("\|\|\|"$row2['images']);
                foreach(
    $images_array as $image)
                {
                    if(
    $image trim($image))
                    {
                        
    $image ltrim($image'/');
                        if(
    preg_match('#([0-9]{4}\-[0-9]{2}/)(.*)$#'$image$match))
                        {
                            
    $img_date_dir $match[1];
                            
    $img_name basename($match[2]);
                            
                            
    $img_thumb_address ROOT_DIR'/uploads/posts/'$img_date_dir'thumbs/'$img_name;
                            
    $img_address ROOT_DIR'/uploads/posts/'$img_date_dir$img_name;
        
                            @
    $img_thumb_address_delete = (int)unlink($img_thumb_address);
                            @
    $img_address_delete = (int)unlink($img_address);
                            
                            
    $content.= "{$img_address} {$img_address_delete} <br /> {$img_thumb_address} {$img_thumb_address_delete}<hr />";
                        }
                        else
                        {
                            
    $content.= '<br />NO IMAGES FOUND<br />';
                        }
                    }
                }
                
    $sql "DELETE FROM `"PREFIX"_images` WHERE `id`='{$row2['id']}'";
                
    $db->query($sql);
                
    $content.= $sql"<hr />";
            }

        }    
        
        
    $sql"DELETE FROM `"PREFIX"_post` WHERE `id`='{$row['id']}' ";
        
    $db->query($sql);
        
    $content.= $sql"<hr />";
    }


    echo <<<HTML

    <html>
        <head>

    <script language="JavaScript" DEFER><!--
    function reload_page()
    {
             document.location.reload();
    }  
    --></script>

        </head>
        <body onload="reload_page();">
              
    {$content}    
        </body>
    </html>

    HTML;

    ?>
     
    pilisos нравится это.
  9. laursen

    laursen Постоялец

    Регистр.:
    7 мар 2008
    Сообщения:
    107
    Симпатии:
    19
    Борьба с одинаковыми новостями, которые люди постят продожается, в связи с этим вопрос, возможно ли сделать кнопку "найти похожие новости" в админке прямо в списке всех новостей? То есть, у каждой новости справа как на скрине появляется кнопочка, при нажатии которой выпадает список похожих новостей.

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

    P.S если это сложно сделать, то пожалуйста назовите цену, за которую это реально реализовать.
     

    Вложения:

    • scrin.gif
      scrin.gif
      Размер файла:
      62,9 КБ
      Просмотров:
      19
Статус темы:
Закрыта.