Может пригодится кому-либо. Ну у меня пользователи просят. Ну что же, раз просят, то постараемся сделать.
Итак есть комментарии и пользователь написал, да ещё и с ошибкой. Хочет он исправить...
Открываем файл com_comments_list.tpl (в папке с темплейтом искать) и там вставляем данный код
где-нибудь рядом с
добавляем
потом открываем файл \components\comments\frontend.php
и находите в самом конце
перед этим добавляете
Можете заметить циферку 300 — это столько секунд даётся на редактирование...
потом открываем файл \components\comments\router.php
и добавляем внутрь функции следующее
ну и вроде всё😊
пользуйтесь
Итак есть комментарии и пользователь написал, да ещё и с ошибкой. Хочет он исправить...
Открываем файл com_comments_list.tpl (в папке с темплейтом искать) и там вставляем данный код
где-нибудь рядом с
[<a href="javascript:void(0)" onclick="addComment('{php}echo md5(session_id());{/php}', '{$target}', '{$target_id}', {$comment.id})">{$LANG.REPLY}</a>]
{if $comment.is_my } [<a href="/comments/edit/{$comment.id}">{$LANG.EDIT} свой комментарий</a>] {/if}
и находите в самом конце
//========================================================================================================================// } //function
Можете заметить циферку 300 — это столько секунд даётся на редактирование...
if ($do == 'edit'){ $id = $inCore->request('id', 'int', 0); if($id){ $comment_user = $model->getCommentAuthorId($id); $is_admin = $inCore->userIsAdmin( $inUser->id ); $is_my = ($inUser->id == $comment_user); if($is_my){ $content= $inCore->request('content', 'str', ''); if(!empty($content)) { $sql = "UPDATE cms_comments SET `content`='".$content."' WHERE id = ".intval($id)." and `pubdate` > NOW()-300 LIMIT 1"; $ress=mysql_query($sql); if(mysql_affected_rows()>"0") { echo "Вы успешно отредактировали комментарий!"; $sql = "SELECT * FROM cms_comments WHERE id = ".intval($id)." LIMIT 1"; $result=mysql_fetch_array( mysql_query($sql) ) ; echo "<br/><a href='http://".$_SERVER['HTTP_HOST'].$result['target_link']."#c". $id."'>Перейти к комментарию</a>"; } else { echo "Вы не можете отредактировать комментарий, так как истекло время, либо это не Ваш комментарий!"; $sql = "SELECT * FROM cms_comments WHERE id = ".intval($id)." LIMIT 1"; $result=mysql_fetch_array( mysql_query($sql) ) ; echo "<br/><a href='http://".$_SERVER['HTTP_HOST'].$result['target_link']."#c". $id."'>Перейти к комментарию</a>"; } } else { $sql = "SELECT * FROM cms_comments WHERE id = ".intval($id)." LIMIT 1"; $result=mysql_fetch_array( mysql_query($sql) ) ; ?> <h2>Редактировать комментарий</h2>Внимание на редактирование комментария даётся 5 минут, если Вы не сделали этого ранее, то сохранение изменённой информации не произойдёт<form id="addform" name="addform" method="post" action="/comments/edit/<?php echo $_REQUEST['id'];?>"> <div class="usr_msg_bbcodebox" style="width:660px"> <?php $GLOBALS['cp_page_head'][] = '<script language="JavaScript" type="text/javascript" src="/core/js/smiles.js"></script>'; echo cmsPage::getBBCodeToolbar('content', false); ?> </div> <div style="width:660px;"> <?php echo cmsPage::getSmilesPanel('content'); ?> </div> <textarea id="content" name="content" style="width:650px;height:200px"><?php echo $result['content']; ?></textarea> <p> <label> <input name="add_mod" type="submit" id="add_mod" value="Сохранить изменения"/> </label> <label> <input name="back" type="button" id="back" value="Отмена" onclick="window.location.href='index.php?view=components';"/> </label> </p> </form> <?php } } else { echo "Вы не можете редактировать комментарий!"; } } }
потом открываем файл \components\comments\router.php
и добавляем внутрь функции следующее
//RewriteRule ^comments/edit/([0-9]*)$ /index.php?view=comments&do=edit&id=$1 '_uri' => '/^comments\/edit\/([0-9]+)$/i', 'do' => 'edit', 1 => 'id' );
пользуйтесь
Реклама #
Hmelex 14 лет назад #
Не плохо бы такое в новый Релиз добавить.
Может АДМИНИСТРАЦИЯ это как то рассмотрит
InstantCMS 14 лет назад #
если и делать возможность редактирования комментариев, то только в течении 1-2 минут после его добавления
хотя имхо, даже в этом случае - редактирование комментариев это зло
Hmelex 14 лет назад #
ОК, а если сделать только
- Удалить комментарий (удаляет сам пользователь - автор комментария или Администрация сайта)
Fuze 14 лет назад #
Юрий (Pizza Celentano) 14 лет назад #
ГеймОверСистемХалтед 14 лет назад #
StaryiSV 14 лет назад #
Zau4man 14 лет назад #
lezginka.ru 14 лет назад #
для чайников было бы лучше, готовые файлы выложить :)
Amurland 14 лет назад #
Amurland 14 лет назад #
Zau4man 14 лет назад #
lezginka.ru 14 лет назад #
LBM 13 лет назад #
Madmax 13 лет назад #