vectorserver

vectorserver

С нами с 12 декабря 2018; Место в рейтинге пользователей: #26
vectorserver
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}
vectorserver
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"}
  }`
]]
vectorserver
28 марта 2023, 20:16
+1
Вот только дошло до меня оно!)
vectorserver
21 марта 2023, 08:10
+1
После <?php пропиши, error_reporting(0);, а по хорошему в php8 нужно указывать типизацию!

<?php
error_reporting(0);
if ($modx->context->get('key') !== 'mgr') {
///code
}
vectorserver
25 января 2023, 09:06
0
За YouTube Shorts, отдельный котёл в аду вас ждет!)))
vectorserver
24 января 2023, 06:22
0
Думаю дорохо за Twitter Bootstrap в редизайне color scheme)))
Сделай цену в 500р, я уверен ты больше заработаешь!)
vectorserver
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}
vectorserver
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]]`
]]
vectorserver
09 декабря 2022, 13:54
0
Если тебе на оффсайте говорят что не работает! мы тут не можем точно помочь!
vectorserver
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);
}
vectorserver
08 декабря 2022, 09:39
0
Муза придет, напишу))) Пока завал на работе)
vectorserver
08 декабря 2022, 06:58
+2
Ну, во-первых, сайт не внушает доверия! (нет контактов, реквизитов, договоров, оферт и тп.)
Во вторых, где гарантия моментального ответа сервака с любой точки мира и в любое время?!
В третьих, за что платить, если есть готовые решения на гите, я к примеру использую пакет faceted-search, и я буду всегда знать что он под рукой и не зависит от левых сервисов!
git: github.com/k-samuel/faceted-search
Ну и сомневаюсь я в круглосуточной поддержке, потому что автор спит или заболел…
vectorserver
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);
}
vectorserver
25 ноября 2022, 21:00
0
тогда подготовь массив таким образом чтобы выводились только published! и не е*и мозг!
Группируй массив по ключу
{var $plus = $_modx->resource.field_plus | fromJSON  | groupBypublished }
Сниппет groupBypublished:
<?php
function _group_by($array, $key) {
    $return = array();
    foreach($array as $val) {
        $return[$val[$key]][] = $val;
    }
    return $return;
}
return _group_by($input, 'published');
vectorserver
25 ноября 2022, 20:58
1
0
без итераций никак!
{var $count_pub = 0}
{var $plus = $_modx->resource.field_plus | fromJSON}
{if $plus}
    {foreach $plus as $idx => $item}
        {if $item.published ==1}
        {$count_pub++}
    {/foreach}
    RETURN COUNT: {$count_pub}
{/if}