Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Как отредактировать дату в отзывах?


vlacart
 Поделиться

Рекомендованные сообщения

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

Ссылка на комментарий
Поделиться на других сайтах


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

Через phpmyadmin вкладка review

Ссылка на комментарий
Поделиться на других сайтах


  • 8 месяцев спустя...

Можно добавить возможность изменять дату отзыва или дату комментария через админпанель. Таким образом будет возможность изменять дату в любое время, не прибегая к вмешательству в mysql через phpmyadmin. 
 
Для этого необходимо внести изменения в 3 файла (представления,контролера и модели), которые отвечают за отзывы. 
 
 
1. В файле /admin/view/template/catalog/review_form.tpl
 
после блока

<tr>
            <td><?php echo $entry_status; ?></td>
            <td><select name="status">
                <?php if ($status) { ?>
                <option value="1" selected="selected"><?php echo $text_enabled; ?></option>
                <option value="0"><?php echo $text_disabled; ?></option>
                <?php } else { ?>
                <option value="1"><?php echo $text_enabled; ?></option>
                <option value="0" selected="selected"><?php echo $text_disabled; ?></option>
                <?php } ?>
              </select></td>
</tr>

добавить 

<tr>
   <td>дата</td>
   <td><input type="text" name="date_added" value="<?php echo date('Y-m-d',strtotime($date_added)); ?>" class="date"/></td>
</tr>

а также перед последней строчкой 

<?php echo $footer; ?>

вставить

<script type="text/javascript">
$(function(){
	$('.date').datepicker({dateFormat: 'yy-mm-dd'});
});
</script> 

Таким образом мы добавим на странице добавления/редактирования отзыва поле с датой, значение которой для удобства будем выбирать с помощью jQuery-виджета календаря datepicker (который успешно используется на других формах админпанели магазина).
 
 
2. В файле /admin/model/catalog/review.php
 
функции addReview и editReview изложить в следующей редакции

public function addReview($data) {
		$this->db->query("INSERT INTO " . DB_PREFIX . "review SET author = '" . $this->db->escape($data['author']) . "', product_id = '" . $this->db->escape($data['product_id']) . "', text = '" . $this->db->escape(strip_tags($data['text'])) . "', rating = '" . (int)$data['rating'] . "', status = '" . (int)$data['status'] . "', date_added = '" . $this->db->escape($data['date_added']) . "'");
	
		$this->cache->delete('product');
}
	
public function editReview($review_id, $data) {
		$this->db->query("UPDATE " . DB_PREFIX . "review SET author = '" . $this->db->escape($data['author']) . "', product_id = '" . $this->db->escape($data['product_id']) . "', text = '" . $this->db->escape(strip_tags($data['text'])) . "', rating = '" . (int)$data['rating'] . "', status = '" . (int)$data['status'] . "', date_added =  '" . $this->db->escape($data['date_added']) . "' WHERE review_id = '" . (int)$review_id . "'");
	
		$this->cache->delete('product');
}

фактически это равнозначно, что заменить в запросах на добавление этих функций
date_added = NOW()
на
date_added = '" . $this->db->escape($data['date_added']) . "'  
 
после этого вместо текущей даты в таблицу будет вставляться значение из $data['date_added']
 
 
3. В файле /admin/controller/catalog/review.php 
 
после блока

	if (isset($this->request->post['status'])) {
			$this->data['status'] = $this->request->post['status'];
		} elseif (!empty($review_info)) {
			$this->data['status'] = $review_info['status'];
		} else {
			$this->data['status'] = '';
		}

добавить

if (isset($this->request->post['date_added'])) {
			$this->data['date_added'] = $this->request->post['date_added'];
		} elseif (!empty($review_info)) {
			$this->data['date_added'] = $review_info['date_added'];
		} else {
			$this->data['date_added'] = date("Y-m-d");
		}

Это нужно для того, чтобы получать в $data['date_added'] значение, введенное из формы, при добавлении отзыва, или выбранное из базы, при редактировании отзыва.

Ссылка на комментарий
Поделиться на других сайтах


  • 8 месяцев спустя...

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

После изменений получил такую бяку....

При переходе на "Отзывы" в админке:

Parse error: syntax error, unexpected T_PUBLIC in Z:\home\pirania-ufa.ru\www\vqmod\vqcache\vq2-admin_model_catalog_review.php on line 95

А в логах ошибок вылезло:

2014-10-03 16:44:34 - PHP Notice:  Undefined variable: date_added in Z:\home\pirania-ufa.ru\www\admin\view\template\catalog\review_form.tpl on line 93

 

Как я понял  скрипту неизвестна переменная date_added...

В кодинге я "0" поэтому прошу помочь с объявлением   :oops:

Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.