Форум русской поддержки Joomla!® CMS
04.12.2016, 18:23:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Плагин подключения классов и переопределения системных классов

 (Прочитано 315 раз)
0 Пользователей и 1 Гость смотрят эту тему.
shurakana
Живу я здесь
******

Репутация: +48/-6
Offline Offline

Сообщений: 859



« : 04.11.2016, 14:35:25 »

Всем привет!

Раньше всегда подключал все дополнительные классы в главном index.php, решил запилить плагин.

В настройках два поля, работают они одинаково, это чтобы не запутаться..)

Ссылка на плагин

« Последнее редактирование: 04.11.2016, 18:38:36 от shurakana » Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8696


любит наш народ всякое гавно...


« Ответ #1 : 04.11.2016, 15:07:07 »

Это то что я думаю?
А можно пример синтаксиса?

И вот допустим я хочу переопределить /components/com_content/models/article.php - это им можно?
Записан
b2z
Support Team
*****

Репутация: +708/-0
Online Online

Пол: Мужской
Сообщений: 7517


Разраблю понемногу


« Ответ #2 : 04.11.2016, 15:47:07 »

Похожие плагины уже давно есть
http://gruz.org.ua/en/extensions/mvcoverride.html#documentation
https://gist.github.com/dongilbert/3237387
https://cmscafe.ru/docs/joomla/developer/plugin-joomla-2-5-joomla-3/316-ispolzuem-plaginy-dlya-pereopredeleniya-bazovykh-klassov
Записан
shurakana
Живу я здесь
******

Репутация: +48/-6
Offline Offline

Сообщений: 859



« Ответ #3 : 04.11.2016, 16:48:54 »

Это то что я думаю?
А можно пример синтаксиса?

И вот допустим я хочу переопределить /components/com_content/models/article.php - это им можно?
Да, просто в поле ввести прям так же как вы и написали, т.е. от корня, в админке есть пояснения и примеры..
Блин, в смысле не также, а скопировать сначала этот файл в какую нибудь папку, например в templates/redefine..))

Похожие плагины уже давно есть
Если бы вы со своей репликой были там где решили придумать автоваз, цены бы вам не было.. Grin
Очень хорошо что есть, а т.к. их минимум три, то будет и 4-й, ничего страшного я думаю..)
« Последнее редактирование: 04.11.2016, 16:59:34 от shurakana » Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8696


любит наш народ всякое гавно...


« Ответ #4 : 04.11.2016, 17:10:07 »

Да, просто в поле ввести прям так же как вы и написали, т.е. от корня, в админке есть пояснения и примеры..
Блин, в смысле не также, а скопировать сначала этот файл в какую нибудь папку, например в templates/redefine..))
И? Первой строкой что, второй где переопредлен или через символ?
Записан
shurakana
Живу я здесь
******

Репутация: +48/-6
Offline Offline

Сообщений: 859



« Ответ #5 : 04.11.2016, 17:29:10 »

И? Первой строкой что, второй где переопредлен или через символ?
Вы просто копируете нужный файл, например модель article.php из com_content в вашу папку, и указываете путь, не к оригинальному файлу, а к скопированному, и все..

Два поля это чисто логическое разделение, что бы не путаться где переопределенные файлы, а где просто подключенные..
Записан
AlekVolsk
Профи
********

Репутация: +316/-3
Offline Offline

Пол: Мужской
Сообщений: 6452



« Ответ #6 : 04.11.2016, 18:21:27 »

эмм, правильно ли я понял: таким образом можно переопределить любой файл системы?
Записан
shurakana
Живу я здесь
******

Репутация: +48/-6
Offline Offline

Сообщений: 859



« Ответ #7 : 04.11.2016, 18:42:06 »

эмм, правильно ли я понял: таким образом можно переопределить любой файл системы?
Не совсем, шаблоны не переопределятся, переопределяются классы и функции, т.е. при вызове метода getItem() из того же com_content/models/article.php будет вызван этот же метод из подключенного вами файла..

Ну и не будут работать файлы которые включаются в систему до onAfterInitialise
Записан
Septdir
Живу я здесь
******

Репутация: +32/-3
Offline Offline

Пол: Мужской
Сообщений: 819


Skype: septdir


« Ответ #8 : 04.11.2016, 19:19:02 »

