Слава

Слава

С нами с 10 июня 2015; Место в рейтинге пользователей: #334
Слава
15 октября 2019, 09:40
0
Собственно развернул сайт. В итоге получилось порядка 800 000 комментариев и тикетов более 300 000.
Вcе работает более менее нормально на VPS.
Но имеется проблема в работе административной части, а именно в выводе вкладки с комментариями: joxi.ru/KAgBwwMcEW3qo2

Не очень понятно толи аяксом пытаеся всё подтянуть то ли еще как-то, т.е. очень длинны ответ идет.
А нужно всего лишь получить количество записей и вывести первую страницу пагинации, а далее выводить постранично все отсальное. Понятно что сортировка влияет на скорость, но все равно всё очень долго работает и прогружает раз с 5 после обновления и запроса страницы- это только 1 страницу пагинации.

Может есть смысл написать Василию чтобы поправили работы именно административной части сайта?
Слава
30 августа 2019, 14:39
0
Василий подскажите пожалуйста:
Планируем на тикетах сделать сервис отзывов.
По скромным оценкам будет 1,5 миллионов отзывов.

Вопрос:
1. Потянет ли Tickets такие объёмы?
2. Есть возможность проводить поиск по самим комментариям в тикете?

Спасибо
Слава
19 января 2018, 07:28
0
Доброе утро. Так наверно не получится.
просто загрузите в цикле:

$all_img = Array
(
'0' = site.ru/images/projects/30-24.jpg',
'1' = site.ru/images/projects/30-24_c.jpg',
'2' = 'site.ru/images/projects/30-24_1.jpg',
'3' = 'site.ru/images/projects/30-24_2.jpg',
);

foreach($all_img as $value){

$response = $this->modx->runProcessor('gallery/upload', array(
'id' = 5,
'file' = $value,
'media_source' => $modx->getOption('ms2_product_source_default'),
), array('processors_path' => '/core/components/minishop2/processors/mgr/'));

}
Слава
18 октября 2017, 20:21
0
Да, все получилось.

Внутри чанка вопроса вызвал getComments прописал дополнительное условие, что родитель текущий элемент.

Подскажите еще пожалуйста такой момент, при отправке комментария, не вылетает сообщение об успешной отправке. Как активировать. Сообщения о незаполненной капче или обязательных полях появляют.

Спасибо
Слава
18 октября 2017, 14:14
0
Спасибо, попробую
Слава
20 августа 2016, 16:08
0
Хорошо бы добавить связанные опции. Т.е. 2 или более опций, выбрав одну — становится доступна другая которая ей принадлежит и соответственно привязать к ним цену.
Слава
20 марта 2016, 18:44
0
Добрый день.
Подскажите, что не так:
Имеется доставка и необходимо чтобы при определенной сумме заказа менялась стоимость доставки.
Сделал по примеру, общая сумма меняется, при оформлении заказа получается, что общая сумма становится равно 0, а собственно сама доставка становится равной сумме заказа + доставка. нет разграничения. Как правильно сделать кастомилизацию?
Может есть примеры?

<?php
class msxxxDeliveryHandler extends msDeliveryHandler{
    public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {
        $cart = $this->ms2->cart->status();
        $total = $_SESSION['minishop2']['mode_total'];
        
 if (($cart['total_cost'] >= 0) AND ($cart['total_cost'] <= 1100))
                                                        {
                                                                $cost = $cart['total_cost'] + 250;
                                                        }
                                                if (($cart['total_cost'] >= 1101) AND ($cart['total_cost'] <= 3500))
                                                        {
                                                                $cost = $cart['total_cost'] + 100;
                                                        }

        return $cost;
    }
}


Вот что получается: prnt.sc/ahnovc, что не верно.
Слава
19 марта 2016, 17:16
0
Создал в раздела следующие файлы:
/public_html/core/components/minishop2/custom/order/msDeliveryHandler_free10.class.php
/public_html/core/components/minishop2/custom/delivery/msDeliveryHandler_free10.class.php

Прописал следующий код:

<?php 
if(!class_exists('msOrderInterface')) {
	require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msorderhandler.class.php';
}

class mynewOrderHandler extends msOrderHandler implements msOrderInterface {

	public function getCost($with_cart = true, $only_cost = false) {
		$cart = $this->ms2->cart->status();
		$cost = $with_cart
			? $cart['total_cost']
			: 0;
		$deliveryCost = 0;


		/* @var msDelivery $delivery */
	if ($delivery = $this->modx->getObject('msDelivery', $this->order['delivery'])) {
			$cost = $delivery->getCost($this, $cost);
			$deliveryCost = $delivery->getCost($this, 0);
		}

		/* @var msPayment $payment */
		if ($payment = $this->modx->getObject('msPayment', $this->order['payment'])) {
			$cost = $payment->getCost($this, $cost);
		}




		return $only_cost
			? $cost
			: $this->success('', array(
									'cost' => $cost
									,'delivery_cost'=>$deliveryCost
									,'delivery_id'=> $this->order['delivery']['id']
									)
							);
	}
}
и

