Домой Wp-Recall WP-Recall: Опыт использования и идеи Фронтэнд публикация / редактирование записей без прав автора
4ответ(ов) в теме
Preci
не в сети 22 часа
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1643
1
00:52

Я не хотел у себя давать права "автора" всем пользователям, т.к. некоторые публикуют записи давно и им удобнее делать это через админку (как и мне) Но вот "новые" пользователи зачастую пугаются админки, да и нечего там ВСЕМ делать. Из-за этого я не использовал аддон фронтэнд публикации.

Но сегодня я допер как сделать работу фронтэнд публикации + редактирования, при этом оставив у пользователей права "подписчик"

Что я сделал:

1. С помощью плагина "Редактор ролей пользователей" выставил права подписчикам:

Редактировать опубликованные статьи

Изменять статьи, Загружать файлы.

2. В настройках аддона публикации выставил:

Публикация разрешена: Гостям и пользователям

Перенаправление на страницу: Не выбрано

Модерация публикаций: Отправлять на модерацию

Фронтэнд редактирование: Убрал все галки, т.к. авторы и я редактируем в админке, нам там удобнее

3. Создал шаблон страницы для формы публикации заменил там:

</pre> 


на

 
<pre class="lang:default decode:true ">

4. На странице single.php вывел кнопку для редактирования с помощью

<?php
if( is_user_logged_in() AND user_can( $user_ID, 'author' ) AND $user_ID == $post->post_author ){ ?>
<p class="post-edit-button"><a title="Редактировать" object-id="none" href="<?php echo "/wp-admin/post.php?post=".$post->ID."&action=edit"; ?>"><i class="fa fa-pencil-square-o"></i></a></p> 
<?php }

elseif(is_user_logged_in() AND $user_ID == $post->post_author) echo rcl_edit_post_button_html($post->ID); ?>

Есть 1на "мини-проблема" - для админа будет выводиться 2 таких кнопки, но это не страшно т.к. все остальные будут видеть только 1ну.

Как итог:
В пункте 2 мы разрешили публикацию с фронтэнд даже гостям, лично мне этого ненужно и я в пункте 3 отредактировал шаблон страницы с формой публикации, в результате чего гости вместо формы публикации будут видеть "авторизуйся" - все остальные, включая админов, авторов и т.п. - смогут публиковать записи
Администрация и авторы / редакторы при клике по кнопке "Редактировать" на странице записи попадают в админку (что и требовалось) Все остальные попадают на фронтэнд страницу редактирования

Тему можно перенести, я не знаю в какой раздел её сувать.

0
Вова (Otshelnik-Fm)
не в сети 22 часа
На сайте с 27.01.2013
Участник
Тем 43
Сообщения 18641
2
10:07

3 пункт съел парсер.

Перенес в "Опыт использования и идеи"

0
Preci
не в сети 22 часа
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1643
3
17:01

Редактировать уже не могу.

В 3 пункте заменил:

<?php the_content(); ?>

На

<?php if(is_user_logged_in()) the_content(); else echo "Авторизуйся!"; ?>

Еще дополнение:

В форме публикации сделал некоторые поля обязательными. Но в адмике эти поля у меня уже давно есть и получается что recall их туда продублировал. В результате в админке были проблемы - надо было 2 блока заполнять, иначе не публиковалось.

Т.к. блок recall распологается под записью, а мой - справа (что для меня удобнее) я решил проблему убрав блок с произвольными полями recall из админки с помощью добавления в functions.php:

remove_action('admin_init', 'custom_fields_editor_post_rcl', 1);

В результате на фронтэнде блоки остались, а в админке пропали - что и было нужно.

0
Preci
не в сети 22 часа
На сайте с 11.11.2014
Участник
Тем 71
Сообщения 1643
4
19:51

UPD

Избавился и от проблемы с дублем кнопки редактирования. Я тупо убрал ее вывод с помощью recall, добавив в functions.php

remove_filter('the_content','rcl_get_edit_post_button',999);

В результате в 3ем пункте мы выводим одинаковую кнопку для всех, но для авторов ссылка ведет на редактирование записи в админке, а для остальных - на фронтэнд. В будущем, думаю, заменю 1ну кнопку на 2е т.е. простым смертным будет видна только 1 кнопка, а "кому надо" рядом будет аналогичная но с содержанием "редактировать через админку"

0
Тема закрыта. Публикация новых сообщений запрещена.