Код о снятии с публикации ресурса?
Здравствуйте!
Помогите реализовать код о снятии с публикации ресурса miniShop2 при нажатии на кнопку.
Можно переделать вот этот код?
Помогите реализовать код о снятии с публикации ресурса miniShop2 при нажатии на кнопку.
Можно переделать вот этот код?
<?php
$res = $modx->getObject('modResource',$id);
$createdby = $res->get('createdby');
$user = $modx->user->getOne('Profile');
$profile = $user->get('id');
if($createdby == $profile){
if($_GET['user'] == $profile ) {
$unid = $_GET['id'];
$resource = $modx->getObject('modResource', $unid );
$resource->set('published',1);
$resource->save();
}
}Заранее благодарю за помощь! Комментарии: 17
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Прошу помочь в обучении в данной задаче.
Как подключить снипет к кнопке, что бы реагировал на клик?
Где находится ваша кнопка, нажатие на которую снимает с публикации ресурс?
В админке? На фронтенде?
Примерно порядок действий такой.
У вас есть форма html у которой есть кнопка и скрытое поле в котором лежит идентификатор ресурса. Вам нужно обработать отправку этой формы (или просто указав в атрибуте формы action путь к файлу php или же на js отловить событие отправки формы, получить с нее данные и отправить ajax запрос на файл php)
Далее в этом файле php вы должны через основной объект $modx получить ресурс с тем идентификатором, что предан из формы, установить значение его свойства published в 0 и сохранить.
Примерно так
Форма где то в шаблоне
Кто-то откроет код сайта в браузере, заменит идентификатор ресурса на число 1, отправит форму и отключит главную страницу сайта например.
Хоть буду знать)
Возможно право снимать ресурс с публикации нужно давать не всем? А только определенным пользователям. Тогда нужно ограничить показ этой формы на фронтедне только если пользователь авторизован на сайте и это пользователь определенной группы — к примеру менеджер
Или по крайней мере делать проверку в файле snippet.php что это за ресурс с таким id. например проверять его шаблон и разрешать отключать только ресурсы с определенным шаблоном.
Так у пользователей будет возможность отключить ресурсы только если их шаблон имеет идентификатор 5.
Можно ли сделать так, что бы только определённая группа могла снять с публикации.
Хорошо что сказали мне про это)
— проверять к какой группе относиться user и показывать форму в шаблоне только при соблюдении условия, мол если пользователь в такой-то группе то покажем кнопку — снять с публикации
— или же в сниппете проверять какой пользователь сейчас авторизован в контексте web, какая у него группа и там уже решать.
Но раз вы пишите, что «Да я ограничил показ формы доступен только группе users» то значит вы пошли по первому пути и проблем быть не должно.
А как указывается путь к снипету?
И последнее как подвязать кнопке всё это дело например ссылке
Можно привязать это к ссылке, но зачем? в вашем случае это вызовет необходимость разбираться еще в куче технологий. Используйте вместо ссылки форму
и с помощью css стилизуйте так как посчитаете нужным.
Как прописывать путь тоже вопрос неоднозначный. Мой вам совет, чтобы сейчас не вникать в теорию относительных, абсолютных путей, разницы между url и uri просто расположите файл в корне сайта, а в форме вызывайте его
Вам необязательно делать этот код отдельным файлом, вы можете в админке сайта создать новый сниппет, в него вписать такой же код, только даже проще
, расположить вызов этого сниипета на какой-то странице, к примеру с идентификатором 6
Тогда в форме в атрибуте action можете указать [[~6]] или {6|url} если используете синтаксис шаблонизатора fenom
Здесь нужен абсолютный путь внутри операционной системы, которая установлена на вашем сервере.
Вы можете узнать этот путь разными путями, но проще всего создайте в корне сайта файл path.php c содержимым
и обратитесь к нему через браузер ваш сайт/path.php
То что увидите это и есть абсолютный путь к корню вашего сайта
Я всё прописал всё сделал
при нажатии на кнопку пишет страница не найдена(