Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 12 Ответов
  • 2473 Просмотров
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
При разработке нескольких компонентов для одного сайта столкнулся с тем, что приходится для каждого их них создавать по несколько практически идентичных хелперов. Подскажите как можно создать и установить библиотеку, общую для нескольких компонентов.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Добавление своей библиотеки
« Ответ #1 : 10.10.2013, 10:22:18 »
Плагины...
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Re: Добавление своей библиотеки
« Ответ #3 : 12.10.2013, 12:52:10 »
Подключаем свою библиотеку при разработке расширений
Супер. То, что надо, но не все.
Это позволяет использовать уже установленную нашу библиотеку.
А как её установить на сайт? Не ставить же её по FTP.
Можно конечно же перенести из установочного файла компонента с помощью файла script.php, но что-то мне подсказывает, что есть более правильный способ.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Добавление своей библиотеки
« Ответ #4 : 12.10.2013, 21:05:31 »
Можно конечно же перенести из установочного файла компонента с помощью файла script.php, но что-то мне подсказывает, что есть более правильный способ.
Именно так. Другого способа я лично не знаю.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Добавление своей библиотеки
« Ответ #5 : 12.10.2013, 21:48:25 »
Именно так. Другого способа я лично не знаю.
зачем перетягивать через script?
в установочном файле кинуть <folder>my_framework</folder>
оно установится в plugins/plugin_group/my_plugin/my_framework/ оттуда и подрубать...
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Re: Добавление своей библиотеки
« Ответ #6 : 13.10.2013, 19:37:08 »
Можно конечно же перенести из установочного файла компонента с помощью файла script.php, но что-то мне подсказывает, что есть более правильный способ.

Именно так. Другого способа я лично не знаю.

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

И ещё. Можно ли использовать при установке модулей и плагинов файл script.php, аналогично тому как при установке компонента?
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Добавление своей библиотеки
« Ответ #7 : 13.10.2013, 20:01:31 »
Тогда может знаете как перенести файлы библиотеки прямиком из папки tmp.
Зачем так извращаться? вы мой ответ выше читали?

И ещё. Можно ли использовать при установке модулей и плагинов файл script.php, аналогично тому как при установке компонента?
даже при установке шаблонов можно использовать  script.php
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Re: Добавление своей библиотеки
« Ответ #8 : 13.10.2013, 22:30:30 »
вы мой ответ выше читали?
читал. но как-то стараюсь все ставить на свои места.
Если мы говорим о библиотеке, то и стоять она должна там, где библиотеки.
а то есть любители позапихивать плагины и модули в папку компонента. вообще много ещё чего куда-то запихнуть можно  ^-^
и потом ломать голову что со всем этим делать  ;D

А вообще за совет спасибо. Порой, так может быть проще делать. Но все же хочу разобраться с тем как все поставить на нужное место.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Re: Добавление своей библиотеки
« Ответ #9 : 13.10.2013, 23:09:16 »
читал. но как-то стараюсь все ставить на свои места.
как может все стоять на своих местах если вы уже к фреймворку пихаете ещё какой то фреймворк?

а то есть любители позапихивать плагины и модули в папку компонента. вообще много ещё чего куда-то запихнуть можно  ^-^
и потом ломать голову что со всем этим делать  ;D.
Или ломают голову что это за лишняя папочка и зачем она тут надо...
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Re: Добавление своей библиотеки
« Ответ #10 : 14.02.2014, 15:07:07 »
Время шло, а ответ покоя не давал.
Так что решил к нему вернуться.
И вот к чему пришел.
В Joomla, как обычно, всё уже есть, только нормальной инструкции нет.
на Joomla.org тоже ни чего толкового не нашел, поэтому полез читать реализацию (тобиш код).
Оказалось все очень просто. У Joomla есть специальный адаптер для установки библиотек: <site>\libraries\joomla\installer\adapters\library.php
Библиотеки можно ставить такими же установочными пакетами, как, скажем, компоненты, плагины и прочее.

И так по шагам.
1) собираете в папке вашу библиотеку (все папки/файлы)
2) делаете стандартный xml-манифест, как, например, для модуля.
Те же теги: name, version, description, creationdate и т.д. В тег files оборачиваете список файлов/папок вашей библиотеки примерно таким манером:
Код: xml
	<files>
<filename>index.html</filename>
<filename>myfile1.xml</filename>
<filename>myfile2.xml</filename>
<folder>myfolder1</folder>
<folder>myfolder1</folder>
</files>
Указанные папки будут с копированы целиком со всеми файлами и подпапками, так что описывать их содержимое нет надобности.
Подробнее по манифесту можно посмотреть здесь <site>\libraries\joomla\installer\librarymanifest.php
Важное замечание в манифесте библиотеки добавляется тег libraryname, отвечающий за имя папки, в которой будет храниться ваша библиотека. Путь указываете относительно общей папки библиотек, т.е. чтобы ваша библиотека была здесь: <site>\libraries\mylibrary - в манифесте вы пишете так: <libraryname>mylibrary</libraryname>
Ещё один важный момент. В теге extension атрибуту type нужно присвоить значение library.
3) делаете из получившегося zip-архив и ставите/удаляете, как обычное расширение.

И будет вам (и мне :) ) счастье.
Таким образом легко можно устанавливать библиотеку хоть отдельно, хоть в пакете. И не бояться, что случайно сам же снесешь вместе с каким-то расширением.

Ну, а про подключение уже все хорошо написано выше.
Впрочем, кто в ладу с английским, то может ещё здесь посмотреть: Using own library in your extensions
« Последнее редактирование: 14.02.2014, 15:11:20 от Aeliot »
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: Добавление своей библиотеки
« Ответ #11 : 14.02.2014, 15:24:43 »
Ну, а про подключение уже все хорошо написано выше.
Впрочем, кто в ладу с английским, то может ещё здесь посмотреть: Using own library in your extensions
Дык на английском тоже самое, что и на русском выше, так как автор один и тот же - я :) А вот про <libraryname> я даже и не знал. +
*

Aeliot

  • Захожу иногда
  • 107
  • 2 / 0
Re: Добавление своей библиотеки
« Ответ #12 : 15.02.2014, 09:27:35 »
b2z, к слову сказать
если смотреть список адаптеров: <site>\libraries\joomla\installer\adapters\
то ещё есть возможность установки отдельных файлов,
но чем это отличается от библиотеки и какой в этом практический смысл пока не знаю
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Добавление сортировки по второй таблице

Автор ninth

Ответов: 6
Просмотров: 1241
Последний ответ 30.09.2014, 12:37:55
от b2z
addStyleDeclaration() - добавление стилей в цикле

Автор olf

Ответов: 5
Просмотров: 2085
Последний ответ 07.08.2014, 17:38:15
от Fedor Vlasenko
Добавление параметра в редактирование пункта меню Joomla

Автор olf

Ответов: 5
Просмотров: 1390
Последний ответ 07.07.2014, 22:23:55
от Shustry
SOS! Добавление дополнительного фильтра в модель вида блога

Автор titansword

Ответов: 2
Просмотров: 7317
Последний ответ 11.10.2011, 17:41:08
от Виталик