Всего 125 935 комментариев

Роман
11 января 2023, 00:27
0
Да вот тоже не требовалось, но теперь с инстаграма фотки человек добавляет, и фото делает для инсты, а там вертикальная ориентация, а обрезать надо под квадрат, а обьект не всегда в центре, то у нижней части то по центру, то в верхней части, заранее подрезать на пк или телефоне не удобно, а скрипт режет в квадрат из вертикальных фото от центра, и все, приехали. Всегда что то подрезается нужное, в общем, нужно подгонять перед добавлением на сайт фото что бы нужная часть фото была по центру.

moreGallery платное дополнение как я понял, не вариант, и слишком навороченное, много всего лишнего, пробую image+
Артур Шевченко
10 января 2023, 23:45
0
У меня за 4 года работы с modx ни разу заказчик такой функционал в админке не просил. Но я наверное всё же сделаю какой-нибудь простенький доп, пусть будет.
Артур Шевченко
10 января 2023, 23:43
0
Если надо просто обрезать, думаю проще всего использовать Image+
Роман
10 января 2023, 23:20
0
Сейчас буду пробовать, пока нашел это modx.com/extras/package/imagecropper но что то не разберусь как работает
Но конечно это большой минус, в wordpress по умолчанию есть такая возможность
Артур Шевченко
10 января 2023, 23:01
+1
Тогда MIGX. Добавляешь в любом удобном ресурсе ТВ этого типа с нужной конфигурацией и заполняешь. Потом в любом месте сможешь его получить. Для ресурса с ID 1
<!-- FENOM -->
{set $buttons = 1 | resource: 'buttons' | fromJSON}
{foreach $buttons as $button}
{$button | print}
{/foreach}

<!-- phx -->
[[getImageList?
    &tvname=`buttons`
    &tpl=`Button.tpl`
    &docid=`1`
  ]]
Артур Шевченко
10 января 2023, 22:49
0
Мне тут коллеги подсказали. Есть Image+ и moreGallery
Антон
10 января 2023, 22:46
0
Спасибо. Изучу!
Простым языком мне нужно что бы в одном месте добавлять кнопки на страницы. А не в самих страницах это все прописывать…
Артур Шевченко
10 января 2023, 22:38
+1
По-моему максимально непонятно вы описали задачу. То, что на скриншоте, можно сделать на MIGX. Причём тут какой-то чанк вообще не ясно.
Роман
10 января 2023, 20:53
0
Обалдеть, даже не вериться, на Evo версии вспомнил даже была такая возможность, печаль :(
Роман
10 января 2023, 20:17
0
Спасибо, но сейчас по умолчанию SVG ВЕЗДЕ в системе прописан как разрешенный к загрузке и тд формат
Ивaныч
10 января 2023, 19:51
0
Решение может оказаться банальным:
Верхнее меню в админке -> Медиа -> Источники файлов -> ставим галку и редактируем Filesystem -> находим параметр imageExtensions -> через запятую прописываем svg -> жмём кнопку Сохранить -> Проверяем результат.
Александр
10 января 2023, 17:54
0
Добрый, подскажите, в новой версии минишоп не приходит телефон в сообщение телеграма. не подскажите, на что нужно теперь заменить {$contacts->phone}?
Роман
10 января 2023, 12:02
0
PHP Version 7.4.33
imagick module version 3.7.0
iconv library version 2.17
GD library Version 2.3.3

Не знаю в чем дело, по моему много лет использую MODx и он никогда не отображал SVG :( хостинг всегда или timeweb или sherlockhost на обоих одно и тоже, даже пустой MODx поднять, закинуть в файловый менеджер любую SVG и она не будет отображаться как превью других изображений, печаль
Димыч
10 января 2023, 11:28
1
0
Продолжается отъем денег у неграмотного населения?

<img loading=lazy>
https://web.dev/browser-level-image-lazy-loading/

https://caniuse.com/loading-lazy-attr
Vladimir
10 января 2023, 11:07
0
Проблема регистрации была в том что я использовал
$modx
а тут нужно было
$this->modx
Алексей Смирнов
10 января 2023, 11:02
0
Вообще странно.
должны отображаться.
Проверьте версию php, чтобы была 7.4
И через информацию о системе (управление — отчеты — инф. о сист — phpinfo) посмотрите какая версия imagick
должна быть выше 3.5.1
Наумов Алексей
10 января 2023, 10:09
0
Да, что-то я совсем не то написал в своем сниппете)))
Vladimir
10 января 2023, 09:17
0
Вот сделал новый метод.
<?php

if (!class_exists('msPaymentInterface')) {
    require_once dirname(__FILE__, 3) . '/handlers/mspaymenthandler.class.php';
}

class EpayHalykBank extends msPaymentHandler implements msPaymentInterface
{

