Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы Как сделать проверку на версии DLE?

Как сделать проверку на версии DLE?


     23.12.2014    Общие вопросы, Общие вопросы по PHP    1099

вопрос
Имеются довольно стандартные функции, к примеру, эта функция взята из DLE 10.1
function showRow($title = "", $description = "", $field = "", $flag = true) {
    echo "<tr>
    <td style=\"padding:4px\" class=\"option\">
        <div style=\"padding-bottom:5px;\"><b>{$title}</b></div><div class=\"small\">{$description}</div>
        <td width=\"400\" align=middle >
            $field
        </tr>";
    if($flag){
    echo "<tr>
            <td background=\"engine/skins/images/mline.gif\" height=1 colspan=2></td>
        </tr>";
    }
}

А есть такая же функция с DLE 10.3
function showRow($title = "", $description = "", $field = "")
{
    echo "<tr>
    <td class=\"col-xs-10 col-sm-6 col-md-7\"><h6>{$title}</h6><span class=\"note large\">{$description}</span></td>
    <td class=\"col-xs-2 col-md-5 settingstd\">{$field}</td>
    </tr>";
}

И скажем таких функций в модуле больше 5 штук. суть вопроса заключается в чем...Как поступить с проверками то?
У меня в голове нарисовались 3 способа:

Одна проверка и отдавать все функции под нужную версию
Способ №1

if($config['version_id'] < 10.2)
showRow();
func1();
func2();
.....
и другие функции DLE НИЖЕ версий 10.2
else
showRow();
func1();
func2();
.....
и другие функции DLE ВИШЕ версий 10.2


Каждую отдельную функцию проверять и отдавать под нужную версию
Способ №2

if($config['version_id'] < 10.2)
Например funck1 НИЖЕ версий 10.2
else
Например funck1 ВЫШЕ версий 10.2

if($config['version_id'] < 10.2)
Например funck2 НИЖЕ версий 10.2
else
Например funck2 ВЫШЕ версий 10.2

if($config['version_id'] < 10.2)
Например funck3 НИЖЕ версий 10.2
else
Например funck3 ВЫШЕ версий 10.2


Или же в самой функции проверять версию и отдавать что нужно
Способ №3

function func1(){
if($config['version_id'] < 10.2)
return '< 10.2';
else
return '> 10.1';
}

Ответа пока нет


Комментарии пользователей (8)

Ioncube
13

Ioncube - 23 декабря 2014 22:18 - Юзер

Подсказок типа
Удалить всё и начать заново.
не нужны.

FastFud
50

1599 | 588

FastFud - 23 декабря 2014 22:43 - Юзер

$dv = $config['version_id'];
if($dv < 10.1) {
    Например funck1 НИЖЕ версий 10.1
} elseif ($dv < 9.6) {
    Например funck1 НИЖЕ версий 9.6
} elseif ($dv < 7.2) {
    Например funck1 НИЖЕ версий 7.2
}

Ioncube
13

Ioncube - 23 декабря 2014 23:39 - Юзер

FastFud,
Здесь так много проверять не надо. Это я хочу сделать админку для ниже 10.2 и выше 10.1, ибо там разные шаблоны же. Да и вы сути не поняли наверное. У меня таких функций больше 5 штук и каждую так проверять? Это ведь куча будет проверок, это не хорошо

Attyla
72

243 | 128

Attyla - 23 декабря 2014 23:28 - Юзер

Можно и через http://php.net/manual/ru/control-structures.switch.php, но насколько я знаю, это медленее чем через if elseif.

vitnet
218

2171 | 930

vitnet - 23 декабря 2014 23:38 - Эксперт

Как на счет такого варианта?

Ioncube
13

Ioncube - 23 декабря 2014 23:44 - Юзер

это мой 3й способ) Я тоже более к нему склоняюсь. Но меня пугают
global $config

vitnet
218

2171 | 930

vitnet - 23 декабря 2014 23:46 - Эксперт

Цитата: Ioncube
Но меня пугают

Чем?

Ioncube
13

Ioncube - 23 декабря 2014 23:52 - Юзер

тем что мы вызываем глобально переменную + например будет 100 функций, что 100 раз global прописывать?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы