XF 2.1 php в шаблоне

Версия XenForo
v2.1.6

aleston

Проверенные
Сообщения
60
Реакции
19
Баллы
5,510
как выполнять свои функции в шаблоне?
 
Определить их в шаблонизаторе

У меня есть функция

Код:
    function my_func($login)
    {
        global $db;
        
        $query = "SELECT * FROM `sub` WHERE `login` = '{$login}' ORDER BY `id`";
        
        $result = mysqli_query($db, $query);
        while ($row = mysqli_fetch_assoc($result)) {
            $array[] = $row;
        }
        
        if($array != null)
        return $array;
        
        return false;
    }

как мне передать в неё логин юзера и вывести результат в шаблоне?
 
Говнокод в работе. Теперь начинаем с самого начала, что нужно и зачем. Где вывести, зачем выводить логин юзера?
 
Последнее редактирование:
Говнокод в работе. Теперь начинаем с самого начала, что нужно и зачем.


Мне нужно, передать логин юзера в функцию, и получить кол-во совпадений и вывести всё это в шаблоне
 
И не использовать mysqli_query.

Прочитайте документацию к движку, в частности, про сущности, искатели, репозитории и т.д.

Разработчики наоборот всячески уходят от использования голых query, чтобы, как минимум, обезопасить нас от SQL инъекций, а вы наоборот идете назад, а-ля - привет 90-е))
Не надо так.
 
ValeCore, тут нет ничего плохого как такового. От чистых квери не всегда можно избавиться благодаря ORM. И тот же пример работы Repository где идут голые квери. Максимум абстракция с прослойкой db(). Но на выходе использование mysqli и запросов от них. Разработчики не используют сами PDO.
Основная проблема именно здесь использование global. За использование global с любого энтерпрайза просто выкинут сразу же.
Помимо использования global, бесполезная проверка т.к в результате у тса всегда будет массив null и возвращаться false. Разработчики не уходят от голых запросов, они попытались реализовать свой костыльный ORM, который ещё некорректно работает с большими запросами и не правильно выставляет индексы и берёт их.
В самом итоге у тса код бесполезный, который реализуется 2 строчками кода. Будь то финдер или прямой скуль запрос в репозитории.
Да и к тому же якобы уходят, что сущности, что жобы и не только имеют прямые скуль запросы. Что то да переделывается, а что то так и остается.
 
  • Мне нравится
Реакции: Hope
Captain, он говорит про то, что не надо использовать mysqli_query напрямую. Есть абстракция от движка, ее и надо использовать. Вместо mysqli может быть другой драйвер, речь об этом. Понятное дело, что внутри движка голые запросы.
 
Есть абстракция от движка, ее и надо использовать. В
Где гарантия, что используется таблица не из другой бд и вообще по внешнему подключению? XF не умеет такого делать.
Вместо mysqli может быть другой драйвер, речь об этом.
Не умеет так как он гвоздем прибит и не используется PDO.
Понятное дело, что внутри движка голые запросы.
Опять таки не все голые запросы, а часть переложена на ORM. О чем писалось выше. Пока та самая абстракция не научится создавать соединение то это имеет смысл кода.
Я писал основную проблему кода:
Основная проблема именно здесь использование global. За использование global с любого энтерпрайза просто выкинут сразу же.
Помимо использования global, бесполезная проверка т.к в результате у тса всегда будет массив null и возвращаться false.
Что в логике у тса то только у него в голове. Как говорится нет тз = результат хз.
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу