Михаил

Михаил

С нами с 08 марта 2013; Место в рейтинге пользователей: #10

Платежка Stripe для miniShop2



Всем привет!

Вчера обратился человек, с просьбой написать платежку для системы Stripe. Я что-то загнул кажись ему цену за работу, в итоге он пропал. Ну раз просил, видать есть спрос на данную платежку.
Михаил
03 февраля 2021, 18:48
modx.pro
1
406
+22

[РЕШЕНО]Вывод многожественного выбора в ComboBox

Возникла такая проблема. Пытаюсь вывести множественный выбор в выпадающем списке:
Вызов xtype:
{
            xtype: 'combo-local-select',
            name: 'country',
            fieldLabel: 'Страны',
            anchor: '99%'
        }
Сам combo:
var countryData = [['AU', 'Australia'], ['AT', 'Austria'], ['CA', 'Canada'], ['FR', 'France'], ['IT', 'Italy'], ['JP', 'Japan'], ['NZ', 'New Zealand'], ['US', 'USA']];
var countryStore = new Ext.data.SimpleStore({
    fields: ['code', 'name'],
    data: countryData,
    sortInfo: {
        field: 'name',
        direction: 'ASC'
    }
});
Михаил
29 марта 2020, 14:23
modx.pro
198
0

Выдаем вместо кэша html файлик

Предыстория. Возник такой вопрос. Есть какой то сайт, и в нем получается в каталоге было так. В вызов mFilter2 вложено в чанк еще парочка вызовов msProducts ну и так далее. В итоге, раздел грузился за овер 10 секунд. Да, сейчас напишите, что вот надо оптимизировать. Это понятно, но я решил подойти с другой стороны.
Итак, идея была такая, что бы вместо кэша выдавать уже готовую разметку целой страницы.
В итоге, у нас есть плагин:
<?php
switch($modx->event->name){
    case 'OnWebPagePrerender':
        // Тут просто условие, чтобы срабатывал только на категории (можно по сути задавать разные условия)
        if($modx->resource->class_key != 'msCategory'){
            return;
        }
        //Забираю отрендеренный ресурс
        $_output = &$modx->resource->_output; //Забираю отрендеренный ресурс
        // Создаю файлик разметки этого ресурса (можно по сути указать любой путь и так далее, сейчас и так сойдет)
        $file = MODX_BASE_PATH . 'resourcecache/' . $modx->resource->uri . '/' . $modx->resource->id . '.txt';
        if(is_file($file)){
            // Если такой файлик уже существует, то просто отдаю его содержимое
            $output = file_get_contents($file);
        }else{
            // Если файлика нету, то записываю туда отрендеренную страницу
            $cache = $modx->getCacheManager();
            $cache->writeFile($file, $_output);
            $output = $_output;
        }
        
        // Подменяю вывод на готовый
        $modx->resource->_output = $output;
        
        break;
        
    case 'OnLoadWebPageCache':
        // Это событие срабатывает до рендера страницы, оно проверяет, есть ли кэш страницы, и если он есть...
        $file = MODX_BASE_PATH . 'resourcecache/' . $modx->event->params['resource']->uri . '/' . $modx->event->params['resource']->id . '.txt';
        
        //...мы проверяем файлик, так как страница уже грузилась и файлик есть и подменяем кэш на содержимое неашего файлика.
        if(is_file){
            $modx->event->params['resource']->_content = file_get_contents($file);
        }
        
        break;
}
Итог, раздел грузился за 10 секунд (ну да, такой раздел, идея в другом), после плагина уже за 0.006 секунды, так как выдается готовая разметка.
Вопрос знатокам, на сколько такой подход вообще жизнеспособный по отношению к системе? Очень бы хотелось услышать комментарии.

Спасибо за донаты:
@Павел Бигель
Михаил
20 февраля 2020, 10:55
modx.pro
11
683
+16

Alistyle первый шаблон из серии готовых решений для MODX Revolution

За основу был взять шаблон Bootstrap Ecommerce.


Михаил
08 февраля 2020, 11:54
modx.pro
2
1 617
+15

Шпаргалка на все случаи жизни

Полезные ссылки, которые Вам пригодятся в некоторых ситуациях.
Михаил
07 февраля 2020, 21:42
modx.pro
60
1 175
+35

Метод ->remove()

Я и раньше наталкивался на странную работу данного метода, но вот есть такой вопрос.
У нас есть товар, у которого есть опции. Мне надо удалить их.
Делаю так:
$msProductOption = $modx->getIterator('msProduct', array('id' => 1137));

foreach($msProductOption as $option){
    $many = $option->getMany('Options');
    foreach($many as $m){
        $m->set('value', '');
        $m->save();
        //var_dump($m->remove());
    }
}
Данный способ не изменяет значение на пустоту и не удаляет, выдает false
Вроде бы это обычный объект, почему не изменяет значения и не срабатывает удаление?
Михаил
17 сентября 2019, 19:22
modx.pro
1
353
0

Создание CMP для вывода в админку с помощью MIGX

Итак, в прошлой статье я рассказал, как можно создавать свой компонент с помощью MIGX. Теперь я покажу, как можно создавать и редактировать данные в админке.

Кто не знает о чем речь, ссылка на первую статью.
Михаил
20 июня 2019, 18:55
modx.pro
20
1 621
+23

fakeData или самый бесполезный компонент

Может кому необходимо создавать фейковые данные, к примеру имена, фамилии, кредитные карты, время, картинки и так далее.
Михаил
18 мая 2019, 16:19
modx.pro
1 043
+6

Создание таблиц через MIGX

У новичков часто возникает вопрос, как можно быстро создать какую нибудь таблицу и начать с ней работать на пример из сниппета. Я раньше делал всегда через пакет Василия modExtra, выпиливая из него то, что мне не нужно. Но это долго и не совсем удобно, если нужна одна — две таблички. MIGX решает эту проблему.
Михаил
25 апреля 2019, 11:19
modx.pro
28
2 900
+18

MODX setup/ Directory Site Exploit

Перевод статьи

В настоящее время существует эксплойт для сайтов в которых осталась директория setup. Это может дать любому в интернете полный доступ к вашему сайту и возможно к вашему серверу с тривиальной настройкой. Этот каталог никогда не должен оставаться после того, как вы установили систему.
Михаил
25 апреля 2019, 08:50
modx.pro
1 149
+4