Сейчас точно не вспомню, скорее всего обходной путь найти можно было. (Я был не вкурсе, что параметры в vars.inc.php добавлять нельзя, логично было бы об этом указать в документации). Если в этом файле находятся все подключаемые пути и пароли, то совершенно логично если там будут находиться аналогичные конфиги других компонентов.
В нем содержится основные параметры системы. Логично было бы добавлять туда константы, которые отвечают за аналогичные параметры компонентов сторонних разработчиков.
К примеру, у меня в зависимости от параметров, установленных в vars.inc.php подключался (через include) модуль в файле functions.inc.php (модуль интерфейс разработчика). Выносить конфигурацию туда — не логично.
По вашему новому коду смотрю — он действительно намного читабельнее и лучше предыдущего (папка system). Вопрос снят.
А вот где пришлось править исходники:
1) Перенаправление запросов. Т.е. если входная строка соответствует некоторым параметрам (необходимость в запросах к базе есть, т.е. через mod_rewrite не получается) — выводим ту же самую страницу, что открывается по ссылке /news/news1.html (короткие ссылки на новости). Если нет — то 404 страница.
2) Хочу повесить некоторые действия на событие, когда пользователь заходит на сайт. Замечу, что код модуля достаточно часто обновляется. Но без правки исходников сделать этого я не могу.
Допустим я хочу добавить системную переменнную? Или указать параметр в vars.inc.php. После вызова $nc_core->input->prepare_extract(); мне надо заново определять параметры.
Это не удобно, потому что в куче переменных очень работать сложно.
По поводу наследования:
1) Модуль интернет-магазин. Как на одной копии системы создать магазины с разной логикой? Авторизация пользователей. Как для разных сайтов сделать разную форму для авторизации? Как туда, к примеру, добавить еще одно поле и проверять его при входе? — Лезть в исходники системы и править там. А с очередным обновлением все переписывать.
2) Компоненты. Есть формы добавления, условия, действия после добавления — все хорошо. Если, к примеру, мне нужно автоматически добавлять данные? Приходится выводить все действия в сторонние функции или использовать curl. Почему нельзя сделать Message->add(array) и чтобы в нем обрабатывались все действия. Почему для работы с компонентами до сих пор приходится использовать запорсы к базе данных а не перевести их на ORM.
3) Было бы очень удобно, если код компонентов вынесли из бд в локальные файлы. Работы тут немного, а плюсов — куча.
ребята! С последнего топика на хабре год прошел! никаких глобальных изменение в коде я за это время не заметил. Кое-что подправили, да. Много ужасных моментов повыкидывали. Но все равно продолжаете писать в том же стиле:
— куча переменных
— куча функций
— везде, где можно изобретаете свой велосипед
как результат каша в коде и множество ошибок
Я не против помогать вам в развитии проекта! но если развитие пойдет на устранение этих недостатков и превращение системы в хорошую удобную и масштабируемую cms.
Что лично от нетката хочу увидеть после этого топика я (что и послужило причиной его написания):
1) Быстрого исправления ошибок и выхода патчей
2) ГРАМОТНЫЙ КОД в котором легко разбираться. Сейчас это практически невозможно сделать
3) Нормальную архитектуру, наследование, выключение register_globals, ORM (компоненты, разделы)
4) UTF-8
Сейчас же для любого проекта, кроме сайтов-визиток, вашу систему использовать очень тяжело. Из-за того, что в ней достаточно много мест, которые меняют логику своей работы от версии к версии (это правильно, но желательно описывать это в Readme, что с данной версии вывод раздела с несколькими компонентами работает чуть-чуть по-другому) и невозможности модификации тех частей системы, которых нет в админке для сложных сайтов обноления недоступны.
По поводу модулей — из-за того, что у вас нет никакого подобия наследования ни один сайт, где они используется обновить нереально — перезаписывается весь код модулей, а правки каждый раз вносить достаточно неудобно
Изменения в ядро вносятся позитивные, но! Почему! Почему до сих пор повальная практика использования register_globals! Кучи переменных! Полное отсутсвие наследования и появление новых багов от версии к версии. Причем в самых разных местах. Если нужно больше подробностей — в ЛС
Да. Но никаких исправлений нет. А каждй раз пробегаться по исходникоам после установки обновления надоедает.
В суд подавать не грозились.По лицензионному соглашению мы не имеем смотреть исходники и изменять их.
Этот баг до сих пор работает. Цифры на капче генерируются в зависимости от id, по которому загружается капча. Так что не надо писать про самую лучшую безопасную cms
работать не будет. Вариант решения — поставить proxy сервер. Я его положил в папку speller/tinyspell/index.php. Соответственно, spellchecker_rpc_url при настройке плагина заменил на "/speller/tinyspell/index.php"
3) В плагине spellchecker TinyMCE в качетве разделителя слов указаны буквы «Чч», русские слова с ними проверялись неправильно. Файл /plugins/spellchecker/editor_plugin_src.js надо переименовать в /plugins/spellchecker/editor_plugin.js и строку 134 исправить на:
Прокомментируйте пожалуйста habrahabr.ru/blogs/code_wtf/65121/#comment_1821044 (2,3)
Вопрос снят
К примеру, у меня в зависимости от параметров, установленных в vars.inc.php подключался (через include) модуль в файле functions.inc.php (модуль интерфейс разработчика). Выносить конфигурацию туда — не логично.
А вот где пришлось править исходники:
1) Перенаправление запросов. Т.е. если входная строка соответствует некоторым параметрам (необходимость в запросах к базе есть, т.е. через mod_rewrite не получается) — выводим ту же самую страницу, что открывается по ссылке /news/news1.html (короткие ссылки на новости). Если нет — то 404 страница.
2) Хочу повесить некоторые действия на событие, когда пользователь заходит на сайт. Замечу, что код модуля достаточно часто обновляется. Но без правки исходников сделать этого я не могу.
Это не удобно, потому что в куче переменных очень работать сложно.
1) Модуль интернет-магазин. Как на одной копии системы создать магазины с разной логикой? Авторизация пользователей. Как для разных сайтов сделать разную форму для авторизации? Как туда, к примеру, добавить еще одно поле и проверять его при входе? — Лезть в исходники системы и править там. А с очередным обновлением все переписывать.
2) Компоненты. Есть формы добавления, условия, действия после добавления — все хорошо. Если, к примеру, мне нужно автоматически добавлять данные? Приходится выводить все действия в сторонние функции или использовать curl. Почему нельзя сделать Message->add(array) и чтобы в нем обрабатывались все действия. Почему для работы с компонентами до сих пор приходится использовать запорсы к базе данных а не перевести их на ORM.
3) Было бы очень удобно, если код компонентов вынесли из бд в локальные файлы. Работы тут немного, а плюсов — куча.
— куча переменных
— куча функций
— везде, где можно изобретаете свой велосипед
как результат каша в коде и множество ошибок
Я не против помогать вам в развитии проекта! но если развитие пойдет на устранение этих недостатков и превращение системы в хорошую удобную и масштабируемую cms.
Что лично от нетката хочу увидеть после этого топика я (что и послужило причиной его написания):
1) Быстрого исправления ошибок и выхода патчей
2) ГРАМОТНЫЙ КОД в котором легко разбираться. Сейчас это практически невозможно сделать
3) Нормальную архитектуру, наследование, выключение register_globals, ORM (компоненты, разделы)
4) UTF-8
Сейчас же для любого проекта, кроме сайтов-визиток, вашу систему использовать очень тяжело. Из-за того, что в ней достаточно много мест, которые меняют логику своей работы от версии к версии (это правильно, но желательно описывать это в Readme, что с данной версии вывод раздела с несколькими компонентами работает чуть-чуть по-другому) и невозможности модификации тех частей системы, которых нет в админке для сложных сайтов обноления недоступны.
По поводу модулей — из-за того, что у вас нет никакого подобия наследования ни один сайт, где они используется обновить нереально — перезаписывается весь код модулей, а правки каждый раз вносить достаточно неудобно
Изменения в ядро вносятся позитивные, но! Почему! Почему до сих пор повальная практика использования register_globals! Кучи переменных! Полное отсутсвие наследования и появление новых багов от версии к версии. Причем в самых разных местах. Если нужно больше подробностей — в ЛС
В суд подавать не грозились.По лицензионному соглашению мы не имеем смотреть исходники и изменять их.
Вышеприведенный баг это только верхушка айсберга. Некоторые баги позволяют и сайт взломать.
Лично мне не нравится совковая идеология компании — хороший маркетинг, красивая обертка — а внутри куча багов. За что мы должны любить эту компанию?
1). Делаем как указано на этой странице
2) Если mod_proxy отключен на хостинге, то директива
работать не будет. Вариант решения — поставить proxy сервер. Я его положил в папку speller/tinyspell/index.php. Соответственно, spellchecker_rpc_url при настройке плагина заменил на "/speller/tinyspell/index.php"
3) В плагине spellchecker TinyMCE в качетве разделителя слов указаны буквы «Чч», русские слова с ними проверялись неправильно. Файл /plugins/spellchecker/editor_plugin_src.js надо переименовать в /plugins/spellchecker/editor_plugin.js и строку 134 исправить на:
Архив с исходниками