Ну идея не нова сам недавно клепал плагин правда только на подключение хелперов различных, переопределением стандартных фукнций не пользуюсь ибо переопределять функциии модели себе дорохе чаще всего. Ставить не стал. Глянул на код.
И вот вам большое замечание, какого там делает русский язык?
Ну второе поменьше где Header DocBlock .

P.S ну и как по мне не тяжеловат ли.
Записан
shurakana
Живу я здесь
******

Репутация: +48/-6
Offline Offline

Сообщений: 859



« Ответ #9 : 04.11.2016, 20:04:53 »

Ну идея не нова
не верю, покажите..

сам недавно клепал плагин правда только на подключение хелперов различных
Все клепали, покажите кто его не клепал? Регулярку небось даже поставили, для проверки, хелпер или не хелпер..))

И вот вам большое замечание, какого там делает русский язык?
Раз большое, исправлю какой вам сделать?) Можно даже парочку, выбирайте..

Ну второе поменьше где Header DocBlock .
Хедер - это же шапка сайта, не?

А на самом деле, все что не нравится, удалите или добавьте,
я поделился своим сниппетом с сообществом, и не более того.. drink
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8696


любит наш народ всякое гавно...


« Ответ #10 : 04.11.2016, 20:20:10 »

Хм.. попробовал и
Цитировать
Fatal error: Cannot redeclare class ContentModelArticle in .../templates/system/redefine/com_content/models/article.php on line 371
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8696


любит наш народ всякое гавно...


« Ответ #11 : 04.11.2016, 20:21:16 »

Причем повесился весь сайт, надо в pma лезть ((
Записан
shurakana
Живу я здесь
******

Репутация: +48/-6
Offline Offline

Сообщений: 859



« Ответ #12 : 04.11.2016, 20:34:17 »

Хм.. попробовал и
Сделайте скриншот параметров плагина, у меня такая ошибка возникает когда я в первое поле вписываю путь к основному файлу, а во второе поле путь к переопределенному..

Не надо никуда лезть, удалите все из переопределенного файла и все..)
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3568


« Ответ #13 : 04.11.2016, 20:43:46 »

Да есть же плагин, его даже включили в офф.док.
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8696


любит наш народ всякое гавно...


« Ответ #14 : 04.11.2016, 20:44:20 »

Сделайте скриншот параметров плагина, у меня такая ошибка возникает когда я в первое поле вписываю путь к основному файлу, а во второе поле путь к переопределенному..

Не надо никуда лезть, удалите все из переопределенного файла и все..)
Так и делаю?
В комментах вообще один и тот же файл прописан!
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8696


любит наш народ всякое гавно...


« Ответ #15 : 04.11.2016, 20:47:20 »

Сделайте скриншот параметров плагина, у меня такая ошибка возникает когда я в первое поле вписываю путь к основному файлу, а во второе поле путь к переопределенному..

Не надо никуда лезть, удалите все из переопределенного файла и все..)
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8696


любит наш народ всякое гавно...


« Ответ #16 : 04.11.2016, 20:49:47 »

Да есть же плагин, его даже включили в офф.док.
Любопытно.

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

Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3568


« Ответ #17 : 04.11.2016, 20:54:13 »

voland, вас, видимо, ввели в заблуждение настройки плагина. На самом деле не было переопределения плагином - он просто тупо подключает все указанные файлы, в вашем случае - 2 одинаковых. Это вы сами должны переопределить классы и уже потом подключить файлы.
« Последнее редактирование: 04.11.2016, 20:59:37 от robert » Записан
shurakana
Живу я здесь
******

Репутация: +48/-6
Offline Offline

Сообщений: 859



« Ответ #18 : 04.11.2016, 20:55:55 »

Сейчас очистите поле файлы для подключения, оставьте только для переопределения..)

Да, путаница, сорь..
В общем, первое поле, для сторонних файлов которые надо подключить, второе для переопределенных..))
Записан
shurakana
Живу я здесь
******

Репутация: +48/-6
Offline Offline

Сообщений: 859



« Ответ #19 : 04.11.2016, 20:57:34 »

