Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Быстрое редактирование через addnews.php

Быстрое редактирование через addnews.php


     09.06.2014    Быстрое, редактирование, через, addnews.php    Все вопросы » Общие вопросы    4917

вопрос
Возможно ли сделать, чтобы пользователи редактировали свои публикации в addnews.php и после модерации. Пока новость не промодерирована, у них редактирование происходит через addnews.php, но как только публикация промодерирована, можно редактировать только через быстрое редактирование.

Ответа пока нет


11 комментариев

MAPKOBKA
Юзер

MAPKOBKA - 9 июня 2014 17:57 -

Использовал этот хак
На dle 10.1 работает.

Casper-X
Юзер

Casper-X - 10 июня 2014 10:33 -

Это не совсем то, что надо. Необходимо чтобы вместо быстрого редактирования, запускался addnews, с заполненными строками.

vitnet
PHP-developer

vitnet - 10 июня 2014 10:49 -

Тогда проделайте следующее, в файле engine/modules/addnews.php
Найти 2 SQL запроса
$row = $db->super_query( "SELECT id, autor, tags FROM " . PREFIX . "_post where id = '$id' and approve = '0'" );

...
код пропущен
...

$row = $db->super_query( "SELECT * FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id) WHERE id = '{$id}' and approve = '0'" );

Уберите из них
 and approve = '0'

Готово!

MAPKOBKA
Юзер

MAPKOBKA - 10 июня 2014 12:50 -

Casper-X,
Это тот же модуль что и addnews.php
Хак на его основе. Опубликованную новость редактируешь в форме добавления. А не через быстрое редактирование или админку.

Casper-X
Юзер

Casper-X - 10 июня 2014 14:04 -

vitnet,
Спасибо, работает, а подскажите пожалуйста, как теперь на кнопку редактирования прописать открытие через addnews, хотел скопировать код с профиля, там когда новость ждет модерации, по кнопке редактирования сразу открывает addnews, но не нашел в каком файле это прописано.

vitnet
PHP-developer

vitnet - 10 июня 2014 23:26 -

Цитата: Casper-X
хотел скопировать код с профиля


Код находится в файле который отвечает за вывод коротких новостей, а именно show.short.php
        if( $allow_userinfo and !$row['approve'] and ($member_id['name'] == $row['autor'] and !$user_group[$member_id['user_group']]['allow_all_edit']) ) { // если смотрим профиль и новость находится на проверке
            $tpl->set( '[edit]', "<a href=\"" . $config['http_home_url'] . "index.php?do=addnews&id=" . $row['id'] . "\">" );
            $tpl->set( '[/edit]', "</a>" );
        } elseif( $is_logged and (($member_id['name'] == $row['autor'] and $user_group[$member_id['user_group']]['allow_edit']) or $user_group[$member_id['user_group']]['allow_all_edit']) ) { // просмотр на остальных страницах кроме полной новости
            $_SESSION['referrer'] = $_SERVER['REQUEST_URI'];
            $tpl->set( '[edit]', "<a onclick=\"return dropdownmenu(this, event, MenuNewsBuild('" . $row['id'] . "', 'short'), '170px')\" href=\"#\">" ); // как видите здесь будет выпадающий список с вариантами
            $tpl->set( '[/edit]', "</a>" );
            $allow_comments_ajax = true;
        } else
            $tpl->set_block( "'\\[edit\\](.*?)\\[/edit\\]'si", "" );

в show.full.php это выглядит так
        if( !$row['approve'] and ($member_id['name'] == $row['autor'] and !$user_group[$member_id['user_group']]['allow_all_edit']) ) { // если смотрим полную новость и она находится на проверке
            $tpl->set( '[edit]', "<a href=\"" . $config['http_home_url'] . "index.php?do=addnews&amp;id=" . $row['id'] . "\" >" );
            $tpl->set( '[/edit]', "</a>" );
            if( $config['allow_quick_wysiwyg'] ) $allow_comments_ajax = true;
        } elseif( $is_logged and (($member_id['name'] == $row['autor'] and $user_group[$member_id['user_group']]['allow_edit']) or $user_group[$member_id['user_group']]['allow_all_edit']) ) {
            $tpl->set( '[edit]', "<a onclick=\"return dropdownmenu(this, event, MenuNewsBuild('" . $row['id'] . "', 'full'), '170px')\" href=\"#\">" ); // как видите здесь будет выпадающий список с вариантами
            $tpl->set( '[/edit]', "</a>" );
            if( $config['allow_quick_wysiwyg'] ) $allow_comments_ajax = true;
        } else {
            $tpl->set_block( "'\\[edit\\](.*?)\\[/edit\\]'si", "" );
        }

vasia007xd
Юзер

vasia007xd - 15 августа 2019 14:28 -

Подскажите пожалуйста, сделал все как вы сказали в в файле engine/modules/addnews.php, все отлично работает.
Но возник один вопрос, а как сделать так, чтобы при редактировании новости обновлялась дата материала
Спасибо!

Casper-X
Юзер

Casper-X - 11 июня 2014 13:59 -

vitnet,
Огромное спасибо! Все работает, сделал как хотел.

Casper-X
Юзер

Casper-X - 11 июня 2014 17:45 -

Теперь возник другой вопрос:
Как сделать чтобы эта фунция работала для всех кроме администраторов?

Casper-X
Юзер

Casper-X - 6 апреля 2015 22:17 -

Помогите пожалуйста сделать тоже самое, только на 10.4, что-то у меня не получается.

Casper-X
Юзер

Casper-X - 6 апреля 2015 23:38 -

Вроде разобрался.

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх