Регистрация    Забыли пароль?        Правила форума    FAQ (читать перед созданием новой темы)
Имя   Пароль  запомнить
  
Просмотр темы
Вернуться на сайт: PHP-Fusion SF Russian Support Site

Форум поддержки PHP-Fusion SF | PHP-Fusion SF - Система Управлением Сайта | Народный SF Fusion
# 1 Тема: Необходима помощь в доработке
SergioSV
Пользователь

Avatar пользователя

В статусе

Любитель Fusion

Сообщений: 304
Откуда: Киев
Зарегистрирован: 23 Декабря 2008, 10:58:57
Сказали спасибо 17 раз
Статус: offline
Опубликовано 17 Января 2016, 11:55:15
Приветствую!
Прежде всего, с Новым годом!

Есть у меня проблемка, не могу решить, может поможет кто?

Суть в следующем.
Есть панель вывода статей:
<?php
/*---------------------------------------------------+
| PHP-Fusion 6 Content Management System
+----------------------------------------------------+
| Copyright © 2002 - 2005 Nick Jones
| http://www.php-fusion.co.uk/
+----------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------*/

if (!defined("IN_FUSION")) { header("Location:../../index.php"); exit; }

opentable("Новые материалы");

echo "<table class='tbl' width='100%'>
<tr>
<td valign='top' width='100%'>";

$result = dbquery(
"SELECT ta.* ,tac.*, user_id, user_name FROM ".$db_prefix."articles ta
LEFT JOIN ".$db_prefix."users tu ON ta.article_name=tu.user_id
INNER JOIN ".$db_prefix."article_cats tac ON ta.article_cat=tac.article_cat_id
WHERE ".groupaccess('article_cat_access')." ORDER BY article_datestamp DESC LIMIT 0,7"
);

$i = 0;
if (dbrows($result) != 0) {
while($data = dbarray($result)) {
$itemsubject = trimlink($data['article_subject'], 70);
$article = stripslashes($data['article_snippet']);
$comments = dbcount("(comment_id)", "comments", "comment_type='A' AND comment_item_id='".$data['article_id']."'");

echo "<a href='".BASEDIR."readarticle.php?article_id=".$data['article_id']."' title='".$data['article_subject']."' class='side' style='font-weight:bold'>".$itemsubject."</a><br /><p> ".
$article ."

<div class='small2' style='margin-top:5px;text-align:right;'>
<img src='".THEME."images/bullet.gif'>
".($data['article_article'] ? "<a href='readarticle.php?article_id=".$data['article_id']."'>".$locale['042']."</a> ·\n" : "")."
<a href='readarticle.php?article_id=".$data['article_id']."'>".$comments.$locale['043']."</a> ·
".$data['article_reads'].$locale['044']."
<hr></div>\n";



}
} else {
echo "<div style='text-align:center'>".$locale['004']."</div>\n";
}

echo "</tr>
</table>";

closetable();



Как бы из неё исключить вывод определённой категории?
В частности: /articles.php?cat_id=6

Чтобы cat_id=6 или какую либо другую заданную категорию панель не отображала.

Подойти естественно можно и с другой стороны, методом не исключения, а добавления.
Задавать отображаемые категории.
К примеру отображаем в панели категории:
articles.php?cat_id=42
articles.php?cat_id=44
И всё, больше ничего.

Подсобите советом.
Заранее благодарю.
 
^ наверх ^
# 2  
Sky
Супер Администратор

Avatar пользователя

АнарХия Х4

Администратор

Сообщений: 3001
Откуда: Astana
Зарегистрирован: 01 Апреля 2007, 17:11:10
Сказали спасибо 469 раз
Статус: offline
Опубликовано 17 Января 2016, 20:38:51
SergioSV написал:
Приветствую!
Прежде всего, с Новым годом!

Есть у меня проблемка, не могу решить, может поможет кто?

Суть в следующем.
Есть панель вывода статей:
<?php
/*---------------------------------------------------+
| PHP-Fusion 6 Content Management System
+----------------------------------------------------+
| Copyright © 2002 - 2005 Nick Jones
| http://www.php-fusion.co.uk/
+----------------------------------------------------+
| Released under the terms & conditions of v2 of the
| GNU General Public License. For details refer to
| the included gpl.txt file or visit http://gnu.org
+----------------------------------------------------*/

