Alexey T

Alexey T

С нами с 06 апреля 2014; Место в рейтинге пользователей: #130
Володя
17 июня 2017, 14:06
1
+2
Подскажите как теперь правильно выводить опции, если значение одно?
варианты
{$option.0}
{$option[0]}
другие варианты…
Василий Наумкин
02 апреля 2017, 22:27
1
+2
'where' => ['Vendor.id' => $id],

А если вдруг сниппет не умеет принимать массивы, то
'where' => json_encode(['field' => $value]),
Илья Уткин
09 марта 2017, 09:47
3
+6
Создаёшь в папке index.php и открываешь так: s8820.h5.modhost.pro/console/
<?php
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {
    @ini_set('display_errors', 1);
    $code = str_replace(array('<?php', '?>'), '', $_POST['code']);
    ob_start();
    $result = eval($code);
    $output = ob_get_contents();
    ob_end_clean();
    if($result){
        $output = $result;
    }
    echo $output;
    die();
}
?><!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Console</title>
    <link href="http://getbootstrap.com/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <style>
        .ace_editor {
            height: 250px !important;
        }
        body {
            padding-bottom: 80px;
        }
    </style>
  </head>

  <body>
    
    <div class="container">
        

        <h1>Console</h1>
        <form action="" class="jumbotron" id="code_form" method="post">
            <textarea class="form-control" name="code" id="code" rows="15"><?php echo "<?php\n"; ?></textarea>
            
            <input type="submit" class="btn btn-lg btn-primary" value="Выполнить" onclick="return run();">
        </form>
        <div id="result"></div>
    </div>

    <script src="https://ace.c9.io/build/src/ace.js"></script>
    <script>
        function run() {
            document.getElementById("result").innerHTML = '<img src="http://downloads.pcauthority.com.au/images/spinner.gif">';
            $.ajax({
                url: document.location.href,
                type: "POST",
                dataType: "html",
                data: {code: window.editor.getValue()},
                success: function(response) {
                    $("#result").html(response);
                },
                error: function(response) {
                    $("#result").html("Ошибка сервера");
                }
             });
             return false;
        }
        window.onkeydown = function(e) {
            if (e.ctrlKey) {
                if (e.keyCode == 13) {
                    run();
                }
            }
        };
        window.editor = ace.edit("code");
        window.editor.setTheme("ace/theme/monokai");
        window.editor.getSession().setMode("ace/mode/php");
        window.editor.gotoLine(2);
        window.editor.focus();
    </script>
  </body>
</html>
Николай
30 января 2017, 20:27
1
0
Создал /etc/mysql/conf.d/disable_strict_mode.cnf

Заполнил:
[mysqld]
sql_mode=IGNORE_SPACE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Перезапустил.

Не помогло.

Что может быть не так?
Сергей Шлоков
15 ноября 2016, 12:12
2
+4
Это из-за этого. Можно закомментировать пока не исправят. Не думаю, что это повлияет на безопасность.
Сергей Шлоков
05 ноября 2016, 17:34
1
+2
Вот оказывается в чем проблема была. Переделал на некэшированный минифай. Все Ок.
Александр Туниеков
19 сентября 2016, 03:12
1
0
Нашел в тут.
Для того чтобы ссылка редактировать была в списке тикетов вставляем в tpl.Tickets.list.row строку
[[!+isauthor:is=`1`:then=`<a href="/dobavit-tickets.html?tid=[[+id]]">Редактировать</a>`]]
dobavit-tickets.html — страница добавления тикета с фронта сайта. [[+id]] тикета которого можно редактировать.
В шаблоне страницы тикетов ставим:
[[!+modx.user.id:is=`[[*createdby]]`:then=`<a href="/dobavit-tickets.html?tid=[[*id]]">Редактировать</a>`]]
В итоге авторы тикетов могут перейти на редактирование тикета из списка тикетов и из просмотра тикета.
Володя
05 августа 2016, 22:35
21
+5
можно добавить так
создать плагин на pdoToolsOnFenomInit, в нем добавить модификатор detector
<?php
switch ($modx->event->name) {
    case 'pdoToolsOnFenomInit':
    if (!$fenom = $modx->getOption('fenom', $scriptProperties)) {
        return;
    }
    if (!$MobileDetect = $modx->getService('mobiledetect', 'MobileDetect', MODX_CORE_PATH . 'components/mobiledetect/')) {
	    return;
    }
    
    $key = $MobileDetect->config['force_browser_variable'];
    $device = !empty($_GET) && array_key_exists($key, $_GET)
		? $modx->stripTags($_GET[$key])
		: '';
	if (empty($device)) {
	    $device = $MobileDetect->getSettings();
    }
    if (empty($device)) {
        $detector = $MobileDetect->getDetector();
        $device = ($detector->isMobile() ? ($detector->isTablet() ? 'tablet' : 'mobile') : 'standard');
        $MobileDetect->saveSettings($device);
    }

    $fenom->addModifier("detector", function ($value) use ($device) {
        return $value == $device;
    });

    break;
}

и теперь в любом месте можно делать так
{if 'mobile'|detector}
mobile
{/if}

{if 'tablet'|detector}
tablet
{/if}

{if 'standard'|detector}
standard
{/if}
smillyhamster
02 марта 2016, 20:13
1
0
Небольшая поправка, чтобы не запутать людей — для импорта ТВ необходимо указать его в формате tvid, то есть без точки. К примеру — tv3
Fi1osof
07 января 2016, 11:57
20
+12
Если ключ не хотите светить, то однозначно запрос надо слать с вашего сервера на донора. В MODX есть готовый CURL-клиент. Вот код для примера:
$client = $modx->getService('rest.modRestCurlClient');
$result = $client->request('https://ya.ru', '/', 'POST', $params = array('foo'  => 'foo'));
print $result;
Можете с этим кодом к консоли поиграться.