    /**
    * EpayHalykBank constructor.
    *
    * @param xPDOObject $object
    * @param array $config
    */
    function __construct(xPDOObject $object, $config = array())
    {
        parent::__construct($object, $config);

        $siteUrl = $this->modx->getOption('site_url');
        $assetsUrl = $this->modx->getOption('assets_url') . 'components/minishop2/';
        $paymentUrl = $siteUrl . substr($assetsUrl, 1) . 'payment/mspepayhalykbank.php';

        $this->config = array_merge(array(
            'grant_type' => 'client_credentials',
            'debug' => $modx->getOption('epay_debug'),
            'epayTokenAuthUrl' => $this->config['debug'] == 1 ? $modx->getOption('epay_test_auth_url') : $modx->getOption('epay_prod_auth_url'),
            'payPageUrl' => $this->config['debug'] == 1 ? $modx->getOption('epay_test_pay_page_url') : $modx->getOption('epay_pay_page_url'),
            'scope' => 'webapi usermanagement email_send verification statement statistics payment',
            'client_id' => $modx->getOption('epay_client_id'),
            'client_secret' => $modx->getOption('epay_client_secret'),
            'currency' => $modx->getOption('epay_payment_currency'),
            'terminal_id' => $modx->getOption('epay_terminal_id'),
            'postLink' => $modx->makeUrl($modx->getOption('epay_post_success_page_id')),
            'failurePostLink' => $modx->makeUrl($modx->getOption('epay_post_error_page_id'))
        ), $config);
    }



    /**
    * Create Auth Token
    *
    * @param 
    *
    * @return string
    */
    public function paymentAuth(msOrder $order)
    {
        $authUrl = $this->config['epayTokenAuthUrl'];

        $params = array(
            'grant_type' => $this->config['grant_type'],
            'scope' => $this->config['scope'],
            'client_id' => $this->config['client_id'],
            'client_secret' => $this->config['client_secret'],
            'invoiceID' => $this->getOrderHash($order),
            'amount' => $order->get('cost'),
            'currency' => $this->config['currency'],
            'terminal' => $this->config['terminal_id'],
            'postLink' => $this->config['postLink'],
            'failurePostLink' => $this->config['failurePostLink']
        );

        $myCurl = curl_init();
        curl_setopt_array($myCurl, array(
            CURLOPT_URL => $authUrl,
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POST => true,
            CURLOPT_POSTFIELDS => http_build_query($params)
        ));

        $response = curl_exec($myCurl);
        curl_close($myCurl);

        return json_decode($response, true);

    }


    /**
    * Returns a direct link for continue payment process of existing order
    *
    * @param msOrder $order
    *
    * @return string
    */
    public function getPaymentLink(msOrder $order)
    {

        $authResponse = $this->paymentAuth($order);

        $msAddress = $order->getOne('Address');
        $orderPhone = $msAddress->get('phone');
        $orderEmail = $msAddress->get('email');
        $orderReceiver = $msAddress->get('receiver');
        $orderComment = $msAddress->get('comment');

        if(substr($orderPhone, 0, 1) == '7'){
            $orderPhone = '+' . $orderPhone;
        }
        // if($authResponse['access_token'])
        // 'data' => "{\"statement\":{\"name\":\"Arman      Ali\",\"invoiceID\":\"80000016\"}}",

        return $this->config['payPageUrl'] . '?' .
        http_build_query(array(
            'action' => 'continue',
            'msorder' => $order->get('id'),
            'mscode' => $this->getOrderHash($order),
            'invoiceId' => $this->getOrderHash($order),
            'backLink' => $this->config['postLink'].'?action=success',
            'failureBackLink' => $this->config['failurePostLink'].'?action=error',
            'postLink' => $this->$siteUrl,
            'failurePostLink' => $this->config['failurePostLink'].'?action=error',
            'language' => 'rus',
            'description' => 'Оплата в интернет магазине',
            'accountId' => $this->config['client_id'],
            'terminal' => $this->config['terminal_id'],
            'amount' => $order->get('cost'),
            'data' => array(
                'name' => $orderReceiver,
                'orderId' => $order->get('id'),
                'invoiceId' => $this->getOrderHash($order),
                'phone' => $orderPhone,
                'email' => $orderEmail,                
                'comment' => $orderComment
            ),
            'currency' => $this->config['currency'],
            'phone' => $orderPhone,
            'email' => $orderEmail,
            'cardSave' => true,
            'auth' => $authResponse

        ));
    }
}
Пытаюсь зарегестрировать, так как в доках, через консоль
if ($miniShop2 = $modx->getService('miniShop2')) {
    $miniShop2->addService('payment', 'EpayHalykBank',
        '{core_path}components/minishop2/custom/payment/epayhalykbank.class.php'
    );
}
Где EpayHalykBank это имя класса оплаты. Но когда хочу добавить этот обработчик, он просто не появляется. Пути проверял, имя файла тоже проверил, он содержит class

Можете пожалуйста подсказать, как исправить?