Как я могу написать роутер для открытия модального 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();
}