Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Как вывести сообщение если нет закладок в модуле uFav v2.0?

Как вывести сообщение если нет закладок в модуле uFav v2.0?


     01.06.2020    dle 14    Общие вопросы, Модули    763

вопрос
Ребята помогите починить, не выводится сообщение если нет закладок


<?php
/*
=====================================================
 Файл: uFav.php
-----------------------------------------------------
 Назначение: Вывод блока с закладками
-----------------------------------------------------
 © sTee & uFlex (www.zagruzka-up.ru)
=====================================================
*/
if(!defined('DATALIFEENGINE')){die("Hacking attempt!");}
//==========================================================================
$m = "20"; //Длинна заголовка
$v = "25"; //Длинна описания
$f = "5"; //Количество публикаций
$n = "<div class='errorfav'>Здесь будут отображаться приложения, которые вы добавили в <a href='/favorites'>Избранное</a>.</div>"; //Если у юзера нету закладок
//==========================================================================
if( ! defined( 'DATALIFEENGINE' ) ) {die( "Hacking attempt!" );}$is_change = false;if ($config['allow_cache'] != "yes") {$config['allow_cache'] = "yes";$is_change = true;}$uFav = dle_cache( "uFav", $config['skin'] );if($member_id['favorites'] > 0) {$db->query("SELECT * FROM " . PREFIX . "_post WHERE id IN ({$member_id['favorites']}) ORDER BY date DESC LIMIT 0,$f");while ($row = $db->get_row()){$message = substr( stripslashes (strip_tags($row['short_story'], '')), 0,$v )."...";if(dle_strlen($row['title'], $config['charset']) > $m){$title = dle_substr($row['title'], 0, $m, $config['charset']) . "...";} else {$title = $row['title'];}$shortnews = $row['short_story'];$noscreen = $s;if ($member_id['favorites']) {$favorites = count(explode("," ,$member_id['favorites']));} else $favorites = '0';if (preg_match_all('#]*\\ssrc=(\'|")(.*?)\\1.*?>#i',$shortnews,$total))foreach( $total[2] as $shortnews ){$tpl->set( '{screen}',$shortnews);} else {$tpl->set( '{screen}',$noscreen);}$tpl->load_template('ufav_skin.tpl');$tpl->set( '[delete]', "<a id=\"fav-id-{$row['id']}\" href=\"$PHP_SELF?do=favorites&doaction=del&id={$row['id']}\">" );$tpl->set( '[/delete]', "</a>" );$tpl->set('{news_id}', $row['id']);$tpl->set('{url-link}', $config["http_home_url"]."index.php?newsid=".$row['id']);$tpl->set('{title}', $title);$tpl->set('{text}', $shortnews);$tpl->set('{message}', $message);$tpl->compile('uFav');$tpl->clear();}$db->free();create_cache("uFav", $uFav, $config['skin']);echo $top;echo $tpl->result['uFav'];}else {echo $n;}if ($is_change) $config['allow_cache'] = false;
?>


Строка кода которая за это отвечает не срабатывает
$n = "<div class='errorfav'>Здесь будут отображаться приложения, которые вы добавили в <a href='/favorites'>Избранное</a>.</div>"; //Если у юзера нету закладок

Ответа пока нет


16 комментариев

vitnet
PHP-developer

vitnet - 1 июня 2020 16:11 -

Какой криворукий писал данный мод, пипец

smoki
Юзер

smoki - 1 июня 2020 16:15 -

***Комментарий удален***

smoki
Юзер

smoki - 1 июня 2020 17:19 -

Может дело в версии php, у меня сайт работает на 7.2

dj-avtosh
PHP-developer

dj-avtosh - 1 июня 2020 22:52 -

еще и минимизировал якобы, но зачем)))

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

vitnet
PHP-developer

vitnet - 1 июня 2020 17:22 -

Блин и мой код пропал после правки

smoki
Юзер

smoki - 1 июня 2020 17:22 -

vitnet,
вот ваш код

<?php
/*
=====================================================
 Файл: uFav.php
-----------------------------------------------------
 Назначение: Вывод блока с закладками
-----------------------------------------------------
 © sTee & uFlex (www.zagruzka-up.ru)
=====================================================
*/

if (!defined('DATALIFEENGINE')) {
    die("Hacking attempt!");
}
//==========================================================================
$m = "20"; //Длинна заголовка
$v = "25"; //Длинна описания
$f = "5"; //Количество публикаций
$n = "<div class='errorfav'>Здесь будут отображаться приложения, которые вы добавили в <a href='/favorites'>Избранное</a>.</div>"; //Если у юзера нету закладок
//==========================================================================

if (!defined('DATALIFEENGINE')) {
    die("Hacking attempt!");
}

$is_change = false;

if( !$config['allow_cache'] ) {
    $config['allow_cache'] = 1;
    $is_change = true;
}

$uFav = dle_cache("uFav", $config['skin']);

