Согласен, сложно судить когда мало информации.По обрывкам кода который вы приводите сложно понять чего вы пытаетесь достичь…
Дело в том, что очень много изменений, которые вышли бы за рамки этой темы.
Сейчас у меня реализовано:
Навигация по хэш ссылке, например человек переходит по ссылке:
мой_сервер/clubs/16#clubs_ajax_getphotos/data_club/album_id:1058
1. Движок выдает основной клуб с ID номером 16
2. После загрузки срабатывает парсер хэш ссылки:
Извлекает из адреса строку: #clubs_ajax_getphotos/data_club/album_id:1058,
3. разбивает ее на переменные, и аяксом грузит в определенный объект ответ от требуемого файла, пример:
#clubs_ajax_getphotos/data_club/album_id:1058 =>
file: components/clubs/ajax/getphotos.php
ответ будет вставлен в объект с ID: data_club
album_id:1058 — это параметры, которые будут переданы getphotos.php (их может быть любое количество)
4. После успешного выполнения ajax запроса помещаем данные в указанный див.
Таким образом мне это позволяет не перегружая всей страницы, грузить определенный контент в определенную часть сайта с сохранением навигации в браузере (в зависимости от того какой блок был указан в ссылке)
После этой загрузки, становится доступен список фото альбома 1058.
Следующая задача, над которой я сейчас работаю, это при клике на фото, чтобы она загружалась в всплывающем окне.
т.е. ссылка на фото будет уже: #clubs_ajax_getphotos/data_club/album_id:1058/photo:id
теперь getphotos.php проверяет не было и ему передано ID фото, и если да, то формирует попутно шаблон.
Вчера с помощью ob_start() ob_get_clean() получилось сформировать шаблон в буфере и затем записать его в переменную $html
После чего эту переменную отдаем основному шаблону, в котором есть код:
{if $html} ............ ............ $('#pop').html('{literal}{$html}{/literal}'); $('#pop').fade........ ............ ............ {/if}
Анализируя все варианты возможной реализации, пока самый лучший тот на котором остановился, за исключением проблем с добавлением переменной в JS
Также обратил внимание, что JS ругается на спец символы в переменной {$html}, например "{" — эти скобки от других скриптов находящихся в переменной, вчера пол ночи пытался экранировать их, но экранируются все, кроме { }, может еще что-то.
т.е. основная проблема сейчас это вставить переменную smarty, в которой могут быть также дугие скрипты в JS скрипт основного шаблона