vectorserver

vectorserver

С нами с 12 декабря 2018; Место в рейтинге пользователей: #44
vectorserver
11 ноября 2022, 22:12
-2
Я смотрю ты вообще критику не воспринимаешь и начинаешь буксовать на того кто не согласен с тобой!
Пост на твой совести (я бы удалил) и админы не причем, ты реально путаешь тематики, оффотпер!
vectorserver
11 ноября 2022, 22:10
-2
Я вот буровую установку собираю! Может тоже пост написать!? Люди сюда зайдут и узнают про MODX (как ты выше писал ?)!
vectorserver
11 ноября 2022, 21:55
-1
Ну пиши это на тематическом портале про этой фреймворк! Зачем нам тут читать про это!?
vectorserver
11 ноября 2022, 21:53
-3
Статья про Nest.js на портале про MODX!? Зачем, для чего!? На хабре полно статей про Nest!

Может превратим тематический сайт в помойку, типа: установка WINDOWS, Centos, настройка VPS и всякие другое про IT!?

Заведи свой блог, кому будет интересно тот подпишется на тебя!
vectorserver
11 ноября 2022, 21:41
0
Создать сниппет модификатор toJson
<?php
return json_encode($input,JSON_UNESCAPED_UNICODE );
Потом применить модификатор: [[+products:toJson]]
[[!checkSend?
    &orderId=`[[+num]]`
    &subtotal=`[[+total.cart_cost]]`
    &phone=`[[+address.phone]]`
    &email=`[[+user.email]]`
    &products=`[[+products:toJson]]`
    &userName=`[[+address.receiver]]`
]]
Ну а далее в сниппете checkSend декодируешь обратно в массив!
vectorserver
04 ноября 2022, 10:51
0
Вот так:
<?php
$user = $modx->getUser();

$ssid = $user->get('sessionid') ? : $_COOKIE[session_name()];

$session = $modx->getObject('modSession',$ssid);

var_dump($session->toArray());
vectorserver
19 октября 2022, 08:05
0
Этот метод используется для загрузки классов отображения ORD xPDO, которые определяют объекты вашего пакета.
boolean addPackage ([string $pkg = ''], [string $path = ''], [string $tablePrefix = ''])
$modx->addPackage('mypkg',MODX_CORE_PATH.'components/mypkg/model/','mypkg_');
vectorserver
18 октября 2022, 14:16
0
boolean setTVValue (str|integer $tv_name OR ID of TV, string $value)
Тип второго параметра должен быть обязательно строкой!
vectorserver
18 октября 2022, 08:08
+1
Попробуй сохранять булев как строку!
$page = $modx->getObject('modResource', 1);
$page->setTVValue('test', 'true');
vectorserver
18 октября 2022, 08:05
+2
setTVValue — В отличие от некоторых других методов API xPDO, метод немедленно сохраняет значения в базе данных, поэтому не нужно вызывать отдельный вызов метода save().
vectorserver
16 октября 2022, 18:40
0
Все твои хотелки есть во FRED, и там есть функция экспорта твоих собранных тем.

vectorserver
12 октября 2022, 15:55
0
Примерно вот так:
<?Php

$sp = session_save_path();
$dir = opendir($sp);

$all = 0;
$inpage = 0;
while ($file = readdir($dir)) {


    {
        $f = strtok($file, "_");


        if ($f == "sess") {

            $file_ar = file($sp . "/" . $file);
            $all++;

            //Тут условия для ввода на странице
            if (strtok($file_ar[0], "|") == "login") {

                $inpage++;
            }

        }
    }
}
closedir($dir);

