Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Как вывести закладки в профиле

Как вывести закладки в профиле


     08.04.2012    Общие вопросы    5079

вопрос
как вывести закладки(избранное) пользователя в профиле?
На пример я зашел к пользователю в профиль и захотел увидеть что у него в избранном.

Ответил: Voffka


Найдено на просторах интернета. проверено на DLE 9.8

Данный хак позволяет сделать закладки пользователя общедоступными и вывести список закладок пользователя в профиль.

1. Откройте файл ./engine/modules/favorites.php

Найдите:
$user_query = "do=favorites";
$list = explode(",", $member_id['favorites']);


Замените на:
// Формируем ссылку на страницу с закладками
    $user_query = "do=favorites";

    $_REQUEST['user'] = $db->safesql($_REQUEST['user']);
    if($_REQUEST['user'] == ''){
    $list = explode(",", $member_id['favorites']);
    }else{
    $rows = $db->super_query("SELECT favorites  FROM " . USERPREFIX . "_users where name = '$_REQUEST[user]'");
    $list = explode(",", $rows['favorites']);
    }
// Формируем ссылку на страницу с закладками

2. Откройте файл ./engine/modules/profile.php

Найдите:
$tpl->set('{lastdate}', langdate("j F Y H:i", $row['lastdate']));


Добавьте ниже:
// Ссылка на страницу закладок и подсчет кол-ва избранных новостей
    $favorites = explode(",", $row['favorites']);
    
    if ($row['favorites'] != ''){    foreach ($favorites as $favorites) $is++;    }else{    $is = 0;    }
    
    $tpl->set('{fav_num}', $is);
    
    if ($config['allow_alt_url'] == "yes") {
    $tpl->set('{favorites}', "Смотреть все закладки");
    }else{
    $tpl->set('{favorites}', "Смотреть все закладки");
    }
// Ссылка на страницу закладок и подсчет кол-ва избранных новостей



3. Откройте файл ./engine/engine.php

Найдите:
elseif ($do == 'favorites') $nam_e=$lang['title_fav'];


Замените на:
elseif ($do == 'favorites') $nam_e=$lang['title_fav'].' '.$user;


4. Откройте файл ./language/Russian/website.lng

Найдите:
'title_fav'            =>    "Мои закладки",


Замените на:
'title_fav'            =>    "Закладки пользователя",


5. Откройте шаблон userinfo.tpl

Добавьте в необходмое Вам место:
Заладки пользователя: {fav_num} [ {favorites} ]

{fav_num} - Вывод кол-во избранных новостей...
{favorites} - Ссылка на просмотр закладок.

URL адрес на страницу просмотра закладок пользователя изначально выглядит так:
/index.php?do=favorites&user=Username]http://site.ru/index.php?do=favorites&user=Username

6. Для преобразования URL в ЧПУ ссылку, необходимо открыть файл .htaccess

А в нём найти следующее:
RewriteRule ^favorites(/?)+$ index.php?do=favorites [L]


Ниже добавить:
RewriteRule ^user/([^/]*)/favorites(/?)+$ index.php?do=favorites&user=$1 [L]


ЧПУ ссылка на страницу просмотра закладок пользователя будет иметь вид:
/user/Username/favorites

Добавлю: Если вы просматриваете закладки какого либо пользоваться, происходит +1 обращение к базе данных...
Если вы смотрите свои закладки дополнительных запросов не происходит.

Авторство утрачено.

Чтобы сделать так, чтобы закладки пользователя по ссылке http://site.ru/user/Username/favorites могли просматривать незарегистрированные пользователи,
необходимо в engine/engine.php найти

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


и заменить на

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



(насчет открытия для незареганных не уверен, возможно файл favorites.php становиться уязвимым) ... Поправьте знатоки, если это так

Насколько я понимаю, вопрошающий именно это имел ввиду ?

Комментарии пользователей (8)

Sander
1126

1637 | 1204

Sander - 8 апреля 2012 23:27 - Эксперт

Стандартно никак. Надо писать отдельный модуль. Если надо, за вознаграждение - могу сделать.
Так же такая функция будет доступна в модуле S-Blocks v2.0

SanDev.pro - мой блог.

ICQ: 404-037-556
Skype: Sander8804

Electric
8 | 8

Electric - 9 апреля 2012 00:01 - Юзер

Sander,
Ну я как раз собирался покупать у вас этот модуль. Еще 1 повод его купить.

rashpil
33

232 | 182

rashpil - 8 апреля 2012 23:56 - Эксперт

У меня есть такой кусочек кода. Рублей за 100 отдам

pavel31
4

346 | 158

pavel31 - 9 апреля 2012 09:31 - Юзер

Sander,
Извиняюсь что не в тему - когда примерно можно будет купить модуль S-Blocks 2.0??

Voffka
3

12 | 14

Voffka - 15 мая 2013 00:49 - Юзер

Поправьте ссылки на сайтру, я не могу редактировать свой ответ ?

MAPKOBKA
4

80 | 18

MAPKOBKA - 6 июля 2013 18:07 - Юзер

Почти работает, но пришлось чуточку править. Спасибо за решение.

MAPKOBKA
4

80 | 18

MAPKOBKA - 29 июля 2013 16:24 - Юзер

Нет, пришлось отказаться. Если у просматриваемого юзера нет закладок, то у того кто смотрит, удаляются все закладки. Так и не смог почининть.

DaivZ
2

283 | 175

DaivZ - 29 июля 2013 19:26 - Юзер

Вот тут переписанный код, но наверное такая же проблема http://webfull.ru/data-life-engine/haki_dle/87-bookmarks-in-the-user-profile-dle.html

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы