Короче заплатка в виде варианта с гитхаба с заменой
на if (defined('IN_PARSER_MODE') && IN_PARSER_MODE == «true») {
сработала и ошибка ушла, но все равно вместо кода лезет главная страница сайта
Похоже ошибку дает CodeMirror
Хостинг клиентский. Жить приходится с чем есть. Эво свежепоставленная.
Ошибка, кстати не у меня одной на гитхабе есть тема.
2.0.2
Отвратительный хостинг.Меняйте его. А версия evo какая?
Если прочитать ошибку, то можно предположить что проблема с константой. В php с версии 7.2 они объявляются немного по-другому. Была подобная проблема сайт работал на старой версии php, после обновления до 7.2 похожие ошибки возникли, пришлось переобъявлять все константы в соответствии с 7.2 php
К разлогиниванию это никакого отношения не имеет вообще. Кто был залогинен в момент выполнения этого странного запроса, тот и останется залогинен.
Всем спасибо за ответы, сделал через DBAPI

$table = $modx->getFullTableName( 'web_user_attributes' );  

$fields = array('sessionid'  => '',  
                'thislogin' => 0 
                );  

$result = $modx->db->update( $fields, $table, "thislogin != 0 or sessionid != ''" );   
if( $result ) {  
    echo 'Все пользователи разлогинены!';  
} else {  
    echo 'Возникла проблема во время запроса...';  
}
Всего-то нужно изменить обработчик сессий ((:
Если последнее вопрос, то да))
  • avatar tmih
  • 0
Спасибо! Работает здорово
/assets/plugins/evoShkDashboard/evoShkDashboard.plugin.php
В строке 206 можно указать нужное количество для вывода
вместо 'display'=>15 поставить 'display'=>40 или тп.
  • avatar paic
  • 0
Может чем поможет
modx.im/blog/fast-solution/5811.html
там правда залогинить/разлогинить одного конкретного юзера.
Можно еще вот так. Плагина на OnWebPageInit
$uid = $modx->getLoginUserID();
if (!$uid) return;
$flag = $modx->db->getValue('Select zip from '.$modx->getFullTableName('web_user_attributes').' where internalKey='.$uid);
if (!$flag)
{
	include_once(MODX_BASE_PATH."assets/lib/MODxAPI/modUsers.php");	
	$user = new modUsers($modx);	
	$user->logOut();
	$modx->db->query('Update '.$modx->getFullTableName('web_user_attributes').' set zip="1" where internalKey='.$uid);
}

Велосипед, конечно, зато работает)
Попробуй так, как-то:
Update {PREFIX}_web_user_attributes set thislogin='', sessionid='' where thislogin!='' or sessionid!=''
Удалил я /assets/elemets/config.php, он заново корректно перезаписался, сейчас вроде админка корректно работает.
Отключил я вам этот плагин, а ошибка возникала из-за того, что файл /assets/elemets/config.php содержит NULL. А вот почему он содержит NULL — я не знаю.
Скорее всего это значит что $config не является массивом, ругается на то что используете цикл с невалидным аргументом. Если переменная конфиг представляет из себя объект то для начала переведите ее в массив и потом уже разбирайте циклом
  • avatar 3fir
  • 0
Посмотрите, может поможет.
Ссылка
В общем решение подсказали такое, если кому нужно, написали сниппет в общем

[!DocLister? 
&tvList=`image_help` 
&count=`1`
&tpl=`@CODE: <div class="gr_bl">
[+content+]	
<div class="grid gr_[+count+]">	
[+images+]
</div>
</div>` 
&dateSource=`pub_date`
&dateFormat=`%d.%m.%Y в %H:%M`
&prepare=`help`
&orderBy=`menuindex ASC`
&w_options=`w=600` 
&h_options=`h=300` 
&mini.photo.w=`@CODE: <a href="[+img+]" class="[+class+] fancybox" data-fancybox-group="gallery"><img src="[+mini_photo+]"><i>+ [+plus+]</i></a>`
&mini.photo.h=`@CODE: <a href="[+img+]" class="[+class+] fancybox" data-fancybox-group="gallery"><img src="[+mini_photo+]"><i>+ [+plus+]</i></a>`
!]

Вот сам PREPARE help

