Загрузка файла в LS 0.5.1

В самом общем смысле идея и ее реализация должна быть такой:
-жмем кнопку в панели markitup
-по нажатию на кнопку вылазит окно в котором выбираем файл
— далее жмем «Загрузить»
— Аякс обрабатывает нажатие кнопки «загрузить» (EventUploadFile) и запускает php скрипт, который непосредственно грузит файл в uploads/file и сообщает о результатах

Заткнулся я на втором пункте. Но начнем по порядку. Первое за что я зацепился это шаблон window_load_img.tpl. Решил взять его за основу.

Переименовал файл window_load_img.tpl в window_load_file.tpl и написал в нем код, который представлен ниже.

<form method="post" action="" class="upload-form popup jqmWindow" enctype="multipart/form-data" id="form_upload_file">
	<h3>{$aLang.uploadimg}</h3>
    <div>
	<input type="button" value="{$aLang.uploadimg_submit}" class="button" onclick="ls.ajaxUploadImg('form_upload_file','{$sToLoad}');" />
	<input type="button" value="{$aLang.uploadimg_cancel}" class="button jqmClose" />
    
        </div>
</form>


Это просто форма, которую я хочу отобразить по нажатию на значок в markitup панели. Значок и обработка нажатия на значок находится в файле markup_settings.js. Нас интересует это:
{name: ls.lang.get('panel_image'), className:'editor-picture', key:'P', beforeInsert: function(h) { $('#form_upload_img').jqmShow(); } }

Копируем и меняем в соотв с id формы для загрузки файла. Также я поменял className и ls.lang.get('panel_file') для того, чтобы указать свой рисунок в стилях.

{name: ls.lang.get('panel_file'), className:'editor-file', key:'X', beforeInsert: function(h) { $('#form_upload_file').jqmShow(); } },

beforeInsert — это метод который вызывется до вставки в текстовое поле элемента. function(h) — имя функция, которая должна вызваться по этому событие. jqmShow() — это метод, для показывания всплывающего окна с id form_upload_file.

Также я предварительно включил следующие строки в actions/ActionTopic/add.tpl

{include file='window_load_file.tpl' sToLoad='topic_text'}


Я ожидаю, что по нажатию на кнопку с классом editor-file я получу окошко window_load_file.tpl. Но увы этого не происходит.

Причина в том, что после загрузки страницы создания топика в исходном коде я вижу следующее.

<form id="form_upload_img" class="upload-form popup jqmWindow jqmID1" enctype="multipart/form-data" action="" method="post">
<form id="form_upload_file" class="upload-form popup jqmWindow" enctype="multipart/form-data" action="" method="post">


у формы с id = form_upload_img class=«upload-form popup jqmWindow jqmID1», а у формы с id = form_upload_file class=«upload-form popup jqmWindow».

Проблема скрыта в файле jquery.jqmodal.js, так как в нем происходит добавление этого самого jqmID, но каким способом я так понять и не смог.

Прошу помощи господа. Пока мне просто нужно отобразить форму расположенную в файле window_load_file.tpl по нажатию на кнопку в панели markitup.

Заранее благодарен

1 комментарий

avatar
может кому пригодится, проблема решается добавлением строчки инициализации в файле /templates/skin/[ваш скин]/js/main.js в строчках:

// Всплывающие окна
$('#login_form').jqm({trigger: '#login_form_show'});
$('#blog_delete_form').jqm({trigger: '#blog_delete_show'});
$('#add_friend_form').jqm({trigger: '#add_friend_show'});
$('#form_upload_img').jqm();
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.