stopych

Новичок
  • Публикаций

    1
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о stopych

  • Звание
    Новичок

Информация

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