if (!defined("IN_FUSION")) { header("Location:../../index.php"); exit; }

opentable("Новые материалы");

echo "<table class='tbl' width='100%'>
<tr>
<td valign='top' width='100%'>";

$result = dbquery(
"SELECT ta.* ,tac.*, user_id, user_name FROM ".$db_prefix."articles ta
LEFT JOIN ".$db_prefix."users tu ON ta.article_name=tu.user_id
INNER JOIN ".$db_prefix."article_cats tac ON ta.article_cat=tac.article_cat_id
WHERE ".groupaccess('article_cat_access')." ORDER BY article_datestamp DESC LIMIT 0,7"
);

$i = 0;
if (dbrows($result) != 0) {
while($data = dbarray($result)) {
$itemsubject = trimlink($data['article_subject'], 70);
$article = stripslashes($data['article_snippet']);
$comments = dbcount("(comment_id)", "comments", "comment_type='A' AND comment_item_id='".$data['article_id']."'");

echo "<a href='".BASEDIR."readarticle.php?article_id=".$data['article_id']."' title='".$data['article_subject']."' class='side' style='font-weight:bold'>".$itemsubject."</a><br /><p> ".
$article ."

<div class='small2' style='margin-top:5px;text-align:right;'>
<img src='".THEME."images/bullet.gif'>
".($data['article_article'] ? "<a href='readarticle.php?article_id=".$data['article_id']."'>".$locale['042']."</a> ·\n" : "")."
<a href='readarticle.php?article_id=".$data['article_id']."'>".$comments.$locale['043']."</a> ·
".$data['article_reads'].$locale['044']."
<hr></div>\n";



}
} else {
echo "<div style='text-align:center'>".$locale['004']."</div>\n";
}

echo "</tr>
</table>";

closetable();



Как бы из неё исключить вывод определённой категории?
В частности: /articles.php?cat_id=6

Чтобы cat_id=6 или какую либо другую заданную категорию панель не отображала.

Подойти естественно можно и с другой стороны, методом не исключения, а добавления.
Задавать отображаемые категории.
К примеру отображаем в панели категории:
articles.php?cat_id=42
articles.php?cat_id=44
И всё, больше ничего.

Подсобите советом.
Заранее благодарю.


Привет, нужно добавить в запрос конструкцию where ... not in(id), должно получиться что-то вроде:

$result = dbquery(
"SELECT ta.* ,tac.*, user_id, user_name FROM ".$db_prefix."articles ta
LEFT JOIN ".$db_prefix."users tu ON ta.article_name=tu.user_id
INNER JOIN ".$db_prefix."article_cats tac ON ta.article_cat=tac.article_cat_id
WHERE ".groupaccess('article_cat_access')." AND WHERE ta.article_cat NOT IN (6) ORDER BY article_datestamp DESC LIMIT 0,7"
);



P.S. не проверял


[Изменил(а) Sky, 17 Января 2016, 20:39:16]

--------------------
Я в контакте

Народ читаем и запоминаем!
Не помогаю по ICQ
Не помогаю по ЛС
буду просто игнорировать эти сообщения!
Все вопросы задаем на форуме, но предварительно пользуемся поиском!
All Fusion :: Плагины, моды, темы оформления для 6 и 7 версий PHP-Fusion
^ наверх ^
# 3  
SergioSV
Пользователь

Avatar пользователя

В статусе

Любитель Fusion

Сообщений: 304
Откуда: Киев
Зарегистрирован: 23 Декабря 2008, 10:58:57
Сказали спасибо 17 раз
Статус: offline
Опубликовано 18 Января 2016, 12:46:09
Спасибо!
Но данный вариант не работает.
Пробовал по разному, панель вообще отваливается, видать с синтаксисом не то.
Сдаётся мне, что ковыряться нать именно в этой строчке:

INNER JOIN ".$db_prefix."article_cats tac ON ta.article_cat=tac.article_cat_id


[Изменил(а) SergioSV, 18 Января 2016, 13:23:47]  
^ наверх ^
# 4  
Sky
Супер Администратор

Avatar пользователя

АнарХия Х4

Администратор

