Desti Опубликовано 14 марта, 2019 Поделиться Опубликовано 14 марта, 2019 Таблица core_members_history insert into `core_member_history` values( и тут по порядку нужные поля добавляем ); Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 14 марта, 2019 Автор Поделиться Опубликовано 14 марта, 2019 (изменено) Desti а вот еще нашел в member.php /** * Log Member Action * * @param mixed $app The application action applies to * @param string $type Log type * @param mixed $extra Any extra data for the type * @param mixed $by The member performing the action. NULL for currently logged in member or FALSE for no member * * @return void */ public function logHistory( $app, $type, $extra=NULL, $by=NULL ) описание скудновато. Не понятно для чего эта функция. Пробовал позапускать в различных вариациях - 50х ошибки. Изменено 14 марта, 2019 пользователем aplayer Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 14 марта, 2019 Поделиться Опубликовано 14 марта, 2019 Ну если она из members, то и запускаться должна от members типа $this->members->logHistory( 'core', 'login'); Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 14 марта, 2019 Автор Поделиться Опубликовано 14 марта, 2019 вот. Как-то так $c_member = \IPS\Member::loggedIn(); $c_member->logHistory('core', 'member', 'бла бла бла', $by=NULL ); Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Desti Опубликовано 14 марта, 2019 Поделиться Опубликовано 14 марта, 2019 2 часа назад, aplayer сказал: $by=NULL он по умолчанию NULL, не надо его передавать в параметрах. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 29 марта, 2019 Автор Поделиться Опубликовано 29 марта, 2019 Еще вопрос. Не могу разобраться как использовать класс select для работы с БД. Например мне надо получить все ID картинок из галереи старше определенной даты. $select = \IPS\Db::i()->select('image_id', 'gallery_images', array('image_updated>?', '1538300099'),'image_id DESC', array( 0, 10 ) ); Не могу сообразить как из $select вытащить массив данных. Функция var_dump($select); выводит объект с какой-то служебной информацией и структурами таблиц. Я же запросил Вывести 10 штук image_id возраст которых старше метки времени 1538300099. Если использовать метод first() то она выводит первое полученное значение. То-есть я на верном пути и ошибок в запросе нет. Есть еще метод next() но он в цикле с первого же раза возвращает null. Вобщем мне бы надо получить массив данных согласно запроса. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Dmitriy427 Опубликовано 29 марта, 2019 Поделиться Опубликовано 29 марта, 2019 Зависит от того - что за массив вы хотите получить: $select = array(); foreach( \IPS\Db::i()->select('image_id', 'gallery_images', array('image_updated>?', '1538300099'),'image_id DESC', array( 0, 10 ) ) as $row ) { //$select[] = $row; $select[ $row['image_id'] ] = $row['gallery_images']; } Сори, за копипастом не уследил. Правильно в Вашем случае так: $select = array(); foreach( \IPS\Db::i()->select('image_id', 'gallery_images', array('image_updated>?', '1538300099'),'image_id DESC', array( 0, 10 ) ) as $row ) { $select[] = $row; } aplayer 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 21 мая, 2019 Автор Поделиться Опубликовано 21 мая, 2019 если я зайду в профиль другого пользователя, не в свой профиль, мой плагин должен узнать его id ник итп Как такое реализовать? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WaNted Опубликовано 21 мая, 2019 Поделиться Опубликовано 21 мая, 2019 $member = \IPS\Member::load( \IPS\Request::i()->id ); $member->member_id - идентификатор, $member->name - имя. aplayer 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
siv1987 Опубликовано 21 мая, 2019 Поделиться Опубликовано 21 мая, 2019 49 минут назад, aplayer сказал: если я зайду в профиль другого пользователя Если это хук модуля profile.php то $this->member aplayer 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 7 декабря, 2019 Автор Поделиться Опубликовано 7 декабря, 2019 при разработке плагина использовал в хуке функцию in_array мне выдает такую ошибку Цитата You have used a function (in_array) that should be called from the root namespace for performance reasons Не могу понять что это такое и как с этим бороться. Я так понимаю движок не дает мне использовать эту функцию в открытом виде. Что делать? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 7 декабря, 2019 Автор Поделиться Опубликовано 7 декабря, 2019 функцию вызвал в хуке Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WaNted Опубликовано 7 декабря, 2019 Поделиться Опубликовано 7 декабря, 2019 \in_array aplayer 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 7 декабря, 2019 Автор Поделиться Опубликовано 7 декабря, 2019 В документации много где сказано, что в шаблон можно передать параметры чрез эту строку. И больше ни слова ка именно их передавать. <ips:template parameters="$param1" /> Как я не пытаюсь эти параметры передать мне все пишет ошибку типа $param1 не определена или об отсутствии аргументов у функции. Как мне из хука перекинуть несколько параметров в шаблон phtml? вот пример хука //<?php /* To prevent PHP errors (extending class does not exist) revealing path */ if (!\defined('\IPS\SUITE_UNIQUE_KEY')) { exit; } class hook49 extends _HOOK_CLASS_ { /* !Hook Data - DO NOT REMOVE */ public static function hookData() { $secret_key = "secret_key"; $content = '{template="phtml" group="plugins" location="global" app="core"}'; return array_merge_recursive(array( 'globalTemplate' => array( 0 => array( 'selector' => '#ipsLayout_mainArea', 'type' => 'add_before', 'content' => $content, ), ), ), parent::hookData()); } /* End Hook Data */ } Как отправить переменную $secret_key в шаблон PHTML чтобы ее можно было отобразить на странице? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WaNted Опубликовано 7 декабря, 2019 Поделиться Опубликовано 7 декабря, 2019 {template="phtml" group="plugins" location="global" app="core" params="$secret_key"} Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 7 декабря, 2019 Автор Поделиться Опубликовано 7 декабря, 2019 WaNted вот такой код завершается ошибкой Whoops \ Exception \ ErrorException (E_NOTICE) Undefined variable: secret_key <ips:template parameters="$secret_key" /> <div>{$secret_key}</div> Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WaNted Опубликовано 7 декабря, 2019 Поделиться Опубликовано 7 декабря, 2019 $secret_key = 'secret_key'; $content = \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' )->phtml( $secret_key ); aplayer 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 8 декабря, 2019 Автор Поделиться Опубликовано 8 декабря, 2019 И еще такой вопрос. Когда я правлю файлы хуков и шаблоны phtml, то какое-то время сайт реагирует на изменения. Но через некоторое время перестает. То-есть я вношу правки в файлы, а сайт продолжает работать как будто ничего не изменилось. Чтобы изменения вступили в силу надо плагин скачать и заново установить. А можно ли что нибудь сделать так чтобы не пришлось переустанавливать плагин? Ведь какое-то время изменения применяются без переустановки. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WaNted Опубликовано 8 декабря, 2019 Поделиться Опубликовано 8 декабря, 2019 Режим разработчика включен? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 8 декабря, 2019 Автор Поделиться Опубликовано 8 декабря, 2019 1 час назад, WaNted сказал: Режим разработчика включен? да включен. Предположительно это похоже не сессию. В течении определенного времени после активности изменения принимаются, а после как будто где-то кешируются и больше исходники не читаются. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 8 декабря, 2019 Автор Поделиться Опубликовано 8 декабря, 2019 установил плагин на тестовую копию боевого сайта. На нем блок начал кешироваться. Причем так, что одни пользователи видят кешированный блок предназначенный другим пользователям. У меня цель создать плагин который будет выдавать динамическую информацию, уникальную для каждого пользователя. Поэтому блок не должен кешироваться и отображаться одно и тоже разным пользователям На сайте на котором разрабатывался плагин, все хорошо. Наверно из за режима разработчика. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 8 декабря, 2019 Автор Поделиться Опубликовано 8 декабря, 2019 Если выключить режим разработчика, то вот такой хук зависает. Кешируется и обновляется раз в пол часа //<?php /* To prevent PHP errors (extending class does not exist) revealing path */ if ( !\defined( '\IPS\SUITE_UNIQUE_KEY' ) ) { exit; } class hook73 extends _HOOK_CLASS_ { /* !Hook Data - DO NOT REMOVE */ public static function hookData() { $content = time(); return array_merge_recursive( array ( 'globalTemplate' => array ( 0 => array ( 'selector' => '#ipsLayout_mainArea', 'type' => 'add_inside_start', 'content' => $content, ), ), ), parent::hookData() ); } /* End Hook Data */ } Он должен при обновлении страницы выводить результат функции time() Если сменить пользователя, то он тоже видит цифру, которая была сгенерирована у предыдущего пользователя. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 9 декабря, 2019 Автор Поделиться Опубликовано 9 декабря, 2019 Вопрос стоит очень остро. версия форума 4.4.9 прилагаю тестовый плагин с исходниками. Тестировал на разных сайтах. Итог один. Если выключить режим разработчика PHP выполняется 1 раз и результат выполнения замораживается для всех пользователей навсегда. Тестовый плагин при каждом обновлении страницы, между навигатором и контентом должен выводить результат функции time() - постоянно увеличивающееся число. Но но выводит только постоянное число. plugins.7z Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
WaNted Опубликовано 9 декабря, 2019 Поделиться Опубликовано 9 декабря, 2019 Попробуйте так: 'content' => '{expression="time()"}' aplayer 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
aplayer Опубликовано 9 декабря, 2019 Автор Поделиться Опубликовано 9 декабря, 2019 12 минут назад, WaNted сказал: Попробуйте так: 'content' => '{expression="time()"}' Вроде заработало. Надеюсь \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' )->phtml( $params ); в этой конструкции будет работать без кеширования Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.