Здравствуйте Гость ( Вход | Регистрация ) | Выслать повторно письмо для активации |
Страницы: (2) [1] 2 ( Перейти к первому непрочитанному сообщению ) |
dudeonthehorse |
Отправлено: Jul 19 2011, 05:25 PM
|
Команда ЭйсВэб Группа: Super moderator Сообщений: 763 Пользователь №: 2933 Регистрация: 26-October 09 |
ПРиветсвтую!
Нужен ясный и понятный скрипт для реализации древовидных комментариев на сайте. Смотрел в сторону nested sets, но слишком много непонятного(хотя считается самым лучшим решением судя по отзывам). Другие скрипты не подошли так как не расчитаны на высокую нагрузку и ориентированы на вывод категорий каталога - не более. Буду признателен за подсказки или если разжуете мне тот же nested sets на примерах |
meta-trader |
Отправлено: Jul 19 2011, 11:50 PM
|
Команда ЭйсВэб Группа: Super moderator Сообщений: 1120 Пользователь №: 1194 Регистрация: 11-October 07 |
Эта тема не так проста как кажется.
-------------------- Нужен форум для сайта? Создать свой форум Нравятся ролевые игры? Создать форум для ролевой игры - создай ролевую и наслаждайся игрой! Международный сервис фришных форумов - создать форум бесплатно. |
Матроскин |
Отправлено: Jul 20 2011, 10:24 AM
|
Генерал Группа: Members Сообщений: 245 Пользователь №: 2581 Регистрация: 9-June 09 |
Вот здесь неплохой скрипт с реализацией - ссылка
-------------------- |
dudeonthehorse |
Отправлено: Jul 20 2011, 10:46 PM
|
Команда ЭйсВэб Группа: Super moderator Сообщений: 763 Пользователь №: 2933 Регистрация: 26-October 09 |
видеоурок - это хорошо, посмотрим, спасибо
|
dudeonthehorse |
Отправлено: Jul 21 2011, 12:11 AM
|
||
Команда ЭйсВэб Группа: Super moderator Сообщений: 763 Пользователь №: 2933 Регистрация: 26-October 09 |
Спасибо , Капитан Очевидность! |
||
dudeonthehorse |
Отправлено: Jul 21 2011, 07:35 AM
|
Команда ЭйсВэб Группа: Super moderator Сообщений: 763 Пользователь №: 2933 Регистрация: 26-October 09 |
Ок, Матроскин, я полагаю, ты читал материал, а не просто привел ссылку. Если подумать немного математически, то мы ведь можем немного упростить вывод? Я предлагаю использовать доп. поле "level" для каждого коммента, что избавит от необходимости делать кучу вложенных массивов. Достаточно будет отсортировать элементы массива в нужном порядке и давать левые отступы для комментариев соответственно значению "level". Вижу, что отсортировать можно, но немного не могу додумать Давай подумаем вместе!
|
dudeonthehorse |
Отправлено: Jul 21 2011, 07:41 AM
|
Команда ЭйсВэб Группа: Super moderator Сообщений: 763 Пользователь №: 2933 Регистрация: 26-October 09 |
мысль с сортировкой имеет зарождение тут http://webmastak.com/article.aspx?id=89, но что-то не складывается, т.к. тут рекурсивный метод, от которого желательно отказаться
|
Матроскин |
Отправлено: Jul 21 2011, 01:13 PM
|
Генерал Группа: Members Сообщений: 245 Пользователь №: 2581 Регистрация: 9-June 09 |
Уже думал когда-то
Дополнительное поле level здесь вряд ли поможет, поскольку основная проблема здесь - это вывод комментариев, при этом нужно, вытягивая их из БД, понять где чей потомок. Здесь без рекурсивного вывода очень тяжко. Я когда-то пробовал ради интереса сделать без рекурсии... мудрил и так, и этак - ничего не вышло. -------------------- |
Матроскин |
Отправлено: Jul 21 2011, 01:18 PM
|
Генерал Группа: Members Сообщений: 245 Пользователь №: 2581 Регистрация: 9-June 09 |
Щас появился свободный час - попробую вернуться к своим наработкам... может чего получится. Если получится - выложу.
-------------------- |
Матроскин |
Отправлено: Jul 21 2011, 02:14 PM
|
||||
Генерал Группа: Members Сообщений: 245 Пользователь №: 2581 Регистрация: 9-June 09 |
В общем, что-то есть. Суть в следующем... сначала вытаскиваем всех родителей, т.е. тех, у кого поле parent равно нулю. При этом в цикле запускается функция comment. Эта функция уже выводит результат запроса. При этом после каждого выведенного родителя она проверяет есть ли у родителя потомки (срабатывает ли условие запроса parent = текущему id). Если потомки есть, то рекурсивно вызывается функция comment. При клике на ответить в скрытое поле передаем id того, кому отвечаем. Все без проверок, поэтому надо дорабатывать... но это уже мелочи
Таблица comments состоит из 4-х полей: id | name | text | parent В поле parent хранится идентификатор комментария-родителя. Если родителя нет, то значение поля будет равно нулю (т.е. сам себе родитель). Запрос:
-------------------- |
||||
Страницы: (2) [1] 2 |