Полное описание самого модуля-хака читайте тут
Представляю вам тестовый Fav-All 1.0Установка
****************** Выполнить запрос в БД
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;
Из архива залить файлы на сервер
\engine\ajax\favoritesall.php\engine\modules\favoritesall.php\templates\Default\images\fav.png заменив папку
Default на соответствующую вашему активному шаблону
favall-v1.1.zip [5.82 Kb] (cкачиваний: 195)
MD5: 895e379af62c5ac9c444839c7567825f
В 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]
<div class="FullPostFav">
<div id="favAllForm-{news-id}" class="favAllForm">
<div class="favAllM" onclick="favAllFormOpen('{news-id}', 'open')">Мои фильмы</div>
<div class="favAllP"></div>
</div>
</div>
[/not-group]
****************** Прописать (Вкладка по уже 115px)
[not-group=5]
<div id="favAllForm-{news-id}" class="favAllForm">
<div class="favAllM" onclick="favAllFormOpen('{news-id}', 'open')">Мои фильмы</div>
<div class="favAllP"></div>
</div>
[/not-group]
в
\engine\classes\js\ загрузить из архива с DLE не сжатый
\Developer\uncompressed\dle_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;
};
В
\engine\engine.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;
****************** Найти строчку
elseif ($do == 'favorites') $nam_e = $lang['title_fav'];
****************** Ниже прописать
elseif ($do == 'favoritesall') $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]
В файле
\language\website.lng****************** Найти строчку
'wysiwyg_language' => "ru",
****************** Ниже прописать
'favfilms' => "Любимые фильмы",
'favwilllook' => "Буду смотреть",
'favfindweb' => "Найти в Интернете",
'favwatched' => "Смотрел",
'favall_error' => "Вы ничего не вносили в Мои фильмы, раздел - ",
В файле
\engine\init.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/" );
В шаблоне
login.tpl <a href="{favfilms-link}">Любимые фильмы ({favfilms-count})</a>
<a href="{favwilllook-link}">Буду смотреть ({favwilllook-count})</a>
<a href="{favfindweb-link}">Найти в Интернете ({favfindweb-count})</a>
<a href="{favwatched-link}">Смотрел ({favwatched-count})</a>
В файле
\engine\modules\show.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 . "]");
}
Далее спасибо
Автору: 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"}
В файле
\engine\modules\functions.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";
В файле
\engine\modules\show.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} - Число человек добавивших пост [b]Любимые фильмы[/b]
{favwilllook-count} - Число человек добавивших пост [b]Буду смотреть[/b]
{favfindweb-count} - Число человек добавивших пост [b]Найти в Интернете[/b]
{favwatched-count} - Число человек добавивших пост [b]Смотрел[/b]
****************************************************************************************************
****************************************************************************************************
*********************** С уважением, Сергей Геннадьевич D0Gmatist ***********************
****************************************************************************************************
****************************************************************************************************
Предыдущая Следующая