Перейти к содержанию

siv1987

Пользователи
  • Постов

    278
  • Зарегистрирован

  • Посещение

  • Победитель дней

    27

Сообщения, опубликованные siv1987

  1. 57 минут назад, aplayer сказал:

    код шаблонов со скобочками не подсвечивается наверно ни одним редактором

    Код, как сказали выше, надо разделять от представления - шаблона. Пишите свою логику в методах класса, там подсветка и проверка синтаксиса работает, а шаблоны используйте только для оформления. Что мешает написать в том же методе hookData логику работы а потом скомпилировать шаблон на основе этих данных? Зачем городить костыли с инклудом левого файла, а потом еще придумывать как этот файл записать на диске при установке.

    Возьмите пару тройку плагинов которые используют нужный вам принцип и посмотрите какм там это реализовано, не нужно изобретать свои велосипеды, особенно когда знания языка не особо это позволяет. 

    1 час назад, aplayer сказал:

    А вот когда дело дойдет до php там редакторы начнут спотыкаться.

    Php в шаблоне по большему счету делать нечего. В шаблонизаторе используются только простые выражения, там подсветка не нужна, вся логика отдельно.

  2. Для гостей кешируется шаблон на небольшой срок. Пару секунд абсолютно не критично и, если не ошибаюсь это время можно настроить. Инклуды это дичь, и не знаю чем это спасет ситуацю, но если так сильно хочеться можете попробовать всунуть ваш код в файле хука, отдельно от класса. 

  3. За небольшую мотивацию могут состряпать скрипт который распарсит  csv файл экспортированный из excel и создаст по нему темы на форуме с указанными настройками. Больше увы я не готов делать.

  4. Да не в коде, а в переменной.  Где вы хотите получить, там и смотрите.

    $purchase->expire

    Если в том же месте где находится код для вставки в другую бд, то скорее всего так

    $purchase = $this->get_purchase();
    $purchase->expire;

     

  5. 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));
    	}

     

  6. 1 минуту назад, Lafko сказал:

    Не совсем понял вопрос про пользователя который имеет доступ но я думаю что нет? Мне надо создать новое подключение.

    Выполнить запрос SHOW DATABASES в админцентр форума > Support > SQL Toolbox
    Или посмотреть в phpmyadmin
    image.thumb.png.7816a96761d34ce0b622623edf9b411d.png

    4 минуты назад, Lafko сказал:

    Вот весь код файла LicenseKey.php

    На какой хрен засорять тему, он у меня и так есть.
    Вставьте после
     

    while ( \count( \IPS\Db::i()->select( '*', 'nexus_licensekeys', array( 'lkey_key=?', $this->key ) ) ) );

     

  7. 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));

     

  8. А чем таблица форума не устраивает? Можно создать 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

  9. Это оказывается setter, он отрабатывает в обоих случаях. Только если вызвать его напрямую, поле не устанавливается в "changed to update".

    Вообще что касается обновления в БД, методы set_ лучше не использовать.

  10. Так и перестраивается кеш через Саппорт. А почему у вас кеш шаблонов в uploads?..

    Шаблон forumTable в версии 4.4 сильно ничем не отличается. Возможно дело не в нем самом, а в входящих данных. Нужно смотреть.

  11. Форум использует запрос к бд для дополнительных полей. Отдельных методов нету.

    $profileFields = ['member_id' => %member_id, 'field_%id' => 'new_value'];
    \IPS\Db::i()->replace( 'core_pfields_content', $profileFields );

     

    При большем желании можно написать плагин который добавит новый метод к \IPS\Member для обновления дополнительных полей.

  12. 17 минут назад, Temtaime сказал:

    Error: Call to a member function setQueryString() on null in /var/www/forum/uploads/template_6_1bb0e8f6d56f81d6c7163246c7be5ae2_forums.php:1134
    Stack trace:

    Какбы не тоже самое. Вам нужно или перестроить кеш шаблонов или обновить до актуальной версии.

  13. Ничего странного как раз нету. В новой версии - новые файлы, а иногда и новая структура. При откате перезаливом сверху перезаписываются только пересекающиеся файлы, а новые, не совместимые со старой версии могут остаться вызывая проблемы. 

×
×
  • Создать...