Новости Joomla

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

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Сижу переписываю JComments под 3.0 (без каких-либо там поддержек 1.0 или 1.5). Но, выкидывать из поддерживаемых версий 2.5 не желаю (нравится она мне). В большинстве своем получается без проблем написать код, одинаково работающий и в 2.5 и в 3.0. Конечно, за исключением небольшого кол-ва условных блоков - например в 2.5 нет никаких sidebar'ов, да и ordering реализован по-старинке.

И вот добрался я до табов. Используются они у меня часто. Мало того, что в 3.0 убрали всякие JPane, так они и JHtmlTabs можно сказать вообще не используют. Все табы в 3.0 реализованы прямо во view, без каких-либо хелперов. По сути к ним у меня претензий нет. Но в 2.5 они работать-то не будут. Попробовал я использовать JHtmlTabs в Joomla 3.0 - такое ощущение что стилей не хватает (может быть конечно я что-то упустил).

Посему вопрос - у кого какие есть идеи? В принципе меня целиком и полностью устраивает реализация табов в 3.0 (тем более, что мне нужны и вертикальные и горизонтальные). Нет ли у кого-нибудь костылей, чтобы запустить их под 2.5?

А если идей нет, то может кто-то подскажет как малой кровью повернуть набок JHtmlTabs? Т.е. мне нужны 2 вида закладок - сверху и слева сбоку.
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
... Нет ли у кого-нибудь костылей, чтобы запустить их под 2.5?

version_compare(JVERSION...

 - и вперёд ;)

Объективно всё равно не достичь 100% идентичности в интерфейсе:

Спойлер
[свернуть]

Спойлер
[свернуть]


Подключать в J 2.5 бутстрап только ради табов - смысла нет.

Хотя если взять ту же акибу - Николас подключает бутстрап с некоторого времени и для 2.5
« Последнее редактирование: 11.06.2013, 23:19:54 от SDKiller »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Да, но в этом случае придется делать разные layout'ы для 2.5 и 3.0 и тем самым дублировать много кода. Я думал вдруг у кого-нибудь есть изолированное решение.

В принципе, если содержимое, которое надо расположить на табах  вынести в отдельные блоки (и вызывать их через loadTemplate), то дублирование серьезно сократится. Но в идеале-то хотелось бы чего-то универсального.
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Да, но в этом случае придется делать разные layout'ы для 2.5 и 3.0

Да не обязательно разные layout

Грубо говоря что-то вроде

Код
        if (version_compare(JVERSION, '3.0.0', '>=')) {
            echo '<div id="tab-'.$i.'" class="tab-pane">';
        } else {
            echo JHtml::_('tabs.panel', JText::_($tab_name), 'tab-'.$i);
        }

А можно  и через loadTemplate - соответственно только в зависимости от версии загружать каркас.
Ну и JavaScript соответственно в зависимости от версии.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Да я бы тоже задумался о разных Layouts для разных версий либо о sub_layouts ($echo $this->loadTemplate('sub_layout') )..
но как по мне лучше думать о разных слоях для разных версий!
я бы вообще писал для разных версий отдельные компоненты, но учитывая объемы JComments может быть затратно все это поддерживать для разных типов системы!

вариант №2 это тянуть какой нить левый скрипт для организации табов в админку, тогда во всех версиях будет одинаково ) но без понятия как с бутстапом подружится!
или например организовать табы как в тройке, и притянуть бутстаповский скрипт и стили для табов в админку, тогда в двойке табы будут как в тройке ^^
« Последнее редактирование: 11.06.2013, 23:45:53 от Istaan »
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Поправочка - если делать разные каркасы, а содержимое табов отдельно - то загружать его не через loadTemplate()
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Ну я сейчас попробовал с условием в головном layout'е, получилось в принципе не очень громоздко. Правда надо подумать, как бы их набок уложить - не хочется мне брать мою старую реализацию, не нравится она мне категорически.

я бы вообще писал для разных версий отдельные компоненты, но учитывая объемы JComments может быть затратно все это поддерживать для разных типов системы!
я помру поддерживать несколько версий...

или например организовать табы как в тройке, и притянуть бутстаповский скрипт и стили для табов в админку, тогда в двойке табы будут как в тройке ^^
Я посмотрел как это реализовали в Akeeba - я не готов на подобный подвиг ;) Лучше уже условный блок в layout'e...

Поправочка - если делать разные каркасы, а содержимое табов отдельно - то загружать его не через loadTemplate()
почему? я вот сделал примерно так:

Спойлер
[свернуть]
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
почему? я вот сделал примерно так:

Я не это имел в виду.

