• Страница 1 из 1
  • 1
Модератор форума: likbezz  
Скрипты и коды для юкоз - Форум аццкого кодера » Архив » Хранилище старых сообщений » Как вывести форму добавления комментария в AJAX-окне?
Как вывести форму добавления комментария в AJAX-окне?
Дата: Понедельник, 02.11.2015, 15:23 |
Сержант
Группа: Проверенные
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline


Доброго времени суток!
По целому ряду причин возникла необходимость вывода формы добавления комментария в AJAX-окне. Порылся по интернету, нашел кучу вариантов вывода в окошке добавления различных материалов, а вот с комментариями для юкоза не нашел ничего. Точнее, нашел единственную ссылку, но этот способ как-то странно работает.
В панели управления, на странице формы добавления комментариев заключаю весь код в дивный блок и дописываю такой код:

Код
<a href="javascript://" onclick="wind_add_com()">Добавить комментарий</a>
<script>
function wind_add_com(){
_uWnd.alert($("#com_add_form").html(),'Добавление комментария',{name:'add_com', align:'left', w:700, h:600})
};
</script>
<div id="com_add_form" style="display:none;">
ВЕСЬ КОД UCOZ-а
</div>


Как бы... выводит форму в окошке, но... там выводится форма в форме и ничего не работает...
Если на код в css и html я уже не смотрю, как баран на новые ворота, то со скриптами беда. Что нужно переделать в коде, чтобы заработало? Или этот путь вообще тупиковый и все нужно делать иначе?


Сообщение отредактировал vospa - Понедельник, 02.11.2015, 15:24
 
Дата: Понедельник, 02.11.2015, 18:48 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Цитата vospa, Пн, 02.11.2015, 15:23:11
то нужно переделать в коде, чтобы заработало? Или этот путь вообще тупиковый и все нужно делать иначе?

Да нет, путь не тупиковый - есть варианты, и представленный код не самый худший)
Чуть позже выложу работающий вариант.

Заменить
Код
$COM_ADD_FORM$

на
Код
<a href="javascript://" onclick="new _uWnd('add_com','Добавить комментарий',700,255,{max:1,min:1,popup:0,autosize:0,resize:0,closeonesc:1,align:'left'},$('#com_add_form').html().replace('document.write',''));return false;">Добавить комментарий</a>
<div id="com_add_form" style="display:none;">$COM_ADD_FORM$</div>

И будет вот так: http://likbezz.ucoz.ru/news/2003-12-05-315


---

ps
Сайт likbezz.ucoz.ru архивный, последующая помощь оказывается тут: http://likbezz.ru/viewforum.php?f=56, аккаунты перенесены, то бишь - логин,пароль - ваши текущие здесь.

Прикрепления: 9644703.png (12.7 Kb)

 
Дата: Понедельник, 02.11.2015, 19:24 |
Сержант
Группа: Проверенные
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline


Воу! Огромное человеческое спасибо! А то я уже пошел по запасным вариантам и стал делать чисто на css с выезжающим блоком. Но с AJAX-окошком, конечно же, намного лучше smile

Сообщение отредактировал vospa - Понедельник, 02.11.2015, 19:25
 
Дата: Понедельник, 02.11.2015, 19:28 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Цитата vospa, Пн, 02.11.2015, 19:24:30
Но с AJAX-окошком, конечно же, намного лучше

Аха, осталось только придумать, как закрывать окошко после добавления комментария..)


 
Дата: Понедельник, 02.11.2015, 22:28 |
Сержант
Группа: Проверенные
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline


Цитата likbezz, Пн, 02.11.2015, 19:28:56
осталось только придумать, как закрывать окошко

Очень надеюсь, что с этим справлюсь самостоятельно. Нечто похожее уже делал.
Теперь буду пытаться сообразить почему все заработало biggrin

Добавлено (02.11.2015, 22:28)
---------------------------------------------
Мда... я идиот... Сначала не заработал и Ваш вариант. Все так же, форма в форме. Потом, наконец таки дошло, и отключил визуальный редактор комментариев, и... заработало biggrin Больше того, заработал даже исходный код, с которым я мучался biggrin

 
Дата: Вторник, 03.11.2015, 08:00 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Цитата vospa, Пн, 02.11.2015, 22:28:54
Больше того, заработал даже исходный код, с которым я мучался

У меня не работало, пока не убрал document.write .. ни ваш ни мой вариант..)

Цитата vospa, Пн, 02.11.2015, 22:28:54
Потом, наконец таки дошло, и отключил визуальный редактор комментариев, и... заработало

Код
<a href="javascript://" onclick="new _uWnd('add_com','Добавить комментарий',700,255,{max:1,min:1,popup:0,autosize:0,resize:0,closeonesc:1,align:'left',oncontent:function(){$('#ajax_add_form').html($('#com_add_form').html().replace('document.write',''));$('#ajax_add_form').find('.wysibb-toolbar:first').remove()}},'<div id=\'ajax_add_form\'></div>');return false;">Добавить комментарий</a>




или вот так:
Код
<a href="javascript://" onclick="new _uWnd('add_com','Добавить комментарий',700,255,{max:1,min:1,popup:0,autosize:0,resize:0,closeonesc:1,align:'left'},$('#com_add_form').find('.wysibb-toolbar:first').remove().end().html().replace('document.write',''));return false;">Добавить комментарий</a>

---

Прикрепления: 3575156.png (7.8 Kb)

 
Дата: Суббота, 07.11.2015, 11:38 |
Сержант
Группа: Проверенные
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline


