vectorserver

vectorserver

С нами с 12 декабря 2018; Место в рейтинге пользователей: #24
27 декабря 2023, 06:48
+2
Типо того:
<ul>
    <?php
    $contexts = $modx->getCollection('modContext', array('key:NOT IN' => array('mgr')));
    foreach ($contexts as $context) {
        $contextName = $context->get('key');
        $contextUrl = $modx->makeUrl('[[*id]]', '', $contextName);
        echo "<li><a href='{$contextUrl}'>{$contextName}</a></li>";
    }
    ?>
</ul>
27 декабря 2023, 06:36
0
Попробуй напрямую закинуть запрос через метод $modx->query

$sql = "SELECT * FROM ваша_таблица WHERE (width + length) <= 1000 AND (length - width) >= 500";
$result = $modx->query($sql);
$rows = $result->fetchAll(PDO::FETCH_ASSOC);
18 декабря 2023, 07:57
0
дело может быть еще в плагине MinifyX, он отрубает www.google.com/recaptcha/api.js?onload=ReCaptchaCallbackV3
Временно сделал так в сниппете rcv3_html
<?php
$public = $modx->getOption('formit.recaptcha_public_key');
$action = $action ?: 'ajaxform';
$js = "";
if (!$modx->getPlaceholder('rcv3_initialized')) {
    $js.='<script src="https://www.google.com/recaptcha/api.js?onload=ReCaptchaCallbackV3&render=' . $public . '" async></script>';
    $js.='
        <script>
            var ReCaptchaCallbackV3 = function() {
                grecaptcha.ready(function() {
                    grecaptcha.reset = grecaptchaExecute;
                    grecaptcha.reset();
                });
            };
            function grecaptchaExecute() {
                grecaptcha.execute("' . $public . '", { action: "' . $action . '" }).then(function(token) {
                    var fieldsToken = document.querySelectorAll("[name =\'g-recaptcha-response\']");
                    Array.prototype.forEach.call(fieldsToken, function(el, i){
                        el.value = token;
                    });
                });
            };
            // обновляем капчу каждую минуту
            setInterval(function() {
                grecaptcha.reset();
            }, 60000);
        </script>
    ';
    $modx->setPlaceholder('rcv3_initialized', 1);
}

$output = '
    <span class="error_g-recaptcha-response error">' . $error . '</span>
    <input type="hidden" name="g-recaptcha-response">
';

return $js.$output;
17 ноября 2023, 20:21
0
SQL
TRUNCATE TABLE my_table;
17 ноября 2023, 20:13
1
+1
Создаешь сниппет mod_image
<?php

/* @var modX $modx*/
/* @var $input*/


// Создаем объект DOMDocument
$dom = new DOMDocument();


// Загружаем HTML-код
$html = $input;
//$dom->loadHTML($html);
$dom->loadHTML(mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8'));


// Получаем все элементы <img>
$xpath = new DOMXPath($dom);
$images = $xpath->query("//img");

foreach ($images as $image) {
    // Получаем старый путь из атрибута 'src'
    $oldSrc = $image->getAttribute('src');
    $new_path = $modx->runSnippet('phpthumbof',['input'=>$oldSrc,'options'=>'w=0&h=800&zc=0']);
    // Заменяем значение атрибута 'src'
    $image->setAttribute('src', $new_path);


    // Получаем родительский элемент <a> и добавляем атрибут 'href' с значением $oldSrc
    $parentLink = $image->parentNode;
    if ($parentLink->nodeName === 'a') {
        $parentLink->setAttribute('href', $oldSrc);
    } else{

        // Создаем тег a
        $a = $dom->createElement('a');
        $a->setAttribute('href', $oldSrc);

        $a->setAttribute('data-fancybox', 'gal');
        $a->setAttribute('class', 'pointer img-fluid');
        $image->parentNode->replaceChild($a, $image);
        $a->appendChild($image);
    }

    if(!$image->getAttribute('title')){
        $image->setAttribute('title', 123);
        $image->setAttribute('alt', 'Рисунок');
    }

}

// Получаем обновленный HTML-код
$content_new = $dom->saveHTML();


return $content_new;
и потом используй
{$_modx->resource.content | replace : '<h3>' : '<h3 class="title-dec">' | mod_image}
28 июля 2023, 08:53
0
[[PdoPage?
  &tpl=`@INLINE [[+pagetitle]]`
  &sortby=`{"id":"ASC"}`
  &limit=`0`
  &where=`{"album":1}`
  &class=`galAlbumItem`
  &loadModels=`gallery`
  &select=`{
    "galAlbumItem": "*",
    "galItem": "*"
  }`
  &leftJoin=`{
    "galItem":{"class":"galItem", "on":"galItem.id = galAlbumItem.item"}
  }`
]]
28 марта 2023, 20:16
+1
Вот только дошло до меня оно!)
21 марта 2023, 08:10
+1
После <?php пропиши, error_reporting(0);, а по хорошему в php8 нужно указывать типизацию!

