Помощь Если рейтинг +10 то новость на главную выводится

Тема в разделе "DLE", создана пользователем E-body, 15 ноя 2011.

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

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

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

    E-body

    Регистр.:
    6 сен 2007
    Сообщения:
    981
    Симпатии:
    319
    Версия 9.*
    Пользователи добавляют новости и без отметки вывода на главной. Как новость набирает рейтинг +10 то автоматически отмечается пунктик "выводить на главной". Подскажите как такое реализовать?
     
  2. Горбушка

    Горбушка Ищу её...

    Регистр.:
    2 май 2008
    Сообщения:
    3.113
    Симпатии:
    2.130
    Нужно подправить файл в папке /engine/ajax/ (вроде там оно лежит), отвечающий за увеличение рейтинга... Надо добавить условие, что если рейтинг = 9 и нажат "+", то увеличить рейтинг на +1 и поменять значение allow_main на 1. Можно добавить и обратное: если 10 и нажат "-" - заменить allow_main на 0, а рейтинг понизить на единицу.
     
  3. E-body

    E-body

    Регистр.:
    6 сен 2007
    Сообщения:
    981
    Симпатии:
    319
    Стандартный рейтинг переделан на + - в итоге минусовки уберу чтоб троллям потеху не оставлять. Условие та примерно так и думал что последний в лимите плюсиков апрувит новость на главную allow_main = 1
    С моим то знанием пхп лучше не лезть в код.
    Для 9.2 изменение рейтинга
    PHP:
    ===========================================
    Открыть файл: /engine/ajax/rating.php
    ////////////////////////////////////////////////////////////////////////
    ---Найти:

    if (
    $go_rate OR $go_rate <  1$go_rate 0;


    ---
    Заменить на:

    if (
    $go_rate OR $go_rate < -1$go_rate 0;
    ________________________________________________________________________

    Открыть файл 
    /engine/modules/functions.php
    ////////////////////////////////////////////////////////////////////////

    ---Найти примерно следующее:

    function 
    ShowRating ($id$rating$vote_num$allow true){
     if (
    $rating$rating round(($rating /  $vote_num), 0); else $rating 0;
     
    $rating $rating 17;

     ...
    пропущен код...

     return 
    $rated;
    }


    $rated .= <<<HTML

     ...пропущен код...

     return 
    $rated;
    }

    ---Заменить на:

    function ShowRating(
    $id$rating$vote_num$allow = true) {
     global 
    $is_logged$member_id$config$lang$db;
    if (
    $rating=='null'){$rating="Уже Голосовали!";}else{
     if (
    $rating$rating = round($rating, 0); else $rating = 0;
    if (
    $rating > 0) $rating = "<font color=green><b>+".$rating."</font></b>"; elseif ($rating == 0) $rating="<b>".$rating."</font></b>"; else $rating = "<font color=red><b>".$rating."</font></b>";
    }
     if (!
    $allow) {
      
    $rated = <<<HTML
    <div id="ratig-layer">
    {$rating}</div>
    HTML;

     return 
    $rated;
    }

    $rated .= <<<HTML
    <span id="ratig-layer-{$id}">
     <div id="ratig-layer">
     
       <img src="{THEME}/dleimages/up.gif" title="Нравится(+)" alt="Нравится(+)" class="r2-unit" onclick="doRate('1', '
    {$id}'); return false;" width="16" height="16" align="middle" />
      </a>
      
    {$rating}
       <img src="{THEME}/dleimages/down.gif" title="Не нравится(-)" alt="Не нравится(-)" class="r2-unit" onclick="doRate('-1', '
    {$id}'); return false;" width="16" height="16" align="middle" />
     </div>
    </span>
    HTML;

     return 
    $rated;
    }


    ---
    Найти примерно следующее:

    function 
    ShortRating ($id$rating$vote_num$allow true){
     global 
    $config$lang;

     ...
    пропущен код...

    $rated .= <<<HTML

     ...пропущен код...

     
    $rated  .= "</span>";

     return 
    $rated;
    }


    ---Заменить на:

    function ShortRating(
    $id$rating$vote_num$allow = true) {
     global 
    $config$lang;

     if (
    $rating$rating = round($rating, 0); else $rating = 0;
    if (
    $rating > 0) $rating = "<font color=green><b>+".$rating."</font></b>"; elseif ($rating == 0) $rating="<b>".$rating."</font></b>"; else $rating = "<font color=red><b>".$rating."</font></b>";

     if (!
    $allow) {
      
    $rated = <<<HTML
    <div id="ratig-layer">
    {$rating}</div>
    HTML;

     return 
    $rated;
    }

    $rated "<span id=\"ratig-layer-" $id "\">";
    $rated .= <<<HTML
     <div id="ratig-layer">
       <img src="{THEME}/dleimages/up.gif" title="Нравится(+)" alt="Нравится(+)" class="r2-unit" onclick="doRate('1', '
    {$id}'); return false;" width="16" height="16" align="middle" />{$rating}
       <img src="{THEME}/dleimages/down.gif" title="Не нравится(-)" alt="Не нравится(-)" class="r2-unit" onclick="doRate('-1', '
    {$id}'); return false;" width="16" height="16" align="middle" />
     </div>
    HTML;
            
     
    $rated  .= "</span>";

     return 
    $rated;
    }
    ---
    Найти функцию userrating($name) (должна быть сразу после вышеописанных кодов):

    ---
    Заменить ее на:
    s
    function userrating($name) {
     global 
    $db;

     
    $row $db->super_query("SELECT SUM(rating) as rating, SUM(vote_num) as num FROM " PREFIX "_post where autor ='$name'");

     if (
    $row['num']) $rating round(($row['rating'] /  $row['num']), 0); else $rating 0;
     
    $rating $rating;

     
    $rated = <<<HTML
    {
    $rating}
    HTML;

     return 
    $rated;
    }
    ________________________________________________________________________

    Открыть файл 
    /templates/ваш_шаблон/css/engine.css
    ////////////////////////////////////////////////////////////////////////

    ---Найти:

    .
    rating {
        
    color#757575;
        
    font-size11px;        /* ! */
        
    font-familytahoma;    /* ! */
        
    width85px;
        
    height16px;
    }
    .
    unit-rating {
        list-
    stylenone;
        
    margin0px;
        
    padding0px;
        
    width85px;
        
    height16px;
        
    positionrelative;
        
    background-imageurl(../dleimages/rating.gif);
        
    background-positiontop left;
        
    background-repeatrepeat-x;
    }
    .
    unit-rating li {
        
    text-indent: -90000px;
        
    padding0px;
        
    margin0px;
        
    floatleft;
    }
    .
    unit-rating li a {
        
    displayblock;
        
    width17px;
        
    height16px;
        
    text-decorationnone;
        
    text-indent: -9000px;
        
    z-index17;
        
    positionabsolute;
        
    padding0px;
    }
    .
    unit-rating li a:hover {
        
    background-imageurl(../dleimages/rating.gif);
        
    background-positionleft center;
        
    z-index2;
        
    left0px;
    }
    .
    unit-rating a.r1-unit left0px; }
    .
    unit-rating a.r1-unit:hover width17px; }
    .
    unit-rating a.r2-unit left17px; }
    .
    unit-rating a.r2-unit:hover width34px; }
    .
    unit-rating a.r3-unit left34px; }
    .
    unit-rating a.r3-unit:hover width51px; }
    .
    unit-rating a.r4-unit left51px; }    
    .
    unit-rating a.r4-unit:hover width68px; }
    .
    unit-rating a.r5-unit left68px; }
    .
    unit-rating a.r5-unit:hover width85px; }
    .
    unit-rating li.current-rating {
        
    background-imageurl(../dleimages/rating.gif);
        
    background-positionleft bottom;
        
    positionabsolute;
        
    height16px;
        
    displayblock;
        
    text-indent: -9000px;
        
    z-index1;
    }

    ---
    Заменить на:

    .
    r2-unit{
     
    cursorpointer;
    }
    .
    rating-text {floatleft;}

    #ratig-layer {
     
    font-weightbold;
     
    floatleft;
     
    padding-right5px;
    }

    #ratig-layer a, #ratig-layer a:hover {text-decoration: none;}

    ________________________________________________________________________

    Открыть файл 
    /templates/ваш_шаблон/shortstory.tpl
    ////////////////////////////////////////////////////////////////////////

    ---Найти:

    {
    rating}

    ---
    Заменить на:

    <
    div class="rating-text">Рейтинг:&nbsp;</div>{rating}

    ---
    Тоже самое проделайте и с файлом fullstory.tpl

    Копируем из дистрибутива не сжатый файл js_edit
    .js в engine/ajax/
    открываем ищем:
    -------------
    function 
    doRaterateid ) {
        
    ShowLoading('');

        $.
    get(dle_root "engine/ajax/rating.php", { go_rateratenews_ididskindle_skin }, function(data){

            
    HideLoading('');
            
            $(
    "#ratig-layer").html(data);
            
        });
    };
    ---------------
    меняем
    ---------------
    function 
    doRaterateid ) {
        
    ShowLoading('');

        $.
    get(dle_root "engine/ajax/rating.php", { go_rateratenews_ididskindle_skin }, function(data){

            
    HideLoading('');

            $(
    "#ratig-layer-" id).html(data);

        });
    };
     
Статус темы:
Закрыта.