Проблемы OCMOD

В этот раз сдеаю всё как положено

Вспомнил вчера ещё две взаимосвязанные особенности OCMOD, которые мешают жизни:

  • отсутствует механизм сортировки и выстраивания порядка исполнения модификаций (sort order). Как следствие - нет возможности гарантировать, что решённые сегодня конфликты не возникнут завтра или через неделю. Поменяется порядок исполнения двух конфликтующих модулей (второй из которых, например, был подправлен, чтобы учитывать изменения, внесённые первым) - и приплыли. Более-менее быстрым и простым способом исправить ситуацию является сортировка модификаций по полю `date_added`. Но более приемлемым для пользователей вариантом будет, конечно, ввод дополнительной колонки `sort_order` в базу и в интерфейс админки и сортировка по ней;
  • механизм обновления модификаций отсутствует: их можно только удалить и установить заново. Это меняет как положение записи в таблице БД, так и дату добавления.

В vQmod порядок исполнения модулей мог регулироваться путём переименования файлов: они выбирались и исполнялись в алфавитном порядке.

Есть и другие проблемы.

Вот довольно заметная: в OcMod XML-ки модификаций хранятся в базе. Если у вас есть конфликт модулей и надо искать причины, анализ текста модификаций затруднён. Предварительно надо извлечь все XMl-тексты модулей, чтобы получить хотя бы возможность поиска по ним в более привычной среде: IDE, текстовом редакторе, файловом менеджере, grep-ом... Механизма экспорта модулей из БД в файлы нет (может кто добрый и написал уже - не видел пока).

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

Проблемы Extension Installer (установка расширений)

  • Расширениям предоставлена возможность добавлять ИЛИ ЗАМЕНЯТЬ любые файлы движка. Файлы модуля не хранятся где-то локализовано в одной папке
  • Не предусмотрен uninstall. Надо удалить модуль? Пользователю придётся вычищать его файлы вручную