1
Changeset 260 – MultiMag

Changeset 260


Ignore:
Timestamp:
Sep 8, 2011, 1:40:54 AM (7 years ago)
Author:
blacklight
Message:
  • Доработка системы коментариев - теперь администратору доступна возможность отвечать на коментарии
Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/db_struct.sql

    r259 r260  
    3838  `ip` varchar(16) NOT NULL,
    3939  `user_agent` varchar(128) NOT NULL,
     40  `response` varchar(512) NOT NULL COMMENT 'Ответ администрации',
     41  `responser` int(11) NOT NULL COMMENT 'Автор ответа',
    4042  PRIMARY KEY (`id`),
    4143  KEY `object_name` (`object_name`),
  • trunk/web/adm_comments.php

    r259 r260  
    3030if($mode=='')
    3131{
    32         $res=mysql_query("SELECT `comments`.`id`, `date`, `object_name`, `object_id`, `autor_name`, `autor_email`, `autor_id`, `text`, `rate`, `ip`, `user_agent`, `users`.`name` AS `user_name`, `users`.`email` AS `user_email`
     32        $res=mysql_query("SELECT `comments`.`id`, `date`, `object_name`, `object_id`, `autor_name`, `autor_email`, `autor_id`, `text`, `rate`, `ip`, `user_agent`, `comments`.`response`, `users`.`name` AS `user_name`, `users`.`email` AS `user_email`
    3333        FROM `comments`
    3434        INNER JOIN `users` ON `users`.`id`=`comments`.`autor_id`
     
    3737        $tmpl->AddText("<h1 id='page-title'>Последние коментарии</h1>
    3838        <table class='list' width='100%'>
    39         <tr><th>ID</th><th>Дата</th><th>Объект</th><th>Автор</th><th>e-mail</th><th>Текст коментария</th><th>Оценка</th><th>IP адрес</th><th>user-agent</th></tr>");
     39        <tr><th>ID</th><th>Дата</th><th>Объект</th><th>Автор</th><th>e-mail</th><th>Текст коментария</th><th>Оценка</th><th>Ответ</th><th>IP адрес</th><th>user-agent</th></tr>");
    4040        while($line=mysql_fetch_assoc($res))
    4141        {
     
    4545                $email="<a href='mailto:$email'>$email</a>";
    4646                $autor=$line['autor_id']?"{$line['autor_id']}:<a href='/adm_users.php?mode=view&amp;id={$line['autor_id']}'>{$line['user_name']}</a>":$line['autor_name'];
     47                $response=$line['response']?$line['response']."<br><a href='?mode=response&amp;id={$line['id']}'>Правка</a>":"<a href='?mode=response&amp;id={$line['id']}'>Ответить</a>";
     48               
    4749                $tmpl->AddText("<tr>
    4850                <td>{$line['id']} <a href='?mode=rm&amp;id={$line['id']}'><img src='/img/i_del.png' alt='Удалить'></a></td>
    49                 <td>{$line['date']}</td><td>$object</td><td>$autor</td> <td>$email</td><td>{$line['text']}</td><td>{$line['rate']}</td><td>{$line['ip']}</td><td>{$line['user_agent']}</td></tr>");
     51                <td>{$line['date']}</td><td>$object</td><td>$autor</td> <td>$email</td><td>{$line['text']}</td><td>{$line['rate']}</td><td>$response</td><td>{$line['ip']}</td><td>{$line['user_agent']}</td></tr>");
    5052        }
    5153        $tmpl->AddText("</table>");
     
    5860        if(mysql_errno())                               throw new MysqlException("Не удалось удалить строку");
    5961        $tmpl->msg("Строка удалена.<br><a href='/adm_comments.php'>Назад</a>","ok");
     62}
     63else if($mode=='response')
     64{
     65        $id=rcv('id');
     66        $opt=rcv('opt');
     67        settype($id,'int');
     68        if($opt)
     69        {
     70                $text=mysql_real_escape_string(@$_POST['text']);
     71                mysql_query("UPDATE `comments` SET `response`='$text', `responser`='{$_SESSION['uid']}' WHERE `id`='$id'");
     72                if(mysql_errno())                               throw new MysqlException("Не удалось сохранить коментарий");
     73                $tmpl->msg("Коментарий сохранён успешно");
     74       
     75        }       
     76        $res=mysql_query("SELECT `comments`.`id`, `date`, `object_name`, `object_id`, `autor_name`, `autor_email`, `autor_id`, `text`, `rate`, `ip`, `user_agent`, `comments`.`response`, `users`.`name` AS `user_name`, `users`.`email` AS `user_email`
     77        FROM `comments`
     78        INNER JOIN `users` ON `users`.`id`=`comments`.`autor_id`
     79        WHERE `comments`.`id`='$id'");
     80        if(mysql_errno())       throw new MysqlException("Не удалось получить коментарии");
     81        $line=mysql_fetch_assoc($res);
     82        if(!$line)              throw new Exception("Коментарий не найден!");
     83        $autor=$line['autor_id']?"{$line['autor_id']}:<a href='/adm_users.php?mode=view&amp;id={$line['autor_id']}'>{$line['user_name']}</a>":$line['autor_name'];
     84        $object="{$line['object_name']}:{$line['object_id']}";
     85        $tmpl->AddText("<h1 id='page-title'>Ответ на коментарий N{$line['id']}</h1>
     86        <div>{$line['date']} $autor для $object пишет:<br>{$line['text']}</div>
     87        <form action='' method='post'>
     88        <input type='hidden' name='id' value='{$line['id']}'>
     89        <input type='hidden' name='opt' value='save'>
     90        Ваш ответ (500 символов максимум):<br>
     91        <textarea name='text' class='text'>{$line['response']}</textarea><br>
     92        <button type='submit'>Сохранить</button>       
     93        </form><br>
     94        <a href='/adm_comments.php'>Вернуться к общему списку коментариев</a>");
     95       
    6096}
    6197
Note: See TracChangeset for help on using the changeset viewer.