DataLife Engine > Версия для печати > Fav-All 2.0

/favorites/films/ » Любимые фильмы

Выполнить запрос в БД:

ALTER TABLE `dle_post_extras` ADD `favFilmsSum` mediumint( 8 ) NOT NULL;
ALTER TABLE `dle_post_extras` ADD `favWillLookSum` mediumint( 8 ) NOT NULL;
ALTER TABLE `dle_post_extras` ADD `favFindWebSum` mediumint( 8 ) NOT NULL;
ALTER TABLE `dle_post_extras` ADD `favWatchedSum` mediumint( 8 ) NOT NULL;

ALTER TABLE `dle_users` ADD `favFilms` text NOT NULL;
ALTER TABLE `dle_users` ADD `favWillLook` text NOT NULL;
ALTER TABLE `dle_users` ADD `favFindWeb` text NOT NULL;
ALTER TABLE `dle_users` ADD `favWatched` text NOT NULL;

Из архива залить файлы на серверengineajaxfavoritesall.phpenginemodulesfavoritesall.phpenginemodulesfavoritesuser.phpenginemodulesfavoritesprofile.phptemplatesDefaultimagesfav.png заменив папку Default на соответствующую вашему активному шаблонуtemplatesDefaultfavoritesall.tpl заменив папку Default на соответствующую вашему активному шаблонуfavoritesall.tpl — использовать как краткий вывод постов

В styles.css

