Перейти к содержанию

siv1987

Пользователи
  • Постов

    278
  • Зарегистрирован

  • Посещение

  • Победитель дней

    27

Весь контент siv1987

  1. Отсутсвует группа с id 9. Кто-то на форуме, очевидно в сайдбаре, пытается ее загрузить а функция выбрасывает исключение. И видимо проблема связана с виджетом whosOnline.php
  2. Какой формат опций предпочитаете: Только [hide=10,2,3] Только [hide p=10 r=2 d=3] Нужна поддержка обоих форматов.
  3. Если дойдут руки до него. На что я сейчас готов это просто переписать его под нормальный формат IPS с поддержкой лэнгов и добавлением опции с условием группы и спасибо за пост. А пока выслушаю ваши предложения по формату плагина. Как вы себе представляете работу тега, какой функционал в нем не хватает.
  4. \system\Content\Reactable.php найти /* React to own content */ if ( !\IPS\Settings::i()->reputation_can_self_vote AND $this->author()->member_id == $member->member_id ) { return FALSE; } Ниже добавить if( $this instanceof \IPS\forums\Topic\Post ) { if( $member->member_id AND isset( $this->_reactions[ $member->member_id ] ) ) { return FALSE; } } При оценки пользователь сможет удалить или изменить реакцию. После обновления страницы - нет.
  5. Автор этого плагина просто напросто отбитый наркоман, а в IPS он проездом. Весь этот наркоманский код $seuchas = time(); $nado_reg = strtotime($regis)+(60*60*24*$treg); $date = $nado_reg; $sec=$date - time(); $days=floor(($date - time()) /86400); $h1=floor(($date - time()) /3600); $m1=floor(($date - time()) /60); $hour=floor($sec/60/60 - $days*24); $hours=floor($sec/60/60); $min=floor($sec/60 - $hours*60); switch(substr($days, -1)){ case 1: $o='Остался'; break; case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 0: $o='Осталось'; break;} switch(substr($days, -2)){ case 1: $d='день'; break; case 2: case 3: case 4: $d='дня'; break; default: $d='дней'; } switch(substr($hour, -2)) { case 1: $h='час'; break; case 2: case 3: case 4: $h='часа'; break; default: $h='часов'; } switch(substr($min, -2)) { case 1: $m='минута'; break; case 2: case 3: case 4: $m='минуты'; break; default:$m='минут'; } if ($sec>0) $timer .='<strong>'.$o.':</strong> '; if ($days>0) $timer .= $days.' '.$d; if ($h1>0) $timer .= ' '.$hour.' '.$h; if ($m1>0) $timer .= ' '.$min.' '.$m; if ($sec<0) $timer = ""; можно уместить в несколько строчек $have = ''; $need = \IPS\DateTime::create()->sub( new \DateInterval( 'P'.$treg.'D' ) ); if( $need < \IPS\Member::loggedIn()->joined ){ $have = 'Вам осталось ' . \IPS\DateTime::formatInterval( $need->diff( \IPS\Member::loggedIn()->joined ), 2 ); } $msg .= 'Вы должны быть зарегестированы не менее '.$treg .' дней. '.$have; Или что-то типа $msg .= 'Вы должны быть зарегестированы не менее '.$treg .' дней.' . ( \IPS\Member::loggedIn()->member_id ? 'Вы провели на форуме ' . \IPS\DateTime::formatInterval( \IPS\DateTime::create()->diff( \IPS\Member::loggedIn()->joined ), 2 ) : '' ); Почему бы не сделать необязательные параметры - [hide], [hide=1], [hide=1,2] и тд. Почему бы не добавить именные параметры чтобы не путаться с расположением [hide p=1 d=3 r=2] как это было в тройке. Распарсить эти параметры нет ничего сложного обычным explode. Почему не добавить для времени регистрации префикс с указанием типа m - месяц, y - годы. Плагин сырой и не доделанный, а автор еще умудряется за это деньги клянчить. Перенос строки в теге не работает потому что вы регулярном выражение его не учитывается. Нужно '!\[hide=([0-9,]+)\](.+?)\[\/hide\]!i' Заменить на '!\[hide=([0-9,]+)\](.+?)\[\/hide\]!is'
  6. Поле с типом mediumtext в mysql может хранить 16,777,215 символов (если учесть что шаблоны это однобайтовые ASCII символы, то это примерно ~16 мб). Вопрос, каким образом можно было перейти это значение, если сам файл целиком со всеми шаблонами весит всего лишь 0,38 мб? Вы что-то путаете и причина по которой не можете отредактировать шаблон явно не в размере поле mysql.
  7. Я же написал, первые два символа {lang=uk}Привіт{/lang} Заголовок темы принято называть тайтлом (title). Пишите конкретнее чтобы было понятно. С тайтлами сложнее, там генерируется чпу и нет определенного метода для его вывода.
  8. Нужно смотреть локаль языка (Короткая запись) в настройках, название атрибута соответствует первым двум символам. Заголовок чего?
  9. В uploads это кеш. "Рабочий" js находится в базе данных core_javascript.
  10. На удивление сделать это не сложно. В \IPS\forums\Topic есть такой метод как canComment, который отвечает за право пользователя комментировать. Открыть \applications\forums\sources\Topic\Topic.php Найти public function canComment( $member=NULL ) { Ниже добавить if( !$member AND in_array( $this->forum_id, array( ид_раздела ) ) AND ( \IPS\Member::loggedIn()->member_id != $this->starter_id AND !\IPS\Member::loggedIn()->isAdmin() ) ) { return FALSE; } ид_раздела - ид форума где право отвечать имеет только топик стартер.
  11. В принципе нет ничего сложного сделать такой плагин с заменой по регулярному выражению. Можно использовать метод \IPS\forums\Topic\Post::content() который выводит содержимое сущности. В качестве атрибутов языка используются первые две буквы локали языка. ru_RU - ru, en_US - en и тд. Плагин получился очень простым, единственный недостаток что сообщения парсятся "на лету", но как правило сейчас уже все используют этот метод. Hide Content By Lang.xml
  12. Некропост mode Очень просто сделать такой редирект через мод_реврайт В .htaccess корне сайте site.ru/.htaccess добавить RewriteEngine On RewriteRule ^forum/index\.php(/.*)$ /forums$1 [R=301,L] RewriteRule ^forum/(index\.php)? /forums/ [R=301,L]
  13. В файлах /applications/links/sources/Link/Comment.php /applications/links/sources/Link/Link.php /applications/links/sources/Link/Review.php Найти и удалить \IPS\Content\ReportCenter, А вообще странно что на одном форуме не работает, по идее он не должен работать на всех 4.3, по крайней мере частично. И обновится все таки желательно, версия уже старая бог знает что там еще изменилось в 3x.
  14. В логах. Если ошибка сервера в логах php, если форума то в \uploads\logs (или через АЦ)
  15. Есть еще вариант с правкой шаблона Customization -> %Тема% -> core -> global -> global -> includeMeta Найти {{foreach \IPS\Output::i()->metaTags as $name => $content}} Ниже добавить {{if $name == 'robots' AND request.app == 'core' AND request.module == 'search' AND request.tags}} {{continue;}} {{endif}}
  16. Теги относятся к модулю поиска, а результаты поиска по умолчанию закрыты для индексации. Открыть \applications\core\modules\front\search\search.php Найти \IPS\Output::i()->metaTags['robots'] = 'noindex'; // Tell search engines not to index search pages Заменить на if( !\IPS\Request::i()->tags ) { \IPS\Output::i()->metaTags['robots'] = 'noindex'; // Tell search engines not to index search pages }
  17. Есть мнение что вы не правильно редактируете файл или , но это не точно, так как лог ошибок вы показали. Увы, по этой бесполезной картинки я ничего не могу подсказать.
  18. Ага, ну как же. https://invisioncommunity.com/forums/topic/428730-introduction-notice/
  19. Отчет как то пустовато получился. Не очень объективно, учитывая сколько у вас там средств защиты от ботов. Нужно как минимум взять все ип адреса регистрации с момента установки этой модификации и проверить по спамбазе. Потом взять такой же промежуток времени до установки этого поле и также проверить ип по базе. Понятное дело что некоторые ип на момент регистрации могут быть чистыми, но такое как правило бывает редко. Прочие факторы должны быть равны, чтобы не искажали результат.
  20. Это конечно шляпа, текст должен заменятся между начальным и конечным тегом, а не просто по ббкоду. Такого даже в тройке небыло. Отключить эти ббкоды можно правкой кода в файле system\Text\Parser.php Найти foreach ( \IPS\Application::allExtensions( 'core', 'BBCode', $member ) as $key => $bbcode ) { if ( $bbcode->permissionCheck( $member, $area ) ) { list( $app, $tag ) = explode( '_', $key ); $return[ $tag ] = $bbcode->getConfiguration(); } } Ниже добавить $return = array_diff_key( $return, array_flip( array( 'u', 's', 'i', 'b' ) ) ); Через редактор оформление этих ббкодов по прежнему будет доступно.
  21. Боюсь спросить, вы точно xml файл устанавливаете а не архив? Не перепутали плагин с приложениями? Другие плагины при этом устанавливаются нормально? Это ошибка говорит о том, что не удается прочитать xml файл и она не связана с плагином. Последняя актуальная бесплатная версия отлично устанавливается и прекрасно работает на IPS 4.3.
×
×
  • Создать...