Создать ответ 
Построение дерева иерархии или дерева комментариев
Автор Сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #261
RE: Построение дерева иерархии или дерева комментариев
(21.05.2015 20:10:59)Admin писал(а):  Не совсем.
Обнулять ничего не надо. Надо просто правильно формировать ссылки для перехода.

$mess_url=basename($_SERVER['SCRIPT_FILENAME']);

В $mess_url должно быть имя файла.

А далее в коде остается добавить лишь ?comment_list=
PHP код:
<a href="'.$mess_url.'?comment_list 

Здравствуйте, работает, но не совсем правильно...

1. Со ссылками все верно,
<a href="'.$mess_url.'?comment_list=1#comments">1</a>

2.
Цитата:Обнулять ничего не надо. Надо просто правильно формировать ссылки для перехода.

$mess_url=basename($_SERVER['SCRIPT_FILENAME']);

У меня так в 1 файле:
Код:
$mess_url=mysqli_real_escape_string($db,basename($_SERVER['SCRIPT_FILENAME']));

У меня на данный момент Код:
$res = mysqli_query($db, "SELECT * FROM comment WHERE theme_id='".$theme_id."' and moderation=1 ORDER BY id");
$count_list=floor((mysqli_num_rows($res)-1)/4)+1;

if (is_numeric($_GET[comment_list]) and $_GET[comment_list]>0) {
if ($_GET[comment_list]>$count_list) $comment_list=$count_list;
else $comment_list=$_GET[comment_list];
}
else $comment_list=1;
if ($comment_list==0) $comment_list=1;


$res = mysqli_query($db, "SELECT * FROM comment WHERE theme_id='".$theme_id."' and moderation=1 ORDER BY id LIMIT ".($comment_list*4-4).",4");
$number = mysqli_num_rows($res);

Для проверки добавляю по 4 коммента на страницу и что происходит:

1. Первые 4 коммента добавляются на страницу нормально, да и остальные комменты добавляются нормально на других страницах (дерево работает).

2. Если например, имеются 3 страницы с комментариями, а пользователь хочет написать сообщение находящееся на 1 или 2 странице кликая по ссылке "Ответить", сообщение попадает в базу, но после модерации не показывается на странице.

почему так происходит пока не знаю, но думаю что как-то связано с кодом из 1 файла.

Здравствуйте, уважаемый администратор,
Может быть поможете реализовать вот такой момент.

На странице, где имеются комментарии, не будет ссылок [1] [2] [3] и т.д., а будет только одна единственная ссылка Еще комментарии, при клике на которую, будут открываться все скрытые комментарии.

Заранее благодарен.
(Последний раз сообщение было отредактировано 21.05.2015 в 23:27:43, отредактировал пользователь ale10ey.)
21.05.2015 23:07:20
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #262
RE: Построение дерева иерархии или дерева комментариев
Проверил еще раз, как работает.

1. Комментарии добавляются нормально на каждую страницу [1] [2] [3] и переходить между ними можно без проблем, для проверки разбил странички по 2 комментария для быстроты проверки.

2. Если с каждой страницы [1] [2] [3] пробовать написать сообщение, то оно будет добавляться в конец, то есть на страницу [3], тут все нормально.

3. Если например на 1 или 2 или 3 странице имеется место, т.е. имеется 1 сообщение (в этом случае страницы 2 или 3 еще не будет), то дерево создается нормально на каждой странице, но если страницы [1] [2] [3] заняты, т.е на страницах уже имеются 6 комментариев (разбивка по 2 комментария), то если попробовать добавить древовидное сообщение находящееся на 1, 2 или 3 странице, оно не добавится, хотя в базу попадет и после модерации не отобразится, вот такая дилемма.

4. Обычные комментарии добавляются с каждой страницы нормально в конец предыдущего сообщения, но с древовидными вот такая проблема...Scratch

Надеюсь более или менее изъяснился.
22.05.2015 10:24:59
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #263
RE: Построение дерева иерархии или дерева комментариев
Объясню, почему так получается.

Например, у Вас странички разбиты по 4 комментария.
Вы, например, добавили всего 12 обычных комментариев.
В итоге получилось 3 странички по 4 комментария.
Теперь Вы ответили на комментарий с номером 1. Комментарий с ответом имеет уже id=13, а скрипт на первой страничке выводит комментарии с id от 1 до 4.
По идее, комментарий с номером 13 должен появиться на 4-ой страничке, но нет. Он не появится, т.к. на той страничке нет родительского комментария, на который и был оставлен ответ.

Тут выход только один - делить странички по количеству родительских комментариев, но тогда на страничках может быть от 4 комментариев до бесконечности в зависимости от количества дочерних ответов.

Можно конечно попробовать реализовать предложенный Вами вариант (ссылка Еще комментарии), но при таком раскладе все равно будут проблемы с дочерними ответами на комментарии на первой страничке.
22.05.2015 22:40:18
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #264
RE: Построение дерева иерархии или дерева комментариев
Я вас понял, примерно я так и думал.
Насчет реализации (ссылка Еще комментарии).
Я имею ввиду расположение этой ссылки на странице, где располагаются комментарии и других страниц не будет, т.е например, на странице имеются 10 комментариев, а далее чтобы не грузить сервер остальные 10, 23 или 50 и т.д. комментариев скрыты на этой же странице и пользователь решит сам хочет он их посмотреть или нет, где-то подобное я видел, но сам ни разу не реализовывал, но думаю в данном случае это будет оптимальным.

