public function viewAction($callbackId) { $callback = Callbacks\Callback::get((int) $callbackId); if (!$callback) { Tools::header(404); Tools::redirect('/', 'Отзыв не найден', 'danger'); } $this->view->setTitle('Отзыв: ' . $callback->name); $this->view->page(['data' => compact('callback')]); }
public function init() { $callbacksData = filter_input(INPUT_POST, 'Callbacks', FILTER_REQUIRE_ARRAY); if (!empty($callbacksData)) { $callback = new \Callbacks\Callback(); $error = false; if (empty($callbacksData['text'])) { $error = true; Msg::add('Вы не написали текст отзыва'); } else { $callback->text = nl2br(htmlspecialchars($callbacksData['text'])); } if (empty($callbacksData['name'])) { $error = true; Msg::add('Вы не указали свое имя'); } else { $callback->name = htmlspecialchars($callbacksData['name']); } if (empty($callbacksData['phone'])) { $error = true; Msg::add('Вы не указали свой номер телефона'); } else { $callback->phone = htmlspecialchars($callbacksData['phone']); } $files = filter_var($_FILES['Callbacks'], FILTER_REQUIRE_ARRAY); if (!empty($files['tmp_name']['photo'])) { $callback->image_file_id = App::$cur->files->upload(['name' => $files['name']['photo'], 'tmp_name' => $files['tmp_name']['photo']]); } $callback->mail = htmlspecialchars($callbacksData['mail']); $callback->type_id = (int) $callbacksData['type']; if (!$error) { $callback->save(); if (!empty(App::$cur->config['site']['email'])) { $subject = 'Новый отзыв'; $text = 'Вы можете его посмотреть по этому адресу: <a href = "http://' . idn_to_utf8(INJI_DOMAIN_NAME) . '/admin/callbacks">http://' . idn_to_utf8(INJI_DOMAIN_NAME) . '/admin/callbacks</a>'; Tools::sendMail('noreply@' . INJI_DOMAIN_NAME, App::$cur->config['site']['email'], $subject, $text); } Tools::redirect('/', 'Ваш отзыв был получен и появится после обработки администратором', 'success'); } } }
<div class = 'callbacks'> <h1>Отзывы</h1> <?php $callbacks = Callbacks\Callback::getList(['where' => ['view', '1'], 'order' => ['weight', 'asc']]); foreach ($callbacks as $callback) { echo "<h3>{$callback->name}<div class = 'time'>{$callback->date_create}</div></h3>"; echo "<p>" . nl2br($callback->text) . "</p>"; } ?> </div> <h3>Можете и вы в свободной форме оставить свой отзыв</h3> <?php $this->widget('Callbacks\\form');
<?php return ['widget' => function () { ?> <div class="panel panel-default"> <div class="panel-heading">Отзывы</div> <div class="panel-body"> <p>Всего: <?php echo Callbacks\Callback::getCount(); ?> </p> <p>Новых сегодня: <?php echo Callbacks\Callback::getCount(['where' => ['date_create', date('Y-m-d 00:00:00'), '>']]); ?> </p> </div> <div class="panel-footer"> <a href ="/admin/Callbacks/Callback">Просмотр</a> </div> </div> <?php }];