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

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Подскажите правильный способ определени  (Прочитано 917 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
EzPresso
Захожу иногда
**

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

Сообщений: 8


« : 26.04.2010, 00:51:41 »

Из плагина нужно определить под какой CMS мы выполняемся, чтобы подгрузить нужные заглушки. Joomla 1.0.x, Joomla 1.5.x, Mambo x.x, Joostina 1.x.x и т.д.
Какой способ лучший и будет работать везде?

Раньше всегда использовал глобальную переменную $_VERSION. Но в версии 1.3.x кто-то, кажется, додумался сделать ей эвтаназию...
Записан
Vladzimir
Давно я тут
****

Репутация: +22/-0
Offline Offline

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


В очередь! в очередь! День Сурка © М.Борзыкин


« Ответ #1 : 26.04.2010, 10:39:21 »

А если делать проверку на наличие файлов joomla.php mambo.php joostina.php?
В Joostina - только joostina.php
В 1,0 - и joomla.php и mambo.php
В 1,5 - только joomla.php
в Мамбо - только mambo.php
Записан
EzPresso
Захожу иногда
**

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

Сообщений: 8


« Ответ #2 : 26.04.2010, 10:59:28 »

Это все, конечно, хорошо, но некошерно dry (ИМХО), ибо лишнее использование файловой системы, падение производительности. Можно еще проверять существование каких-нибудь специфических классов и методов. Но ведь был отличный метод, существовавший еще со времен бородатой Мамбы, а его вот так взяли и ликвидировали. И теперь вместо проверки $_VERSION->PRODUCT нужно воротить черти что!
Записан
boston
Moderator
*****

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

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



« Ответ #3 : 26.04.2010, 12:45:37 »

В Joostina 1.3.0 есть $_VERSION
Записан
EzPresso
Захожу иногда
**

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

Сообщений: 8


« Ответ #4 : 26.04.2010, 14:54:14 »

boston, в том то и дело, что нет! Запускаю в корне Joostina 1.3.0-2:

Код:
grep -R --regexp='\$\_VERSION[[:space:]]*\=' ./*

Получаю:
Код:
./administrator/templates/joostfree/html/menubar.html.php:                                              $_VERSION       = new joomlaVersion();
./administrator/templates/joostfree/index.php:          $_VERSION       = new joomlaVersion();
./administrator/components/com_joomlaxplorer/languages/russian.php:$_VERSION = new joomlaVersion();
./installation/common.php:$_VERSION = new joomlaVersion();
./templates/system/offline.php:    $_VERSION    = new joomlaVersion();

То есть $_VERSION создается в index.php шаблона joostfree. При использовании другого шаблона - ее нет.

Раньше же было:
Код:
./includes/version.php:$_VERSION = new joomlaVersion();

То есть в version.php был код:
Код
$_VERSION = new joomlaVersion();
 
Записан
Vladzimir
Давно я тут
****

Репутация: +22/-0
Offline Offline

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


В очередь! в очередь! День Сурка © М.Борзыкин


« Ответ #5 : 26.04.2010, 16:57:06 »

Это все, конечно, хорошо, но некошерно dry (ИМХО), ибо лишнее использование файловой системы, падение производительности.
На сколько мне известно результат этой проверки кешируется http://www.php.ru/manual/function.file-exists.html
Так-что это совсем кошерно, и к тому-же ее можно делать только один раз, а далее гонять через переменную/константу.
Записан
boston
Moderator
*****

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

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



« Ответ #6 : 26.04.2010, 17:21:55 »

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

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | 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