Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


vlacart

Recommended Posts

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

Надіслати
Поділитися на інших сайтах


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

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

Надіслати
Поділитися на інших сайтах


  • 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'] значение, введенное из формы, при добавлении отзыва, или выбранное из базы, при редактировании отзыва.

Надіслати
Поділитися на інших сайтах


  • 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:

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.