Михаил
С нами с 08 марта 2013; Место в рейтинге пользователей: #15Платежка Stripe для miniShop2
Всем привет!
Вчера обратился человек, с просьбой написать платежку для системы Stripe. Я что-то загнул кажись ему цену за работу, в итоге он пропал. Ну раз просил, видать есть спрос на данную платежку.
[РЕШЕНО]Вывод многожественного выбора в ComboBox
Возникла такая проблема. Пытаюсь вывести множественный выбор в выпадающем списке:
Вызов xtype:
Вызов 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'
}
});
Выдаем вместо кэша 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 секунды, так как выдается готовая разметка.Вопрос знатокам, на сколько такой подход вообще жизнеспособный по отношению к системе? Очень бы хотелось услышать комментарии.
Спасибо за донаты:
@Павел Бигель
Шпаргалка на все случаи жизни
Полезные ссылки, которые Вам пригодятся в некоторых ситуациях.
Метод ->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Вроде бы это обычный объект, почему не изменяет значения и не срабатывает удаление?
Создание CMP для вывода в админку с помощью MIGX
Итак, в прошлой статье я рассказал, как можно создавать свой компонент с помощью MIGX. Теперь я покажу, как можно создавать и редактировать данные в админке.
Кто не знает о чем речь, ссылка на первую статью.
Кто не знает о чем речь, ссылка на первую статью.
fakeData или самый бесполезный компонент
Может кому необходимо создавать фейковые данные, к примеру имена, фамилии, кредитные карты, время, картинки и так далее.
Создание таблиц через MIGX
У новичков часто возникает вопрос, как можно быстро создать какую нибудь таблицу и начать с ней работать на пример из сниппета. Я раньше делал всегда через пакет Василия modExtra, выпиливая из него то, что мне не нужно. Но это долго и не совсем удобно, если нужна одна — две таблички. MIGX решает эту проблему.
MODX setup/ Directory Site Exploit
Перевод статьи
В настоящее время существует эксплойт для сайтов в которых осталась директория setup. Это может дать любому в интернете полный доступ к вашему сайту и возможно к вашему серверу с тривиальной настройкой. Этот каталог никогда не должен оставаться после того, как вы установили систему.
В настоящее время существует эксплойт для сайтов в которых осталась директория setup. Это может дать любому в интернете полный доступ к вашему сайту и возможно к вашему серверу с тривиальной настройкой. Этот каталог никогда не должен оставаться после того, как вы установили систему.