Всего 125 983 комментария

Николай Савин
01 декабря 2021, 09:31
0
Сначала написал потом, подумал о контексте вопроса. Конкретно в обсуждаемом компоненте не видел как сбрасывается кэш, и сбрасывается ли вообще.
Николай Савин
01 декабря 2021, 09:28
0
Это на самом деле очень просто делается
Вот такой метод есть у кэш менеджера для очистки кэша конкретного ресурса (товар это же ресурс)
$modx->cacheManager->delete($product_id, array(xPDO::OPT_CACHE_KEY => 'resource/web/resources'))
Влад
01 декабря 2021, 01:23
0
Добрый день!

Может кто-то сталкивался с необходимостью сохранения кэша всего сайта при обновлении цен через крон?

Вопрос в возможности сбрасывать кэш непосредственно у товара
Наумов Алексей
30 ноября 2021, 18:23
+1
Есть в miniShop2 скрипт для импорта из csv

Он же умеет создавать ресурсы как при запуске из браузера, так и в режиме запуска из командной строки.
Павел Бигель
30 ноября 2021, 18:22
0
Ссылок/примеров в интернете хватает по этому запросу

Я просто не совсем понимаю, если у меня скрипт будет автоматически логинится, то будет получать права. Он доступен через урл, напрямую. Т.е. «Иван» зайдет по адресу и получит сессию с правами?
и будет ли работать этот прием для CRON
Для этого файл закрывают средствами вебсервера
Константин Ильин
30 ноября 2021, 17:24
0
Есть ли ссылки примеры?

Я просто не совсем понимаю, если у меня скрипт будет автоматически логинится, то будет получать права. Он доступен через урл, напрямую. Т.е. «Иван» зайдет по адресу и получит сессию с правами?
и будет ли работать этот прием для CRON
Павел Бигель
30 ноября 2021, 14:26
0
Так делать не стоит. Используйте все же процессоры
Для того чтобы права появились, используйте security/login процессор
Константин Ильин
30 ноября 2021, 10:24
0
Тоже про все это подумал, решил не рисковать с правами. Создавать процессоры и т.п.
Сделал через newObject. Думал проблема будет с опциями, а там все просто оказалось.

Кому пригодится
// Нестандартные опции, cтандартные опции товара записываются вместе с полями товара
$options['idads'] = $idADS;
$options['floor'] = $floor;

$newProduct = $modx->newObject('msProduct');
$alias = $newProduct->cleanAlias($pagetitle);

//Поля товара(ресурса)
$arrRes = [
    'pagetitle' => $pagetitle,
    'published' => 1,
    'alias' => $alias,
    'content' => $ADS['description'] ?: '',
    'parent' => $parent,
    'show_in_tree' => 0,
    'template' => 20,

    //Стандартные опции товара
    'color' => ['синий', 'красный']
    'old_price' => 0,
    'price' => $ADS['price']['value'] ?: 0,
];

// Можно было использовать fromArray()
foreach ($arrRes as $field => $v){
    $newProduct->set($field,$v);
}

// Собственно, запись нестандартных опций, простая передача массива
$newProduct->set('options', $options);

// сохраняем
$newProduct->save();
Сейчас проблема с загрузкой изображений gallery/upload, там тоже через процессор, видимо тоже права, разбираться надо
Наумов Алексей
30 ноября 2021, 09:56
+1
Или создавать документы через API, в целом это нормальный вариант, главное создать правильно (заполнить все поля имею ввиду) и проследить, чтобы были обработаны ситуации, если у вас плагины есть на события создания/редактирования документов. Ну и кеш там почистить потом.
Или же в скрипте залогиниться в админку под пользователем-админом (менеджером), что как бы не особо безопасно…
Или же настроить права так, чтобы аноним мог создать страницу, что тоже не гуд.
Виктор
29 ноября 2021, 22:30
0
сорри, лишнего понаписал. а как доглядел, удалить уже нельзя
Алексей
29 ноября 2021, 20:56
0
сделал… правда получилось через костыль как-то:
создал ключи для русского и английского fgg__lang со значениями ru и en
вставил
<html language="[[-язык]]{'fgg__lang' | lexicon}">
и в js:
var language = document.getElementsByTagName("html")[0].getAttribute('language'); if (language == 'en') { from_text = 'from ' } else { from_text = 'от '} .....  .html(from_text   ....
Алексей
29 ноября 2021, 20:36
0
в принципе вывод в js вроде как работает, ошибок нет

но в первой же строке в инспекторе при любом выбранном языке
<html lang="ru" class="js">
Алексей
29 ноября 2021, 19:18
0
Вставляю так
var lang = $('html').attr('lang'); if (lang == 'ru') { from_text = 'от ';  } else { from_text = 'from ';}
            $('.1round .airplane_'+this.airplane_id).show();
             aprox_summ=obj_data_flight[this.airplane_id]['price'];
              $('.1round .airplane_'+this.airplane_id+' .aproximitly_summ').html(+from_text +aprox_summ+' €');
и Вжух!, поиск падает
Евгений
29 ноября 2021, 18:52
0
сортировать то да, но там есть еще поля в настройках для сортировки по умолчанию
до и после
так вот паблишедон стоит работает а по тв полю внедрить не выходит чот :(
fixedpage=tv_fixedpage:desc
Суэзи
29 ноября 2021, 18:22
0
А в итоге проблемы была в том, что в типах содержимого кто-то по ошибке удалил MIMI-тип text/html
Николай Савин
29 ноября 2021, 17:30
0
Виктор не нужно дублировать один и тот же комментарий в разных топиках
Виктор
29 ноября 2021, 16:39
0
всё оказалось просто — новый поддомен нужно было сделать как синоним к основному)
Виктор
29 ноября 2021, 16:39
0
всё оказалось просто — новый поддомен нужно было сделать как синоним к основному)
Алексей
29 ноября 2021, 16:13
0
<html lang="[[++cultureKey]]">
Ладно — прописал в чанке header

а как теперь в js вставить
var lang = $('html').attr('lang');
так чтобы при английском языке значение вывода .html было FROM, а в русском ОТ?
Тодор
29 ноября 2021, 15:38
1
0
foreach($data as $item){
    /*
    $item = array(
        [name] => Название поризводителя
        [resource] => 
        [country] => 
        [logo] => images/logo.png
        [address] => 
        [phone] => 
        [fax] => 
        [email] => 
        [description] => 
    )
    */
    $vendor = $modx->newObject('msVendor', $item);
    $vendor->save();
}