Перейти к содержимому


Фото
- - - - -

Аналог суперглобальных переменных в Smarty


Best Answer question , 20.02.2019 - 14:28

Всё, разобрался, всем спасибо. Работает!

Перейти к посту


  • Чтобы отвечать, сперва войдите на форум
14 ответов в теме

#1 question

question
  • Пользователь
  • 267 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 19.02.2019 - 20:08

Где-то видел, что можно в произвольной функции объявить переменную так

 

$this->design->assign('single', '1');
 

Однако, вывод в index.tpl таким способом

 

 

 

print $this->design->single;
 

или

 

print $single;
 

ничего не выводит. Подскажите, куда копать.



#2 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 7 079 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 19.02.2019 - 20:50

{$single|print_r}


#3 question

question
  • Пользователь
  • 267 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 19.02.2019 - 21:22

Мне нужно не в шаблоне, а в index.php получить значение переменной.



#4 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 7 079 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 19.02.2019 - 21:50

Мне нужно не в шаблоне, а в index.php получить значение переменной.

Это основы MVC паттерна. Смотрите в сторону view/View.php на примере $page или $user.
Удачи!

#5 question

question
  • Пользователь
  • 267 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 19.02.2019 - 23:19

Мне нужно из ProductsView.php передать значение в index.php, в моём случае - количество товара на странице ($products_count).

Объявление global переменной не помогло.



#6 phukortsin

phukortsin
  • Фрилансер
  • 795 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 20.02.2019 - 09:54

Мне нужно из ProductsView.php передать значение в index.php, в моём случае - количество товара на странице ($products_count).

Объявление global переменной не помогло.

 

Зависит от того, как и где объявлять...



#7 question

question
  • Пользователь
  • 267 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 20.02.2019 - 10:34

Зависит от того, как и где объявлять...

Объявить некоторую переменную в index.php, присвоить значение в ProductsView.php - разве не так должно быть?



#8 phukortsin

phukortsin
  • Фрилансер
  • 795 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 20.02.2019 - 10:53

Объявить некоторую переменную в index.php, присвоить значение в ProductsView.php - разве не так должно быть?

 

 

Зависит от того, как и где объявлять...



#9 question

question
  • Пользователь
  • 267 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 20.02.2019 - 11:01

А как правильно? Пробовал так: в index.php прям первой строчкой пишу

<?PHP
 
global $single;

И в конце

 

print $single;
 

В ProductsView.php указываю

 

    function fetch()
    {
        global $single;
​        $single = '1';
        ... ...
     }  

Но index.php всё равно выводит 0 (ноль)


Изменено: question, 20.02.2019 - 11:24


#10 question

question
  • Пользователь
  • 267 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 20.02.2019 - 11:25

Однако, если в ProductsView.php с самого начала (со второй строчки) написать

 

global $single;
​$single = '1';
 

то срабатывает.



#11 phukortsin

phukortsin
  • Фрилансер
  • 795 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Львов

Опубликовано 20.02.2019 - 13:10

Но index.php всё равно выводит 0 (ноль)

Вывод зависит от того, какая страница открывается.
На странице категории, например, Ваш способ у меня выводит, как и положено, значение 1.

#12 question

question
  • Пользователь
  • 267 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 20.02.2019 - 14:05

Вывод зависит от того, какая страница открывается.

Ну это понятно, каждый вью за своё отвечает



#13 Kosjak76

Kosjak76
  • Модератор
  • 3 817 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 20.02.2019 - 14:20

Мне вот вообще ничего не понятно...

Что именно вы хотите? Если вывести количество товаров на странице Категории, Бренда или Все товары - то это несложно.

А если на какой-то другой - то вообще непонятно, каких именно товаров?

Можете по-человечески описать задачу?



#14 question

question
  • Пользователь
  • 267 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 20.02.2019 - 14:28   Best Answer

Всё, разобрался, всем спасибо. Работает!



#15 question

question
  • Пользователь
  • 267 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 20.02.2019 - 14:32

Мне вот вообще ничего не понятно...

Что именно вы хотите? Если вывести количество товаров на странице Категории, Бренда или Все товары - то это несложно.

А если на какой-то другой - то вообще непонятно, каких именно товаров?

Можете по-человечески описать задачу?

Задача непростая и двумя предложениями её не опишешь. Но если кратко, то я делал кеширование некоторых страниц/категорий/товаров в Симпле. Делал это с целью ускорения генерации страниц (иногда по 400 мсек требовалось, сейчас - 5-8).

А вообще при открытии категории нужно было подсчитать количество товаров в ней и передать значение в index.php, в котором уже своя функция делала кеширование по условию.






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых