Новости Joomla

Вышли релизы безопасности Joomla 6.1.1 и Joomla 5.4.6

Релиз безопасности Joomla 6.1.1 и Joomla 5.4.6

Проект Joomla! рад сообщить о выходе Joomla 6.1.1 и Joomla 5.4.6. Это релизы безопасности и исправления ошибок для серий 5.x и 6.x.

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

kreker92

  • Захожу иногда
  • 390
  • 18 / 0
Добрый день!
Разрабатываю плагин показа случайного товара VirtueMart 2.0 на Joomla 2.5 во всплывающем окне для каждого нового посетителя.
Отслеживаю по сессии.

Это мой первый плагин, поэтому не все мне понятно.
Хотел узнать вызов какого события нужно использовать вместо
Код
public function onContentAfterDisplay($context, &$article, &$params, $limitstart)
{

Так же хотел узнать как можно передать переменные из параметров плагина (время отображение окна, скорость анимации) в javascript.
Скрипт имеет такой вид
Код
function showJustBuy(time) {
setTimeout(function() {
$j('#justBuy').animate({
'right': '+=250px'
}, 1000);
}, time);
}

Если это неверный подход, то скажите пожалуйста как сделать по фэн-шую.

Заранее спасибо.

На всякий случай сразу выложу код.
Код
<?php

// no direct access
defined('_JEXEC') or die;

class vmRandomItem extends JPlugin
{
public function onContentAfterDisplay($context, &$article, &$params, $limitstart)
{
$document = & JFactory::getDocument();
$document->addStyleSheet(JURI::base(). "plugins/content/vmrandomitem/vmrandomitem.css");
$document->addScript(JURI::base(). "plugins/content/vmrandomitem/vmrandomitem.js");

$page_num = set_page_num();
$rand_num_start = set_rand_num_start();
$rand_num_end = set_rand_num_end();
$start_to_show = set_start_to_show();
$show_time = set_show_time();
$animation_speed = set_animation_speed();

function set_page_num() {
if($this->params->get('page-nums'))
return str_to_arr($this->params->get('page-nums'));
else
return [1];
}

function set_rand_num_start() {
if($this->params->get('rand-num-start'))
return str_to_int($this->params->get('rand-num-start'));
}

function set_rand_num_end() {
if($this->params->get('rand-num-end'))
return str_to_int($this->params->get('rand-num-end'));
}

function set_start_to_show() {
if($this->params->get('start-to-show'))
return str_to_int($this->params->get('start-to-show'));
else
return 0;
}

function set_show_time() {
if($this->params->get('show-time'))
return str_to_int($this->params->get('show-time'));
else
return -1;
}

function set_animation_speed() {
if($this->params->get('animation-speed'))
return str_to_int($this->params->get('animation-speed'));
else
return 1;
}

function str_to_arr($str) {
return array_map('intval', explode(",", $str);
}
function str_to_int($str) {
return intval($str);
}


if (isset($_SESSION['counter']) && isset($_SESSION['show_num'])) {
$_SESSION['counter']++;
if($_SESSION['counter'] == $_SESSION['show_num']) { ?>
<script type="text/javascript">
function showJustBuy(time) {
setTimeout(function() {
$j('#justBuy').animate({
'right': '+=250px'
}, 1000);
}, time);
}
function hideJustBuy(time) {
$j('#justBuy').animate({
'right': '-=250px'
}, time);
}
function waitingSomeSeconds(time, hideTime) {
setTimeout(function() {
hideJustBuy(hideTime);
}, time);
}
</script>
<?php }
} else {
$_SESSION['counter']=0;
if($this->params->get('rand-num-start') && $this->params->get('rand-num-end')) array_push($page_num, rand($rand_num_start, $rand_num_end));
if($this->params->get('page-nums')) $_SESSION['show_num'] = $page_num;
}

}
}

?>
Все вопросы и предложения на почту.
*

kreker92

  • Захожу иногда
  • 390
  • 18 / 0
Отвечу на свои вопросы =)

Чтобы плагин отрабатывал на всех страницах сайта он дожен быть типа System и использовать функцию отсюда http://docs.joomla.org/Plugin/Events

Передать переменные из php в javascript можно с помощью php-функции json_encode()
Все вопросы и предложения на почту.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Расчёт стоимости товара в VirtueMart за периметр

Автор NIKOLY

Ответов: 0
Просмотров: 2243
Последний ответ 04.07.2025, 09:18:31
от NIKOLY
VirtueMart 3 Отображать только товары в наличии!

Автор GaziroFFka

Ответов: 4
Просмотров: 5815
Последний ответ 06.06.2023, 13:55:13
от Akeksandr
Добавить пользовательскую позицию для вывода

Автор AndreySeo

Ответов: 2
Просмотров: 2929
Последний ответ 25.05.2023, 10:48:09
от AndreySeo
SP VirtueMart Category Search

Автор ve1006

Ответов: 10
Просмотров: 9662
Последний ответ 18.01.2023, 10:39:10
от AzMandius
Как вывести ID товара в описании товара?

Автор Stasweb

Ответов: 8
Просмотров: 5882
Последний ответ 28.11.2022, 23:22:27
от Evgen Kulibin