Предположим у нас а содержимое табов - в отдельных файлах и 2 layout - default25 и default30, где только каркас табов.

Тогда по loadTemplate('tab1') JView будет искать либо default25_tab1 либо default30_tab1.
А мы как раз хотели сами файлы с содержимым табов не размножать.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
я думаю уж лучше Layouts для разных версий брать будет и проще и понятнее)
хотя всетаки лучше бы на разные версии разделить! не думаю что поддержка будет сложнее, по сути модели, контроллеры и виды будут абсолютно одинаковыми! менять нужно будет только шаблоны видов!
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Ну так в приведенном примере у меня в edit.php один условный блок и подключение дочерних layout'ов. А дочерние - едины для 2.5 и 3.0, это ведь уже содержимое табов. А уж иметь один edit.php или дробить его на 2, мне кажется не принципиально.

В принципе можно вообще, во второй ветке сделать loadTemplate('legacy') и уже в нем JHtmlTabs вызывать.. Но это не принципиально - все равно линейка 2.5 будет жить в сердцах людей на сайтах еще года полтора и я не скоро соберусь убирать ее поддержку из JComments.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Ну так в приведенном примере у меня в edit.php один условный блок и подключение дочерних layout'ов. А дочерние - едины для 2.5 и 3.0. А уж иметь один edit.php или дробить его на 2, мне кажется не принципиально.
принципиально )
если будем делать разные layout для разных версий, и будем делать sub_layouts то для каждого слоя придется делать отдельные sub_layout, а если делать один edit.php и подгружать только табы через loadTemplate то будет меньше по идее и файлов и кода!
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
если будем делать разные layout для разных версий, и будем делать sub_layouts то для каждого слоя придется делать отдельные sub_layout
Да, это верно. Как-то сразу не подумал, что дочерний зависит от имени родителя.

а если делать один edit.php и подгружать только табы через loadTemplate то будет меньше по идее и файлов и кода!
я это и сделал в приведенном ниже примере...
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
я это и сделал в приведенном ниже примере...
ну думаю это будет наиболее оптимальный вариант )
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
очень хотелось бы заменить ее на что-то более приличное (тем более, что я полностью переписываю административную панель).
притянуть для j25 скрипт который реализует табы для бутстапа и стили для табов взять
*

voland

  • Легенда
  • 11026
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
А по мне - не надо ничего тянуть, а ориентироваться на гайды для конкретной платформы (на негласные гайдлайны, если официальных нет).
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Хм, а может быть действительно, взять из bootstrap только bootstrap-tab.js и стили для него? И подключать в 2.5... По сути-то нужно-то jQuery, bootstrap-tab.js и небольшой файл стилей. Подключать условно, и тогда и не нужно ни условных блоков, ни морочить голову с вертикальными табами.
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Хм, а может быть действительно, взять из bootstrap только bootstrap-tab.js и стили для него? И подключать в 2.5... По сути-то нужно-то jQuery, bootstrap-tab.js и небольшой файл стилей. Подключать условно, и тогда и не нужно ни условных блоков, ни морочить голову с вертикальными табами.
я бы так и сделал  ;) тем более это адмика, и тут реально не надо заморачиваться о быстродействии )))
« Последнее редактирование: 12.06.2013, 01:28:53 от Istaan »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Так, все получилось. Что я сделал:

1. Взял стили из bootstrap для табов и вынес их в bootstrap-tab.css и подключил его.
2. Взял и подключил jQuery
3. Взял объявление табов из bootstrap.js, вынес в bootstrap-tab.js и подключил его
4. Оставил разметку для табов из Joomla 3.0

p.s. Чуть почистил тему, оставив самое интересное ;)
« Последнее редактирование: 12.06.2013, 03:16:36 от smart »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Документация по созданию модуля для Joomla 2.5 и Joomla 3.x

Автор b2z

Ответов: 1
Просмотров: 2331
Последний ответ 29.07.2015, 09:40:30
от b2z
JPluginHelper::importPlugin('content') в Joomla 1.7

Автор Dutch

Ответов: 2
Просмотров: 4786
Последний ответ 30.03.2015, 14:22:51
от twins717
Документация по созданию компонента для Joomla 2.5

Автор Sulpher

Ответов: 74
Просмотров: 57364
Последний ответ 17.11.2014, 13:43:07
от limon142
Документация по созданию плагина для Joomla 2.5 и Joomla 3.x

Автор b2z

Ответов: 8
Просмотров: 14422
Последний ответ 27.08.2014, 09:52:02
от skinny
Как составить запрос по правилам Joomla ?

Автор mainet

Ответов: 7
Просмотров: 1769
Последний ответ 03.02.2014, 22:56:05
от Aleks.Denezh