а какой именно мод хайда стоит?
посмотрю может у меня такой же.
насчет "никто не может качать аттачи" это странно
check_perms не должен выдавать false для разрешенных групп
но это надо проверить, я вчера скрыл инфу от гостей и успокоился
пока закоменти изменения
-----------------
да, проблема есть.
check_perms на самом деле мало что делает, тут главное передать ей правильные параметры
а внутри render_attachments() это сделать проблематично, т.к в нее не передается идентификатор форума
Решений этой проблемы может быть несоклько.
1. найти все вызовы render_attachments()
и сделать проверку до нее.
например в коде sources\action_public\topics.php
PHP:
//-----------------------------------------
// Not got permission to view downloads?
//-----------------------------------------
if ( $this->ipsclass->check_perms($this->ipsclass->forums->forum_by_id[ $this->topic['forum_id'] ]['download_perms']) === FALSE )
{
$this->ipsclass->vars['show_img_upload'] = 0;
}
//-----------------------------------------
// Continue...
//-----------------------------------------
$this->class_attach->type = 'post';
$this->class_attach->init();
$this->output = $this->class_attach->render_attachments( $this->output, $this->attach_pids );
предвингуть скобку '}' в поледнюю строку
тогда когда прав нету функция не будет вызываться и аттача мы не увидем, как и сообщения о том что аттач вообще есть но не хватает прав
это тоже можно исправить, через else добавив нужный текст.
Файлов вызывающих эту функцию много, у меня :
sources\action_public\messenger.php
sources\action_public\misc\print_page.php
sources\action_public\search.php
sources\action_public\topics.php
sources\action_public\xmlout.php
sources\classes\post\class_post.php
sources\components_public\profile\posts.php
sources\components_public\profile\topics.php
sources\lib\search_mysql_ftext.php
ources\portal_plugins\recent_topics.php
и возможно не во всех нужно делать проверку
2. использовать show_img_upload
она предназначена для скрытия картинок от непривилегированных групп, но можно скрыть и аттачи совсем
тогда в render_attachments()
вместо
PHP:
if ( $this->ipsclass->vars['show_img_upload'] and $row['attach_is_image'] )
{
// аттач с эскизами, показ эскизов
}
else
{
// аттач - файл, показ ссылки на скачивание
}
делаем
PHP:
if($this->ipsclass->vars['show_img_upload'])
{
if ( $this->ipsclass->vars['show_img_upload'] and $row['attach_is_image'] )
{
// аттач с эскизами, показ эскизов
}
else
{
// аттач - файл, показ ссылки на скачивание
}
}
else
{
//показываем фигу
}
можно еще чтонибудь придумать как более сложное так и более простое.