<?php
$tpl = DLTemplate::getInstance($modx);  
$res = $modx->db->query('Select sg_image,sg_properties from '.$modx->getFullTableName('sg_images').' where sg_rid='.$data['id'].' order by sg_index desc limit 0,50');

$data['images']='';

while ($row = $modx->db->getRow($res))
{
  $prop = json_decode($row['sg_properties'],true);
  if ($prop['width']>$prop['height'])
  {
    $class="horisontal";
    $t = 'mini.photo.w';
    $opt_name = 'w_options';
  }
  else 
  {
    $class="vertical";
    $t = 'mini.photo.h';
    $opt_name = 'h_options';
  }
  $mini_photo = $modx->runSnippet('phpthumb',array('input'=>$row['sg_image'],'options'=>$_DocLister->getCfgDef($opt_name))); 
	
$data['count'] = $modx->db->getValue('Select count(*) from '.$modx->getFullTableName('sg_images').' where sg_rid='.$data['id']);
$plus = $data['count'] - 5;	
if ($data['count'] >= 6) {
$data['count'] = 6;
}
	  
  
  $data['images'].=$tpl->parseChunk($_DocLister->getCfgDef($t),
  array( 'img' => $row['sg_image'], 'mini_photo' => $mini_photo, 'class' => $class, 'plus' => $plus ), '[+', '+]' );
}

return $data;


И сам css код, решил сделать на flexbox, по другому что-то не получалось

.gr_bl { overflow:hidden; width:680px;  font-size:18px; margin-bottom:60px;}

.grid {display: flex; flex-wrap: wrap; flex-direction: row; width: auto; margin:0 -1px; font-size:0;}
.grid a {margin:1px; position:relative;}
.grid a img {width:100%; object-fit: cover; display:block;}

.gr_1 a {width:100%; display:block; }
.gr_1 .vertical {max-width:340px;}

.gr_2 a img {height:340px;}
.gr_2 .horisontal {width:44%; flex-grow: 1; }
.gr_2 .vertical {width:30%; }

.gr_3 a img {height:240px; }
.gr_3 .horisontal {width:32%; flex-grow: 1;  max-width:60%;}
.gr_3 .vertical {width:22%;}

.gr_4 a img {height:240px; }
.gr_4 .horisontal {width:40%; flex-grow: 1; }
.gr_4 .vertical {width:40%; flex-grow: 1;}

.gr_5 a img {height:220px; }
.gr_5 a:nth-child(1) {width:31%;}
.gr_5 a:nth-child(2) {width:31%;}
.gr_5 a:nth-child(3) {width:31%;}
.gr_5 a:nth-child(4) img {height:320px;}
.gr_5 a:nth-child(5) img {height:320px;}
.gr_5 .horisontal {width:40%; flex-grow: 1; }
.gr_5 .vertical {width:6.8%; flex-grow: 1;}

.gr_6 a img {height:220px; }
.gr_6 a:nth-child(1) {width:31%;}
.gr_6 a:nth-child(2) {width:31%;}
.gr_6 a:nth-child(3) {width:31%;}
.gr_6 a:nth-child(4) img {height:320px;}
.gr_6 a:nth-child(5) img {height:320px;}
.gr_6 .horisontal {width:40%; flex-grow: 1; }
.gr_6 .vertical {width:6.8%; flex-grow: 1;}
.grid a:nth-child(n+6) {display:none;}
.gr_6 a:nth-child(5) i {position:absolute; z-index:2; top:0; left:0; right:0; bottom:0; background:#00000075; font-size:64px; color:#fff; text-align:center;
 font-family: 'Open Sans', sans-serif; font-weight:800; font-style:normal; letter-spacing:-4px;
display: flex;
align-items: center;
justify-content: center;}



Должно вот такими блоками получится
Саму галерею взял тут photoswipe.com/
UPD v1.2.1
Добавлены кнопки Изображения и Файлы над блоком контента в ресурсе. Это позволит открыть FileManager и скопировать путь к выбранному файлу.
Поддерживается множественный выбор файлов для копирования путей.
Очень удобно при использовании редактора CodeMirror.
В консоли сообщение, что JQuery не определен. Где-то у вас вызов JQuery потерялся. Возможно, из-за этого и не показывается меню, и ДокЛистер тут ни при чем.