<?php
                class msDeliveryHandler_free10 extends msDeliveryHandler
                        {
                                public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0)
                                        {
                                                $cart = $this->ms2->cart->status();
                                                if (($cart['total_cost'] >= 0) AND ($cart['total_cost'] <= 1100))
                                                        {
                                                                $cost = $cart['total_cost'] + 250;
                                                        }
                                                if (($cart['total_cost'] >= 1101) AND ($cart['total_cost'] <= 3500))
                                                        {
                                                                $cost = $cart['total_cost'] + 100;
                                                        }
                                                return $cost;
                                        }
                        }

В самой доставке которая будет обрабатываться задал класс: prnt.sc/ah8b2y msDeliveryHandler_free10

В настройках Minishop заменил переопределеный обработчик: prnt.sc/ah8bsl mynewOrderHandler

В чанке tpl.msOrder.delivery прописал обертку цены
<span id="delivery_cost_[[+id]]">[[+price]] [[%ms2_frontend_currency]]</span>
____________________________

Но сумма как была 0 в доставке так и осталась, но общая сумма меняется, что сделал не таки как сделать чтобы возле доставки стоимость отображалась ????

Спасибо prnt.sc/ah8dix
Слава
13 февраля 2016, 17:04
0
Не нашел решения по данной ссылке
Слава
08 февраля 2016, 17:26
0
тут одни чекбоксы, мне бы с выпадающим списком или с полем ввода… Такого нет?
Слава
08 февраля 2016, 17:13
0
Это точно, может есть пример реализации с кодом?

Хоть понимать куда смотреть…
Слава
08 февраля 2016, 07:53
0
Привет.
У тебя нет примера реализации, похожего фильтра? Может есть дополнительный вывод раскрывающихся списков с цветом и весом, а не чекбоксами как сейчас сделано.

Спасибо
Слава
18 октября 2015, 15:40
0
Громадное спасибо.!!!
Слава
18 октября 2015, 12:18
0
сделал, перенес в это поле значение ID, но возникла новая проблема — это поле не сортируется по умолчанию и по возрастанию или убыванию… Может где то что то надо включить?

prntscr.com/8sj2da
Слава
16 октября 2015, 12:20
0
Ну никто что ли не знает???
Слава
19 августа 2015, 10:19
0
Реализовал сам, но не знаю на сколько верно.

1. Создал плагин на событие сохранения нового пользователя.
При сохранении данный пользователь добавляется в рассылку Sendex и дополнительно вносится в группу рассылок
switch ($modx->event->name) {
        case 'OnUserSave':
            if ($user && $mode == 'new') {
                if ($profile = $user->getOne('Profile')) {
                    $id = $profile->get('id');
                    $new_mail = $profile->get('email');
                }
                if ($id) {
/*******Добавляем в группу рассылки новый сохраняемого пользователя**********/
                    if ($gr = $modx->newObject('modUserGroupMember')) {
                        $gr->set('user_group', 2);
                        $gr->set('member', $id);
                        $gr->set('role', 0);
                        $gr->set('rank', 0);
                        $gr->save();
 }


/*******Добавляю текущего сохраняемого пользователя в рассылку SENDEX*********/
$template=2;
$hash = sha1(uniqid(sha1($id . $template . $new_mail), true));

                        $sql1  = 'INSERT INTO modx_sendex_subscribers (user_id,email,newsletter_id,code) VALUES('.$id.',"'.$new_mail.'",'.$template.',"'.$hash.'")';
                        $query = new xPDOCriteria($modx, $sql1, array());
                        if ($query->prepare() && $query->stmt->execute()) { $query->stmt->fetchAll(PDO::FETCH_ASSOC); }
                }
            }
            break;
    }

2. Сделал кнопку отписаться в письме, при которой происходит удаления из рассылки + удаления из группы рассылок.

$id = $_GET['id'];

                if (isset($id)) {
/*******Удаляю из группы рассылок**********/

                        $sql2  = 'DELETE FROM modx_member_groups where member='.$id.' AND user_group=2';
                        $query = new xPDOCriteria($modx, $sql2, array());
                        if ($query->prepare() && $query->stmt->execute()) { $query->stmt->fetchAll(PDO::FETCH_ASSOC); }
            


/*******Удаляю из рассылок в  SENDEX*********/

                        $sql1  = 'DELETE FROM modx_sendex_subscribers where user_id='.$id.' ';
                        $query = new xPDOCriteria($modx, $sql1, array());
                        if ($query->prepare() && $query->stmt->execute()) { $query->stmt->fetchAll(PDO::FETCH_ASSOC); }
                }

Оцените верно все сделал…

И еще в Sendex столкнулся с неприятностью — нет кнопки удаления всех пользователей из рассылки разом.
Слава
30 июля 2015, 08:08
0
решил в orderSendUserOuter надо был вызвать вместо [[+rows]] [[+goods]]
Слава
29 июля 2015, 23:06
0
почему то не подхватывается чанк &tplRow=`orderSendUserRow`
вызываю его [[+rows]]
Слава
29 июля 2015, 22:52
0
что то начало выводится, но оказалось, что за письмо отвечает чанк: tpl.msEmail.new.user