if (count(explode(",", $member_id['favorites'])) > 0) {
    $db->query("SELECT * FROM " . PREFIX . "_post WHERE id IN ({$member_id['favorites']}) ORDER BY date DESC LIMIT 0,$f");

    while ($row = $db->get_row()) {
        $message = substr(stripslashes(strip_tags($row['short_story'], '')) , 0, $v) . "...";
        if (dle_strlen($row['title'], $config['charset']) > $m) {
            $title = dle_substr($row['title'], 0, $m, $config['charset']) . "...";
        } else {
            $title = $row['title'];
        }
        $shortnews = $row['short_story'];
        $noscreen = $s;

        if ($member_id['favorites']) {
            $favorites = count(explode(",", $member_id['favorites']));
        } else $favorites = '0';

        if (preg_match_all('#]*\\ssrc=(\'|")(.*?)\\1.*?>#i', $shortnews, $total)) foreach ($total[2] as $shortnews) {
            $tpl->set('{screen}', $shortnews);
        } else {
            $tpl->set('{screen}', $noscreen);
        }

        $tpl->load_template('ufav_skin.tpl');

        $tpl->set('[delete]', "<a id=\"fav-id-{$row['id']}\" href=\"$PHP_SELF?do=favorites&doaction=del&id={$row['id']}\">");
        $tpl->set('[/delete]', "</a>");
        $tpl->set('{news_id}', $row['id']);
        $tpl->set('{url-link}', $config["http_home_url"] . "index.php?newsid=" . $row['id']);
        $tpl->set('{title}', $title);
        $tpl->set('{text}', $shortnews);
        $tpl->set('{message}', $message);
        $tpl->compile('uFav');
        $tpl->clear();
    }
    $db->free();

    create_cache("uFav", $uFav, $config['skin']);
    echo $tpl->result['uFav'];
} else {
    echo $n;
}

if ($is_change) $config['allow_cache'] = 0;
?>

smoki
Юзер

smoki - 2 июня 2020 09:17 -

Дело в том что в общем он работает ) создал отдельного пользователя проверил, для пользователя отображается надпись если закладки пустые, дал админа и тоже все работает, а вот для админа id1 именно сообщение о пустых закладках не отображается )))

SX2
Эксперт

SX2 - 2 июня 2020 09:22 -

А если заменить стоки:
$uFav = dle_cache("uFav", $config['skin']);

на
$uFav = dle_cache("uFav", $config['skin'], true);


create_cache("uFav", $uFav, $config['skin']);

на
create_cache("uFav", $uFav, $config['skin'], true);

Самая сложная часть работы – решиться приступить к ней.

smoki
Юзер

smoki - 2 июня 2020 10:12 -

Цитата: SX2
$uFav = dle_cache("uFav", $config['skin']);

create_cache("uFav", $uFav, $config['skin'], true);
Цитата: smoki
<?php
/*
=====================================================
Файл: uFav.php
-----------------------------------------------------
Назначение: Вывод блока с закладками
-----------------------------------------------------
© sTee & uFlex (www.zagruzka-up.ru)
=====================================================
*/

if (!defined('DATALIFEENGINE')) {
die("Hacking attempt!");
}
//==========================================================================
$m = "20"; //Длинна заголовка
$v = "25"; //Длинна описания
$f = "5"; //Количество публикаций
$n = "<div class='errorfav'>Здесь будут отображаться приложения, которые вы добавили в <a href='/favorites'>Избранное</a>.</div>"; //Если у юзера нету закладок
//==========================================================================

if (!defined('DATALIFEENGINE')) {
die("Hacking attempt!");
}

$is_change = false;

if( !$config['allow_cache'] ) {
$config['allow_cache'] = 1;
$is_change = true;
}

$uFav = dle_cache("uFav", $config['skin']);

if (count(explode(",", $member_id['favorites'])) > 0) {
$db->query("SELECT * FROM " . PREFIX . "_post WHERE id IN ({$member_id['favorites']}) ORDER BY date DESC LIMIT 0,$f");

while ($row = $db->get_row()) {
$message = substr(stripslashes(strip_tags($row['short_story'], '')) , 0, $v) . "...";
if (dle_strlen($row['title'], $config['charset']) > $m) {
$title = dle_substr($row['title'], 0, $m, $config['charset']) . "...";
} else {
$title = $row['title'];
}
$shortnews = $row['short_story'];
$noscreen = $s;

if ($member_id['favorites']) {
$favorites = count(explode(",", $member_id['favorites']));
} else $favorites = '0';

if (preg_match_all('#]*\\ssrc=(\'|")(.*?)\\1.*?>#i', $shortnews, $total)) foreach ($total[2] as $shortnews) {
$tpl->set('{screen}', $shortnews);
} else {
$tpl->set('{screen}', $noscreen);
}

$tpl->load_template('ufav_skin.tpl');

$tpl->set('[delete]', "<a id=\"fav-id-{$row['id']}\" href=\"$PHP_SELF?do=favorites&doaction=del&id={$row['id']}\">");
$tpl->set('[/delete]', "</a>");
$tpl->set('{news_id}', $row['id']);
$tpl->set('{url-link}', $config["http_home_url"] . "index.php?newsid=" . $row['id']);
$tpl->set('{title}', $title);
$tpl->set('{text}', $shortnews);
$tpl->set('{message}', $message);
$tpl->compile('uFav');
$tpl->clear();
}
$db->free();

create_cache("uFav", $uFav, $config['skin']);
echo $tpl->result['uFav'];
} else {
echo $n;
}

if ($is_change) $config['allow_cache'] = 0;
?>


Я вставляю ваш код и получаю ошибку

MySQL Error!
MySQL error in file: /engine/modules/uFav.php at line 36
Error Number: 1064
The Error returned was:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') ORDER BY date DESC LIMIT 0,5' at line 1
SQL query:

SELECT * FROM dle_post WHERE id IN () ORDER BY date DESC LIMIT 0,5

Но опять же я эту ошибку не вижу когда нахожусь под админом с id1, либо выйти и показывает либо войти под другим пользователем, только в этом случае

smoki
Юзер

smoki - 2 июня 2020 10:26 -

Ниче не пойму, может что-то с профилем

SX2
Эксперт

SX2 - 2 июня 2020 11:44 -

Чем вас не устраивает это решение ? Зачем пихать кучу модулей, когда это можно сделать все стандартным способом с минимальной правкой.

Работает отлично, только нужно добавить AJAX навигацию (есть готовое решение), что бы корректно работала. Нужно только в кучу собрать и все (в итоге будет так). Это делается за 10 минут. Или установить лимит и сделать просто ссылку на все закладки (у меня на сайте так комменты сделаны).

Самая сложная часть работы – решиться приступить к ней.

smoki
Юзер

smoki - 2 июня 2020 11:59 -

Да не, мне навигация там не нужна, там просто лимит на 5 штук и все и если пусто то вывод такого-же сообщения и все )

SX2
Эксперт

SX2 - 2 июня 2020 12:23 -

Ну так я же написал готовое решение. Настройте только шаблон закладок и все. Если нужно выводить уведомление когда нет закладок можно добавить в main условие и тегами выводить текст. Это же элементарно.

Самая сложная часть работы – решиться приступить к ней.

smoki
Юзер

smoki - 2 июня 2020 12:32 -

Благодарю, наверное так и сделаю

SX2
Эксперт

SX2 - 2 июня 2020 12:48 -

<!-- Закладки -->
[not-group=5]
<div class="block top_block">
   <h4 class="title"><b>Закладки</b></h4>
   <ul class="lastcomm">
      [fav]{custom id="fav" available="main" from="0" template="modules/myfav" limit="5" order="date" sort="desc" cache="yes"}[/fav]
   </ul>
      [no-fav]Вы ничего не вносили в свои закладки[/no-fav] 
</div>
[/not-group]
<!-- / закладки -->


if ($member_id['favorites']) {
	$tpl->set( '[fav]', "" );
	$tpl->set( '[/fav]', "" );
	$tpl->set_block( "'\\[no-fav\\](.*?)\\[/no-fav\\]'si", "" );
} else {
	$tpl->set( '[no-fav]', "" );
	$tpl->set( '[/no-fav]', "" );
	$tpl->set_block( "'\\[fav\\](.*?)\\[/fav\\]'si", "" );	
}


<li>
	<a href="{full-link}" title="{title}">
		<svg class="icon icon-coms"><use xlink:href="#icon-coms"></use></svg>
		<span>{title}</span>
	</a>
</li>

Самая сложная часть работы – решиться приступить к ней.

smoki
Юзер

smoki - 2 июня 2020 15:24 -

Цитата: SX2
if ($member_id['favorites']) {
$tpl->set( '[fav]', "" );
$tpl->set( '[/fav]', "" );
$tpl->set_block( "'\\[no-fav\\](.*?)\\[/no-fav\\]'si", "" );
} else {
$tpl->set( '[no-fav]', "" );
$tpl->set( '[/no-fav]', "" );
$tpl->set_block( "'\\[fav\\](.*?)\\[/fav\\]'si", "" );
}


Скажите пожалуйста, куда вставить

if ($member_id['favorites']) {
$tpl->set( '[fav]', "" );
$tpl->set( '[/fav]', "" );
$tpl->set_block( "'\\[no-fav\\](.*?)\\[/no-fav\\]'si", "" );
} else {
$tpl->set( '[no-fav]', "" );
$tpl->set( '[/no-fav]', "" );
$tpl->set_block( "'\\[fav\\](.*?)\\[/fav\\]'si", "" );
}

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

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

 06.03.2014 vip.boss  Общие вопросы
наверх