Forumlar / National / Russian / Шло время, менялись стандарты

1234>>>

стандартизация переменных, имен файлов, обращения с файлами

esclkm
#1 2009-03-10 05:09
шло время менялись стандарты.
Смотрю я на сед и чувствую, как будто бы сед писал человек из разных кусочков. в итоге вышло то что вышло. отвлекстя

По ТЕМЕ:
в себе многоие имена файлов подобной структуры имеют различное имя.
Пример на файлах локализации и шаблонах.
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 - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты

Bu konu esclkm tarafından düzenlendi(2009-03-10 05:10, 15 yıllar önce)
Dayver
#2 2009-03-10 07:01
Ну я тоже в какой то степени минималист и в большей степени тоже люблю что б все лежало по своим папочкам-полочкам. И рас уж тема поднята то и я вставлю свои 5 копеек.

Если бы я писал свою ЦМСку на основе седа то структуру папок(в отношении ленг файлов и тпл) сделал бы примерно такой

Корень
-lang
---ru
------admins
------plugins
------skins
------modules
------core
-skins
---sed-light
------admins
------plugins
------modules
-plugins
---search
------lang
------skins(ну или как сейчас tpl)
-modules
---search
------lang
------skins

Потому как если есть языковые файлы то все что ни есть должны лежать в корневой папке lang, а там уже в зависимости от назначения по подпапкам. Кстати, папку эту, предлагаю вынести в корень из папки системс потому как: если мы леземь в папку системс то по сути это уже хак. Да и будет легче рапространять локализации если все файлы языка в одной папке(хотя и с вложеной папочной структурой), а так перевести ядровые ленги(это одна папка, да еще и двукратно вложеная по отношению от корня), перевести скиновые (другая папка) ну и плуговые(эт еще куча папок), так прыгай по папкам ищи ленг файлы :-O . Поэтому локализатору будет проще(взял папочку ингшиного языка попереводил все файлы(хоть и со своей папочной структурой но в папках уже ТОЛЬКО ленг файлы) и закинул все это в папочку русишь(к примеру).
Структуру эту, можно упростить на один уровень папок, задумавшысь над тем как обзывать эти самые ленг файлы. Назначение можно вложить в имя плагина. Тогда получим что то вроде:
Корень
-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
#3 2009-03-10 07:36
в общем и целом согласен
Ratibor
#4 2009-03-10 14:58
Внесу свои 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 админка реализована отдельно от всего остального.
Не задавай глупых вопросов, не услышишь вранья.

Bu konu Ratibor tarafından düzenlendi(2009-03-10 15:15, 15 yıllar önce)
Kort
#5 2009-03-10 15:40
А почему тогда не сделать все "в стиле tpl плагинов"? Чтобы и так и эдак работало?
В таком случае будут довольны все:
- скачал и скопировал плагин с шаблоном и лэнгами в один каталог и установил
- понравилось -- подправил "под себя" и разбросал шаблон и лэнги по нужным каталогам или оставил как есть (возможно, многим это тоже подойдет)
- не понравилось -- uninstall и удалил каталог без головной боли
Но "разбрасывание" усложнит обновление и удаление плагина, поэтому непонятно, как все-таки будет лучше с точки зрения юзабилити.
SED.by - создание сайтов, разработка плагинов и тем для Котонти

Bu konu Kort tarafından düzenlendi(2009-03-10 17:16, 15 yıllar önce)
jcrush
#6 2009-03-10 16:41
скин для админки вообще не нужен вшить его по умолчанию куда нибудь и из шаблона не трогать имхо
SEO блог: http://blog.stfw.ru/
medar
#7 2009-03-10 17:12
Я сразу согласен только с одним - что lang надо вынести из system.
По поводу остального надо думать. Дело в том, что "порядок", на первый взгляд прикольный, в реальной жизни может быть неудобным.

Например - предложение Дайвера по поводу хранения lang от скинов/плагинов в одном месте. Я против такой фичи.

Плюсы: визуально легко найти все lang для редактирования, удобно делать новые локализации.

Минусы:
- для скинов нужно будет делать процедуру install (которая будет копировать lang скина в папку lang в корне)
- нужно будет делать процедуру install для всего движка, ибо:
- есть проблема с правами на запись в папке lang. в дистрибутиве lang надо будет делать пустой, в инструкции юзера придется просить ставить на эту папку права 777 и во время install движку нужно будет заполнить эту папку дефолтными лангами. Почему нельзя по умолчанию в корневом ланге держать эти дефолтные значения ? Дело в том, что апач как правило работает с файлами от юзера apache или nobody. Если мы что-то запишем в эту папку, то движок не сможет что-то удалить/добавить в наших папках. Единственный выход - просить там ставить 777 на всех папках и файлах рекурсивно, но для этого нужен или ssh или долгая нудная работа руками. Юзера жалко.

Кстати, такая же проблема появится, если юзер запишет туда пак локализации, например, затрагивающий какой-то плагин, а потом попытается этот плагин деинсталлировать - лэнгпак этого плагина не удалится, так как owner этого файла будет уже не apache, а юзер.

По-моему, минусы перевешивают.
А имеющийся плюс можно реализовать по-другому - например, сделать в админке Lang summary, где будут перечислены пути до всех известных lang-файлов в системе.

По поводу админки со стандартным дизайном - хорошая идея, можно реализовать.
К примеру сейчас создавая скин, я просто тупо копирую из дефолтного скина папку admin.
Но без правки css файла она отображается не верно.
Нам нужно просто иметь дефолтный css со стандартными значениями, которые используются в движке и дефолтных плагинах. Я, в принципе, уже делаю такой.
rangjungyeshe.ru
Dayver
#8 2009-03-10 19:49
# medar : Например - предложение Дайвера по поводу хранения lang от скинов/плагинов в одном месте. Я против такой фичи.
Ну для начала я не предлагаю все кардинально менять(видать никто толком и внимательно не прочитал то о чем я написал и изобразил приведенную структуру папок). Предложение о хранении всего в папке ленг касается стандартной поставки(все ленги(в том числе и от дефолтных плугов) лежат в одной папке)......вы начинаете работать с сайтом....добавляете плуги и т.п. ........ вот для этого я описал вот эту часть структуры:
Я:
....
-plugins
---search
------lang
------skins(ну или как сейчас tpl)
-modules
---search
------lang
------skins
....
тоесть функция подключения ленг файлов будет проверять на наличие ленга сначала в общей папке и если не найдено то ищет в папке с плугом\модулем\скином. Эта логика уже частично работает для тпл файлов(если я не ошибаюсь - сначала ищем в папке скина далее в папке плуга). Все что я предлагаю это привести к общему знаменателю все что идет в стандартной поставке.....все что приходит из-вне может иметь старую структуру(потому сохраняется совместимость допустим со старыми плугами). То же самое касается имен файлов - стандартизировать содержимое дистрибутива с сохранением работоспособности того что устанавливается уже администратором-пользователем.

Теперь про админку....у меня снова складывается впечетление что даже девелоперы которые отслеживают изменения транка(а еще при каждом удобном моменте сообщаю на форуме что работа эта уже ведется) не в курсе того что половина админки уже в тпл файлах которые лежат отдельно в подпапке админс

Закончу с оставшейся половиной ВОТ ТОГДА МОЖНО будет дать эти файлы скинмейкеру что бы он уже проапдейтил админ-скин так что бы у админки была своя цсска. А вот зачем выносить папку админских тплок из папки скина я не понимаю? Неужели так трудно при созданиии скина скопировать одну папочку? Не нужно переделывать диз админки - скопируй папочку админс и все.....админ часть готова.....если так уже влом для каждого скина копировать папку можно конечно предусмотреть процедуру проверки : если админских тплок нет в устанавливаемом скине то инклудить его из сед-лайта
Pavlo Tkachenko aka Dayver
Kort
#9 2009-03-10 20:08
# Dayver : ....
-plugins
---search
------lang
------skins(ну или как сейчас tpl)
....
В каталоге skins в 99% случаев будет лежать один файл -- search.tpl, что равнозначно ему же в каталоге search :)
SED.by - создание сайтов, разработка плагинов и тем для Котонти
Sergeich
#10 2009-03-10 20:34
Для админского скина нужно создать свои 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
#11 2009-03-10 20:53
# Dayver : Закончу с оставшейся половиной ВОТ ТОГДА МОЖНО будет дать эти файлы скинмейкеру что бы он уже проапдейтил админ-скин так что бы у админки была своя цсска. А вот зачем выносить папку админских тплок из папки скина я не понимаю? Неужели так трудно при созданиии скина скопировать одну папочку?
А зачем это надо, если большинство ее не будет изменять ?
А как я уже сказал, если я тупо скопирую эту папку, то все равно надо править css, а это лишняя беспонтовая работа.

