Как я могу написать роутер для открытия модального Joomla Squeezebox из параметра URL?

У меня есть сайт Joomla, который использует Squeezebox, который по умолчанию является модальным javascript для Joomla.

Я использую Squeezebox с переопределениями шаблонов. Например, у меня есть ссылка, которая просматривает каждую страницу, которая является частью переопределения шаблона:

<a href="http://www.viddler.com/embed/cd1b1bc5/?f=1&autoplay=1&player=full&secret=104492144&loop=0&nologo=1&hd=1" class="modal vid-primary" rel="{url:'http://www.viddler.com/embed/cd1b1bc5/?f=1&autoplay=1&player=full&secret=104492144&loop=0&nologo=1&hd=1', handler: 'iframe', size: {x:741, y:459} }" style="display: block; position: relative;">

Эти ссылки открывают видео в модале.

Что мне нужно сделать, так это иметь возможность открывать это видео в режиме onLoad, если присутствует параметр URL. Например:

http://mysite.com/page.html?vidload=vidload

Поэтому мне нужен маршрутизатор, который будет обрабатывать это. Я нашел что-то близкое к тому, что мне нужно, но не могу понять, как заставить это работать. Вот что у меня так далеко:

window.addEvent('domready', function() {
 function popModal() {
  SqueezeBox.open($('vid-primary'), {
        handler: 'adopt'
    });
}

var hash = window.location.hash;
if (hash.substring(1) == 'vidload') {
  popModal();
}

});

2 ответа

Включить модальную библиотеку в переопределение шаблона:

<?php JHtml::_('behavior.modal'); ?>

Используйте ссылки, как это:

<a class="modal" rel="{handler: 'iframe', size: {x: 800, y: 500}}" title="Modal box title" href="[your link]" >open</a>

Больше в Squeezebox Documentation и опциях JHtml::_('поведение imod.modal')

Обновление: я думаю, что ответ Адиди ниже, что вы после. Если вы все равно загрузите MooTools More, вы можете использовать класс URI:

var uri = new URI (location.href);
if (uri.getData('vidload') == 'vidload') {
    SqueezeBox.open($('vid-primary'), { handler: 'adopt' });
}

Вы пытаетесь получить хеш, и он пуст в зависимости от того, что вы хотите. Если вам нужна функция, которая получает parmaeter строки запроса, вы можете использовать эту простую функцию:

function getURLParam(key,target){
    var value = '';
    if(!target){
        target = location.href;
    }

    var pattern = key + '=([^&#]+)';
    var o_reg = new RegExp(pattern,'i');
    var matches = o_reg.exec(target);
    if(matches && matches[1]){
        value = matches[1];
    }

    return value;
}

if(getURLParam('vidload') == 'vidload'){
  popModal();
}
Другие вопросы по тегам