Хочется реализовать данный момент, так как есть вероятность, что количество комментов может быть большим и хотелось по некоторым причинам реализовать:

1. Если на странице много комментов и они не скрыты, то страница будет ооочень длинная, что неудобно для просмотра, тем более некоторые пользователи не будут наверняка смотреть скрытые комментарии.

2. Функционал страницы будет намного лучше, если данный момент будет реализован.

С уважением и заранее благодарен.
(Последний раз сообщение было отредактировано 22.05.2015 в 23:01:45, отредактировал пользователь ale10ey.)
22.05.2015 23:00:59
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #265
RE: Построение дерева иерархии или дерева комментариев
Делается легко...

Вместо строк:
PHP код:
$res=mysqli_query($db,"SELECT * FROM comment WHERE theme_id='".$theme_id."' and moderation=1 ORDER BY id");
$number=mysqli_num_rows($res); 

Добавляете такие:
PHP код:
if (isset($_POST["all_comm"])) $number="";
else 
$number="LIMIT 10";

$res=mysqli_query($db,"SELECT * FROM comment WHERE theme_id='".$theme_id."' and moderation=1 ORDER BY id ".$number."");
$number=mysqli_num_rows($res); 

Ну и в удобном для Вас месте размещаете кнопку для показа остальных комментариев:
PHP код:
echo '<form method="POST" action="'.$mess_url.'" name="view_comment">';
echo 
'<input type="submit" name="all_comm" value="Еще комментарии"></form>'
23.05.2015 20:32:38
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #266
RE: Построение дерева иерархии или дерева комментариев
Здравствуйте, спасибо Ok, но требуется ваше профессиональное вмешательство, чтобы довести до ума.

1. Как из кнопки сделать обычную ссылку используя тег <a></a>

2. И как правильно прописать для ссылки "Еще комментарии" якорь.
У меня будет использоваться в строчке:
echo '<b id="comments">Комментарии пасетителей</b><br>';

А вообще спасибо огромное !

P.S.: насчет 1 пункта извиняюсь за глупый вопрос Blush, все сделал с помощью стилей.
(Последний раз сообщение было отредактировано 23.05.2015 в 23:09:58, отредактировал пользователь ale10ey.)
23.05.2015 22:46:11
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #267
RE: Построение дерева иерархии или дерева комментариев
И еще к Вам большая просьба, сам пробовал но не получилось реализовать.

Если несложно для вас сделать так, чтобы при клике на ссылку "Еще комментарии" скрытые сообщения плавно открывались и в конце была ссылка, например "Свернуть", не знаю точно с помощью js или jquery, с js пробовал сделать, но знаний, да и практики не хватает, а jquery не знаю.

Данный момент последний в этой теме для меня и хотел бы реализовать с вашей помощью.
Заранее благодарен и с уважением Yes.
24.05.2015 00:27:04
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #268
RE: Построение дерева иерархии или дерева комментариев
Ну тут не все так просто и очевидно, как может показаться на первый взгляд.

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

Как вариант, можно скрыть комментарии под спойлер, но при заходе на страничку они все равно будут загружаться и будут не видны, пока пользователь не кликнет по ссылке "Еще комментарии".
24.05.2015 21:36:23
Найти все сообщения Цитировать это сообщение
ale10ey Не на форуме
Генерал-лейтенант
*

Сообщений: 352
У нас с: Nov 2014
Сообщение: #269
RE: Построение дерева иерархии или дерева комментариев
(24.05.2015 21:36:23)Admin писал(а):  Ну тут не все так просто и очевидно, как может показаться на первый взгляд.

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

Как вариант, можно скрыть комментарии под спойлер, но при заходе на страничку они все равно будут загружаться и будут не видны, пока пользователь не кликнет по ссылке "Еще комментарии".

Здравствуйте,
Понятно, я думаю, что можно попробовать ваш вариант, т.е комментарии будут загружаться и будут не видны, пока пользователь не кликнет по ссылке "Еще комментарии", так как на данный момент лучшего варианта у меня нет, так что буду признателен.

И при клике "Еще комментарии" я прописал id со значением comments, но не разобрался куда прописать #comments для того, чтобы после клика сразу показывались скрытые комментарии.
Это если скрытые комментарии будут показываться без спойлера.

echo '<form method="POST" action="'.$mess_url.'" name="view_comment">';
echo '<input id="comments" type="submit" name="all_comm" value="Еще комментарии">
</form>';

С уважением.
25.05.2015 00:26:14
Найти все сообщения Цитировать это сообщение
Admin Не на форуме
Верховный
Главнокомандующий
(Administrator)
*

Сообщений: 2,431
У нас с: Aug 2011
Сообщение: #270
RE: Построение дерева иерархии или дерева комментариев
Про Вас не забыл, просто пока коряво выходит и времени на поиск недочетов нет.
Постараюсь сделать позже.
26.05.2015 22:19:56
Найти все сообщения Цитировать это сообщение
Создать ответ 


Переход:


Пользователи просматривают эту тему: 1 Гость(ей)


LiveInternet
© Copyright 2011-2024 by UsefulScript.ru