aplayer
Актив
-
В сети
-
Количество сообщений
413 -
Reputation
62 aplayer's Reputation
Everything posted by aplayer
-
Создание плагина
Desti я скажем так первый раз бросаюсь в бой на плагины. Ничего про технологию их создания не знаю. Сунулся в гугл, а там информация очень сжатая. Пытаюсь освоить методом проб и ошибок. Тот пример создания плагина который тут https://invisioncommunity.com/developers/docs/development/plugins/complete-example-of-a-plugin-in-ips-community-suite-r50/ не открывает всех секретов технологии. Синтаксис скобочек и шаблончиков мне понятен, не первый раз с подобным сталкивался, но он мне не нравится. Как представлю, что я сейчас начну обработчик post-запросов с проверкой sql-инъекций или сокет на этих скобочках писать буду мне аж дурно становится. Как а анекдоте: "бери лом - иди подметай" Ну и прикинул самый оптимальный вариант это минимум скобок а основная масса обычного php-кода иклюдится из других файлов. Про хуки кода в документации сказано, что они предназначены для расширения имеющихся в движке классов. В них можно писать на обычном php, но я не собираюсь ничего расширять.
-
Создание плагина
siv1987 если честно я не понял о чем речь. Точнее не понял что значит отделить логику от шаблона.
-
Создание плагина
на скрине чистый html в котром ips-теги стоят между html-тегами и воспринимаются редактором как обычный текст. А вот когда дело дойдет до php там редакторы начнут спотыкаться.
-
Создание плагина
код шаблонов со скобочками не подсвечивается наверно ни одним редактором. Например netbeans не будет показывать ошибки синтаксиса. Некоторые более простые текстовые редакторы с подсветкой синтаксиса будут наоборот на каждую скобку реагировать как на ошибку и весь код будет подчеркнут красными линиями и восклицательными знаками. Благо тот же netbeans не реагирует как на ошибки. Так же ни один редактор не выравнивает такой код лесенкой. Недостатков много. А с инклюдом, прописал в шаблоне одну строку и пиши весь остальной код в любимом редакторе на обычном php html js css итп.
-
Создание плагина
Так вот. Снова хочу вернуться к инклюдам. Дело в том, что ни один из моих любимых php-редакторов не поддерживает подсветку синтаксиса шаблонизаторов. Ситуацию может спасти инклюд обычных php файлов, которые можно писать на классическом php {{require "php.php";}} Но... Как уже я говорил выше. При компиляции плагина удаляются абсолютно все файлы, которые не созданы в админке и которые не подключены тегами. В итоге я должен скомпилировать плагин, а php файлы для инклюда дожен загрузить на сервер сам после установки плагина на работающий форум. А нельзя сделать так чтобы файлы и устанавливались вместе с плагином и инклюдились без проблем?
- Как включить кэширование memcached
-
Создание плагина
хотя кешируется он только для гостей. Странно. я не хочу публично обсуждать подробности подробности поставленной мне задачи. Но кеширование вызовет проблему при тестировании. Сам понимаешь, ждать каждый раз по 30 секунд при проверке работы скрипта тоже не вариант.
-
Создание плагина
не помогает. Кешируется на 30 секунд. То-есть в течении 30 секунд обновлял страницу и ничего не менялось
-
Создание плагина
WaNted я уже решил переключиться на шаблонизаторы. Потому что инклюд все равно я так понимаю не возможен. Вот новая проблема <ips:template parameters="" /> {{$test = strftime('%d.%m.%Y %H:%M:%S', time());}} {$test} Этот код выводит текущее время на сервере. Но при обновлении страницы выводимое время не обновляется в около минуты. То-есть результат работы этого кода где-то кэшируется. Мне кэширование в этом плагине не нужно. Динамичный контент должен выводиться всегда обновленным. где-то можно выключить кэш этого шаблона?
-
Создание плагина
Я просто не люблю все эти шаблонизаторы. Хочу писать на обычном php. А еще я ips вижу первый раз. У меня нет времени все изучать.
-
Создание плагина
Ну не знаю. Было бы проще в некоторых моментах. Не хочу переходить на ips-совский php. Хочу основной код писать на классическом php
-
Создание плагина
WaNted а аналог echo var_dump итп?
-
Создание плагина
WaNted а есть какой нибудь класс при помощи которого можно парсить другие сайты.? Аналог Curl, fopen итп?
-
Создание плагина
Надо выводить динамическое содержимое. Например заголовки статей с новостного сайта. То-есть такое содержимое которое заранее не известно, постоянно изменяется, а иногда даже не существует
-
Создание плагина
Ну это как в анекдоте про армию: "Берете ломы, идете подметать плац..." Мы не в армии. И если надо что-то подметать, то лучше всего это делать метелкой а не ломами. если в dev/html создать файл с таким кодом: <ips:template parameters="" /> {{echo "test";}} то сайт не грузится, а выводится только такой текст и больше ничего: theme_core_global_plugins_test test {{echo "test";}} Где-то я читал, что в шаблонах нельзя использовать функции вывода информации на экран. Это совсем край. Для чего тогда вся эта возможность разработки плагинов придумана если в ней нельзя использовать php на 100%?
-
Создание плагина
WaNted в папке dev/html можно размещать php? Не эту логику шаблонов со скобочками а обычный php без скобочек?
-
Создание плагина
Проблема заключается в том, что при компиляции плагина удаляются все файлы котрые я создал вручную не через центр разработчика. При создании хука темы а папке hooks создается файл с таким содержимым. //<?php /* To prevent PHP errors (extending class does not exist) revealing path */ if (!defined('\IPS\SUITE_UNIQUE_KEY')) { exit; } class hook35 extends _HOOK_CLASS_ { /* !Hook Data - DO NOT REMOVE */ public static function hookData() { require 'file.php'; //здесь сделать инклюд который сформаирует перпменную $content return array_merge_recursive(array( 'globalTemplate' => array( 0 => array( 'selector' => '#ipsLayout_header', 'type' => 'add_after', 'content' => $content, //вывод переменной в блоке сайта ), ), ), parent::hookData()); } /* End Hook Data */ } В коде уже описано, что я хочу сделать. А именно. Не хочу городить 1000 строк кода в теле функции hookData(), а сделать инклюд который сформирует переменную $content. Но компилятор плагина удаляет все файлы которые я создаю сам вручную. В гугле информации ноль. Только несколько скудных абзацев на офсайте из которых я понял, что хуки кода не предназначены для решения моей проблемы. А если создать еще один хук темы и не привязывать его к месту в шаблоне, а потом сделать его инклюд, то при запуске сайта возникают различные ошибки на неопределённые классы и переменные. Моя задача. Сделать на сайте блок который будет выводить динамическую информацию средствами php. Из все й информации что мне удалось нарыть я понял, что сделать это можно через хук, код которого представлен выше, через элемент массива 'globalTemplate' => ....=>'content' в функции hookData(). Если есть какие-то другие способы, то расскажите о них.
- Как включить кэширование memcached
-
IPS Developer Tools (Инструменты для разработчиков)
нет. Ваш нулл 4.3.6 если отключить режим разработчика в constants.php то все становится нормально.
-
IPS Developer Tools (Инструменты для разработчиков)
На чистом форуме все хорошо заработало. Но на всякий случай зашел в техподдержку и выбрал Something isn't working correctly (что-то работает не так) И вот: Со временем на сервере все нормально, синхронизируется. Часовой пояс Москва, +3 от Гринвича.
-
IPS Developer Tools (Инструменты для разработчиков)
скорее всего где-то бесконечный цикл зациклился.. поставил 120 секунд. не помогло Наверно придется на чистый форум этот режим ставить. Хотя я все что можно удалить и отключить, отключил и удалил.
-
IPS Developer Tools (Инструменты для разработчиков)
Подскажите. Не могу зайти на сайт под админом. Whoops \ Exception \ ErrorException (E_ERROR) Maximum execution time of 30 seconds exceeded Ошибка ни о чем. Думаю нет смысла увеличивать время работы скрипта. под гостем и обычным пользователем все заходит без проблем и ошибок. Админу запрещено входить на сайт в этом режиме?
-
Программно изменить группу пользователю
есть подозрение, что set_member_group_id присваивает группу в сеансе. Временно. Но ладно спасибо и за первый вариант.
-
Программно изменить группу пользователю
Вот собственно что я смог найти: \IPS\Member::loggedIn()->set_member_group_id($value); но этот метод ничего не делает и не вызывает ошибок и вроде как ничего не возвращает. Что я делаю не так?
-
rest api
siv1987 слушай. Ты случайно не знаешь как поменять customFieilds через локальные api, которые не REST? Через вызов типа \IPS\Member::i()->Set_customFields($member_id, customFields[id], $field_value) или что-то в этом роде? А то мне кажется, что обращаться через curl к rest api на локальном сервере это моветон. Как пользоваться \IPS\Db я уже разобрался, но вдруг получится так, что я буду трясти базу в то время как есть готовые api для решения моих задач.