Александр Наумов

Александр Наумов

С нами с 15 декабря 2012; Место в рейтинге пользователей: #103

JSON документ на MODX?

Приветствую сообщество!
Использовал api.geonames.org (сайт с геоданными), решил перевести свой сайт на https, но вот их сайт не поддерживает https, пришлось отказаться от его API, скачать базу и сделать чтобы MODX отдавал json файл.

Для этого я сделал: в настройках документа "Тип содержимого: JSON", массив пропускаю через fenom
{["timezone" => "$timezone"] | toJSON}
в итоге получилось практически, как хотел, за исключением двух моментов.

1. Если раньше получал файл с помощью jQuery.ajax() по JSONP, то теперь данные получить не могу, Chrom инспектор пишет ошибку "Uncaught SyntaxError: Unexpected token". Попробовал подключить другой API с josn данными api.vk.com — получаю без ошибки. Так же если на сайте, который генерирует json файл получать данные по jQuery.ajax() JSON — то тоже без ошибки.
Александр Наумов
15 октября 2018, 21:37
modx.pro
709
0

Кэш браузера влияет на работу плагина Minishop2?

Проблема в том, что при очищенном кеше браузера, значение переменной не передается.

Короткое видео: https://www.youtube.com/embed/zNARHAGA0Rk

Тестовый сайт: http://s15513.h10.modhost.pro/

Плагин Minishop2 сделал по инструкции.

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

class msDeliveryHandlerMsk extends msDeliveryHandler implements msDeliveryInterface{

    public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {

        $freedeliverysumm = 3000;
        $cart = $order->ms2->cart->status();
        $cart_cost = $cart['total_cost'];

        if($cart_cost > $freedeliverysumm){
            $this->modx->setPlaceholder('sinastry','Сумма больше 3000');
            return $cost;
        }else{
            $delivery_cost = parent::getCost($order, $delivery, $cost);
            $this->modx->setPlaceholder('sinastry','Сумма меньше 3000');
            return $delivery_cost;
        }
    }
}
Не понимаю в чем проблема?
Александр Наумов
22 марта 2018, 15:26
modx.pro
1 162
0

Один вопрос за триста.

6 300
Нужен ответ на два вопроса, за каждый ответ 300 рублей вознаграждение.

1. Максимальное количество товара в размере одной единицы?

Есть плагин:

<?php
if ($modx->event->name = 'msOnBeforeAddToCart' || $modx->event->name = 'msOnBeforeChangeInCart') {
	$values = & $modx->event->returnedValues;
	if ($values['count'] < 1) {
		$values['count'] = 1;
	}
}
Который позволяет выбрать только одну единицу из позиции, а нужно сделать, чтобы он выбирал одну единицу среди всех позиций.

Свое решение напишите сюда, если решение рабочее, то перечислю вознаграждение 300 руб.

2. Скрыть поле в корзине при достижении определенной суммы. Update: Вопрос решен

Есть плагин, сделанный по данной инструкции:

if(!class_exists('msDeliveryInterface')) {
    require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msdeliveryhandler.class.php';
}

class msDeliveryHandlerMsk extends msDeliveryHandler implements msDeliveryInterface{

    public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {

        $cart = $order->ms2->cart->status();
        $cart_cost = $cart['total_cost'];

        if($cart_cost > 3000){
		$this->modx->getPlaceholder('style','<style>...</style>');  // Здесь нужно заставить плейсхолдер работать
            return $cost;
        }else{
            return $cost;
        }
    }
}

Нужно, сделать, чтобы передавались данные с помощью плейсхолдера, например если вместо
$this->modx->getPlaceholder('style','<style>...</style>');
написать
print'<style>...</style>';
то данные передаются, но вот отправка заказа перестает работать.

Свое решение напишите сюда, если решение рабочее, то перечислю вознаграждение 300 руб.

С уважением.
Александр Наумов
19 декабря 2017, 18:05
modx.pro
695
0

Скрыть поле при достижении определенной суммы.

Задача, при сумме заказа 3000 вывести стили которые скроют одно из полей.

1. Самое простое, что пришло на ум, это в чанке tpl.msOrder сделать:
{if $order.cost > 3000}
          <style>...</style>
{/if}
Не прокатило.

2. Использовать плагин Minishop2.

if(!class_exists('msDeliveryInterface')) {
    require_once dirname(dirname(dirname(__FILE__))) . '/model/minishop2/msdeliveryhandler.class.php';
}

class msDeliveryHandlerMsk extends msDeliveryHandler implements msDeliveryInterface{

