
IamB
Нам не дано предугадать, Как слово наше отзовется ©
+124
Репутация
597
Рейтинг
Да, здесь принято все писать в контроллер. А для того чтобы контроллеры были не такими большими по объему, можно экшены выносить в отдельные классы расширяя cmsAction. Но тут исторически так уже сложилось и споры на тему: как правильно, деструктивны. Но это не значит, что в своем компоненте вы не можете все сделать «правильно».
Раз уж зашла об этом речь, то основная идея заключается в том, чтобы разделить задачи. И вынести однородные задачи в отдельный слой, а не валить все в кучу. Будет это MVC или что-то еще модное не суть важно.
Напишите это на каком-нибудь форуме PHP-программистов и вас обольют помоями, ибо это не свойственные контроллерам действия. Уже давненько и вполне обоснованно «толстые» контроллеры подвергаются обструкции, но не здесь.
Пространства имен, трейты. Конечно же категорически приветствую! И, кажется, это только начало в придании коду современного вида.
KoRn, понятно, что вы лентяй. Но универсальный установщик — это задача, думается, не приоритетная ни для Fuze, ни для maxisoft'а. Если вам очень хочется, то напишите сами. Я даже расскажу, как может работать такой скрипт.
Сначала в скрипте выбирается полная или легкая версия. Затем выбирается релиз, этот релиз скачивается с github на хост в виде архива, архив распаковывается и управление передается исталлятору.
Должно было быть просто upload. Скрипт отработал, смотрите data/app.log
Предложу 2 варианта: 1. перечитать инструкцию и настроить рабочий для вашего случая путь в data/config.json либо 2. предоставьте доступ к сайту, буду смотреть.
В инструкции на github есть строчка
В data/config.json указана директория ../upload-t ('это директория для моего проекта), поправьте на ../upload
В заголовок статьи лучше вынести слово функциональность или функционал, поскольку по факту никакой функции в понимании языка программирования в посте нет. 😬
Если на сайте есть пользователи и вы выставили сохранять оригинальные изображения.
Если утилита отработала как надо, в консоли и не должно ничего быть. Все результаты пишутся в файл reduction/data/app.log (это по умолчанию). В тексте поста об этом написано, посмотрите повнимательнее содержание readme.ru.md
Вот тема на форуме, которую тоже стоит посмотреть.
Если у вас есть кому сделать код-ревью, был бы признателен. Свежая версия на github.
Отладка — одно из основных повседневных занятий, того кто пишет, поэтому не стоит придавать этому процессу негативный оттенок. Ошибки входят в комплект развлечений© — вот, на мой взгляд, правильный подход.
Использую сейчас VSCode(точнее, VSCodium), не использовал и не собираюсь использовать XDebug, мне обычно хватает штатных сообщений об ошибках. Если вам не хватает вывода var_dump(), можете посмотреть на Kint или VarDumper Symfony.
Ну и наконец
Эффективнее, чем статические анализаторы кода, в этом плане инструментов нет.
Поскольку в версии 2.15.0
то теперь imagick уже не является «непозволительной роскошью» на типичном сервере для InstantCMS. В связи с этим я решил добавить в свою утилиту возможность уменьшать анимированные gif. Работа увлекла и в результате я переписал утилиту, изменив её внутреннюю организацию. Использование самой утилиты для пользователя осталось прежним. Предыдущая версия утилиты осталась на своем месте, а для новой создана ветка imagick, где её можно взять.
Пожелание: при работе с анимированными gif обращайте внимание не только на размер файла, но и на размеры сторон изображения. Имеет смысл создать отдельный файл конфигурации(config.json) только для gif изображений, не пытаясь решить все вопросы за один раз.
Теперь работает как надо, благодарю!
Благодарю за такой отзыв! Да решительности вам не занимать. Но понимаю, что 49 минут ожидания результата были не самыми приятными. Вы после инспектирования получили полную картину с большими файлами. Поэтому уменьшение размера можно было запустить сначала в директории какого-то отдельного пользователя, чтобы оценить скорость работы утилиты. И посчитав, что на обработку файла уходит ~0.86 сек, уже запускать утилиту для всей директории upload, не добавляя себе седины. Но, победителей не судят!
Пользователи утилиты! Если этот продукт вас выручил, поставьте звездочку на github.
Благодарю за релиз!
Возникла следующая проблема. Имею свой тип контента, в нем создаю поле типа Список, называю поле status, заполняю значениями
0 | Новая
1 | В работе
2 | Выполненная
3 | Завершенная
Если значение status в конкретной записи 0, то в шаблоне в массиве $items отсутствует элемент $items[$key][«fields»][«status»] для такой записи. В базе данных в поле status при этом, как и ожидалось, стоит 0. Лучше сформулировать не удалось.
Ничего не могу сказать по этому поводу, поскольку поле не покупал и не знаю, как оно устроено. Пробуйте. У меня есть вариант, как решать проблему добавления Сотрудников, но программным путём.
Простите меня, но вы так шустро стартанули в незнакомые мне области, что я потерял нить. Но рад за вас
Как я понимаю:
1. default_list_tasks.tpl.php — это всего лишь шаблон для вывода списка ТК, выбирается он в ТК->Настройки->Стиль списка по умолчанию. Просмотр списка
2. ТК и Группа — разные сущности, но они могут группироваться, для этого применяются правила (см. вкладка Доступ)
3. Да
А уж как я рад вашему фидбеку! Вы первый, кто отписался, что инструкция работает (доступна для понимания), код работает, а еще больше я рад, что этот пост стимулировал ваши собственные исследования. И вы получили новый результат, перспективы и удовольствие от работы.
Я признаю, что пользователи чертовски изобретательны, когда я писал этот пост, идей, которые вы сейчас озвучили и в голове не было.
По поводу разработок DWD я определённого сказать ничего не могу (не пользовался, кода не видел).
Думаю, что моя идея вторична. А благодарить нужно R2 за то, что придумал типы контента, и Fuze за то, что писал.