Редактирование поста в блогах пользователем

Вопросы по работе Юпи! и отдельных модулей

Модератор: core team

tland
Новенький
Сообщения: 3
Зарегистрирован: Вт янв 16, 2018 11:14 pm

Редактирование поста в блогах пользователем

Сообщение tland » Вт янв 16, 2018 11:26 pm

Здравствуйте!

Поставил Юпи! на локалхост - понравилась.
Но вот сколько не бьюсь, не могу понять: Пользователю не дано редактировать свою запись в блогах?
Это может сделать только Админ из админки?
Я правильно понимаю?
И если так, то насколько сложно создать actionUpdate() из actionWrite() в файле protected\modules\blog\controllers\PublisherController.php

И еще не понял, как работают роли. Назначил пользователю роль Администратор, но в меню ссылка на вход в админ-панель не появилась.

Вопрос конечно простой наверное, но поиском чего то ничего не нашел.

Спасибо.

tland
Новенький
Сообщения: 3
Зарегистрирован: Вт янв 16, 2018 11:14 pm

Re: Редактирование поста в блогах пользователем

Сообщение tland » Ср янв 17, 2018 12:01 am

Да уж, видать глаз замылился.
После публикации записи ее редактирование будет невозможно!

Это сообщение то я и не заметил(
Тогда вопрос про actionUpdate() из actionWrite() очень даже актуален!

tland
Новенький
Сообщения: 3
Зарегистрирован: Вт янв 16, 2018 11:14 pm

Re: Редактирование поста в блогах пользователем

Сообщение tland » Чт янв 18, 2018 9:01 pm

Немного разобрался, но не до конца (

В actionWrite() есть такой код:

Код: Выделить всё


        if (($postId = (int)Yii::app()->getRequest()->getQuery('id'))) {

            $post = Post::model()->findUserPost($postId, Yii::app()->getUser()->getId());

            if ($post === null) {
                throw new CHttpException(404);
            }

        }


Вот он то и должен открывать на редактирование, но...

Но в модели Post есть вот такой метод

Код: Выделить всё

 public function findUserPost($postId, $userId)
    {
        return $this->find(
            'id = :id AND create_user_id = :userId AND status = :status',
            [
                ':userId' => (int)$userId,
                ':id' => (int)$postId,
                ':status' => self::STATUS_PUBLISHED,
            ]
        );
    }


Который должен был бы находить запись при явном указании ID поста, но не находит, потому как в строке

Код: Выделить всё

 'id = :id AND create_user_id = :userId AND status != :status',

вместо status = :status было записано status != :status (почему то)
Исправил - заработало.

Теперь осталось понять, как передать ID поста в экшн


Вернуться в «Вопросы и ответы»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость