14 марта, 20195 yr comment_156188 Таблица core_members_history insert into `core_member_history` values( и тут по порядку нужные поля добавляем ); Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=156188 Share on other sites Больше вариантов
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 Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=156189 Share on other sites Больше вариантов
14 марта, 20195 yr comment_156190 Ну если она из members, то и запускаться должна от members типа $this->members->logHistory( 'core', 'login'); Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=156190 Share on other sites Больше вариантов
14 марта, 20195 yr Author comment_156191 вот. Как-то так $c_member = \IPS\Member::loggedIn(); $c_member->logHistory('core', 'member', 'бла бла бла', $by=NULL ); Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=156191 Share on other sites Больше вариантов
14 марта, 20195 yr comment_156192 2 часа назад, aplayer сказал: $by=NULL он по умолчанию NULL, не надо его передавать в параметрах. Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=156192 Share on other sites Больше вариантов
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. Вобщем мне бы надо получить массив данных согласно запроса. Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=156474 Share on other sites Больше вариантов
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; } Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=156477 Share on other sites Больше вариантов
21 мая, 20195 yr Author comment_157263 если я зайду в профиль другого пользователя, не в свой профиль, мой плагин должен узнать его id ник итп Как такое реализовать? Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=157263 Share on other sites Больше вариантов
21 мая, 20195 yr comment_157264 $member = \IPS\Member::load( \IPS\Request::i()->id ); $member->member_id - идентификатор, $member->name - имя. Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=157264 Share on other sites Больше вариантов
21 мая, 20195 yr comment_157265 49 минут назад, aplayer сказал: если я зайду в профиль другого пользователя Если это хук модуля profile.php то $this->member Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=157265 Share on other sites Больше вариантов
7 декабря, 20194 yr Author comment_160557 при разработке плагина использовал в хуке функцию in_array мне выдает такую ошибку Цитата You have used a function (in_array) that should be called from the root namespace for performance reasons Не могу понять что это такое и как с этим бороться. Я так понимаю движок не дает мне использовать эту функцию в открытом виде. Что делать? Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160557 Share on other sites Больше вариантов
7 декабря, 20194 yr Author comment_160558 функцию вызвал в хуке Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160558 Share on other sites Больше вариантов
7 декабря, 20194 yr comment_160560 \in_array Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160560 Share on other sites Больше вариантов
7 декабря, 20194 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 чтобы ее можно было отобразить на странице? Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160561 Share on other sites Больше вариантов
7 декабря, 20194 yr comment_160563 {template="phtml" group="plugins" location="global" app="core" params="$secret_key"} Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160563 Share on other sites Больше вариантов
7 декабря, 20194 yr Author comment_160564 WaNted вот такой код завершается ошибкой Whoops \ Exception \ ErrorException (E_NOTICE) Undefined variable: secret_key <ips:template parameters="$secret_key" /> <div>{$secret_key}</div> Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160564 Share on other sites Больше вариантов
7 декабря, 20194 yr comment_160566 $secret_key = 'secret_key'; $content = \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' )->phtml( $secret_key ); Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160566 Share on other sites Больше вариантов
8 декабря, 20194 yr Author comment_160568 И еще такой вопрос. Когда я правлю файлы хуков и шаблоны phtml, то какое-то время сайт реагирует на изменения. Но через некоторое время перестает. То-есть я вношу правки в файлы, а сайт продолжает работать как будто ничего не изменилось. Чтобы изменения вступили в силу надо плагин скачать и заново установить. А можно ли что нибудь сделать так чтобы не пришлось переустанавливать плагин? Ведь какое-то время изменения применяются без переустановки. Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160568 Share on other sites Больше вариантов
8 декабря, 20194 yr comment_160569 Режим разработчика включен? Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160569 Share on other sites Больше вариантов
8 декабря, 20194 yr Author comment_160570 1 час назад, WaNted сказал: Режим разработчика включен? да включен. Предположительно это похоже не сессию. В течении определенного времени после активности изменения принимаются, а после как будто где-то кешируются и больше исходники не читаются. Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160570 Share on other sites Больше вариантов
8 декабря, 20194 yr Author comment_160572 установил плагин на тестовую копию боевого сайта. На нем блок начал кешироваться. Причем так, что одни пользователи видят кешированный блок предназначенный другим пользователям. У меня цель создать плагин который будет выдавать динамическую информацию, уникальную для каждого пользователя. Поэтому блок не должен кешироваться и отображаться одно и тоже разным пользователям На сайте на котором разрабатывался плагин, все хорошо. Наверно из за режима разработчика. Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160572 Share on other sites Больше вариантов
8 декабря, 20194 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() Если сменить пользователя, то он тоже видит цифру, которая была сгенерирована у предыдущего пользователя. Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160573 Share on other sites Больше вариантов
9 декабря, 20194 yr Author comment_160604 Вопрос стоит очень остро. версия форума 4.4.9 прилагаю тестовый плагин с исходниками. Тестировал на разных сайтах. Итог один. Если выключить режим разработчика PHP выполняется 1 раз и результат выполнения замораживается для всех пользователей навсегда. Тестовый плагин при каждом обновлении страницы, между навигатором и контентом должен выводить результат функции time() - постоянно увеличивающееся число. Но но выводит только постоянное число. plugins.7z Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160604 Share on other sites Больше вариантов
9 декабря, 20194 yr comment_160605 Попробуйте так: 'content' => '{expression="time()"}' Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160605 Share on other sites Больше вариантов
9 декабря, 20194 yr Author comment_160606 12 минут назад, WaNted сказал: Попробуйте так: 'content' => '{expression="time()"}' Вроде заработало. Надеюсь \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' )->phtml( $params ); в этой конструкции будет работать без кеширования Link to comment https://ipbmafia.ru/topic/21131-sozdanie-plagina/?&do=findComment&comment=160606 Share on other sites Больше вариантов
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.