Роман Воропаев (Volk)
С нами с 03 декабря 2015; Место в рейтинге пользователей: #123Где хранятся непрочитанные комментарии?
            Мне нужно вывести в личном кабинете пользователя количество непрочитанных им комментариев в разных разделах. 

Где хранится информация о непрочитанных комментариях? Что-то не могу найти в таблицах базы…
        
        
        
        
    
Где хранится информация о непрочитанных комментариях? Что-то не могу найти в таблицах базы…
Догенерация изображений
            Столкнулся с такой проблемой.
Имеется сайт, на котором порядка 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 — в документации сказанно что при формлении первого заказа когда пользователя ещё нет в системе класс обработчик регистрирует его со случайным паролем и авторизует, но где авторизует не сказано.
Проблема в следующем — заказ на сайте принимается без оплаты просто оформление, на финальной странице говорим пользователю спасибо и даём ссылку в личный кабинет где можно будет оплатить заказ, но переходя по ней он попадает на страницу авторизации, где надо вводить пароль — а он его не знает. Так вот не понятно где именно происходит авторизация при оформлении заказа нового пользователя, по идее он бы должен был авторизоваться в текущем контексте и без проблем перейдя по ссылке уже оказаться в личном кабинете, но так не случилось. Подскажите кто как решал данный вопрос.