Jump to content

Налик

Пользователи
  • Content Count

    43
  • Joined

  • Last visited

About Налик

  • Rank
    Пользователь

Информация

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Сделал проверку находится ли в первом или последнем сообщении скрытый контент и в соответствии с этим либо запрещаю превью, либо разрешаю)
  2. siv1987 ага уже нашел, спасибо)
  3. Здравствуйте. На форуме установлен плагин скрытия контента Hide with conditions 1.0.0, в нем есть баг. Если скрыть контент в первом сообщение топика, то в самой теме контент скрыт. Но если перейти к списку тем и навести на наименование темы курсор мышки и подержать 1.5 секунды, то для темы вылезет всплывающее окошко с содержимым темы в котором скрытый контент уже перестанет быть скрытым. Подскажите пожалуйста как отключить превью для тем? Как вариант можно вырезать из шаблона темы (forums->front->forums->topicRow) код отвечающий за превью. Но это не решит самой проблемы, так как в браузере в редакторе исходного кода их можно вставить в ручную и посмотреть превью темы) <a href='{$row->url()}' class='' title='{{if $row->mapped('title')}}{$row->mapped('title')}{{else}}{lang="content_deleted"}{{endif}} {{if $row->canEdit()}}{lang="click_hold_edit"}{{endif}}' {{if $row->tableHoverUrl and $row->canView()}} data-ipsHover data-ipsHover-target='{$row->url()->setQueryString('preview', 1)}' data-ipsHover-timeout='1.5'{{endif}}{{if $row->canEdit()}} data-role="editableTitle"{{endif}}> //Вырезать эти строки data-ipsHover data-ipsHover-target='{$row->url()->setQueryString('preview', 1)}' data-ipsHover-timeout='1.5' В общем как отключить полностью превью для тем, на уровне системы?
  4. siv1987 спасибо что дали направление поиска проблемы, это решило её правильным образом) В файле profile.php в функции content() добавил проверку на количество контента пользователя, в случае если он равен 0, то не делать редирект. У меня это находилось в 506 строке. Код ниже, доработка помечена комментарием //Доработка /* Build Output */ if ( !$currentType ) { $query = \IPS\Content\Search\Query::init()->filterByAuthor( $this->member )->setOrder( \IPS\Content\Search\Query::ORDER_NEWEST_UPDATED )->setPage( $page ); $results = $query->search(); /* If we requested a higher page than is allowed, redirect back to last page */ $totalResults = $results->count( TRUE ); if( ceil( $totalResults / $query->resultsToGet ) < $page ) { if($this->member->member_posts != 0) //Доработка { $highestPage = floor( $totalResults / $query->resultsToGet ); \IPS\Output::i()->redirect( \IPS\Request::i()->url()->setQueryString( 'page', $highestPage ?: 1 ), NULL, 303 ); } } $pagination = trim( \IPS\Theme::i()->getTemplate( 'global', 'core', 'global' )->pagination( $this->member->url()->setQueryString( array( 'do' => 'content', 'all_activity' => 1 ) ), ceil( $results->count( TRUE ) / $query->resultsToGet ), $page, $query->resultsToGet ) ); if ( \IPS\Request::i()->isAjax() AND \IPS\Request::i()->all_activity ) { \IPS\Output::i()->json( array( 'rows' => \IPS\Theme::i()->getTemplate('profile')->userContentStream( $this->member, $results, $pagination ) ) ); return; } else { $output = \IPS\Theme::i()->getTemplate('profile')->userContentStream( $this->member, $results, $pagination ); } } Упростил код. 504 строка if( ceil( $totalResults / $query->resultsToGet ) < $page && $this->member->member_posts != 0) { $highestPage = floor( $totalResults / $query->resultsToGet ); \IPS\Output::i()->redirect( \IPS\Request::i()->url()->setQueryString( 'page', $highestPage ?: 1 ), NULL, 303 ); } Хотя пожалуй лучше будет даже так && $this->member->member_posts > 0
  5. Увы не придумал ничего лучше размещения этого скрипта в index.php в самом верху. if(strpos($_SERVER['REQUEST_URI'], '/content/')) { ob_start(); require_once 'init.php'; $urlID = explode('-', explode("/", $_SERVER['REQUEST_URI'])[3])[0]; $profile_IPS = \IPS\Member::load( $urlID ); if($profile_IPS->member_posts <= 0) { $urlGo = 'https://site.ru/forum/profile/'.$profile_IPS->member_id.'-q/'; header('Location: '.$urlGo); ob_flush(); exit; } } Если находимся на странице содержащей в URL текст /content/, то смотрим существует ли у пользователя хоть 1 сообщение, если их нет то выполняем редирект на его профиль. Вот такой некрасивый костыль. Возможно кому-то пригодиться или кто-то предложит решение лучше.
  6. Ryo я находил, выкладывали не плагин, а скрипт который на прямую с БД работает и он для моей версии IPS некорректно работает) В общем задачу я решил указанным выше способом, спасибо)
  7. Придется дописывать код $post = \IPS\forums\Topic\Post::load($topic->topic_firstpost); $post->post_date = 1523375996; $post->save();
  8. WaNted я делал это через скобки😀 Спасибо!) WaNted жалко, что связный пост все равно не меняет времени публикации.
  9. siv1987 это поля таблицы mysql "forums_topics", там нужно будет тогда еще менять значение поля "post_date" в таблице "forums_posts" и значение полей "index_date_created" и "index_date_updated" в таблице "core_search_index". Конечно можно это напрямую в БД делать, но нет ли кода который позволит это сделать от самого IPS? Ну что-то типа $topic = \IPS\forums\Topic::load($ID); $topic->start_date(1554910672); //1554910672 - unix time
  10. siv1987 теперь понял, спасибо)
  11. $topic = \IPS\forums\Topic::load($ID); $topic->unhide(FALSE); Таким кодом можно открыть скрытую тему. А как изменить время создания топика? Ну естественно со всеми вытекающими. То есть изменяем время создания топика и соответственно время первого сообщения топика.
  12. siv1987 accop Спасибо) //Открыть сообщение core_search_index //$post = \IPS\forums\Topic\Post::load(272); //$post->unhide(TRUE); //Открыть топик forums_topics $topic = \IPS\forums\Topic::load(60); $topic->unhide(FALSE); Первый код открывает сообщение, но при этом топик в списке тем остается скрытым. Второй код открывает топик и сообщение, как раз то что нужно. По названию переменных все логично, спасибо большое! :) Только честно говоря не понял какое булевое значение подавать правильно, хоть TRUE, хоть FALSE - открывают сообщение/топик. $topic->unhide(FALSE);
  13. Здравствуйте. Каким кодом можно опубликовать скрытую тему? Что-то типа \IPS\content\show($id); В конечном итоге хочу написать скрипт, который будет смотреть все скрытые темы на форуме и публиковать их если наступило время открытия.
  14. Здравствуйте. Установлен Invision Community v4.3.4 NULLED, при просмотре контента пользователя который не разместил ни одного поста на форуме появляется ошибка "Сайт ***.ru выполнил переадресацию слишком много раз." Плагины и приложения все отключал, не помогает. Может знает кто в чем проблема?
  15. Arteas в стандартной регистрации нету этого.
×