В рамках правок очередного магазина, реализованного на Симпле стояла задача публикации комментариев после модерирования. По катом инструкция о том как это сделать.

Первым шагом будет создание поля «включить-выключить» в таблице products_comments. Выполним запрос

ALTER TABLE `products_comments` ADD `enabled` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `comment`

Далее правим вывод комментариев во фронтенде — в файле Storefront.class.php находим код (примерно 311 строка)

$query = sql_placeholder("SELECT *, DATE_FORMAT(date, '%d.%m.%Y') as date FROM products_comments WHERE product_id=? ORDER BY comment_id DESC", $product->product_id);

И изменяем его на следующий вид — вводим понятие «включено-выключено» (WHERE enabled=1)

$query = sql_placeholder("SELECT *, DATE_FORMAT(date, '%d.%m.%Y') as date FROM products_comments WHERE enabled=1 AND product_id=? ORDER BY comment_id DESC", $product->product_id);

Ну и последний и самый сложный шаг — непосредственно сама модерация.
Открываем файл admin/Comments.admin.php и примерно на 49-50 строке перед закрывающей скобкой метода prepare() (внутри метода в конце)

# Сделать комментарий видимым
if(isset($_GET['set_enabled']))
{
  $this->check_token();
 
  $id = intval($_GET['set_enabled']);
  $query = sql_placeholder('UPDATE products_comments SET enabled=1-enabled WHERE comment_id=?',$id);
  $this->db->query($query );
 
  $get = $this->form_get(array());
  if(isset($_GET['from'])) header("Location: ".$_GET['from']);
  else header("Location: index.php$get");
}

Далее в этом же файле в конце на ходим строки

if($items)
{
	foreach($items as $key=>$item)
	{
		$items[$key]->delete_get = $this->form_get(array('act'=>'delete','item_id'=>$item->comment_id, 'token'=>$this->token));
	}
}

и заменяем все на

if($items)
{
	foreach($items as $key=>$item)
	{
		$items[$key]->delete_get = $this->form_get(array('act'=>'delete','item_id'=>$item->comment_id, 'token'=>$this->token));
                $items[$key]->set_enabled_get = $this->form_get(array('set_enabled'=>$item->comment_id, 'token'=>$this->token)); //передаем действие на включение/выключение
	}
}

Теперь непосредственно само отображение в админке данного функционала. Открываем файл admin/templates/comments.tpl, находим вывод кнопки удаления комментария (примерно 80 строка)

<a class="fl" onclick="if(!confirm("{$Lang->ARE_YOU_SURE_TO_DELETE}")) return false;" href="index.php{$item->delete_get}"><img src="./images/delete.jpg" alt="" /></a>

и после нее сразу добавляем код кнопки модерирования

<a class="fl" href="index.php{$item->set_enabled_get}"><img title="Активность" src="./images/{if $item->enabled}lamp_on.jpg{else}lamp_off.jpg{/if}" alt="Активность" /></a>

Вот в-принципе и все действия.

Опубликовать в Яндекс
Опубликовать в Facebook
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в LiveJournal
Опубликовать в Google Plus
Опубликовать в Google Buzz