Для диалога используйте пользовательский интерфейс jQuery
http://jqueryui.com/demos/dialog/#modal-message
Для изменения URL с JS используйте History API
http://html5demos.com/history
Также проверьте Хороший учебник для использования HTML5 History API (Pushstate?)
Для старых браузеров вам может понадобиться location.hash приведенный выше сайт jQuery UI является хорошим примером для этого.
Для открытия всех ссылок в диалоге вы можете написать код, как показано ниже:
$('a').click(function(e){
e.preventDefault();
var url=$(this).attr('href')+"?content_only"; //content_only added to tell index.php to give only content without template and JS
$.get(url, function(data) {
$('.dialog').html(data).dialog();
//change URL here
});
});
Для направления всех URL на домашнюю страницу Вы должны выполнить трюки на стороне сервера, указать все URL-адреса на index.php.Например, example.com/index.php/subpage
и отметьте в Document ready, если URL-адрес не просто index.php
Я имею в виду что-то вроде example.com/index.php/subpage
, затем откройте example.com/index.php/subpage?content_only
в диалоговом окне.В index.php
используйте критерий, указывается content_only
, затем возвращается только содержимое subpage
без шаблона и JS.