Виталий Барышников

Виталий Барышников

Был в сети 12 июля 2021, 09:07
Заказы не принимаю
Мне нужно что-то (пишу на ломанном языке с акцентом) вроде такого:
— сниппет metaCopyright
<?php
автор = $resource->get('createdby');
$props = array();
if (isset(профиль_автора_вGoogle+))
{
	$props[googleProfile] = профиль_автора_вGoogle+;
}

if (isset(профиль_автора_вTwitter))
{
	$props[twitterProfile] = профиль_автора_вTwitter;
}

return $modx->getChunk('metaCopyChunk', $props);
— Чанк metaCopyChunk:
<link rel="author" href="[[+googleProfile]]">
<meta property="twitter:creator" content="[[+twitterProfile]]" />
— Вызов в шаблоне:
<head>
...
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
<meta charset="UTF-8"/>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />

[[metaCopyright]]
...
</head>
Не знаю понятно ли изложил. Через pdoResources я не понял как это можно сделать

Да, вот в этом-то вся проблема. Я из-за этого разделения прав не могу запустить сайт, т.к. менеджеры — обычные непрограммисты (я их сам закидываю в соответствующую группу копирайтеров), которые могут писать свои статейки (тикеты) и закидывать к ним картинки через ms2Gallery, а могут нечаянно удалять и редактировать чужие статьи, и даже удалять раздел с тикетами, что очень печально.
Здравствуйте. А вы можете подсказать как настроить права, если требуется чтобы Managers писали посты-тикеты из бэкэнда, и могли работать в бэкэнде только с теми ресурсами, которые сами создали. Допустим есть несколько тематик (разделов с тикетами), нужно чтобы пользователи (копирайтеры, Managers) могли писать посты только в эти категории. Давно пытаюсь это сделать, но мне почему-то уже кажется что это невозможно реализовать.
Такой вызов работает (я восстановил сайт из бэкапа и поставил minifyx), но я думаю это неправильный вариант, ну и в документации он кэшируемым вызывается. Я надеюсь, что место вызова сниппета не влияет на его работу. Когда я вызывал его в чанке хедера, а потом выводил там же в плэйсхолдер всё было нормально. Сейчас я оставил плэйсхолдер в там же в чанке хедера, а вызов сниппета переместил в шаблон и теперь кэшируемый он не работает.
В том то и была сложность, что modx молчал, т.е. вообще было непонятно что делать, единственные ошибки были в логах сервера и очень много. У меня был установлен MinifyX, точно не помню, но кажется я удалил его кэш вручную, т.к. постоянно подключался какой-то закэшированный минифицированный стиль. В общем сложно уже вспомнить как так получилось всё поломать.
Чтож, после 10 часов упорного секса с этим делом, я пришел к выводу, что решения два:
1. Удалить MinifyX и забыть про его использование.
2. Восстановить сайт из бэкапа до установки и начала глюков, что я и сделал.
Больше никакие меры с правами, htaccess никакого результата не давали.
Мне на хостинге подсказали что может быть из-за ограничений в файлах htaccess. У меня в корне
такой файл:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
А в manager такой:
RewriteEngine Off
Order deny,allow
Deny from all
AuthName "htaccess password prompt"
AuthUserFile /******/.htpasswd
AuthType Basic
Require valid-user
Allow from 127.0.0.1
Satisfy Any