Сообщений: 3001
Откуда: Astana
Зарегистрирован: 01 Апреля 2007, 17:11:10
Сказали спасибо 469 раз
Статус: offline
Опубликовано 18 Января 2016, 17:46:06
SergioSV написал:
Спасибо!
Но данный вариант не работает.
Пробовал по разному, панель вообще отваливается, видать с синтаксисом не то.
Сдаётся мне, что ковыряться нать именно в этой строчке:

INNER JOIN ".$db_prefix."article_cats tac ON ta.article_cat=tac.article_cat_id


Да у меня в синтаксисе ошибка, не проверил сразу.
WHERE ".groupaccess('article_cat_access')." AND WHERE ta.article_cat NOT IN (6) ORDER BY article_datestamp DESC LIMIT 0,7"


заменить на
WHERE ".groupaccess('article_cat_access')." AND ta.article_cat NOT IN (6) ORDER BY article_datestamp DESC LIMIT 0,7"


где в условии NOT IN (6) указывай id через запятую NOT IN (6, 10, 25)


[Изменил(а) Sky, 18 Января 2016, 17:46:21]

--------------------
Я в контакте

Народ читаем и запоминаем!
Не помогаю по ICQ
Не помогаю по ЛС
буду просто игнорировать эти сообщения!
Все вопросы задаем на форуме, но предварительно пользуемся поиском!
All Fusion :: Плагины, моды, темы оформления для 6 и 7 версий PHP-Fusion
^ наверх ^
# 5  
SergioSV
Пользователь

Avatar пользователя

В статусе

Любитель Fusion

Сообщений: 304
Откуда: Киев
Зарегистрирован: 23 Декабря 2008, 10:58:57
Сказали спасибо 17 раз
Статус: offline
Опубликовано 19 Января 2016, 12:02:24
Вот спасибище Sky!!!
Всё теперича работает замечательно.
Просто мне было крайне нужно, чтобы некоторые категории не выводились на главной сайта.
smiley
smiley


[Изменил(а) SergioSV, 19 Января 2016, 12:08:49]  
^ наверх ^
# 6  
Sky
Супер Администратор

Avatar пользователя

АнарХия Х4

Администратор

Сообщений: 3001
Откуда: Astana
Зарегистрирован: 01 Апреля 2007, 17:11:10
Сказали спасибо 469 раз
Статус: offline
Опубликовано 20 Января 2016, 15:56:36
SergioSV написал:
Вот спасибище Sky!!!
Всё теперича работает замечательно.
Просто мне было крайне нужно, чтобы некоторые категории не выводились на главной сайта.
smiley
smiley


Всегда пожалуйста smiley


--------------------
Я в контакте

Народ читаем и запоминаем!
Не помогаю по ICQ
Не помогаю по ЛС
буду просто игнорировать эти сообщения!
Все вопросы задаем на форуме, но предварительно пользуемся поиском!
All Fusion :: Плагины, моды, темы оформления для 6 и 7 версий PHP-Fusion
^ наверх ^
# 7  
SergioSV
Пользователь

Avatar пользователя

В статусе

Любитель Fusion

Сообщений: 304
Откуда: Киев
Зарегистрирован: 23 Декабря 2008, 10:58:57
Сказали спасибо 17 раз
Статус: offline
Опубликовано 20 Января 2016, 16:14:25
Sky, прошу прощения за назойливость.
Не подскажешь каким образом администраторам можно закрыть доступ к странице с плагинами?
Бился, бился ничего не получается.
В админке в правах доступа плагины не отображаются, если плагин задвинуть к примеру в Администрирование контента то всё одно права не устанавливаются.
Вроде как снимаешь галочку прав доступа, а она всёодно остаётся - в БД не пишет
Уже БД перелопатил вдоль и поперёк, нифига не придумал (((
Как вручную в БД установить права - только для суперадмина?

Вот пример:



Или запретить администраторам доступ к pagenum=4 (страница плагинов)
Хотя хз определённая страница исчезает из поля зрения администраторов, если все кнопки на не залочить.
Вероятно нать таки вручную плагины в БД лочить.
 
^ наверх ^
Перейти на форум:


42,836,961 уникальных посетителей
сейчас: 22 Июня 2018, 23:37:30
Генерация страницы: 0.06 сек.

Original size:35 кб.
GZipped size: 8 кб.
Compression:77%