<?php
error_reporting(0);
if ($modx->context->get('key') !== 'mgr') {
///code
}
25 января 2023, 09:06
0
За YouTube Shorts, отдельный котёл в аду вас ждет!)))
24 января 2023, 06:22
0
Думаю дорохо за Twitter Bootstrap в редизайне color scheme)))
Сделай цену в 500р, я уверен ты больше заработаешь!)
16 января 2023, 12:05
1
+1
Сорян нужное указывать
{var $count_pub+=1}
)))
{var $count_pub = 0}
{var $plus = [
    ["published" => 1,"name"=>"dsdsds"],
    ["published" => 1,"name"=>"xdsdsds"],
]}

{if $plus}
    {foreach $plus as $idx => $item}
       {if $item.published ==1}
            {var $count_pub+=1}
            {$item.name}
        {/if}
    {/foreach}
    RETURN COUNT: {$count_pub}
 {/if}
16 января 2023, 06:50
0
Ага, мой косяк)))
Вот так:
{var $count_pub++}
12 декабря 2022, 07:52
1
+1
Как писал выше Артур!
Создай сниппет к примеру contextKeys:
<?php
/* @var modX $modx */
/* @var modContext $ctxs */
$ctxs_obj = $modx->getCollection('modContext', array('key:!=' => "mgr"));
$ctxs = [];
if ($ctxs_obj) {
    foreach ($ctxs_obj as $ctx) {
        $ctxs[] = $ctx->key;
    }
}

return implode(",", $ctxs);
Далее впихивай его в pdoSitemap
[[!pdoSitemap?
    &tpl=`@INLINE [[+url]][[+date]]`
    &where=`{"hidemenu":0}`
    &context=`[[contextKeys]]`
]]
09 декабря 2022, 13:54
0
Если тебе на оффсайте говорят что не работает! мы тут не можем точно помочь!
09 декабря 2022, 10:06
1
0
Вот так:
<?php
/* @var modX $modx */
$context_key = 'abc';
$context_resID = '317';

//Опция site_url
$site_url = $modx->getOption('site_url', array('context_key'=>$context_key));
var_dump($site_url);

//Поуличить ресурс из котекста
/* @var modResource $resource*/
$resource = $modx->getObject('modResource', array('id'=>$context_resID, 'context_key'=>$context_key));
if ($resource){
    var_dump($resource->pagetitle ." | ".$resource->id);
}
08 декабря 2022, 09:39
0
Муза придет, напишу))) Пока завал на работе)
08 декабря 2022, 06:58
+2
Ну, во-первых, сайт не внушает доверия! (нет контактов, реквизитов, договоров, оферт и тп.)
Во вторых, где гарантия моментального ответа сервака с любой точки мира и в любое время?!
В третьих, за что платить, если есть готовые решения на гите, я к примеру использую пакет faceted-search, и я буду всегда знать что он под рукой и не зависит от левых сервисов!
git: github.com/k-samuel/faceted-search
Ну и сомневаюсь я в круглосуточной поддержке, потому что автор спит или заболел…
07 декабря 2022, 19:44
0
Завтра отрубят это сервис и кирдыК!
30 ноября 2022, 06:53
1
+2
Нужно еще просто было указать в параметрах, еще один ключ stage

$params = array(
    'crontab' => true,    
    'stage' => 'new_session',
    'id' => 2,
);


Готовый рабочий вариант:
<?php
define('MODX_API_MODE', true);
require '../index.php';

/* @var modX $modx */

//Дадим права админа навыполнение процессора
$modx->user = $modx->getObject('modUser', 1);

//id строки в таблице (колонка ID), таб "Прайс-листы"
$row_ID = 2;

/** @var msPriceList $msPriceList */
$msPriceList = $modx->getService('msPriceList', 'msPriceList', MODX_CORE_PATH . 'components/mspricelist/model/');

$corePath = $modx->getOption('mspricelist_core_path', null, $modx->getOption('core_path') . 'components/mspricelist/');
$path = $modx->getOption('processorsPath', $msPriceList->config, $corePath . 'processors/');


/* @var modX $modx */
$params = array(
    'crontab' => true,
    'stage' => 'new_session',
    'id' => $row_ID,
);

/* @var modProcessorResponse $response */
$response = $modx->runProcessor('mgr/file/export', $params, array(
    'processors_path' => $path
));

if ($response->isError()) {
    die($response->getMessage());
} else {
    echo json_encode($response->response);
}