Posts posted by siv1987
-
-
57 минут назад, aplayer сказал:
код шаблонов со скобочками не подсвечивается наверно ни одним редактором
Код, как сказали выше, надо разделять от представления - шаблона. Пишите свою логику в методах класса, там подсветка и проверка синтаксиса работает, а шаблоны используйте только для оформления. Что мешает написать в том же методе hookData логику работы а потом скомпилировать шаблон на основе этих данных? Зачем городить костыли с инклудом левого файла, а потом еще придумывать как этот файл записать на диске при установке.
Возьмите пару тройку плагинов которые используют нужный вам принцип и посмотрите какм там это реализовано, не нужно изобретать свои велосипеды, особенно когда знания языка не особо это позволяет.
1 час назад, aplayer сказал:А вот когда дело дойдет до php там редакторы начнут спотыкаться.
Php в шаблоне по большему счету делать нечего. В шаблонизаторе используются только простые выражения, там подсветка не нужна, вся логика отдельно.
-
-
-
-
-
-
-
-
-
-
-
4 минуты назад, Lafko сказал:
Вот так работать будет?
Нет.
if ( !$this->key ) { do { $this->key = $this->generate(); } while ( \count( \IPS\Db::i()->select( '*', 'nexus_licensekeys', array( 'lkey_key=?', $this->key ) ) ) ); /* create external connect */ \IPS\Db::i( 'remote_database_name', array( 'sql_host' => 'host', 'sql_user' => 'user', 'sql_pass' => 'pass', 'sql_database' => 'database', ) ); \IPS\Db::i('remote_database_name')->insert('your_table', array('license_key' => $this->key)); }
-
-
1 минуту назад, Lafko сказал:
Не совсем понял вопрос про пользователя который имеет доступ но я думаю что нет? Мне надо создать новое подключение.
Выполнить запрос SHOW DATABASES в админцентр форума > Support > SQL Toolbox
Или посмотреть в phpmyadmin4 минуты назад, Lafko сказал:Вот весь код файла LicenseKey.php
На какой хрен засорять тему, он у меня и так есть.
Вставьте после
while ( \count( \IPS\Db::i()->select( '*', 'nexus_licensekeys', array( 'lkey_key=?', $this->key ) ) ) );
-
mysql пользователь который использует форум имеет доступ к этой базе данных? Если да, то запрос можно выполнить от текущего подключения.
Если нет то http://ipbskins.ru/forum/topic15779.html#entry105651
/* create external connect */ \IPS\Db::i( 'remote_database_name', array( 'sql_host' => 'host', 'sql_user' => 'user', 'sql_pass' => 'pass', 'sql_database' => 'database', ) ); \IPS\Db::i('remote_database_name')->insert('you_table', array('license_key' => $this->key));
-
А чем таблица форума не устраивает? Можно создать mysql триггер таблицы при inserte чтобы данные копировались в другую таблицы.
wanted, достаточно будет в конце условия добавить
\IPS\Db::i()->insert( 'your_table', array( 'license_key' => $this->key ) );
Только насколько я понял ТС нужно вставить еще и в другую бд. Тут либо создать другое подключение, либо если у mysql пользователя есть доступ к этой бд, использовать нативный метод \IPS\Db::i()->query с указанием таблицы другой базы данных INSERT INTO other_db.your_table
-
Обновить файл /ips_kernel/classEmail.php от версии 3.4.9 http://ipbskins.ru/forum/topic14872.html#entry99413
Пофиксить команду HELO http://ipbskins.ru/forum/topic14312.html#entry96013 -
-
-
-
-
Форум использует запрос к бд для дополнительных полей. Отдельных методов нету.
$profileFields = ['member_id' => %member_id, 'field_%id' => 'new_value']; \IPS\Db::i()->replace( 'core_pfields_content', $profileFields );
При большем желании можно написать плагин который добавит новый метод к \IPS\Member для обновления дополнительных полей.
-
-
Создание плагина
in Invision Community 4 Support
Этот файл как раз для этого и преднозначен. Не хватает абстракции в одном файле, создавайте приложение и разделяйте код по логике. Вы для начало напишите эти 1000 строк а потом уже будете думать надо ли расширятся или нет. Это частая ошибка новичков когда они с самого начала хотят написать мега крутую аппликацию с сложной структурой.
https://ru.m.wikipedia.org/wiki/Model-View-Controller
Значит вы не знакомы с паттерными проектирования.