Илья Уткин

Илья Уткин

С нами с 15 декабря 2012; Место в рейтинге пользователей: #9
Илья Уткин
13 марта 2017, 10:57
+2
Может и проще… Только не люблю я вносить изменения в .htaccess (вдруг, в будущем, потребуется перенести на сервер без Apache — тогда будет больше возни).
Илья Уткин
13 марта 2017, 10:34
+1
Почему нельзя? Можно. Выбирайте «Загрузить пакет» и используйте этот файл
Илья Уткин
13 марта 2017, 10:30
2
+1
Создай вот такой плагин на событие OnHandleRequest

if ($modx->event->name != "OnHandleRequest") {
   return;
}
$uri = $_SERVER['REQUEST_URI'];
$http_host = $_SERVER['HTTP_HOST'];
$site_url = str_replace(array('www.', 'http://', 'https://', '/'), '', $modx->getOption('site_url'));
// for https set true
$https = true;
// robots.txt allways without redirect
if ($uri == '/robots.txt') return;
if ($http_host != $site_url || ($https && !$_SERVER['HTTPS'])) {
    if ($https) {
        $protocol = 'https://';
    } else {
        $protocol = 'http://';
    }
    $modx->sendRedirect($protocol.$site_url.$uri, array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
}
Илья Уткин
09 марта 2017, 15:43
+1
PR отправил, вот пакет, чтобы не собирать
Илья Уткин
09 марта 2017, 14:33
0
У меня, почему-то, Github показывает, что файл build.config.php был полностью изменён, хотя менял только версию. Это критично?
Илья Уткин
09 марта 2017, 14:09
0
А в новой версии так и есть))) Так что решение — просто обновиться.
Илья Уткин
09 марта 2017, 13:52
1
+1
Хм… Подтверждаю, проблема действительно воспроизводится…

Если нужно быстрое решение, придётся просто написать свой сниппет для выборки нужных картинок — типа такого:
<?php
$product = empty($product) ? $modx->resource->id : $product;
$miniShop2 = $modx->getService('minishop2');
$q = $modx->newQuery('msProductFile', array('parent' => 0, 'product_id' => $product));
$q->sortby('rank','ASC');
$q->prepare();
$q->stmt->execute();
$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
$output = array();
foreach($res as $r) {
    $output[] = $modx->getChunk('tpl.gal');
}
return implode(PHP_EOL, $output);
Илья Уткин
09 марта 2017, 12:57
0
Можно не устанавливать, а подсмотреть код чанков здесь: github.com/ilyautkin/siteExtra/tree/master/core/components/site/elements/chunks
Илья Уткин
09 марта 2017, 12:55
0
Нет, не затрёт. Если что-то установлено — повторно не будет устанавливаться. Единственное — будут установлены настройки для дружественных урлов.
Илья Уткин
09 марта 2017, 12:02
0
Попробуйте установить siteExtra и на примере уже делать вывод своих статей. youtu.be/V_karG-YmpI
Илья Уткин
09 марта 2017, 11:43
1
0
Вот без подзапроса — с использованием JOIN:
<?php
// Предустановки
$urov1 = 1; // id tv urov1
$urov1_val = 'Щиты (шкафы) контрольно-пусковые';
$urov2 = 2; // id tv urov2

$q = $modx->newQuery('modResource');
$q->leftJoin('modTemplateVarResource', 'urov1', 'modResource.id = urov1.contentid AND urov1.tmplvarid = ' . $urov1);
$q->leftJoin('modTemplateVarResource', 'urov2', 'modResource.id = urov2.contentid AND urov2.tmplvarid = ' . $urov2);
$q->groupby('modResource.id');

$q->select(array(
    'DISTINCT(`urov2`.`value`) AS `urov2`'
));

$q->where(array(
    'urov1.value' => $urov1_val
));

$count = $modx->getCount('modResource', $q);
$resources = array();
if ($q->prepare() && $q->stmt->execute()) {
	$resources = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
}
print "<p>Всего ресурсов найдено: ".$count."</p><p>--</p>";
if ($resources) {
    print "<p>Из них уникальных значений: ".count($resources)."</p>";
    foreach($resources as $resource) {
        print "<p><b>".$resource['urov2'] ."</b></p>";
    }
}
Илья Уткин
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>
Илья Уткин
08 марта 2017, 19:13
0
Вот это почитайте: bezumkin.ru/training/course2/ многое встанет на свои места.
Илья Уткин
07 марта 2017, 15:56
0
Может, так
Заявка с сайта.
Поле №1: [[+item.0]]
Поле №2: [[+item.1]]
Поле №3: [[+item.2]]
Илья Уткин
06 марта 2017, 15:46
1
+4
&where=`{"Data.vendor:IN":[3247,3247], "Data.discount_per:=":0}`
Илья Уткин
04 марта 2017, 15:06
+1
Очень круто. А есть ли возможность форму встроить прямо на страницу — без модалки, чтобы использовать вместо AjaxForm?
Илья Уткин
03 марта 2017, 08:30
+1
LikedislikeVotes и LikedislikeItems.

Название классов всегда можно посмотреть в map-файлах в папке компонента (это на случай, если компонента нет на github)
Илья Уткин
01 марта 2017, 14:06
0
Для тех, кто не хочет включать эти опасные функции, нашёл небольшой костыль. Нужно в файле core/model/phpthumb/phpthumb.class.php в методе ImageMagickVersion поменять последнюю строчку (у меня это 1499 строчка файла) на слудующее:

return '6.4.9'; //$versionstring[intval($returnRAW)];

Здесь мы вне зависимости от того, получилось ли определить версию imageMagick или нет, выводим фейковое значение.
Илья Уткин
28 февраля 2017, 20:05
0
В зависимости от того, сколько будет продано виртуальных билетов. В минимальном качестве, конечно, и бесплатно запишут, но если нужен нормальный звук — уже надо будет нанимать профессионалов.