.FullPostFav{display: block;margin: 5px -10px 0 20px;height: 23px;width: 240px;}
.favAllForm{background:#ffffff;background:-moz-linear-gradient(top,#ffffff 0%,#e2e2e2 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#ffffff),color-stop(100%,#e2e2e2));background:-webkit-linear-gradient(top,#ffffff 0%,#e2e2e2 100%);background:-o-linear-gradient(top,#ffffff 0%,#e2e2e2 100%);background:-ms-linear-gradient(top,#ffffff 0%,#e2e2e2 100%);background:linear-gradient(to bottom,#ffffff 0%,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff',endColorstr='#e2e2e2',GradientType=0 );border:1px #999 solid;color: #333;font-family:tahoma,verdana;float:right;font-size:11px;position: relative;text-align:center;height:21px;width:115px;display: inline-block;vertical-align: top;}
.FullPostFav .favAllForm{width: 238px;}
.favAllM{background:url(../images/fav.png) right -20px no-repeat;cursor:pointer;padding:3px 0;}
.favAllP{display:none;background:#fff;border:1px #3b5998 solid;-webkit-box-shadow:0 2px 6px -1px rgba(0,0,0,0.5);-moz-box-shadow:0 2px 6px -1px rgba(0,0,0,0.5);box-shadow:0 2px 6px -1px rgba(0,0,0,0.5);position:absolute;right:-1px;text-align:left;top:-1px;width:200px;z-index:98;}
.favAllP.open{display:block;}
.FullPostFav .favAllP {width: 238px;}
.favAllP > div{display:block;}
.favAllP .favAllT{background-color:#6d84b4;background:#6d84b4 url(../images/fav.png) right 1px no-repeat;border-bottom:1px #3b5998 solid;color:#fff;cursor:pointer;display:block;padding:4px 8px;}
.favAllP .favF{display:block;cursor:pointer;padding:4px 21px;}
.favAllP .plus:hover{background-color:#F1F1F1;}
.favAllP .minus{background:url(../images/fav.png) left -41px no-repeat;font-weight:bold;}

В кратком, полном и в шаблонах выводимых через custom

Прописать (Широкая вкладка 238px)

[not-group=5]


            Мои фильмы



[/not-group]

Прописать (Вкладка по уже 115px)

[not-group=5]

        Мои фильмы


[/not-group]

в engineclassesjs загрузить из архива с DLE не сжатый Developeruncompresseddle_js.js

После строчек

function doFavorites( fav_id, event )
{
    ShowLoading('');

    $.get(dle_root + "engine/ajax/favorites.php", { fav_id: fav_id, action: event, skin: dle_skin }, function(data){

        HideLoading('');

        $("#fav-id-" + fav_id).html(data);

    });

    return false;
};

Дописать

function favAllFormOpen(film_id, fav) {
    $.get(dle_root + "engine/ajax/favoritesall.php", { film_id: film_id, fav: fav }, function(data){
        $("#favAllForm-" + film_id + " .favAllP").html(data);
        $(".favAllForm .favAllP").removeClass("open");
        $("#favAllForm-"+ film_id +" .favAllP").addClass("open");
    });
    return false;
};

function favAllFormClose(film_id) {
    $("#favAllForm-" + film_id + " .favAllP").removeClass("open");
    $("#favAllForm-" + film_id + " .favAllP").empty();
};
$(document).mouseup(function (e) {
    var container = $(".favAllForm");
    if (container.has(e.target).length === 0){
        $(".favAllForm .favAllP").removeClass("open");
        $(".favAllForm .favAllP").empty();
   }
});

function favFilms( film_id, statys, fav) {
    ShowLoading('');
    $.get(dle_root + "engine/ajax/favoritesall.php", { film_id: film_id, statys: statys, fav: fav }, function(data){
        HideLoading('');
        $("#favFilms-id-" + film_id).html(data);
    });
    return false;
};
function favWillLook( film_id, statys, fav) {
    ShowLoading('');
    $.get(dle_root + "engine/ajax/favoritesall.php", { film_id: film_id, statys: statys, fav: fav }, function(data){
        HideLoading('');
        $("#favWillLook-id-" + film_id).html(data);
    });
    return false;
};
function favFindWeb( film_id, statys, fav) {
    ShowLoading('');
    $.get(dle_root + "engine/ajax/favoritesall.php", { film_id: film_id, statys: statys, fav: fav }, function(data){
        HideLoading('');
        $("#favFindWeb-id-" + film_id).html(data);
    });
    return false;
};
function favWatched( film_id, statys, fav) {
    ShowLoading('');
    $.get(dle_root + "engine/ajax/favoritesall.php", { film_id: film_id, statys: statys, fav: fav }, function(data){
        HideLoading('');
        $("#favWatched-id-" + film_id).html(data);
    });
    return false;
};

В engineengine.php

Найти строчку

    case "favorites" :
        if ($is_logged) {

            $config['allow_cache'] = false;

            include ENGINE_DIR . '/modules/favorites.php';

        } else
            msgbox ( $lang['all_err_1'], $lang['fav_error'] );
        break;

Ниже прописать

    case "favoritesall" :
        if ($is_logged) {
            $config['allow_cache'] = false;
            include ENGINE_DIR . '/modules/favoritesall.php';
        } else {
            msgbox ( $lang['all_err_1'], $lang['fav_error'] );
        }
        break;

    case "favoritesuser" :
        if ($is_logged) {
            $config['allow_cache'] = false;
            include ENGINE_DIR . '/modules/favoritesuser.php';
        } else {
            msgbox ( $lang['all_err_1'], $lang['fav_error'] );
        }
        break;

Найти строчку

elseif ($do == 'favorites') $nam_e = $lang['title_fav'];

Ниже прописать

elseif ($do == 'favoritesall') $nam_e = $fav_nam;
elseif ($do == 'favoritesuser') $nam_e = $fav_nam;

в корневом файле .htaccess

Найти строчку

RewriteRule ^favorites/page/([0-9]+)(/?)+$ index.php?do=favorites&cstart=$1 [L]

Ниже прописать

RewriteRule ^favorites/films(/?)+$ index.php?do=favoritesall&favtupe=films [L]
RewriteRule ^favorites/films/page/([0-9]+)(/?)+$ index.php?do=favoritesall&favtupe=films&cstart=$1 [L]
RewriteRule ^favorites/willlook(/?)+$ index.php?do=favoritesall&favtupe=willlook [L]
RewriteRule ^favorites/willlook/page/([0-9]+)(/?)+$ index.php?do=favoritesall&favtupe=willlook&cstart=$1 [L]
RewriteRule ^favorites/findweb(/?)+$ index.php?do=favoritesall&favtupe=findweb [L]
RewriteRule ^favorites/findweb/page/([0-9]+)(/?)+$ index.php?do=favoritesall&favtupe=findweb&cstart=$1 [L]
RewriteRule ^favorites/watched(/?)+$ index.php?do=favoritesall&favtupe=watched [L]
RewriteRule ^favorites/watched/page/([0-9]+)(/?)+$ index.php?do=favoritesall&favtupe=watched&cstart=$1 [L]

RewriteRule ^([^/]*)/favorites/films(/?)+$ index.php?do=favoritesuser&login=$1&favtupe=films [L]
RewriteRule ^([^/]*)/favorites/films/page/([0-9]+)(/?)+$ index.php?do=favoritesuser&login=$1&favtupe=films&cstart=$2 [L]
RewriteRule ^([^/]*)/favorites/willlook(/?)+$ index.php?do=favoritesuser&login=$1&favtupe=willlook [L]
RewriteRule ^([^/]*)/favorites/willlook/page/([0-9]+)(/?)+$ index.php?do=favoritesuser&login=$1&favtupe=willlook&cstart=$2 [L]
RewriteRule ^([^/]*)/favorites/findweb(/?)+$ index.php?do=favoritesuser&login=$1&favtupe=findweb [L]
RewriteRule ^([^/]*)/favorites/findweb/page/([0-9]+)(/?)+$ index.php?do=favoritesuser&login=$1&favtupe=findweb&cstart=$2 [L]
RewriteRule ^([^/]*)/favorites/watched(/?)+$ index.php?do=favoritesuser&login=$1&favtupe=watched [L]
RewriteRule ^([^/]*)/favorites/watched/page/([0-9]+)(/?)+$ index.php?do=favoritesuser&login=$1&favtupe=watched&cstart=$2 [L]

В файле languagewebsite.lng

Найти строчку

'wysiwyg_language'        =>  "ru",

Ниже прописать

'favfilms'                =>  "Любимые фильмы",
'favwilllook'            =>  "Буду смотреть",
'favfindweb'            =>  "Найти в Интернете",
'favwatched'            =>  "Смотрел",
'favall_error'            =>  "Вы ничего не вносили в Мои фильмы, раздел - ",

В файле engineinit.php

Найти строчку

if ($member_id['favorites']) {
    $tpl->set( '{favorite-count}', count(explode("," ,$member_id['favorites'])) );
}
else $tpl->set( '{favorite-count}', '0' );

Ниже прописать

if ($member_id['favFilms']) {
    $tpl->set( '{favfilms-count}', count(explode("," ,$member_id['favFilms'])) );
} else {
    $tpl->set( '{favfilms-count}', '0' );
}
if ($member_id['favWillLook']) {
    $tpl->set( '{favwilllook-count}', count(explode("," ,$member_id['favWillLook'])) );
} else {
    $tpl->set( '{favwilllook-count}', '0' );
}
if ($member_id['favFindWeb']) {
    $tpl->set( '{favfindweb-count}', count(explode("," ,$member_id['favFindWeb'])) );
} else {
    $tpl->set( '{favfindweb-count}', '0' );
}
if ($member_id['favWatched']) {
    $tpl->set( '{favwatched-count}', count(explode("," ,$member_id['favWatched'])) );
} else {
    $tpl->set( '{favwatched-count}', '0' );
}

Найти строчку

$tpl->set( '{favorites-link}', $config['http_home_url'] . "favorites/" );

Ниже прописать

    $tpl->set( '{favfilms-link}', $config['http_home_url'] . "favorites/films/" );
    $tpl->set( '{favwilllook-link}', $config['http_home_url'] . "favorites/willlook/" );
    $tpl->set( '{favfindweb-link}', $config['http_home_url'] . "favorites/findweb/" );
    $tpl->set( '{favwatched-link}', $config['http_home_url'] . "favorites/watched/" );

В файле enginemodulesshow.short.php

Найти строчку

    } elseif( !$news_found AND !$allow_userinfo AND $do != '' and $do != 'favorites' and $view_template != 'rss' ) {

Заменить на

    } elseif( !$news_found AND !$allow_userinfo AND $do != '' and $do != 'favorites' and $do != 'favoritesall' and $view_template != 'rss' ) {

Найти строчку

    } elseif( !$news_found AND $cstart ) {
        if ( $newsmodule ) @header( "HTTP/1.0 404 Not Found" );
        msgbox( $lang['all_err_1'], $lang['news_err_27'] );
    }

Заменить на

    } elseif( !$news_found AND $cstart ) {
        if ( $newsmodule ) @header( "HTTP/1.0 404 Not Found" );
        msgbox( $lang['all_err_1'], $lang['news_err_27'] );
    } elseif( ! $news_found AND $do == 'favoritesall' ) {
        msgbox( $lang['all_info'], $lang['favall_error'] . "[" . $fav_nam . "]");
    }

Найти строчку

    if( isset( $view_template ) and $view_template == "rss" ) {
    } elseif( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );
    else $tpl->load_template( 'shortstory.tpl' );

Заменить на

    if( isset( $view_template ) and $view_template == "rss" ) {
    } elseif( $category_id and $cat_info[$category_id]['short_tpl'] != '' ) { $tpl->load_template( $cat_info[$category_id]['short_tpl'] . '.tpl' );
    } elseif( $favoritesalltpl == "favon") $tpl->load_template( 'favoritesall.tpl' );
    else $tpl->load_template( 'shortstory.tpl' );

В файле enginemodulesprofile.php

Найти строчку

        $tpl->set( '[not-comm-num]', "" );
        $tpl->set( '[/not-comm-num]', "" );
    }

Ниже прописать

    // Fav-All for D0Gmatist
        include ENGINE_DIR . '/modules/favoritesprofile.php';
    // Fav-All for D0Gmatist

В файле engineajaxprofile.php

Найти строчку

    $tpl->set( '[not-comm-num]', "" );
    $tpl->set( '[/not-comm-num]', "" );
}

