14 марта, 20195 yr comment_156188 Таблица core_members_history insert into `core_member_history` values( и тут по порядку нужные поля добавляем );
14 марта, 20195 yr Author comment_156189 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х ошибки. Edited 14 марта, 20195 yr by aplayer
14 марта, 20195 yr comment_156190 Ну если она из members, то и запускаться должна от members типа $this->members->logHistory( 'core', 'login');
14 марта, 20195 yr Author comment_156191 вот. Как-то так $c_member = \IPS\Member::loggedIn(); $c_member->logHistory('core', 'member', 'бла бла бла', $by=NULL );
14 марта, 20195 yr comment_156192 2 часа назад, aplayer сказал: $by=NULL он по умолчанию NULL, не надо его передавать в параметрах.
29 марта, 20195 yr Author comment_156474 Еще вопрос. Не могу разобраться как использовать класс 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. Вобщем мне бы надо получить массив данных согласно запроса.
29 марта, 20195 yr comment_156477 Зависит от того - что за массив вы хотите получить: $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; }
21 мая, 20195 yr Author comment_157263 если я зайду в профиль другого пользователя, не в свой профиль, мой плагин должен узнать его id ник итп Как такое реализовать?
21 мая, 20195 yr comment_157264 $member = \IPS\Member::load( \IPS\Request::i()->id ); $member->member_id - идентификатор, $member->name - имя.
21 мая, 20195 yr comment_157265 49 минут назад, aplayer сказал: если я зайду в профиль другого пользователя Если это хук модуля profile.php то $this->member
7 декабря, 20195 yr Author comment_160557 при разработке плагина использовал в хуке функцию in_array мне выдает такую ошибку Цитата You have used a function (in_array) that should be called from the root namespace for performance reasons Не могу понять что это такое и как с этим бороться. Я так понимаю движок не дает мне использовать эту функцию в открытом виде. Что делать?
7 декабря, 20195 yr Author comment_160561 В документации много где сказано, что в шаблон можно передать параметры чрез эту строку. И больше ни слова ка именно их передавать. <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 чтобы ее можно было отобразить на странице?
7 декабря, 20195 yr comment_160563 {template="phtml" group="plugins" location="global" app="core" params="$secret_key"}
7 декабря, 20195 yr Author comment_160564 WaNted вот такой код завершается ошибкой Whoops \ Exception \ ErrorException (E_NOTICE) Undefined variable: secret_key <ips:template parameters="$secret_key" /> <div>{$secret_key}</div>
7 декабря, 20195 yr comment_160566 $secret_key = 'secret_key'; $content = \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' )->phtml( $secret_key );
8 декабря, 20195 yr Author comment_160568 И еще такой вопрос. Когда я правлю файлы хуков и шаблоны phtml, то какое-то время сайт реагирует на изменения. Но через некоторое время перестает. То-есть я вношу правки в файлы, а сайт продолжает работать как будто ничего не изменилось. Чтобы изменения вступили в силу надо плагин скачать и заново установить. А можно ли что нибудь сделать так чтобы не пришлось переустанавливать плагин? Ведь какое-то время изменения применяются без переустановки.
8 декабря, 20195 yr Author comment_160570 1 час назад, WaNted сказал: Режим разработчика включен? да включен. Предположительно это похоже не сессию. В течении определенного времени после активности изменения принимаются, а после как будто где-то кешируются и больше исходники не читаются.
8 декабря, 20195 yr Author comment_160572 установил плагин на тестовую копию боевого сайта. На нем блок начал кешироваться. Причем так, что одни пользователи видят кешированный блок предназначенный другим пользователям. У меня цель создать плагин который будет выдавать динамическую информацию, уникальную для каждого пользователя. Поэтому блок не должен кешироваться и отображаться одно и тоже разным пользователям На сайте на котором разрабатывался плагин, все хорошо. Наверно из за режима разработчика.
8 декабря, 20195 yr Author comment_160573 Если выключить режим разработчика, то вот такой хук зависает. Кешируется и обновляется раз в пол часа //<?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() Если сменить пользователя, то он тоже видит цифру, которая была сгенерирована у предыдущего пользователя.
9 декабря, 20195 yr Author comment_160604 Вопрос стоит очень остро. версия форума 4.4.9 прилагаю тестовый плагин с исходниками. Тестировал на разных сайтах. Итог один. Если выключить режим разработчика PHP выполняется 1 раз и результат выполнения замораживается для всех пользователей навсегда. Тестовый плагин при каждом обновлении страницы, между навигатором и контентом должен выводить результат функции time() - постоянно увеличивающееся число. Но но выводит только постоянное число. plugins.7z
9 декабря, 20195 yr Author comment_160606 12 минут назад, WaNted сказал: Попробуйте так: 'content' => '{expression="time()"}' Вроде заработало. Надеюсь \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' )->phtml( $params ); в этой конструкции будет работать без кеширования
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.