Роман Воропаев (Volk)
С нами с 03 декабря 2015; Место в рейтинге пользователей: #80Где хранятся непрочитанные комментарии?
Мне нужно вывести в личном кабинете пользователя количество непрочитанных им комментариев в разных разделах.
Где хранится информация о непрочитанных комментариях? Что-то не могу найти в таблицах базы…
Где хранится информация о непрочитанных комментариях? Что-то не могу найти в таблицах базы…
Догенерация изображений
Столкнулся с такой проблемой.
Имеется сайт, на котором порядка 10гб (порядка 70000 записей в modx_ms2_resource_files — и это только оригиналы) занимают только оригиналы фотографий в ms2gallery.
Появилась необходимость перенести все файлы в облако и добавить новые размеры превью.
Воспользовался таким скриптом
Но ночью из-за внутреннего сбоя в selectel.ru — наш аккаунт был отключен и соответственно все пошло по @#$%^.
На данный момент аккаунт на selectel.ru включен и проблема устранена, но заново сгенерировать весь объем превью (~240000) уже не получается.
Отсюда вопрос, как генерировать превью без удаления записей из БД.
Как произвести догенерацию превью, не трогая ранее созданные записи в БД и файлы?
Имеется сайт, на котором порядка 10гб (порядка 70000 записей в modx_ms2_resource_files — и это только оригиналы) занимают только оригиналы фотографий в ms2gallery.
Появилась необходимость перенести все файлы в облако и добавить новые размеры превью.
Воспользовался таким скриптом
<?php
define('MODX_API_MODE', true);
require 'index.php';
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');
$modx->addPackage('ms2gallery', MODX_CORE_PATH . 'components/ms2gallery/model/');
$files = $modx->getIterator('msResourceFile', array('parent' => 0));
foreach ($files as $file) {
$children = $file->getMany('Children');
foreach ($children as $child) {
$child->remove();
}
$file->generateThumbnails();
}
echo microtime(true) - $modx->startTime;
Само собой, скрипт запускал из консоли сервера.Но ночью из-за внутреннего сбоя в selectel.ru — наш аккаунт был отключен и соответственно все пошло по @#$%^.
На данный момент аккаунт на selectel.ru включен и проблема устранена, но заново сгенерировать весь объем превью (~240000) уже не получается.
Как произвести догенерацию превью, не трогая ранее созданные записи в БД и файлы?
mFilter2 и кастомные таблицы
Вчера начал делать фильтрацию таблицы с фирмами на mFilter2. Сначало я создал файл кастомного класса:
core/components/msearch2/custom/filters/custom.class.php со следующим содержимым:
core/components/msearch2/custom/filters/custom.class.php со следующим содержимым:
<?php
class CustomFilter extends mse2FiltersHandler {
function __construct(mSearch2 &$mse2,array $config = array()) {
parent::__construct($mse2, $config);
$this->modx->addPackage('spromo' ,MODX_CORE_PATH.'components/spromo/model/');
$this->modx->addPackage('gl' ,MODX_CORE_PATH.'components/gl/model/');
$this->modx->addPackage('voteforms' ,MODX_CORE_PATH.'components/voteforms/model/');
}
public function getSpromoCompaniesValues(array $fields, array $ids) {
$filters = array();
$no_id = false;
if (!in_array('id', $fields)) {
$fields[] = 'id';
$no_id = true;
}
$q = $this->modx->newQuery('SpromoCompanies');
$q->select(implode(',', $fields));
$q->where(array('SpromoCompanies.id:IN' => $ids));
$tstart = microtime(true);
if ($q->prepare() && $q->stmt->execute()) {
$this->modx->queryTime += microtime(true) - $tstart;
$this->modx->executedQueries++;
while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
foreach ($row as $k => $v) {
$v = trim($v);
if ($k == 'category_id') {
if ($row['parent'] == $v) {continue;}
else {$k = 'parent';}
}
if ($v == '' || ($k == 'id' && $no_id)) {
continue;
}
elseif (isset($filters[$k][$v])) {
$filters[$k][$v][] = $row['id'];
}
else {
$filters[$k][$v] = array($row['id']);
}
}
}
}
else {
$this->modx->log(modX::LOG_LEVEL_ERROR, "[mSearch2] Error on get filter params.\nQuery: ".$q->toSql()."\nResponse: ".print_r($q->stmt->errorInfo(),1));
}
return $filters;
}
}
Выбор нескольких файлов через файловый менеджер
Делаю новостой блог, и нужно, чтоб к каждой новости можно было прикреплять картинки (5-25 шт).
Главное, чтоб не по одной выбирать (как через migx), и чтоб не вручную вписывать путя.
Главное, чтоб не по одной выбирать (как через migx), и чтоб не вручную вписывать путя.
Запретить добавление в корзину
Как можно запретить добавление в корзину?
miniShop2.Callbacks.add('Cart.add.before', 'restrict_cart', function() {
miniShop2.Message.error('Добавление товаров в корзину запрещено!');
return false;
});
не помогает (( товар все равно проходит, что делать может плагин какой можно на модиксе написать? но желательно все таки через джс Свойства класса
Собственно вопрос прост: какие свойства у класса $order?
Т.е. имеем мы класс $order. Можем получить данные о пользователе $order->getOne('User'); А что и как мы можем еще получить?
Как вообще можно узнать свойства класса?
Т.е. имеем мы класс $order. Можем получить данные о пользователе $order->getOne('User'); А что и как мы можем еще получить?
Как вообще можно узнать свойства класса?
Расширение полей заказа в админке Minishop2
Добрый день.
Необходимо поле «Получатель» разбить на два: Имя и Фамилия. Собственно, получилось сделать достаточно просто, для страницы заказа и страницы профиля, через настройки Minishop2. Но, как мне добавить еще одно поле на вкладку «Адрес» при просмотре заказа в админке?
Нагуглил такой способ, но он не работает с версией 2.4, на сколько я понимаю.
Необходимо поле «Получатель» разбить на два: Имя и Фамилия. Собственно, получилось сделать достаточно просто, для страницы заказа и страницы профиля, через настройки Minishop2. Но, как мне добавить еще одно поле на вкладку «Адрес» при просмотре заказа в админке?
Нагуглил такой способ, но он не работает с версией 2.4, на сколько я понимаю.
pdoResources разбивка результатов по блокам
Всем привет. Столкнулся с такой задачей, нужно на сайте вывести карусель с изображениями и сделать так чтобы в каждом блоке было по 4 изображения. Вот пример:
Вывод пока такой сделал:
<div class="item active">
<div class="row">
<div class="col-sm-3 col-xs-6"><a href="#x"><img src="http://placehold.it/300x300" alt="Image" class="img-responsive"></a></div>
<div class="col-sm-3 col-xs-6"><a href="#x"><img src="http://placehold.it/300x300" alt="Image" class="img-responsive"></a></div>
<div class="col-sm-3 col-xs-6"><a href="#x"><img src="http://placehold.it/300x300" alt="Image" class="img-responsive"></a></div>
<div class="col-sm-3 col-xs-6"><a href="#x"><img src="http://placehold.it/300x300" alt="Image" class="img-responsive"></a></div>
</div>
</div>
<div class="item">
<div class="row">
<div class="col-sm-3 col-xs-6"><a href="#x col-xs-6" class="thumbnail"><img src="http://placehold.it/300x300" alt="Image" class="img-responsive"></a></div>
<div class="col-sm-3 col-xs-6"><a href="#x" class="thumbnail"><img src="http://placehold.it/300x300" alt="Image" class="img-responsive"></a></div>
<div class="col-sm-3 col-xs-6"><a href="#x" class="thumbnail"><img src="http://placehold.it/300x300" alt="Image" class="img-responsive"></a></div>
<div class="col-sm-3 col-xs-6"><a href="#x" class="thumbnail"><img src="http://placehold.it/300x300" alt="Image" class="img-responsive"></a></div>
</div>
</div>
Тоесть блок с class=«item» должен повторяться через 4 добавленных изображения. Есть ли стандартное решение без велосипедов?Вывод пока такой сделал:
[[!pdoResources?
&parents=`19,20,21,22,23`
&includeTVs=`image`
&tplWrapper=`@INLINE <div class="item "><div class="row">[[+output]]</div></div>`
&tpl=`@INLINE <div class="col-sm-3 col-xs-6"><a href="#x"><img src="http://placehold.it/300x300" alt="Image" class="img-responsive"></a></div>`
]]
Атака на miniShop2 или как добавить reCAPTCHA?!
Доброго утра!
Сегодня ночью наблюдал приключения с интернет-магазином, заказы падали каждую секунду,
Причём без товарных позиций. Как это возможно?!)
Началось всё в01:41 закончилось04:37. Всего было создано 2392(!!!) пустых заказа
Такое у меня впервые!) И я в некотором замешательстве. Как такое может быть, и что нужно сделать, чтобы такого не повторилось?
Сегодня ночью наблюдал приключения с интернет-магазином, заказы падали каждую секунду,
Причём без товарных позиций. Как это возможно?!)
Началось всё в01:41 закончилось04:37. Всего было создано 2392(!!!) пустых заказа
Такое у меня впервые!) И я в некотором замешательстве. Как такое может быть, и что нужно сделать, чтобы такого не повторилось?
Авторизация пользователя при первом заказе
Всем привет.
Возник вопрос по miniShop2 — в документации сказанно что при формлении первого заказа когда пользователя ещё нет в системе класс обработчик регистрирует его со случайным паролем и авторизует, но где авторизует не сказано.
Проблема в следующем — заказ на сайте принимается без оплаты просто оформление, на финальной странице говорим пользователю спасибо и даём ссылку в личный кабинет где можно будет оплатить заказ, но переходя по ней он попадает на страницу авторизации, где надо вводить пароль — а он его не знает. Так вот не понятно где именно происходит авторизация при оформлении заказа нового пользователя, по идее он бы должен был авторизоваться в текущем контексте и без проблем перейдя по ссылке уже оказаться в личном кабинете, но так не случилось. Подскажите кто как решал данный вопрос.
Возник вопрос по miniShop2 — в документации сказанно что при формлении первого заказа когда пользователя ещё нет в системе класс обработчик регистрирует его со случайным паролем и авторизует, но где авторизует не сказано.
Проблема в следующем — заказ на сайте принимается без оплаты просто оформление, на финальной странице говорим пользователю спасибо и даём ссылку в личный кабинет где можно будет оплатить заказ, но переходя по ней он попадает на страницу авторизации, где надо вводить пароль — а он его не знает. Так вот не понятно где именно происходит авторизация при оформлении заказа нового пользователя, по идее он бы должен был авторизоваться в текущем контексте и без проблем перейдя по ссылке уже оказаться в личном кабинете, но так не случилось. Подскажите кто как решал данный вопрос.