Сорри, что не ответил сразу, отвлекся на пару дней.
Хмм... последние варианты подразумевают, что и визуальный редактор будет правильно отображаться? Попробовал, но... все равно получается окно в окне. Единственно, теперь стала отображаться только одна панель инструментов, а вот текстовых полей все равно два... Впрочем, не принципиально, без визуального же работает. Правда, все равно не все. В частности, не работают юкозовские кнопки подписки и анонимности.
Я ведь связался с выносом формы в окно только потому, что с ней у меня совершенно не дружит установленный у меня скролл бар. Да и вообще, еле удалось помирить версию jquery c еще двумя плагинами, скролл баром и флип галереей. Наверное, заставить их дружить друг с другом можно, включая и форму добавления комментариев, но это уже значительно превосходит мои текущие познания. А просить разбираться постороннего человека в моем нагромождении кода (уж как смог biggrin ), мягко говоря, неприлично.
В конечном итоге, отказался я от аякс окна и сделал все на html и css. Но в любом случае, большое спасибо. Я уже знаю, где Вашим кодом воспользуюсь smile А с текущей задачей я пока справился таким вот образом:
My WebPage


Сообщение отредактировал vospa - Суббота, 07.11.2015, 11:39
 
Дата: Суббота, 07.11.2015, 12:25 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


vospa,
Цитата vospa, Сб, 07.11.2015, 11:38:35
Хмм... последние варианты подразумевают, что и визуальный редактор будет правильно отображаться?

Теоретически..

Цитата vospa, Сб, 07.11.2015, 11:38:35
Попробовал, но... все равно получается окно в окне. Единственно, теперь стала отображаться только одна панель инструментов, а вот текстовых полей все равно два...

Значит нужно удалить еще и лишнее поле..

Такое получается из-за повторной инициализации скрипта редактора и он дублирует элементы.
Скрипт редактора не ковырял, ибо не пользуюсь, так что вариантом стал способ обычного удаления дублирующихся элементов.
Правильнее, конечно, было бы скорректировать сам скрипт, но.. вот так.

Цитата vospa, Сб, 07.11.2015, 11:38:35
Я ведь связался с выносом формы в окно только потому, что с ней у меня совершенно не дружит установленный у меня скролл бар.

- Это тот, что прокручивает картинки на заднем плане?

Цитата vospa, Сб, 07.11.2015, 11:38:35
Да и вообще, еле удалось помирить версию jquery c еще двумя плагинами, скролл баром и флип галереей.

Ваш текущий вариант - с позиционированием формы - хорошая альтернатива аякс окошку.

ps
Замечен небольшой косяк (мозилла 42) - при открытии формы нельзя выделить ничего из самой новости, ибо форма выше по индексу и перекрывает новость. Не оч. удобно, если хочешь процитировать что-то.

Прикрепления: 6527887.png (103.0 Kb)

 
Дата: Суббота, 07.11.2015, 14:30 |
Сержант
Группа: Проверенные
Сообщений: 31
Награды: 0
Репутация: 0
Статус: Offline


Цитата
- Это тот, что прокручивает картинки на заднем плане?

Нет, это просто нештатный скролл бар. В приведенной ссылке просто новость короткая и его не видно. Так вот, если форма оказывается внутри блока со скроллом, то страница не отображается вообще. Мелькнет на секунду при обновлениии, и все, дальше белый экран. Вот из-за этого я и решил вынести форму в отдельное окно. А вообще, у меня были конфликты с выбранной версией библиотеки jquery, вот этим самым скролл баром и плагином прокручивания картинок на заднем плане. До смешного доходило. На версиях jquery до 1.5.2 работает ПОЧТИ все, но все равно приходится изворачиваться с мелкими косяками. До версии 1.9 не работает скролл бар на некоторых страницах. А начиная с 1.9.1 скролл бар работает как часы, зато не работает другой плагин biggrin Вот и пришлось изворачиваться, сообразно своим силам.
Цитата
Замечен небольшой косяк

Ага. Там еще есть мелкие недоработки, так что я пока в процессе smile


Сообщение отредактировал vospa - Суббота, 07.11.2015, 14:37
 
Дата: Воскресенье, 08.11.2015, 10:43 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


vospa,
Цитата vospa, Сб, 07.11.2015, 14:30:21
Нет, это просто нештатный скролл бар. В приведенной ссылке просто новость короткая и его не видно. Так вот, если форма оказывается внутри блока со скроллом, то страница не отображается вообще. Мелькнет на секунду при обновлениии, и все, дальше белый экран.

Это потому что в форме есть document.write, а скроллбар формируется перемещением контента в болоки со скроллом .. ну и, соответственно, при перемещении выполняется document.write, и наблюдается белый экран.
Для решения проблемы нужно, либо исключить перемещение, то бишь пормировать блоки руками в шаблоне, либо удалить из перемещаемого кода такие вещи, как document.write, типа как сделано в, предоставленных выше, фрагментах.

Цитата vospa, Сб, 07.11.2015, 14:30:21
На версиях jquery до 1.5.2 работает ПОЧТИ все, но все равно приходится изворачиваться с мелкими косяками. До версии 1.9 не работает скролл бар на некоторых страницах. А начиная с 1.9.1 скролл бар работает как часы, зато не работает другой плагин

Ну, данный вопрос навскидку не решишь - нужно смотреть дебаг - какие конкретно ошибки возникают и корректировать скрипты, в зависимости от ситуации.
Я не встречался с ситуациями, которые нельзя, так или иначе, разрешить.

Цитата vospa, Сб, 07.11.2015, 14:30:21
Там еще есть мелкие недоработки, так что я пока в процессе

Ну .. “процесс” - это вечное ))


 
Скрипты и коды для юкоз - Форум аццкого кодера » Архив » Хранилище старых сообщений » Как вывести форму добавления комментария в AJAX-окне?
  • Страница 1 из 1
  • 1
Поиск:


Мобильная версия