Jump to content

aplayer

Актив
  • В сети

  • Количество сообщений

    413
  • Reputation

    62 aplayer's Reputation

Everything posted by aplayer

  1. Desti я скажем так первый раз бросаюсь в бой на плагины. Ничего про технологию их создания не знаю. Сунулся в гугл, а там информация очень сжатая. Пытаюсь освоить методом проб и ошибок. Тот пример создания плагина который тут https://invisioncommunity.com/developers/docs/development/plugins/complete-example-of-a-plugin-in-ips-community-suite-r50/ не открывает всех секретов технологии. Синтаксис скобочек и шаблончиков мне понятен, не первый раз с подобным сталкивался, но он мне не нравится. Как представлю, что я сейчас начну обработчик post-запросов с проверкой sql-инъекций или сокет на этих скобочках писать буду мне аж дурно становится. Как а анекдоте: "бери лом - иди подметай" Ну и прикинул самый оптимальный вариант это минимум скобок а основная масса обычного php-кода иклюдится из других файлов. Про хуки кода в документации сказано, что они предназначены для расширения имеющихся в движке классов. В них можно писать на обычном php, но я не собираюсь ничего расширять.
  2. siv1987 если честно я не понял о чем речь. Точнее не понял что значит отделить логику от шаблона.
  3. на скрине чистый html в котром ips-теги стоят между html-тегами и воспринимаются редактором как обычный текст. А вот когда дело дойдет до php там редакторы начнут спотыкаться.
  4. код шаблонов со скобочками не подсвечивается наверно ни одним редактором. Например netbeans не будет показывать ошибки синтаксиса. Некоторые более простые текстовые редакторы с подсветкой синтаксиса будут наоборот на каждую скобку реагировать как на ошибку и весь код будет подчеркнут красными линиями и восклицательными знаками. Благо тот же netbeans не реагирует как на ошибки. Так же ни один редактор не выравнивает такой код лесенкой. Недостатков много. А с инклюдом, прописал в шаблоне одну строку и пиши весь остальной код в любимом редакторе на обычном php html js css итп.
  5. Так вот. Снова хочу вернуться к инклюдам. Дело в том, что ни один из моих любимых php-редакторов не поддерживает подсветку синтаксиса шаблонизаторов. Ситуацию может спасти инклюд обычных php файлов, которые можно писать на классическом php {{require "php.php";}} Но... Как уже я говорил выше. При компиляции плагина удаляются абсолютно все файлы, которые не созданы в админке и которые не подключены тегами. В итоге я должен скомпилировать плагин, а php файлы для инклюда дожен загрузить на сервер сам после установки плагина на работающий форум. А нельзя сделать так чтобы файлы и устанавливались вместе с плагином и инклюдились без проблем?
  6. я не в курсе про редис. Но скорее всего должен быть установлен ее и модуль для php apt-get install php7.0-(здесь должно быть имя модуля для редиса, возможно php7.0-redis)
  7. хотя кешируется он только для гостей. Странно. я не хочу публично обсуждать подробности подробности поставленной мне задачи. Но кеширование вызовет проблему при тестировании. Сам понимаешь, ждать каждый раз по 30 секунд при проверке работы скрипта тоже не вариант.
  8. не помогает. Кешируется на 30 секунд. То-есть в течении 30 секунд обновлял страницу и ничего не менялось
  9. WaNted я уже решил переключиться на шаблонизаторы. Потому что инклюд все равно я так понимаю не возможен. Вот новая проблема <ips:template parameters="" /> {{$test = strftime('%d.%m.%Y %H:%M:%S', time());}} {$test} Этот код выводит текущее время на сервере. Но при обновлении страницы выводимое время не обновляется в около минуты. То-есть результат работы этого кода где-то кэшируется. Мне кэширование в этом плагине не нужно. Динамичный контент должен выводиться всегда обновленным. где-то можно выключить кэш этого шаблона?
  10. Я просто не люблю все эти шаблонизаторы. Хочу писать на обычном php. А еще я ips вижу первый раз. У меня нет времени все изучать.
  11. Ну не знаю. Было бы проще в некоторых моментах. Не хочу переходить на ips-совский php. Хочу основной код писать на классическом php
  12. WaNted а аналог echo var_dump итп?
  13. WaNted а есть какой нибудь класс при помощи которого можно парсить другие сайты.? Аналог Curl, fopen итп?
  14. Надо выводить динамическое содержимое. Например заголовки статей с новостного сайта. То-есть такое содержимое которое заранее не известно, постоянно изменяется, а иногда даже не существует
  15. Ну это как в анекдоте про армию: "Берете ломы, идете подметать плац..." Мы не в армии. И если надо что-то подметать, то лучше всего это делать метелкой а не ломами. если в dev/html создать файл с таким кодом: <ips:template parameters="" /> {{echo "test";}} то сайт не грузится, а выводится только такой текст и больше ничего: theme_core_global_plugins_test test {{echo "test";}} Где-то я читал, что в шаблонах нельзя использовать функции вывода информации на экран. Это совсем край. Для чего тогда вся эта возможность разработки плагинов придумана если в ней нельзя использовать php на 100%?
  16. WaNted в папке dev/html можно размещать php? Не эту логику шаблонов со скобочками а обычный php без скобочек?
  17. Проблема заключается в том, что при компиляции плагина удаляются все файлы котрые я создал вручную не через центр разработчика. При создании хука темы а папке 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(). Если есть какие-то другие способы, то расскажите о них.
  18. недавно включал memcached. Там надо было установить модуль php-memcached для редиса скорее всего точно так же. После перезапустить всё apt-get install php7.0-memcached и перезапустить всё
  19. нет. Ваш нулл 4.3.6 если отключить режим разработчика в constants.php то все становится нормально.
  20. На чистом форуме все хорошо заработало. Но на всякий случай зашел в техподдержку и выбрал Something isn't working correctly (что-то работает не так) И вот: Со временем на сервере все нормально, синхронизируется. Часовой пояс Москва, +3 от Гринвича.
  21. скорее всего где-то бесконечный цикл зациклился.. поставил 120 секунд. не помогло Наверно придется на чистый форум этот режим ставить. Хотя я все что можно удалить и отключить, отключил и удалил.
  22. Подскажите. Не могу зайти на сайт под админом. Whoops \ Exception \ ErrorException (E_ERROR) Maximum execution time of 30 seconds exceeded Ошибка ни о чем. Думаю нет смысла увеличивать время работы скрипта. под гостем и обычным пользователем все заходит без проблем и ошибок. Админу запрещено входить на сайт в этом режиме?
  23. есть подозрение, что set_member_group_id присваивает группу в сеансе. Временно. Но ладно спасибо и за первый вариант.
  24. Вот собственно что я смог найти: \IPS\Member::loggedIn()->set_member_group_id($value); но этот метод ничего не делает и не вызывает ошибок и вроде как ничего не возвращает. Что я делаю не так?
  25. aplayer posted пост в теме in Invision Community 4 Support
    siv1987 слушай. Ты случайно не знаешь как поменять customFieilds через локальные api, которые не REST? Через вызов типа \IPS\Member::i()->Set_customFields($member_id, customFields[id], $field_value) или что-то в этом роде? А то мне кажется, что обращаться через curl к rest api на локальном сервере это моветон. Как пользоваться \IPS\Db я уже разобрался, но вдруг получится так, что я буду трясти базу в то время как есть готовые api для решения моих задач.