voland, вас, видимо, ввели в заблуждение настройки плагина. На самом деле не было переопределения плагином - он просто тупо подключает все указанные файлы, в вашем случае - 2 одинаковых. Это вы должны переопределить классы и уже потом подключить файлы.
Да, все верно, т.е. вы просто указываете путь к переопределенному файлу, а какой файл вы переопределяете указывать не надо..
Записан
robert
Профи
********

Репутация: +343/-11
Offline Offline

Пол: Мужской
Сообщений: 3568


« Ответ #20 : 04.11.2016, 20:59:46 »

Любопытно.
C 04-08-2016 его почему-то убрали из JED. Вот ссылка на GitHub.
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8696


любит наш народ всякое гавно...


« Ответ #21 : 04.11.2016, 21:09:34 »

Блин. Совсем запутали.
А как мне переопределять классы на PHP?
Это ж не c++
Записан
Septdir
Живу я здесь
******

Репутация: +32/-3
Offline Offline

Пол: Мужской
Сообщений: 819


Skype: septdir


« Ответ #22 : 04.11.2016, 21:12:05 »

Все клепали, покажите кто его не клепал? Регулярку небось даже поставили, для проверки, хелпер или не хелпер..))
Зачем регулярку. Простое подключение через JLoader
А на самом деле, все что не нравится, удалите или добавьте,
я поделился своим сниппетом с сообществом, и не более того.. drink
Делятся с сообществом на gehub или же даже в JED а на форум выкладывают чтобы получить отзывы, мнения и критику. ИМХО конечно.
Записан
shurakana
Живу я здесь
******

Репутация: +48/-6
Offline Offline

Сообщений: 859



« Ответ #23 : 04.11.2016, 21:13:36 »

Блин. Совсем запутали.
А как мне переопределять классы на PHP?
Это ж не c++
Укажите путь к скопированному(переопределяемому) файлу во второе поле, первое оставьте пустым, все..)))
Записан
Septdir
Живу я здесь
******

Репутация: +32/-3
Offline Offline

Пол: Мужской
Сообщений: 819


Skype: septdir


« Ответ #24 : 04.11.2016, 21:16:54 »

Раз большое, исправлю какой вам сделать?) Можно даже парочку, выбирайте..
Это не мне это просто нома. в коде не место русскому языку. Комментарии пишутся на английском (это простая норма поведения, ну на двух языках в крайнем случае). Ну а для русского языка в XML если языковые константы
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8696


любит наш народ всякое гавно...


« Ответ #25 : 04.11.2016, 21:17:18 »

Укажите путь к скопированному(переопределяемому) файлу во второе поле, первое оставьте пустым, все..)))
Во, наконец!
Работает! :-)
Записан
shurakana
Живу я здесь
******

Репутация: +48/-6
Offline Offline

Сообщений: 859



« Ответ #26 : 04.11.2016, 21:25:48 »

Это не мне это просто нома. в коде не место русскому языку. Комментарии пишутся на английском (это простая норма поведения, ну на двух языках в крайнем случае). Ну а для русского языка в XML если языковые константы
Да уж.. У меня был учитель по труду, который кричал, брызгал, у него было ужасное недомогание, когда я плоскогубцами забивал гвозди, т.к. молотка не было под рукой, он предлагал подождать пока освободится или принести свой... Не буду говорить что было когда я сделал это киянкой.. Smiley

Septdir, это будет усиливаться с годами, поэтому надо поймать себя на этом вовремя..)
Записан
shurakana
Живу я здесь
******

Репутация: +48/-6
Offline Offline

Сообщений: 859



« Ответ #27 : 04.11.2016, 21:34:00 »

Во, наконец!
Работает! :-)
Ну и отлично, уже думал что то не учел, я эту возможность толком не тестировал, просто вспомнил мануальчик про который говорил voland выше, и добавил второе поле..)
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8696


любит наш народ всякое гавно...


« Ответ #28 : 06.11.2016, 11:56:58 »

Хм.. обнаружилась проблема.
При попытке редактировать материал
Цитировать
Обнаружена ошибка.
0 Таблица article не поддерживается. Файл не найден.

Хотя я лишь добавил поля в запрос и всё.

ЧЯДНТ?
Записан
voland
Профи
********

Репутация: +487/-86
Online Online

Пол: Мужской
Сообщений: 8696


любит наш народ всякое гавно...


« Ответ #29 : 06.11.2016, 11:57:49 »

При правке ядра все ок
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet