nickostyle 0 Опубликовано: 14 декабря 2007 Рассказать Опубликовано: 14 декабря 2007 (изменено) Порой комментариев довольно много и просто обращения к конкретному юзеру недостаточно, чтобы сохранить цепочку субдискуссии. Т.е. Если комментируется какая то статья, и в комментариях кто то задает вопрос, ответы на него лучше как то выделить (т.е. ответить на этот комент), чтобы последующие каменты относительно самой статьи не сливались. Только важно, чтобы при ответе на конкретный комментарий они добавлялись непосредственно в одну цепочку, а не в обычном порядке. 1 коментарий 2 коментарий 3 коментарий -3.1 коментарий -3.2 коментарий 4. коментарий 5... ... При ответе на 3 камент уже с наличием 4-го и т.д. новый камент добавляется в цепочку: 1 коментарий 2 коментарий 3 коментарий -3.1 коментарий -3.2 коментарий -3.3 коментарий 4. коментарий 5... ... Изменено 14 декабря 2007 пользователем nickostyle Цитата Ссылка на сообщение Поделиться на других сайтах
kosen 3 Опубликовано: 14 декабря 2007 Рассказать Опубликовано: 14 декабря 2007 У тебя при этом впоследствии такая каша будет, что ты сам запутаешься... ИМХО Обычно ответ на конкретный пост выделяют цитатой... Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 14 декабря 2007 Рассказать Опубликовано: 14 декабря 2007 nickostyle, вот как пример - http://www.codenet.ru/webmast/php/tree.php Цитата Ссылка на сообщение Поделиться на других сайтах
Greeze 0 Опубликовано: 14 декабря 2007 Рассказать Опубликовано: 14 декабря 2007 давно хотел реализовать такое на дле.. даже заказывал у программиста, который просил 15$ за подобную доработку. но так сложилось что проект свернули и хак стал ненужен, поэтому и не был оплачен. еще бы сделать плавной измнение фона как на news.ru). Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 14 декабря 2007 Рассказать Опубликовано: 14 декабря 2007 ·• Greeze •·, с точки зрения нагрузки не очень хороший хак. еще бы сделать плавной измнение фона как на news.ru).а как там, покажи Цитата Ссылка на сообщение Поделиться на других сайтах
nickostyle 0 Опубликовано: 14 декабря 2007 Рассказать Опубликовано: 14 декабря 2007 Автор under construction Все прям "в разработке", куда ни зайди.. Цитата Ссылка на сообщение Поделиться на других сайтах
Greeze 0 Опубликовано: 14 декабря 2007 Рассказать Опубликовано: 14 декабря 2007 lifestar, http://news2.ru/story/72087/ попробуй добавить камент - увидишь Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 15 декабря 2007 Рассказать Опубликовано: 15 декабря 2007 (изменено) ·• Greeze •·, ведь специально зарегистрировался там, чтобы посмотреть =) Знаешь есть ява скрипт фреймворки, который работают с интерфейсом? Я пользуюсь jQuery и этот эффект с плавным изменением фона пишется буквально в 1 строчку Изменено 15 декабря 2007 пользователем lifestar Цитата Ссылка на сообщение Поделиться на других сайтах
Greeze 0 Опубликовано: 15 декабря 2007 Рассказать Опубликовано: 15 декабря 2007 (изменено) lifestar, ого так ты умеешь делать такие эффекты? может прикрутим такой эффект к стандартному добавлению камента на dle? желательно на moofx Изменено 15 декабря 2007 пользователем ·• Greeze •· Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 15 декабря 2007 Рассказать Опубликовано: 15 декабря 2007 ·• Greeze •·, к сожалению не умею пользоваться ни prototype ни mootools (по причине, что никогда и не пробывал, да и необходимости нет). Так что могу только на jQuery Цитата Ссылка на сообщение Поделиться на других сайтах
Greeze 0 Опубликовано: 15 декабря 2007 Рассказать Опубликовано: 15 декабря 2007 ·• Greeze •·, к сожалению не умею пользоваться ни prototype ни mootools (по причине, что никогда и не пробывал, да и необходимости нет). Так что могу только на jQuery сделаешь? мне хотя бы знать, что и куда воткнуть, чтобы при добавлении каменты был такой эффект. А с moofx сам постараюсь разобраться Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 15 декабря 2007 Рассказать Опубликовано: 15 декабря 2007 (изменено) ·• Greeze •·, итак как я вставлял комментарий в DLE Сразу оговорюсь - у меня не получилось, чтобы комментарий играл цветом, как просил ·• Greeze •·, подозреваю, что по причине перекрытия стилей. То есть я задаю для таблицы фон так <table style="background:#f00"> однако она красной не становится - значит заданы цвета для элементов, находящихся внутри таблицы (для её детей ). Опыт проводился на шаблоне Default - а устройство его стилей я не знаю) А что тогда я делал? А вот что. Вставил в шапку шаблона загрузку скрипта jQuery <script type="text/javascript" src="http://i.lifestar.ru/js/jquery/jquery.js"></script> </head> Путь к яваскрипту ваш конечно же. Далее отправился в файл ajax/js_edit.js и в функции doAddComments, отправляющей наш комментарий прямо перед строкой dle_comments_ajax.sendAJAX(varsString); добавил строчку dle_comments_ajax.onCompletion = testfunc; где testfunc - имя моей яваскрипт функции, которую я сейчас напишу И вставил в шаблон самого комментария addcomments.tpl класс для общей таблицы - получилось так: <table width="100%" border="0" cellspacing="0" cellpadding="0" class="comment_fade"> Потом пошёл в шаблон добавления комментария addcomments.tpl и в самое начало добавил мою функцию testfunc <script type="text/javascript"> function testfunc() { $(".comment_fade:last").css("background","D7E680"); } </script> Что в понятии jQuery означает найти последний элемент с классом comment_fade и добавить к нему CSS атрибут фона (опять красный цвет). Вот тут то и возникла проблема, что я не вижу мой красный фон. Ладно, думаю я - ничего страшного, будем последний комментарий плавно скрывать для теста) и поменял мою функцию testfunc на: <script type="text/javascript"> function testfunc() { $(".comment_fade:last").fadeOut(); } </script> Это значит плавно скрыть элемент. Так вот теперь уже возникла другая проблема. Мой ява скрипт не видит последний коммент, который добавился с помощью AJAX, другими словами всё, что пришло из AJAX запроса почему то не добавляется в DOM. Вот это да. Я конечно полез в мануал по Simple AJAX Code-Kit (SACK), но ничего путного не понял Короче решил я поменять функцию doAddComments чтобы AJAX запрос выполнял не стандартный SACK, а jQuery. Получилось так (старый код я не стирал а просто закомментировал: function doAddComments(){ var form = document.getElementById('dle-comments-form'); // var dle_comments_ajax = new dle_ajax(); if (dle_wysiwyg == "yes") { document.getElementById('comments').value = oEdit1.getXHTMLBody(); form.submit(); } else { closeall(); if (form.comments.value == '' || form.name.value == '') { alert ( dle_req_field ); return false; } /* dle_comments_ajax.onShow (''); var varsString = "post_id=" + form.post_id.value; dle_comments_ajax.setVar("comments", dle_comments_ajax.encodeVAR(form.comments.value)); dle_comments_ajax.setVar("name", dle_comments_ajax.encodeVAR(form.name.value)); dle_comments_ajax.setVar("mail", dle_comments_ajax.encodeVAR(form.mail.value)); dle_comments_ajax.setVar("skin", dle_skin); */ var sec_code = 1; if ( form.sec_code ) { // dle_comments_ajax.setVar("sec_code", form.sec_code.value); sec_code = form.sec_code.value; } $("#dle-ajax-comments").load(dle_root + "engine/ajax/addcomments.php", { post_id:form.post_id.value, comments:form.comments.value, name:form.name.value, mail:form.mail.value, skin:dle_skin, sec_code:sec_code },testfunc).hide(); /* dle_comments_ajax.requestFile = dle_root + "engine/ajax/addcomments.php"; dle_comments_ajax.method = 'POST'; dle_comments_ajax.execute = true; dle_comments_ajax.element = 'dle-ajax-comments'; dle_comments_ajax.sendAJAX(varsString); */ } }; где testfunc - моя функция опять же, а hide() нужен для того, чтобы принятый от сервера ответ (последний комментарий) скрыть на время =) Теперь всё ок - новый комментарий попадает в DOM и теперича я свою функцию testfunc сделал такой: <script type="text/javascript"> function testfunc() { $("#dle-ajax-comments").slideDown(); } </script> Это означает, что элемент с ID=dle-ajax-comments должен выезжать как бы (не зря мы его скрывали) Соответственно из шаблона addcomments.tpl первоначально вставленный класс можно убирать. Резюме: не советую использовать jQuery вместе с SACK - нет смысла, потому что первый в себе содержит все функции второго Поэтому если хотите использовать jQuery на Datalife Engine - придётся проделать кропотливую работу по замене всех ajax ява скриптов на соответствующие API от jQuery. Такие дела. Изменено 15 декабря 2007 пользователем lifestar Цитата Ссылка на сообщение Поделиться на других сайтах
nickostyle 0 Опубликовано: 15 декабря 2007 Рассказать Опубликовано: 15 декабря 2007 Автор Вот блин. Скачал этот jQuery, правда пока ничего в нем не понял, но твое последнее предложение мне не очень понравилось. Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 15 декабря 2007 Рассказать Опубликовано: 15 декабря 2007 nickostyle, что делать, знаешь ведь, что красота требует жертв. А тут ещё и функциональность тоже Цитата Ссылка на сообщение Поделиться на других сайтах
Greeze 0 Опубликовано: 15 декабря 2007 Рассказать Опубликовано: 15 декабря 2007 lifestar, спс тогда уж лучше mootools, а не jQuery. Цитата Ссылка на сообщение Поделиться на других сайтах
lifestar 18 Опубликовано: 15 декабря 2007 Рассказать Опубликовано: 15 декабря 2007 (изменено) ·• Greeze •·, такая же фигня. Ты конечно можешь использовать mootools чисто для визуальных эффектов, но я не вижу смысла всё равно оставлять запросы AJAX на SACK - в mootools он тем более получше организован (в смысле функциональности - больше) Изменено 15 декабря 2007 пользователем lifestar Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.