PG

PG

С нами с 01 декабря 2013; Место в рейтинге пользователей: #78
Отправить деньги
PG
PG
17 ноября 2020, 15:36
0
вполне подходящее решение, даже если и учесть что массива там быть не должно, но оно и не сломает ничего
PG
PG
17 ноября 2020, 12:47
+2
if($this->options instanceof \Countable){
  ....   
}
думаю так не сломается ничего, но нужно проверить
PG
PG
17 ноября 2020, 12:39
0
is_countable
ввели в PHP 7.3 так что это многим сломает работу компонента.
PG
PG
28 июня 2019, 16:53
0
причиной может быть отсутствие расширения webp в этих системных настройках 'upload_files','upload_images'
подробнее тут
PG
PG
22 июня 2019, 00:44
0
Вы вероятно не дочитали статью до конца. В скором времени планирую выделить на это отдельную статью
PG
PG
22 июня 2019, 00:37
0
Спасибо, давно уже туда не заглядывал.
PG
PG
22 июня 2019, 00:36
0
Я об этом даже и не думал, просто не использую оригиналы изображения в выводе. Менеджеры часто грузят слишком большие изображения. Даже если учесть что при загрузке minishop2 может ужать до указанных размеров, я просто создаю для них отельные превью и ограничиваю их размер.
Но к примеру можно написать плагин который будет проводить эту процедуру с оригинальными изображениями.
PG
PG
17 июня 2019, 14:10
+1
Для начала вам следует прочесть Лицензионное соглашение, это платный редактор, и просто так его нельзя использовать.
Но если вернутся к вопросу, тогда лучше посмотреть как это сделано у аналогов.
TinyMCE Rich Text Editor, TinyMCE и еще не готовый Summernote.
Суть в том что вам нужно либо сделать транспортный пакет если есть желание его удобно переносить между проектами, обновлять итд. Либо же просто создать пару плагинов MODX и там уже прописать инициализацию редактора.
PG
PG
18 марта 2019, 14:51
0
проверил у себя, получается что пока по непонятным причинам картинки из webp не получается конвертировать. Но такой ошибки не наблюдаю, вероятно у тебя проблема с самой картинкой
PG
PG
14 марта 2019, 10:52
+1
Вот это новость
за столько лет работы с MODX это окно ни разу не видел

Век живи — век учись.
PG
PG
14 марта 2019, 10:47
0
Это можно
$props['imageExtensions']['value'] .= ',webp';
$props['allowedFileTypes']['value'] .= ',webp';
Это нет
$props['thumbnailType']['options'][] = ['text'=>'webp','value'=>'webp'];
PG
PG
14 марта 2019, 10:45
0
Предложенный мною вариант один раз запишет данные куда нужно.
Не совсем понимаю для чего делать эти манипуляции при каждом обращении к источникам.
Тем более что уже отправлен PR и в дальнейшем эта штука будет работать из коробки
PG
PG
12 июля 2018, 20:30
+1
в чанке письма администратору нужно вывести необходимые плейсхолдеры

Ф.И.О. — [[+address.receiver]]
E-mail — [[+user.email]]
Телефон — [[+address.phone]]
Индекс — [[+address.index]]
Страна — [[+address.country]]
Регион — [[+address.region]]
Город — [[+address.city]]
Метро —[[+address.metro]]
Улица — [[+address.street]]
Дом — [[+address.building]]
Квартира — [[+address.room]]
Комментарий к заказу — [[+address.comment]]

название чанка указан в настройках статусов заказа
PG
PG
27 июня 2018, 07:07
0
Пример выгрузки заказов с другой БД, думаю адаптировать под создание и обновление ресурсов не будет проблемой

$user = 'user';
$pass = 'password';
$host = '127.0.0.1';
$dbname = 'dbname';

$conn = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass,
    array(
        PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
    ));


$mainSQL = "SELECT * FROM `orders` ";
$sth = $conn->prepare($mainSQL);
$sth->setFetchMode(PDO::FETCH_ASSOC);
$sth->execute();
$retRows = $sth->fetchAll();

foreach ($retRows as  $item){
    $uid = 0;
    if($us = $modx->getObject('modUserProfile', array('email' => $item['customers_email_address']))){
        $uid = $us->get('internalKey');
    } else {
        $user = $modx->newObject('modUser');
        $user->set('username', $item['customers_email_address']);
        $user->set('password', '');
        $user->save();
        $profile = $modx->newObject('modUserProfile');
        $profile->set('fullname', $item['customers_name']);
        $profile->set('email', $item['customers_email_address']);
        $profile->set('phone', $item['customers_telephone']);
        $user->addOne($profile);
        $profile->save();
        $user->save();
        $uid = $user->get('id');
    }

    $adr = $modx->newObject('msOrderAddress');
    $arr = [
        'user_id'=>$uid,
        'receiver'=>$item['customers_name'],
        'createdon'=>$item['date_purchased'],
        'updatedon'=>$item['last_modified'],
        'phone'=>$item['customers_telephone'],
        'country'=>$item['customers_country'],
        'index'=>$item['customers_postcode'],
        'region'=>$item['customers_state'],
        'city'=>$item['customers_city'],
        'street'=>$item['customers_street_address'],
        'metro'=>$item['customers_company'],
    ];
    $pa = $item['payment_method'];
    $adr->fromArray($arr);
    $adr->save();
    $order = $modx->newObject('msOrder');
    $arr = [
        'user_id'=>$uid,
        'createdon'=>$item['date_purchased'],
        'updatedon'=>$item['last_modified'],
        'num'=>$item['orders_id'],
        'status'=>$item['orders_status'],
        'payment'=>$item['payment'],
        'delivery'=>1,
        'address'=>$adr->get('id'),
        'cost'=>$item['cost'],
        'cart_cost'=>$item['cost'],
        'delivery_cost'=>0,
        'weight'=>0,
    ];
    $order->fromArray($arr);
    $order->save();
}
PG
PG
23 июня 2018, 17:30
0
Вполне себе работает, можно тут проверить
s14417.h10.modhost.pro/manager/?a=resource/update&id=1

1) s14417 2BziDdJcFLqn
2) s14417_copy MWVY9Tn9
PG
PG
23 июня 2018, 15:37
0
да, но это работает только в админке
PG
PG
23 июня 2018, 15:13
0
Можно, и реализация очень проста
нужно создать плагин на событие «OnMODXInit»

if($modx->user->get('id') == 1){
            $modx->setOption('which_editor','TinyMCE');
        }
в этом случае по умолчанию в системных настройках должен стоять Ace
PG
PG
16 мая 2018, 12:09
+1
Ставьте пробел после "{" или используйте тег
{ignore}{/ignore}
Игнорирование кода

Такой код должен работать
<script type="text/javascript" src="//vk.com/js/api/openapi.js?154"></script>
<!-- VK Widget -->
<div id="vk_community_messages"></div>
<script type="text/javascript">
VK.Widgets.CommunityMessages("vk_community_messages", 130142983, { expandTimeout: "5000",disableExpandChatSound: "1",disableNewMessagesSound: "1",tooltipButtonText: "Всем добра"});
</script>
PG
PG
15 мая 2018, 17:35
0
Если нужно отключить переход при нажатии на «быстрый просмотр» тогда так
$('body').on('click','.item-fast-view', function(e){ e.preventDefault() })
PG
PG
10 мая 2018, 10:55
1
0
так должно работать
if ($user = $modx->getObject('modUser', 15)) {
	$modx->user = $user;
	$modx->user->addSessionContext('web');
	$modx->getUser('web', true);
}