Показать сообщение отдельно
  #1 (permalink)  
Старый 19.08.2011, 14:40
fiw fiw вне форума
Аспирант
Отправить личное сообщение для fiw Посмотреть профиль Найти все сообщения от fiw
 
Регистрация: 18.08.2011
Сообщений: 23

Вставка SMARTY функции в innerHTML
Ребята помогите грамотно решить следующую задачу.

Есть код:
{literal}
<script type="text/javascript">
document.getElementById('WallComments').innerHTML = '{/literal}{he_wall_display object="album_file" object_id="35156"}{literal}';
</script>
{/literal}


Тут я вставляю смарти функцию. Все собственно сделано правильно, но сама функция имеет следующее содержание, из за которого вставка корректно не происходит.
Функция производит вставку целого файла.

Содержимое вставляемого файла:

<style>
.media_container {ldelim}
    margin-left: 20px;
{rdelim}
.video_info {ldelim}
    margin-top: 6px;
    padding-top: 6px;
{rdelim}
</style>
<script type="text/javascript">
window.addEvent('domready', function(){ldelim}
    he_wall.action_ids = {$js_action_ids};
    he_wall.wall_object = '{$wall_object}';
    he_wall.wall_object_id = {$wall_object_id};
    he_wall.allow_post = {$allow_post};
    he_wall.actions_per_page = {$setting.setting_he_wall_actions_per_page},
    he_wall.disable_music_upload = {if !$setting.setting_he_wall_disable_music}false{else}true{/if};
    he_wall.construct( '{$wall_uid}' );
{rdelim});
</script>

{if $wall_object != 'userhome'}
<style type="text/css">
.wall_action .wall_link {ldelim}display: none;{rdelim}
</style>
{/if}
... // и так далее


В итоге готовая страничка в браузере имеет следующий вид:

<script type="text/javascript">
document.getElementById('WallComments').innerHTML = '<style> 
.media_container {
    margin-left: 20px;
}
.video_info {
    margin-top: 6px;
    padding-top: 6px;
}
</style>
<script type="text/javascript">
window.addEvent('domready', function(){
    he_wall.action_ids = ["44828","44656"];
    he_wall.wall_object = 'album_file';
    he_wall.wall_object_id = 35156;
    he_wall.allow_post = 1;
    he_wall.actions_per_page = 15,
    he_wall.disable_music_upload = true;
    he_wall.construct( 'wall_4e4e3c3079609' );
});
</script>
<style type="text/css">
.wall_action .wall_link {display: none;}
</style>
// и так далее


Вообщем что можно сделать чтобы не редактировать сам файл шаблона, который вставляет смарти функция.
Потому, там менять очень много чего придется...
При вставке {he_wall_display object="album_file" object_id="35156"}
В обычный HTML код все работает корректно.
Но как бы это вставлять через innerhtml?
Ответить с цитированием