Ниже прописать

    // Fav-All for D0Gmatist
        include ENGINE_DIR . '/modules/favoritesprofile.php';
    // Fav-All for D0Gmatist

В шаблоне login.tpl использовать

      Любимые фильмы ({favfilms-count})
       Буду смотреть ({favwilllook-count})
       Найти в Интернете ({favfindweb-count})
       Смотрел ({favwatched-count})

В шаблоне userinfo.tpl и profile_popup.tpl использовать

Любимые фильмы: {favfilms-count} [favfilms-url][Просмотреть][/favfilms-url]
Будет смотреть: {favwilllook-count} [favwilllook-url][Просмотреть][/favwilllook-url]
Ищет в интернете: {favfindweb-count} [favfindweb-url][Просмотреть][/favfindweb-url]
Смотрел: {favwatched-count} [favwatched-url][Просмотреть][/favwatched-url]

Далее спасибо Автору: Sander

На основе им разработанного Хака — Самый просматриваемый материал за текущий деньЯ адаптировал вывод тегом custom посты добавленные в Мои фильмы суммируя сколько человек добавило пост суммарно вкаждый из разделовПример вывода {custom limit=»10″ order=»fav-films»}{custom limit=»10″ order=»fav-willlook»}{custom limit=»10″ order=»fav-findweb»}

