strezinov
@strezinov
Учусь на програмиста

Как реализовать пред просмотр для статей, товаров?

Хай ребята, как упрощенно реализовать пред просмотр статьи и товарки, смотрел на WP, то там кнопка вроде пред просмотр, ты клацаешь и тебя перекидывает на страницу со статьей.
Как ее можно реализовать в Yii2, с другим url 'ом, что бы потом можно было закрыть эту ссылку от роботов.
Расскажите логику!
  • Вопрос задан
  • 241 просмотр
Решения вопроса 1
@melnikov_m
например у вас контроллер/экшн - article/article_page
Тогда предпросмотр можно сделать article/article_preview
При нажатии в админке на кнопку "предпросмотр" происходит переход на страницу со статьей по адресу (article/article_preview, конечно же незабываем передавать id статьи) и если пользователь админ, то страница отображается даже если publish = false... Для всех остальных по ссылке не превью будет 404 ошибка
Это как один из вариантов...
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@RichyNix
Программирование, Серверное администрирование
В вп каждое нажатие на кнопку "сохранить" это новя запись в базе, а опубликованная статья идет с меткой published, или что-то в этом роде.
Потому, можно сохранять статью с определенной меткой, и при предпросмотре, проверять метку, пользователя и другие данные и если все ок, выдавать шаблон. Ну и соответственно метод только для авторизованных пользователей, если не авторизован - 404.
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Пишите экшен, аналогичный тому, что рендерит статью,только вместо поиска из базы, передаете все параметры сущности post запросом. Формируете из этих данных модель, например создав новый экземпляр класса и закинув туда данные, все как в стандартном create, только view другой и сохранять не надо
public function actionCreate()
    {
        $model = new Hren();

        if ($model->load(Yii::$app->request->post())) {
            return $this->render('someview', ['model' => $model]);
        }
    }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы