Desti
Актив
-
В сети
-
Количество сообщений
2 149 -
Reputation
1,2k Desti's Reputation
Everything posted by Desti
-
Очистка кэша при сохранении
Ну, видимо, добавить эту строчку после сохранения формы.
-
Пометить тему прочитанной в активности (Mark this topic read) 4.6.4
Нет, номер топика будет определяться при генерации страницы. Но если на каждую строку генерить пару data-controller и data-action, то в исходниках будет много лишнего хлама, поэтому data-controller выносят за пределы цикла перебора топиков и получается что-то типа <div class="..." data-controller="forums.front.forum.hovercard"> <a href="..." title="Отметить тему прочитанной" data-action="markTopicRead" data-topicid="3322"">Отметить тему прочитанной</a> <a href="..." title="Отметить тему прочитанной" data-action="markTopicRead" data-topicid="3323">Отметить тему прочитанной</a> <a href="..." title="Отметить тему прочитанной" data-action="markTopicRead" data-topicid="3324">Отметить тему прочитанной</a> <a href="..." title="Отметить тему прочитанной" data-action="markTopicRead" data-topicid="3325">Отметить тему прочитанной</a></div> Обработчик должен понимать, откуда ему брать данные. Если этот атрибут живет в родительском диве, то он доступен в скрипте по this.scope.attr('data-topicID'), а если в ссылке, то по $( e.currentTarget ).attr('data-topicID'), т.е. надо будет немного изменить JS, чтобы он брал нужные данные для работы со списком.
-
Очистка кэша при сохранении
\IPS\Data\Cache::i()->clearAll() - не?
-
Пометить тему прочитанной в активности (Mark this topic read) 4.6.4
topicId должен динамически присваиваться в шаблоне, а controller статичен ...data-topicID='{$topic->tid}'... В предложенном виде это нормально для всплывающего окна, но для больших списков не гут, лучше перенести data-topiciID в ссылку, а в общем диве оставить только controller.
-
Пометить тему прочитанной в активности (Mark this topic read) 4.6.4
Для того, чтобы сработал скрипт, вы должны в родительском диве прописать (data-controller=) скрипт, который будет вызываться при нажатии на ссылку и передать в него параметры (например, data-topicid - номер темы). А в ссылке в свойстве data-action прописать название функции, которая должна вызваться. Если не прописать скрипт, будет просто переход по ссылке, что и происходит. <div class="..." data-controller="forums.front.forum.hovercard" data-topicid="3322"> <a href="..." title="Отметить тему прочитанной" data-action="markTopicRead">Отметить тему прочитанной</a> </div>
-
Вывод сообщения об ограничении в Downloads
Или ограничить гостям и новичкам (группа 7, например) {{ if \IPS\Member::loggedIn()->inGroup (array(2,7)) and ...
-
Вывод сообщения об ограничении в Downloads
Есть шаблон downloads->front->view->view, дальше просто вместо кнопки {template="downloadButton" group="view" app="downloads" params="$file"} вставляем {{if \IPS\Member::loggedIn()->group['g_id'] == 2 and $file->filesize() > 50000000}} Молодой исчо, вали отседова {{else}} {template="downloadButton" group="view" app="downloads" params="$file"} {{endif}}
-
Не поможете с mysql-запросом?
Проще скриптом (создать файлик в корневой директории, назвать, например, upd.php) Адреса для удаления записать в отдельный файлик emails.txt, один адрес на строку, тоже положить в корень. Вызвать http://ваш домен.ru/upd.php Предупреждаю, все такие операции надо делать только с копией таблицы базы. После преобразования и проверки переименовать таблицы. <?php \define('REPORT_EXCEPTIONS', TRUE); $_SERVER['SCRIPT_FILENAME'] = __FILE__; require_once 'init.php'; \IPS\Session\Front::i(); $h = \fopen("./emails.txt", "r"); $limit = 0; $in = array(); if ($h) { while (!feof($h)) { $a = rtrim(fgets($h, 256)); if($a !== '') { $in[] = $a; $limit++; } if($limit==50) { \IPS\Db::i()->update( 'core_members_copy', array('allow_admin_mails' => 0), \IPS\Db::i()->in('email', $in)); $in = array(); $limit = 0; } } fclose($h); if($limit) { \IPS\Db::i()->update( 'core_members_copy', array('allow_admin_mails' => 0), \IPS\Db::i()->in('email', $in)); } }
-
Не обновляется IPS с 4.5.4.2 на 4.6.5.1
форум пустой, поэтому прокатило, на рабочем надо добавлять поле в таблицу, как я написал в первом сообщении. Команда пытается из одной таблицы скопировать данные в другую, а полей разное количество, вот и лезет ошибка row count.
-
Не обновляется IPS с 4.5.4.2 на 4.6.5.1
Вот буквально час назад обновлял тестовый с 4.5 на 4.6, вылезла эта ошибка. В базе на этот момент две таблицы, core_achievements_log_milestones и core_achievements_log_milestones_new, я удалил таблицу без new и переименовал с new, нажал retry и всё поехало без ошибок.
-
Покупка приложения
Скачать новый (полный) пакет в кабинете, залить, запустить апгрейд, выбрать только новое приложение. Вроде так.
-
Не обновляется IPS с 4.5.4.2 на 4.6.5.1
Добавить в таблицу `core_achievements_log_milestones` поле `milestone_type` varchar(100) COLLATE utf8mb4_unicode_ci DEFAULT 'subject',
-
Tutorials
Еще, судя по всему, надо добавить (в файле п.1 ) строку public static $commentClass = 'IPS\tutorials\Article\Comment'; Я пока до конца не понял, что они там наколбасили, но хуже в любом случае не будет
- 101 replies
-
- fix
- 4.6+
- 4.5
- приложение
-
+1 more
С тегами:
-
Tutorials
В общем так: 1. добавить (source/../Category.php) параметр в функцию, должно быть так: public function getLastCommentTime( \IPS\Member $member = NULL ) 2. В заголовке класса добавить после use \IPS\Node\Colorize; строку use \IPS\Node\Statistics; 3. В modules/admin/tut../tools.php в функции doCreateTopics() вместо строк $select = \IPS\Db::i()->select( '*', много букав)); $total = $select->count( TRUE ); вставить $select = \IPS\Db::i()->select( '*', 'tutorials_articles', array( implode( ' AND ', $where ) ), 'a_id ASC', array( is_array( $data ) ? $data['done'] : 0, $cycle )); $total = \IPS\Db::i()->select( 'count(*)', 'tutorials_articles', array( implode( ' AND ', $where ) ), 'a_id ASC', array( is_array( $data ) ? $data['done'] : 0, $cycle ))->first(); а в функции rebuildTopicsCycle() заменить похожую конструкцию на $select = \IPS\Db::i()->select( '*', 'tutorials_articles', $_SESSION['tutorials_rebuild_topics'], 'a_id ASC', array( is_array( $data ) ? $data['done'] : 0, $cycle ) ); $total = \IPS\Db::i()->select( 'count(*)', 'tutorials_articles', $_SESSION['tutorials_rebuild_topics'], 'a_id ASC', array( is_array( $data ) ? $data['done'] : 0, $cycle ) )->first(); Вроде больше ошибок не попалось, на последней версии работает и паблик и админка. Будут еще ошибки - пишите, поковыряюсь.
- 101 replies
-
- fix
- 4.6+
- 4.5
- приложение
-
+1 more
С тегами:
- Tutorials
- Tutorials
- Tutorials
-
Файлы из архива IPS (поможем скачать)
Герои есть, кнопки "скачать" нет, только Install
-
Проблема подтверждения почты
Грохните мою регистрацию, плиз..
-
Проблема подтверждения почты
Нормально зарегился (если вы про fivex.ru). У форума своя защита нормально работает, отключение mod_security ни на что не повлияет.
-
Проблема подтверждения почты
Хостер скажет добавить в .htaccess строчки <IfModule mod_security.c> SecFilterEngine Off SecFilterScanPOST Off </IfModule>
-
Проблема подтверждения почты
В настройках ftp надо поставить крыжик на "Show hidden files" - "Показывать скрытые файлы".
-
Ограничения перекрестных реакций пользователей
Да, есть такое. И, в основном, молодежь этим грешила.
-
Ограничения перекрестных реакций пользователей
У меня одно время такое лайкодрочерство было, я думал, как почикать, но не смог придумать критериев, по которым надо отлавливать их. Формально любой пользователь имеет право поставить лайк и даже если это перекрестные лайки, доказать ничего невозможно, особенно если интервал большой. Отлавливал вручную, по плюсам на бессмысленных сообщениях, показательно порол, постепенно сошло на нет.
-
Ограничения перекрестных реакций пользователей
Напрямую Ни один переводчик не сможет перевести "щелкни в ацп-шке на апликухи, там форумы, правой кнопой на карандашик и будет тебе счастье". Для иностранцев приходится писать на "переводимом" русском.