# Dayver : Не нужно переделывать диз админки - скопируй папочку админс и все.....админ часть готова.....если так уже влом для каждого скина копировать папку можно конечно предусмотреть процедуру проверки : если админских тплок нет в устанавливаемом скине то инклудить его из сед-лайта
Не из сед-лайта, а эти файлы должны отдельно быть как и system/lang/,
причем со своим header и футер, а также css,
т.е. не зависимо от скина - адинка должна выглядеть одинаково.
Не задавай глупых вопросов, не услышишь вранья.
Sergeich
#12 2009-03-10 21:03
Мне не нравится как устроена админка в котонти (и сед, и лду), и не мне одному. Я верю, что найдутся энтузиасты, которые будут переделывать её если появится возможность. Но я согласен, что админ-tpl в папке скина - это излишество. Самое разумное вынести их в какое-то другое место и в настройках админки добавить новую функцию - выбор скина админ-части (хотя, по большому счёту, можно вполне обойтись просто заменой файлов)
Dayver
#13 2009-03-10 23:18
# Ratibor : А зачем это надо, если большинство ее не будет изменять ?
А как я уже сказал, если я тупо скопирую эту папку, то все равно надо править css, а это лишняя беспонтовая работа.
Меня ваще кто то понимает? Я ж написал ... заканчиваю с выносом кода ... и умелый скинмейкер переделывает тплки таким образом что бы они использовали отдельный админский цсс и свои подвал с шапкой .... в итоге получаем папку админс с тплками(+свои хедер с футером) и админской цсской ...... ну и нафига то тебе прийдется при этом править css? скопировал и забыл!

# Ratibor : Не из сед-лайта, а эти файлы должны отдельно быть как и system/lang/,
причем со своим header и футер, а также css,
т.е. не зависимо от скина - адинка должна выглядеть одинаково.
Я уже написал что если скопировал и забыл то смысл двигать админскую папку тпл нет смысла .... ну если конечно не ради самого процеса "двигать ради движения"

# Sergeich : В основной папке скина должна появиться подпапка plugins в которую будут ссыпаться все изменяемые скинмейкером tpl-файлы плагинов.
Ребята вы меня убиваете .... вы хоть в транк то заглядывали? уже! причем не вчера сделано.

Давайте лучше найдем общий знаменатель с ленгами (а то с тпл рано бучу затеивать)
Pavlo Tkachenko aka Dayver

Bu konu Dayver tarafından düzenlendi(2009-03-10 23:19, 15 yıllar önce)
Ratibor
#14 2009-03-11 00:05
# Dayver : Меня ваще кто то понимает? Я ж написал ... заканчиваю с выносом кода ... и умелый скинмейкер переделывает тплки таким образом что бы они использовали отдельный админский цсс и свои подвал с шапкой .... в итоге получаем папку админс с тплками(+свои хедер с футером) и админской цсской ...... ну и нафига то тебе прийдется при этом править css? скопировал и забыл!

Я уже написал что если скопировал и забыл то смысл двигать админскую папку тпл нет смысла .... ну если конечно не ради самого процеса "двигать ради движения"
А зачем ?
Нафига плодить дубли ?
Один раз вынести из общего скина и забыть.
Кому приспичит изменить админку, скопируют эти файлы в папку скина и изменят по своему вкусу.
Двиг увидит что в папке скина есть папка admin и подключит ее вместо дефолтной.
# Dayver : Давайте лучше найдем общий знаменатель с ленгами.
Объединять ланг файлы нельзя.
Кесарю - кесарево, а слесарю - слесарево :-)
В папке скина должно находиться только то что относится к данному скину,
а в системной папке то, что относится к системе.
А tpl и lang файлы плагина, должны быть в папке с плагином.

ИМХО правильная стрктура будет выглядеть примерно так:

/default/
  --admin
  --lang
    --en
    --ru

/skins/
  --you_skin
    --admin
    --css
    --img
    --plugins

/plugins/
  --search
    --lang
    --tpl
Не задавай глупых вопросов, не услышишь вранья.

Bu konu Ratibor tarafından düzenlendi(2009-03-11 00:15, 15 yıllar önce)
esclkm
#15 2009-03-11 02:32
Та мой вариант:

/lang/
--en
--ru
--skins
--plugins

/skins/
--your_skin
--admin (в админ есть свой доп css файл, который инклюдится при наличии оного css)
--img
--plugins

/plugins/
--your_plug
--lang
--tpl

И стандартизовать имена не мешало бы.
littledev.ru - мой маленький зарождающийся блог о котонти.
снижение стоимости программирования и снижение стоимости производства разные вещи. Первое можно скорее сравнить с раздачей работникам дешевых инструментов, чем со снижением зарплаты

1234>>>