Биллинговая система Nodeny
21 Ноября 2024, 20:01:45 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1]
  Печать  
Автор Тема: Улучшить install.pl -x  (Прочитано 5490 раз)
sov
Постоялец
***

Карма: 0
Offline Offline

Сообщений: 101


Просмотр профиля
« : 04 Сентября 2013, 12:48:07 »

Я тут активно правлю Н+ под свои требования, и столкнулся с тем, что одни и те-же файлы правятся не только у меня, но и в модулях других разработчиков.
А поскольку код я перепахиваю довольно сильно, простыми вставками в район хуков не обойтись - приходится делать new.

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

Допустим, ввести ещё один необязательный параметр order:
#<ACTION> file=>'web/users.pl',hook=>'new',order=>'2'
Чем меньше число, тем раньше загружать модуль. При отсутствии параметра считать его равным, допустим, 100.

Тогда можно будет в своём модуле указать небольшое значение и его изменения применятся раньше, а все остальные, неправленные модули, обработаются позже, и их изменения также применятся.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #1 : 04 Сентября 2013, 19:23:35 »

уже есть такая фича, только она работает иначе: указывается после какого модуля должен запустится данный модуль. Пример:

Код:
#<ACTION> file=>'web/yamap.pl',hook=>'filtr_url',require=>['yamap']

можно перечислять модули через запятую
Записан
sov
Постоялец
***

Карма: 0
Offline Offline

Сообщений: 101


Просмотр профиля
« Ответ #2 : 04 Сентября 2013, 21:21:33 »

уже есть такая фича
Ясно, спасибо.

Другой вопрос. У меня есть куча исправлений вот такого рода:
[ 'бонусы'              => 'p.category=2'   ],
меняю на
[ 'безналичный платёж'          => 'p.category=2'   ],

или
my $for_adm = _('[] [] [] [] []', Adm->get($from_adm)->admin, $cash, $cfg::gr, $msg, Adm->get($to_adm)->admin);
на
my $for_adm = _('[] [] [] [] []', Adm->get($from_adm)->admin, $msg, $cash, $cfg::gr, Adm->get($to_adm)->admin);

Можно, конечно, использовать для таких замен diff/patch, но лучше, если такая штука будет сразу встроена в install.pl.

И сразу ещё вопрос - планируете-ли вынести весь текст в отдельные языковые файлы?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #3 : 05 Сентября 2013, 14:25:43 »

Такую "штуку" я могу реализовать если ты расскажешь как она будет работать). Применять обычный патч - это делать не буду т.к. код может меняться и будут патчи только к определенной ревизии. Ну, или выпускать релиз надо...

Перенести тексты в языковые файлы можно, но их там просто дофигища, когда это делать...
Записан
sov
Постоялец
***

Карма: 0
Offline Offline

Сообщений: 101


Просмотр профиля
« Ответ #4 : 05 Сентября 2013, 18:12:01 »

Такую "штуку" я могу реализовать если ты расскажешь как она будет работать). Применять обычный патч - это делать не буду т.к. код может меняться и будут патчи только к определенной ревизии.
Сначала применяются все исправления из модулей, а затем отрабатывает эта "штука" - проходит по получившемуся результату и тупо меняет одни строки на другие.

Ведь от замены
[ 'бонусы'              => 'p.category=2'   ],
на
[ 'безналичный платёж'          => 'p.category=2'   ],
код не перестанет работать.

А таких исправлений лично у меня довольно много. Как-то так сложилось, что у нас с вами одно и то-же обзывается немного разными словами. И ввиду отсутствия языковых файлов, приходится вносить исправления прямо в коде Грустный

Думаю, для поддержания принятой системы исправлений, правки должны вноситься только в фантомные файлы, а если для нужного файла фантома ещё нет - он должен создаваться.
Записан
Страниц: [1]
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!