Вывод последнего комментария в списке постов

ЕСТЬ РЕШЕНИЕ InstantCMS 2.X
#1 28 января 2025 в 04:24

брошу идею, может у кого возникнет интерес сделать.

На главной, под каждым постом выводить последний коментарий этой новости или два… Ну или самый рейтинговый(Топовый).

Сегодня при помощи AI, получилось это сделать. Делюсь что получилось. Если где-то код написан как говно, то это делал я. УЖ извиняйте!

При нажатии на коммент, открывается сам коментарий в посте. (#comment_22)

Изображение

В  default_list.tpl куда вам надо:

  1. <?php
  2. $post_id = $item['id'];
  3. $last_comment = null;
  4.  
  5. // Get the last comment for this post from db
  6. $config = cmsConfig::getInstance();
  7.  
  8. if (isset($config->db_prefix)){
  9. $db_prefix = $config->db_prefix;
  10. $sql = "SELECT c.content, c.date_pub, c.id as comment_id, u.nickname, u.id as user_id, u.slug as user_slug, u.avatar, p.slug as post_slug, p.title as post_title
  11. FROM ".$db_prefix."comments c
  12. JOIN ".$db_prefix."users u ON c.user_id = u.id
  13. JOIN ".$db_prefix."con_posts p ON c.target_id = p.id
  14. WHERE c.target_id = ".$post_id."
  15. ORDER BY c.id DESC LIMIT 1";
  16.  
  17. $result = cmsDatabase::getInstance()->query($sql);
  18. if($result && $result->num_rows > 0){
  19. $last_comment = $result->fetch_assoc();
  20. }
  21. }else{
  22. echo "Error: Prefix not available.";
  23. return;
  24. }
  25.  
  26. if ($last_comment){
  27.  
  28. $comment_url = '/'.$last_comment['post_slug'].'.html#comment_'.$last_comment['comment_id'];
  29. echo "<div class='last-comment' onclick=\"window.location.href = '".htmlspecialchars($comment_url)."';\" style='cursor: pointer;'> <p>";
  30.  
  31. if(!empty($last_comment['user_slug'])){
  32. $profile_url = '/users/' . $last_comment['user_slug'];
  33. } else {
  34. $profile_url = '/users/' . $last_comment['user_id'];
  35. }
  36. $avatar_html = '';
  37. if (!empty($last_comment['avatar'])) {
  38. $avatar_html = html_avatar_image($last_comment['avatar'], 'small', $last_comment['nickname'], true);
  39. } else {
  40. $avatar_html = html_avatar_image_empty($last_comment['nickname'], 'avatar__small');
  41. }
  42.  
  43. echo "<span class='comment-avatar mr-1'><a href='" . htmlspecialchars($profile_url) . "'>" . $avatar_html . "</a></span>";
  44. echo "<span class='comment-author'><a href='" . htmlspecialchars($profile_url) . "'>".htmlspecialchars($last_comment['nickname'])."</a></span>";
  45. echo "<span class='comment-time'>".lang_date(date('j F Y H:i', strtotime($last_comment['date_pub'])))."</span><br>";
  46. echo $last_comment['content'];
  47. echo "</p></div>";
  48. }
  49. ?>

Ну и стили(меняем на свой вкус):

  1. .comment-avatar img{
  2. width:20px;
  3. border:1px solid var(--gc-border-light);
  4. border-radius:50%;
  5. }
  6.  
  7. .last-comment {
  8. margin-top: 10px; /* Adds spacing above the comment */
  9. padding: 5px; /* Adds padding inside the comment */
  10. background-color: var(--body-bg);
  11. border-radius:10px;
  12. margin-left: -5px;
  13. margin-right: -5px;
  14. }
  15.  
  16. .last-comment p {
  17. font-size: 0.9em; /* Adjusts the content font size */
  18. margin-bottom: 0.5rem;
  19. padding-left: 5px;
  20. }
  21.  
  22. .last-comment .comment-author {
  23. color: var(--dark-color); /* Sets a color for the author's name */
  24. margin-right: 0.5rem;
  25. }
  26.  
  27. .last-comment .comment-time {
  28. font-size: 0.8em; /* Adjusts the timestamp font size */
  29. color: var(--light-color); /* Sets a color for the timestamp */
  30. }

Было интересно. Может кому пригодится.

#2 28 января 2025 в 07:01

Просто «дичь». Строки с 5 по 24 — это AI придумал или вы ему помогли?

#3 28 января 2025 в 10:00

Просто «дичь»

Loadырь

Да уж, AI творит чудеса 😂

Сегодня в 04:51
#4 28 января 2025 в 12:26

Proof of concept! Пупсик, 👏

#5 28 января 2025 в 16:19

Да вешайте все на меня… А там уж любой сам решит надо ему это или нет.

AI работает с тем что ему дали. Как дали, так и сделали :)

Это был эксперимент и для незнаки как я, вполне рабочий.

P.S. 

Заметил такую весч в АИ. По циклу задач. Сначала он сделает все красиво, по мере добавлений типа «А еще сделайте это и это и это». Он начинает клепать как попало и где-то даже убирать функции сделанные ранее. Я так понимаю что у него алгоритмы взяты от человека «Да отвяжись ты от меня, сколько можно то». 

Но это только мое мнение. 

#6 30 января 2025 в 23:12

 pupsik, не работает у вас этот функционал. Я оставил комменты и фиг

#7 31 января 2025 в 03:42

 Да, вы правы что не работает, от гостя. А если какой то гад даже не изволивший зарегится жизнь мне захочет подпортить?

Используйте для тестов:

login: test@yahoo.com

pass: testing

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.