Володя

Володя

С нами с 18 декабря 2012; Место в рейтинге пользователей: #4
Володя
15 мая 2014, 18:14
0
подскажите по хостингу sweb.
После установки не мог зайти в админку MODX — убрал кеширование css и js.
Полчаса проработал и вылетел из админки, теперь снова войти не могу. У кого сайты есть на данном хостере, какие еще там нюансы?
Спасибо за помощь!
Володя
10 мая 2014, 23:29
0
еще бы понятно было что нужно…
Володя
04 мая 2014, 17:01
0
Ну на поисковую выдачу (возраст 18-) возможно и влияет связь с г*вном. Но плохая индексация в яндексе не от этого. Тогда бы и позиции по поисковым запросам были бы далеко не топовые. (а тут все нормально).
Володя
04 мая 2014, 09:28
0
ну яндекс закачивает этот сайтмап, и смотрит на соответствие дат и обновление страниц, если даты не совпадают, то он по моему такой сайтмап просто тупо игнорирует…
Володя
04 мая 2014, 08:22
0
Я не оптимизатор, но я бы sitemap проверил… Он явно устарел, и еще ссыль в начале левая.
p.s. в панели вебмастера какая инфа по индексации?
Володя
20 апреля 2014, 17:51
0
Вопрос как вернуть переменную из плагина?
банально
return $properties;
не срабатывает.
Володя
19 апреля 2014, 18:34
+1
понял что дело в stdClass Object
Володя
19 апреля 2014, 12:37
+1
Ага, нашел где подглядеть)
$response = array(
'output' => $json,
);
echo $modx->toJSON($response);
exit;
Володя
19 апреля 2014, 12:21
0
Вроде сообразил как. Только не получается в плагине на 'OnPageNotFound' вернуть json.
то есть делаю так в конце
return json_encode(array('response' => $json));
и ничего…
Володя
13 апреля 2014, 15:42
0
дал группе юзеров право на создание ресурса — заработало…
Как правильнее? Иметь группу пользователей с таким правом или иметь группу пользователей без права на создание, и как то обойти проверку прав на создание ресурса?
Володя
13 апреля 2014, 15:06
0
наверно я туплю… нужно скорее всего дать группе пользователей право на создание ресурса да?
или это неправильно?
Володя
13 апреля 2014, 14:56
0
c админки все нормал, код отрабатывает.
Но если с фронта то не хватает прав — permission_denied
Пробую следующее:
создал mycreate.class.php
<?php
// Подгружаем класс системного процессора, отвечающего за создание ресурсов
require_once MODX_CORE_PATH.'components/tickets/processors/mgr/section/create.class.php';

// Создаем свой новый класс, расширяющий TicketsSectionCreate
class myTicketsSectionCreateProcessor  extends TicketsSectionCreateProcessor{
    public $permission = 'new_document'; 
    public $contextKey = 'web';
}
return 'myTicketsSectionCreateProcessor';
вызов так
// Массив, который мы передадим в процессор, там его ловить в $scriptProperties
$processorProps = array(
	'class_key' => 'TicketsSection',
	'template' => 15,
	'alias' => 'myTicket',
	'parent' => 0,
        'context_key' => 'web',
	
);
// Массив опций для метода runProcessor
$otherProps = array(
    // Здесь указываем где лежат наши процессоры
    'processors_path' => $modx->getOption('core_path') . 'components/tickets/processors/mgr/my/'
);

$response = $modx->runProcessor('mycreate', $processorProps, $otherProps);
if ($response->isError()) {
    $modx->log(modX::LOG_LEVEL_ERROR, 'my error:' .$response->getMessage());
}
return $response->response;
что не так делаю? или как можно обойти проверку прав для создания секции с фронта?
Володя
13 апреля 2014, 11:04
4
+1
Приведу небольшой пример на пакете — Office, может кому пригодится…
Допустим хотим ограничить доступ пользователей по email. Пускать только разрешенные email.
1. создаем свое событие для плагина
<?php
$Event = $modx->newObject('modEvent');
$Event->set('name', 'OnOfficeBeforeLogin');
$Event->set('service',1); 
$Event->set('groupname', 'office');
$Event->save();
проверить создалось ли событие можно так
$test = $modx->getObject('modEvent',array('name'=>'OnOfficeBeforeLogin'));
echo $test->get('groupname');
2. добавляем в action.php
$modx->invokeEvent('OnOfficeBeforeLogin', array(
            '_REQUEST' => $_REQUEST
		));
3. пишем плагин на наше событие
<?php
switch ($modx->event->name) {

	case 'OnOfficeBeforeLogin':
	    if ($_REQUEST['action']='auth/sendlink') {
	    
	    $command = $modx->getOption('office_ms2_command', null, "", true);//системная настройка с email участниками
            $instructor = $modx->getOption('office_ms2_instructor', null, "", true);//системная настройка с email тренерами
        
            $emails = array_merge(explode(',', $command ),explode(',', $instructor ));
  
	    if (!in_array($_REQUEST['email'], $emails)) {
	        //меняем почту на неправильную для выдачи ошибки
            $_REQUEST['email'] = "неправильная";
   
	    }
	    else {
           //если есть доступ то ничего не делаем
           //или делаем чтото еще)))
	    }

	    }
	    break;
}
Володя
12 апреля 2014, 20:10
+1
да все получилось! Спасибо!
Володя
11 апреля 2014, 16:17
0
Василий, ну у меня так же. По твоим же статьям все осваивал)))
я просто пока прописал так
php_admin_value[open_basedir] = /var/www/site/:/tmp/
ну и соответственно он распаковывает файлы во временной директории /tmp/
ругаться перестал, все нормально…
p.s. но по сути я его выпустил выше, в плане защиты не есть хорошо да?
Володя
11 апреля 2014, 11:30
0
снял ограничения на curl_multi_exec и наконец то увидел свои файлы на яндекс)))
значит дело в правах точно…
че ж ему зараза не нравится
Володя
11 апреля 2014, 11:27
0
попробовал вообще выставить php_admin_value[open_basedir] = none
это же должно снять ограничение?
но тогда получил
[2014-04-11 11:24:28] (ERROR @ phar:///var/www/reg33/www/core/components/yandexdisk/model/yandexdisk/yandex-sdk-0.1.1.phar/vendor/guzzle/http/Guzzle/Http/Curl/CurlMulti.php : 225) PHP warning: curl_multi_exec() has been disabled for security reasons
Володя
11 апреля 2014, 11:03
0
php_admin_value[open_basedir] = /var/www/reg33/
Володя
11 апреля 2014, 10:13
0
поставил modx c нуля… ошибка та же.
и вообще почему он за пределы папки www смотрит?
Modx находится по пути /var/www/reg33/www/