echo "Всего на сайте: $all 
";
echo "Смотрят эту страницу: $inpage";
vectorserver
12 октября 2022, 14:36
0
Я показал пример вывода сниппета, религией запрещено чтоле0!?
Можешь парсить JSON через модификатор fromJSON, мне удобнее через сниппет родной!
vectorserver
12 октября 2022, 08:43
2
0
В Fenom можно напрямую использовать условный тернарный оператор, не создавая чанк:
{'!getImageList' | snippet : [
    'tvname' => 'test',
    'tpl' => '@CODE: <input type="checkbox" {$check == 1 ? "checked" : ""} >'
    ]
}
Через обычный парсер, нужно создавать чанк и уже в нем прописывать условия
Snippet:
[[!getImageList?
        &tvname=`test`
        &tpl=`option_tpl`
]]
Chunk option_tpl:
<input type="checkbox" [[+check:is=`1`:then=`checked`:else=``]] >
Проверил у себя на тестовом сервере все работает!

Настройки MIGX:
Вкладки формы
[
  {
    "caption": "Заголовок",
    "fields": [
      {
        "field": "image",
        "caption": "Изображение",
        "inputTVtype": "text"
      },
      {
        "field": "check",
        "caption": "checkDATA",
        "inputTVtype": "listbox",
        "inputOptionValues": "Да==1||Нет==0"
      }
    ]
  }
]
Разметка колонок:
[{
  "header": "Изображение",
  "dataIndex": "image"
},{
  "header": "checkDATA",
  "dataIndex": "check"
}]
vectorserver
09 октября 2022, 08:12
0
Вот так работает?
<input type="checkbox" [[!+check:notempty=`checked`]] >
vectorserver
06 октября 2022, 04:25
0
? переменную $debug=0;
vectorserver
05 октября 2022, 13:25
0
Тебе дали 100500, подсказок, разжевали как могли!
Изучай документацию, и методы работы с компонентом minishop, если не понимаешь что к чему, пиши в раздел modx.pro/work
vectorserver
05 октября 2022, 11:45
0
Тогда иди в miniShop2 :: Настройки (скрин), создавай доп. опции, потом вызывай из через метод $product->loadData()->get('options') (пример кода ниже)



Пример:
<?php
$debug = 1;
$array_ids = $modx->getChildIds(8,6,array('context' => 'web'));

foreach ($array_ids as $doc_ID){
    /* @var msProduct $product */
    $product = $modx->getObject('msProduct',$doc_ID);
    if($product){

        //tv price
        $tv_price = $product->getTVValue('price');
        //tv available
        $tv_available = $product->getTVValue('available');



        //msProduct price
        $product->set('price',$tv_price);

        //Дополнительные опции товара
        $options = $product->loadData()->get('options');
        //Добавим значение в доп. опцию товара
        $options['available'][0] = $tv_available;
        //Обновим опции
        $product->set('options', $options);
        //Save
        $product->save();

        //debug
        if($debug){

            var_dump($product->toArray());
            break;
        }



    }

}
vectorserver
05 октября 2022, 07:40
+1
Я использовал для наличия товара menuindex, или оставляй в TV как есть.
Все опции товара можно посмотреть через var_dump($product->toArray()) (скрин)


<?php
$parent = 8;
$debug = 1;

/* @var modX $modx*/
$array_ids = $modx->getChildIds($parent,6,array('context' => 'web'));

foreach ($array_ids as $doc_ID){
    /* @var msProduct $product */
    $product = $modx->getObject('msProduct',$doc_ID);
    if($product){
        //FILTERS
        //$dataOpt = $product->getOne('Data');
        //$optionKeys = $dataOpt->getOptionKeys();
        //var_dump($optionKeys);



        //tv price
        $tv_price = $product->getTVValue('price');

        //tv available
        $tv_available = $product->getTVValue('available');

        //msProduct price
        $product->set('price',$tv_price);

        //msProduct available to menuindex
        $product->set('menuindex',$tv_available);

        //Save
        $product->save();

        //debug
        if($debug) var_dump($product->toArray()); break;

    }

}
vectorserver
04 октября 2022, 19:53
+1
А что мешает работать через API!?
Вот пример синхры tv поля price:
<?php
/* @var msProduct $resource */
$resource = $modx->getObject('msProduct', $prod_ID);

//tv
$tv_price = $resource->getTVValue('price');

//Opt
$resource->set('price',$tv_price);

$resource->save();


//debug
var_dump($resource->toArray());