    public function getCost(msOrderInterface $order, msDelivery $delivery, $cost = 0) {

        $cart = $order->ms2->cart->status();
        $cart_cost = $cart['total_cost'];

        if($cart_cost > 3000){
		$this->modx->getPlaceholder('style','<style>...</style>');  // Здесь нужно заставить плейсхолдер работать
            return $cost;
        }else{
            return $cost;
        }
    }
}
Подскажите, как сделать, чтобы плейсхолдер передавал данные?
Александр Наумов
10 декабря 2017, 18:23
modx.pro
1 452
0

Нужно немного доработать msProfile.

6 1 000
Имеется связка miniShop2 + msProfile, оплата настроена со счета покупателя.

Нужно сделать, при оформлении заказа, если у пользователя недостаточно средств на его счете для оплаты покупки ему не показывается предупреждение во всплывающем окошке, а происходит редирект на страницу пополнения счета, где ему предлагается оплатить недостающую сумму.

Например, на странице пополнения счета пишем: «На вашем счете 400 руб, что бы оплатить заказ вам нужно доплатить 600 руб».

Настроен демо сайт, куда нужно внести правки http://s11747.h9.modhost.pro
Александр Наумов
24 ноября 2017, 23:01
modx.pro
971
0

default в pdoPage при Fenom, как?

Здравствуйте уважаемое сообщество!

Подскажите, пожалуйста, как переписать данную конструкцию под Fenom

[[!pdoPage:default=`Ничего не найдено.`?
	...
]]
как записать default=`Ничего не найдено.` в

{'!pdoPage' | snippet : [
	...
]}
Александр Наумов
13 мая 2017, 07:38
modx.pro
3
3 507
0

Картинка для микроразметки?

Здравствуйте!
Пользуюсь инструкцией: Выбор первых картинок из контента, решил взять ссылку на первую картинку и вывести ее в микроразметку
<meta property="og:image" content="">
. Конструкция [[+properties.image]], которая работает через сниппет, здесь [[*properties.image]] — не работает.

Думаю, что нужно делать сниппет mainРicture, который из массива возьмет нужную мне ссылку и выводить ее так
<meta property="og:image" content="[[mainРicture]]">
.

Хотел спросить, можно ли средствами MODX не делая сниппет решить проблему?
Александр Наумов
13 апреля 2016, 14:30
modx.pro
3
4 547
0

Главная страница новостного сайта?

Здравствуйте, уважаемое сообщество!
Подскажите, как решить задачу.

Решил сделать главную страницу по типу новостной, как у Яндекс новостей.
На главной есть тематические виджеты (Экономика, Спорт, Культура и т. д.) и вверху виджет “Главные новости“.
Задача, нужно сделать так, если новость находится в виджете “Главные новости“, то она исключается из тематического виджета.

Подходящего готового решения в интернете не нашел.

Решил определиться с алгоритмом, мой вариант такой.
Сделать отдельную табличку, куда буду записывать id ресурсов, которые будут попадать в виджет “Главные новости”.
Сделать плагин, который перед сохранением, будет дописывать туда id нового ресурса и один старый удалять.
Александр Наумов
16 марта 2016, 08:03
modx.pro
1 614
0

Рейтинги Tickets

20 000
Добра и здравия уважаемое сообщество!

Данное предложение будет интересно тем чьи сайты имеют социальное направление.

Есть идея обдуманная и согласованная с Василием Наумкиным сделать сортировку пользователей по количеству опубликованных постов, по количеству написанных комментариев и по количеству просмотров. Сортировать можно будет за все время, за предыдущие месяцы, текущая сортировка за месяц.

Данный функционал, позволит сайтам с социальной направленностью контролировать действия пользователей, а потом их как-либо поощрять, например значками функционал для которых будет заложен на данном этапе.

Можно предположить, что с помощью данного функционала можно усилить поведенческий фактор.
Александр Наумов
10 апреля 2015, 18:06
modx.pro
4 062
+5

Карма

Опишу модель кармы, которую я хотел бы видеть на modx.pro, а так же купил бы если был такой компонент или сделал бы денежный вклад в его разработку.

Карма пользователя создается по принципу:

1. Компонент ежемесячно подсчитывает вклад пользователей по созданию контента. Тикитам и комментарием выставляется вес, а так же к ним применяется добавочный коэффициент, тикетам — за количество просмотра, за добавления в закладки, комментариям — за добавления в закладки.

По итогам месяца формируется топ активных авторов, после чего в карму первой десятки добавляются балы, за первое место — 10 балов, за второе — 9 балов и т. д… Можно так же первую тройку награждать знаками отличия (медальками), вешать их на стену автора.

Так же можно сделать, топ активных комментаторов.

Александр Наумов
09 января 2015, 21:44
modx.pro
1
2 017
+8