{custom limit=»10″ order=»fav-watched»}

В файле enginemodulesfunctions.php

Найти строчку

    $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id)";

Заменить на

    $sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason, e.favFilmsSum, e.favWillLookSum, e.favFindWebSum, e.favWatchedSum FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id)";

Найти строчку

        if ($match[1] == "title" ) $news_msort = "ASC";

Ниже дописать

        if ($match[1] == "fav-films" ) $news_sort = "favFilmsSum DESC, favFilmsSum";
        if ($match[1] == "fav-willlook" ) $news_sort = "favWillLookSum DESC, favWillLookSum";
        if ($match[1] == "fav-findweb" ) $news_sort = "favFindWebSum DESC, favFindWebSum";
        if ($match[1] == "fav-watched" ) $news_sort = "favWatchedSum DESC, favWatchedSum";

В файле enginemodulesshow.custom.php

Найти строчку

    $news_find = array ('{comments-num}' => $row['comm_num'], '{views}' => $row['news_read'], '{category}' => $my_cat, '{link-category}' => $my_cat_link, '{news-id}' => $row['id'], '{rssdate}' => date( "r", $row['date'] ), '{rssauthor}' => $row['autor'], '{approve}' => '' );

Заменить на

    $news_find = array ('{comments-num}' => $row['comm_num'], '{views}' => $row['news_read'], '{favfilms-count}' => $row['favFilmsSum'], '{favwilllook-count}' => $row['favWillLookSum'], '{favfindweb-count}' => $row['favFindWebSum'], '{favwatched-count}' => $row['favWatchedSum'], '{category}' => $my_cat, '{link-category}' => $my_cat_link, '{news-id}' => $row['id'], '{rssdate}' => date( "r", $row['date'] ), '{rssauthor}' => $row['autor'], '{approve}' => '' );

В шаблонах которые выводятся тегом custom использовать

{favfilms-count} - Число человек добавивших пост Любимые фильмы
{favwilllook-count} - Число человек добавивших пост Буду смотреть
{favfindweb-count} - Число человек добавивших пост Найти в Интернете
{favwatched-count} - Число человек добавивших пост Смотрел

1)Из архива залить файлы на сервер2) В корневом файле .htaccessпосле

RewriteRule ^favorites/watched/page/([0-9]+)(/?)+$ index.php?do=favoritesall&favtupe=watched&cstart=$1 [L]

дописать вторую часть из описания установки3) Если не выполняли переделку под отдельный favoritesall.tplВ файле enginemodulesshow.short.php выполнить третий пункт из описания установки4) В файле enginemodulesprofile.php выполнить из описания установки5) В файле engineajaxprofile.php выполнить из описания установки

6) В шаблоне userinfo.tpl и profile_popup.tpl использовать установки