Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


vlacart
 Share

Recommended Posts

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

Link to comment
Share on other sites


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

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

Link to comment
Share on other sites


  • 8 months later...

Можно добавить возможность изменять дату отзыва или дату комментария через админпанель. Таким образом будет возможность изменять дату в любое время, не прибегая к вмешательству в 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'] значение, введенное из формы, при добавлении отзыва, или выбранное из базы, при редактировании отзыва.

Link to comment
Share on other sites


  • 8 months later...

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

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

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

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:

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.