стандартизация переменных, имен файлов, обращения с файлами
esclkm |
|
---|---|
шло время менялись стандарты.
Смотрю я на сед и чувствую, как будто бы сед писал человек из разных кусочков. в итоге вышло то что вышло. отвлекстя По ТЕМЕ: в себе многоие имена файлов подобной структуры имеют различное имя. Пример на файлах локализации и шаблонах. 1.1. В скинах лэнг файл лежит в корне сника и имеет имя SKIN.ru.lang.php 1.2. В плагинах лэнг файл лежит в папке lang и имеет имя PLUG.ru.lang.php 1.3. В системе лэнг файл лежит в папке lang\ru и имет имя main.lang.php 2.1 ланг файлы плагина нельзя загрузить в папку lang - они оттуда не читаются 2.2. tpl можно спокойно поместить в папку скина и все будет работать безукоризнено 3.1. лэнг папка лежаит в систем а skins нигде не лежат 4.1. tpl может нахожится непосредственно в папке скина, в папке плагина, а еще в папке плагин\тпл 5.1. многоие файлы имеют не ризонную приставку инк Где еще подобные явления есть? ИМХО такой подход затрудняет освоение системы. все жолжно иметь одинаковый формат. может все подведем под 1 грабли? littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты |
|
This post was edited by esclkm (2009-03-10 05:10, 15 years ago) |
Dayver |
|
---|---|
Ну я тоже в какой то степени минималист и в большей степени тоже люблю что б все лежало по своим папочкам-полочкам. И рас уж тема поднята то и я вставлю свои 5 копеек.
Если бы я писал свою ЦМСку на основе седа то структуру папок(в отношении ленг файлов и тпл) сделал бы примерно такой Корень -lang ---ru ------admins ------plugins ------skins ------modules ------core -skins ---sed-light ------admins ------plugins ------modules -plugins ---search ------lang ------skins(ну или как сейчас tpl) -modules ---search ------lang ------skins Потому как если есть языковые файлы то все что ни есть должны лежать в корневой папке lang, а там уже в зависимости от назначения по подпапкам. Кстати, папку эту, предлагаю вынести в корень из папки системс потому как: если мы леземь в папку системс то по сути это уже хак. Да и будет легче рапространять локализации если все файлы языка в одной папке(хотя и с вложеной папочной структурой), а так перевести ядровые ленги(это одна папка, да еще и двукратно вложеная по отношению от корня), перевести скиновые (другая папка) ну и плуговые(эт еще куча папок), так прыгай по папкам ищи ленг файлы . Поэтому локализатору будет проще(взял папочку ингшиного языка попереводил все файлы(хоть и со своей папочной структурой но в папках уже ТОЛЬКО ленг файлы) и закинул все это в папочку русишь(к примеру). Структуру эту, можно упростить на один уровень папок, задумавшысь над тем как обзывать эти самые ленг файлы. Назначение можно вложить в имя плагина. Тогда получим что то вроде: Корень -lang ---ru ===admins.имя_админчасти.ru.lang.php ===plugins.имя_плуга.ru.lang.php ===skins.имя_скина.ru.lang.php ===modules.имя_модуля.ru.lang.php ===core.имя_core_файла.ru.lang.php Эту идею я уже высказывал но по отношению к тпл файлам (ибо суть и принцп хранения тот же) когда говорил что "давайте ложить все тплки в папку скина, а не терять их по плагинам (да еще и не понятно как - то просто в папке плуга, то в подпапке ./tpl) ... Плюсь этого в том что проще для скин-мейкера\локализатора и в том что сохраняется логика хранения(ленг файлы в папке ленг, скин файлы в папке скинс)..... Минус как я понял лишь в том что при удалени плагина прийдется лазить в другие папки (скина\ленга) ... но это же можно обойти модернизировав процес инсталяции\деинсталяции плагина\скина (а модернизировать эти процесы и без этого нужно). Поэтому предлгаю реализовать такой подход. Pavlo Tkachenko aka Dayver
|
Sergeich |
|
---|---|
в общем и целом согласен
|
Ratibor |
|
---|---|
Внесу свои 5 копеек
Неплохо бы сделать дефолтные tpl для админки и вынести их из скина, примичем со своим отдельным css, header и footer. Поясняю, в большинстве случаев создавая новый скин, админка делается(если вообще делается) в последнюю очередь, т.к. ее все равно никто кроме админа не видит. Вот и сделать дефолтную админку, которая будет выглядеть одинаково не зависимо от скина. Если ктото захочет переделать админку, то создаст в папке скина папку admin и туда положит переделанные tpl. Движок будет проверять есть ли в папке скина папка admin и если есть то подключит оттуда необходимые tpl, а если нету, то подключится дефолтная админка. Так же и с плагинами. Нужно вернуть tpl файлы в папки с плагинами и подключать их если в папке скина нет папки plugins. Причем также вынести из общего css ве что касается плагинов и сделать отдельный дефолтный css для плагинов. P.S. К примеру сейчас создавая скин, я просто тупо копирую из дефолтного скина папку admin. Но без правки css файла она отображается не верно. А править ради этого css файл у меня нет ни времени, ни желания. То же касается и плагинов. К примеру чтоб заработали нормально тэги, мне надо найти в дефолтном css это: ul.tag_cloud li { display: inline; }и перенести в свой скин. И так для всех плагинов. В большинстве случаев это получается работа в пустую. P.P.S В большинстве cms админка реализована отдельно от всего остального. Не задавай глупых вопросов, не услышишь вранья.
|
|
This post was edited by Ratibor (2009-03-10 15:15, 15 years ago) |
Kort |
|
---|---|
А почему тогда не сделать все "в стиле tpl плагинов"? Чтобы и так и эдак работало?
В таком случае будут довольны все: - скачал и скопировал плагин с шаблоном и лэнгами в один каталог и установил - понравилось -- подправил "под себя" и разбросал шаблон и лэнги по нужным каталогам или оставил как есть (возможно, многим это тоже подойдет) - не понравилось -- uninstall и удалил каталог без головной боли Но "разбрасывание" усложнит обновление и удаление плагина, поэтому непонятно, как все-таки будет лучше с точки зрения юзабилити. SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
|
This post was edited by Kort (2009-03-10 17:16, 15 years ago) |
jcrush |
|
---|---|
скин для админки вообще не нужен вшить его по умолчанию куда нибудь и из шаблона не трогать имхо
SEO блог: http://blog.stfw.ru/
|
medar |
|
---|---|
Я сразу согласен только с одним - что lang надо вынести из system.
По поводу остального надо думать. Дело в том, что "порядок", на первый взгляд прикольный, в реальной жизни может быть неудобным. Например - предложение Дайвера по поводу хранения lang от скинов/плагинов в одном месте. Я против такой фичи. Плюсы: визуально легко найти все lang для редактирования, удобно делать новые локализации. Минусы: - для скинов нужно будет делать процедуру install (которая будет копировать lang скина в папку lang в корне) - нужно будет делать процедуру install для всего движка, ибо: - есть проблема с правами на запись в папке lang. в дистрибутиве lang надо будет делать пустой, в инструкции юзера придется просить ставить на эту папку права 777 и во время install движку нужно будет заполнить эту папку дефолтными лангами. Почему нельзя по умолчанию в корневом ланге держать эти дефолтные значения ? Дело в том, что апач как правило работает с файлами от юзера apache или nobody. Если мы что-то запишем в эту папку, то движок не сможет что-то удалить/добавить в наших папках. Единственный выход - просить там ставить 777 на всех папках и файлах рекурсивно, но для этого нужен или ssh или долгая нудная работа руками. Юзера жалко. Кстати, такая же проблема появится, если юзер запишет туда пак локализации, например, затрагивающий какой-то плагин, а потом попытается этот плагин деинсталлировать - лэнгпак этого плагина не удалится, так как owner этого файла будет уже не apache, а юзер. По-моему, минусы перевешивают. А имеющийся плюс можно реализовать по-другому - например, сделать в админке Lang summary, где будут перечислены пути до всех известных lang-файлов в системе. По поводу админки со стандартным дизайном - хорошая идея, можно реализовать. К примеру сейчас создавая скин, я просто тупо копирую из дефолтного скина папку admin.Нам нужно просто иметь дефолтный css со стандартными значениями, которые используются в движке и дефолтных плагинах. Я, в принципе, уже делаю такой. rangjungyeshe.ru
|
Dayver |
|
---|---|
# medar : Например - предложение Дайвера по поводу хранения lang от скинов/плагинов в одном месте. Я против такой фичи.Ну для начала я не предлагаю все кардинально менять(видать никто толком и внимательно не прочитал то о чем я написал и изобразил приведенную структуру папок). Предложение о хранении всего в папке ленг касается стандартной поставки(все ленги(в том числе и от дефолтных плугов) лежат в одной папке)......вы начинаете работать с сайтом....добавляете плуги и т.п. ........ вот для этого я описал вот эту часть структуры: Я:тоесть функция подключения ленг файлов будет проверять на наличие ленга сначала в общей папке и если не найдено то ищет в папке с плугом\модулем\скином. Эта логика уже частично работает для тпл файлов(если я не ошибаюсь - сначала ищем в папке скина далее в папке плуга). Все что я предлагаю это привести к общему знаменателю все что идет в стандартной поставке.....все что приходит из-вне может иметь старую структуру(потому сохраняется совместимость допустим со старыми плугами). То же самое касается имен файлов - стандартизировать содержимое дистрибутива с сохранением работоспособности того что устанавливается уже администратором-пользователем. Теперь про админку....у меня снова складывается впечетление что даже девелоперы которые отслеживают изменения транка(а еще при каждом удобном моменте сообщаю на форуме что работа эта уже ведется) не в курсе того что половина админки уже в тпл файлах которые лежат отдельно в подпапке админс Закончу с оставшейся половиной ВОТ ТОГДА МОЖНО будет дать эти файлы скинмейкеру что бы он уже проапдейтил админ-скин так что бы у админки была своя цсска. А вот зачем выносить папку админских тплок из папки скина я не понимаю? Неужели так трудно при созданиии скина скопировать одну папочку? Не нужно переделывать диз админки - скопируй папочку админс и все.....админ часть готова.....если так уже влом для каждого скина копировать папку можно конечно предусмотреть процедуру проверки : если админских тплок нет в устанавливаемом скине то инклудить его из сед-лайта Pavlo Tkachenko aka Dayver
|
Kort |
|
---|---|
# Dayver : ....В каталоге skins в 99% случаев будет лежать один файл -- search.tpl, что равнозначно ему же в каталоге search :) SED.by - создание сайтов, разработка плагинов и тем для Котонти
|
Sergeich |
|
---|---|
Для админского скина нужно создать свои header.tpl и footer.tpl, чтобы админка стала полностью независимой. Всё это должно лежать в скине в папке admin. Я согласен, что админка должна быть полностью независима от используемого юзерского скина.
Я против выноса всех ланг-файлов из папки скина. Но я за создание в скине папки lang, в которую будут сгружаться все пользовательские локализации. Плагины должны иметь жёсткую обязательную структуру. Должны чётко быть прописаны папки skin и lang, при необходимости inc. Плагин должен приоритетно использовать тпл и локализацию из скина (дефолтые из своей папки только в крайнем случае, сейчас оно так вроде бы и сделано). В основной папке скина должна появиться подпапка plugins в которую будут ссыпаться все изменяемые скинмейкером tpl-файлы плагинов. В папку lang можно отправлять переделанные ланг-файлы. Все базовые tpl-файлы и tpl модулей пусть продолжают лежать в основной папке скина, нет нужды их дёргать. Т.е. получается следующая структура скина: /skin_name/ -- /admin/ -- /plugins/ -- /lang/ -- skin_name.css -- header.tpl ... -- footer.tpl Более глубокую вложенность подпапок считаю излишней и даже вредной :) Пы.Сы: Kort, хороший сайт у тебя в подписи, мне понравился. |
Ratibor |
|
---|---|
# Dayver : Закончу с оставшейся половиной ВОТ ТОГДА МОЖНО будет дать эти файлы скинмейкеру что бы он уже проапдейтил админ-скин так что бы у админки была своя цсска. А вот зачем выносить папку админских тплок из папки скина я не понимаю? Неужели так трудно при созданиии скина скопировать одну папочку?А зачем это надо, если большинство ее не будет изменять ? А как я уже сказал, если я тупо скопирую эту папку, то все равно надо править css, а это лишняя беспонтовая работа. # Dayver : Не нужно переделывать диз админки - скопируй папочку админс и все.....админ часть готова.....если так уже влом для каждого скина копировать папку можно конечно предусмотреть процедуру проверки : если админских тплок нет в устанавливаемом скине то инклудить его из сед-лайтаНе из сед-лайта, а эти файлы должны отдельно быть как и system/lang/, причем со своим header и футер, а также css, т.е. не зависимо от скина - адинка должна выглядеть одинаково. Не задавай глупых вопросов, не услышишь вранья.
|
Sergeich |
|
---|---|
Мне не нравится как устроена админка в котонти (и сед, и лду), и не мне одному. Я верю, что найдутся энтузиасты, которые будут переделывать её если появится возможность. Но я согласен, что админ-tpl в папке скина - это излишество. Самое разумное вынести их в какое-то другое место и в настройках админки добавить новую функцию - выбор скина админ-части (хотя, по большому счёту, можно вполне обойтись просто заменой файлов)
|
Dayver |
|
---|---|
# Ratibor : А зачем это надо, если большинство ее не будет изменять ?Меня ваще кто то понимает? Я ж написал ... заканчиваю с выносом кода ... и умелый скинмейкер переделывает тплки таким образом что бы они использовали отдельный админский цсс и свои подвал с шапкой .... в итоге получаем папку админс с тплками(+свои хедер с футером) и админской цсской ...... ну и нафига то тебе прийдется при этом править css? скопировал и забыл! # Ratibor : Не из сед-лайта, а эти файлы должны отдельно быть как и system/lang/,Я уже написал что если скопировал и забыл то смысл двигать админскую папку тпл нет смысла .... ну если конечно не ради самого процеса "двигать ради движения" # Sergeich : В основной папке скина должна появиться подпапка plugins в которую будут ссыпаться все изменяемые скинмейкером tpl-файлы плагинов.Ребята вы меня убиваете .... вы хоть в транк то заглядывали? уже! причем не вчера сделано. Давайте лучше найдем общий знаменатель с ленгами (а то с тпл рано бучу затеивать) Pavlo Tkachenko aka Dayver
|
|
This post was edited by Dayver (2009-03-10 23:19, 15 years ago) |
Ratibor |
|
---|---|
# Dayver : Меня ваще кто то понимает? Я ж написал ... заканчиваю с выносом кода ... и умелый скинмейкер переделывает тплки таким образом что бы они использовали отдельный админский цсс и свои подвал с шапкой .... в итоге получаем папку админс с тплками(+свои хедер с футером) и админской цсской ...... ну и нафига то тебе прийдется при этом править css? скопировал и забыл!А зачем ? Нафига плодить дубли ? Один раз вынести из общего скина и забыть. Кому приспичит изменить админку, скопируют эти файлы в папку скина и изменят по своему вкусу. Двиг увидит что в папке скина есть папка admin и подключит ее вместо дефолтной. # Dayver : Давайте лучше найдем общий знаменатель с ленгами.Объединять ланг файлы нельзя. Кесарю - кесарево, а слесарю - слесарево В папке скина должно находиться только то что относится к данному скину, а в системной папке то, что относится к системе. А tpl и lang файлы плагина, должны быть в папке с плагином. ИМХО правильная стрктура будет выглядеть примерно так: /default/ --admin --lang --en --ru /skins/ --you_skin --admin --css --img --plugins /plugins/ --search --lang --tpl Не задавай глупых вопросов, не услышишь вранья.
|
|
This post was edited by Ratibor (2009-03-11 00:15, 15 years ago) |
esclkm |
|
---|---|
Та мой вариант:
/lang/ --en --ru --skins --plugins /skins/ --your_skin --admin (в админ есть свой доп css файл, который инклюдится при наличии оного css) --img --plugins /plugins/ --your_plug --lang --tpl И стандартизовать имена не мешало бы. littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты |