Дмитрий

Дмитрий

С нами с 16 декабря 2015; Место в рейтинге пользователей: #47
Дмитрий
15 января 2017, 22:11
1
+2
У меня в прошлом году часто случалась точно такая же ситуёвина на древнем хостинге (приходилось хостить сайты там, так как у студии был выделенный сервер у этого хостера).
Помогало вот это
Дмитрий
14 января 2017, 13:40
+3
ок. Говорил же, что кажется чего-то не понимаю.
Дмитрий
14 января 2017, 13:31
-1
что-то упало все. Даже с измененными параметрами…
Но это не важно. Я просто хотел обратить внимание на неточность о БД и сниппетах. Ведь сниппет не всегда модификатор, поэтому можно спокойно хранить в файлах свои сниппеты… Разве нет?
Дмитрий
14 января 2017, 13:12
0
Эмм… Ну, как-то так:
{$_modx->runSnippet('@FILE:snippets/getRating.php',[
                                        'id' => $_modx->resource.id,
                                        'from' => 1,
                                        'to' => 5,
                                        'tpl' => '@FILE:chunks/infocenter/rating.row.tpl',
                                        'tplOuter' => '@FILE:chunks/infocenter/rating.outer.tpl'
                                    ])}
Код сниппета:
<?php
if ($page = $modx->getObject('modResource',$id)){
    //всякая магия
    return $output
}
else {
    return;
}
В таблице ничего похожего на getRating нет…
Дмитрий
14 января 2017, 12:42
0
Лично я уже полностью перешел на файлы, и создавать запись в БД для сниппета, только ради его связи с файлом мне совсем не хочется
Василий, я кажется чего-то не понимаю… Можно же создавать сниппеты без записи в БД…
Дмитрий
11 января 2017, 01:35
0
Обязательно разные странички? Не уверен, что minishop2 хранит сессию при оформлении заказа, поэтому, скорее всего, придется быдлокодить, чтобы сохранять этапы. Гораздо проще скрывать блоки на одной странице, и открывать их по мере заполнения шагов, то есть, делать имитацию. А в хэше URL хранить этап, и работать через JS через хэш адреса.
То есть — начальный урл допустим shop.ru/checkout
Заполнили купон, нажали «дальше» -> слой с корзиной скрылся, открылся следующий этап -> адрес страницы стал shop.ru/checkout?step=2

Ну и так далее. Конечно, в этом случае тоже есть ряд нюансов, но, мне кажется, гораздо проще, разбивать этапы на страницы. Да и зачем это вообще нужно?
Дмитрий
04 января 2017, 20:51
0
Мне кажется, лучше сделать так:
&where = `{"HelpMenuFooter:=":"Да"}`
LIKE, насколько я знаю, функция тяжелая, медленная.
Дмитрий
21 декабря 2016, 11:09
+3
Действительно, очень интересная штуковина получается!
Жаль, что пока не возникает задач, куда можно было бы такое вставить.
Дмитрий
20 декабря 2016, 12:49
0
Ну, так как у нас изначально товары лежали на сайте, но был дикий бардак с артикулами и свойствами, то я выгрузил товары через Excel ему, он их отредактировал и занес в 1С.
Дмитрий
20 декабря 2016, 12:42
0
Если есть специалист по 1С, то все очень просто.
Я недавно синхронизировал сайт с 1С, и дело было примерно так. Специалист по 1С настроил товары, настроил в программе выгрузку по CommerceML (где-то тут есть инструкция, как это делать), я же всего лишь связал через админку MODX'а нужные поля с полями товара и все.
Дмитрий
13 декабря 2016, 15:40
+1
Если не хотите, чтобы уведомление всплывало через jGrowl, то в словаре minishop2 сотрите значение строки об успешном добавление товара в корзину и добавьте такой скрипт:
miniShop2.Callbacks.Cart.add.response.success = function() {
//тут или bootstrap модал, или еще что душе угодно.
    $.fancybox('#modal_basket');
   }
Взято отсюда: modx.pro/help/4641/
Дмитрий
08 декабря 2016, 21:38
+2
Шикарно! Я дождался! Спасибо большое!
Дмитрий
06 декабря 2016, 17:10
0
Сделать-то реально, но достаточно запарно, насколько я понимаю. В Tickets вроде нет системы плагинов, поэтому придется самому расширять модель модуля и ковырять ExtJS интерфейс админки.
Дмитрий
27 ноября 2016, 17:36
3
0
Пример ajax.php, который использую в последних проектах.
Работает исправно, все парсится и работает.
<?php

define('MODX_API_MODE', true);
require 'index.php';
//подключаем pdoTools
$pdo = $modx->getService('pdoTools');
// Откликаться будет ТОЛЬКО на ajax запросы
if (empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') {
    return;
}
// Сниппет будет обрабатывать не один вид запросов, поэтому работать будем по запрашиваемому действию
// Если в массиве POST нет действия - выход
if (!empty($_POST['action'])) {
    switch ($_POST['action']) {
        case 'snippetName':
            $tvs = $_POST['tvs'];
            if (!empty($tvs)) {
                $res = $pdo->runSnippet('@FILE snippets/snippetName.php', array('tvs' => $tvs));
            }
            if (empty($res)) {
                $res = 'Подходящих записей не найдено. Попробуйте упростить параметры поиска';
            }
            break;
    }
} else {
    return;
}
if (!empty($res)) {
    die($res);
}
Дмитрий
20 ноября 2016, 20:33
0
Времени, конечно, с момента публикации вопроса, прошло много, однако.
Во-первых, никто не мешает использовать синтаксис MODX. Конечно, не торт, но ничего страшного.
Во-вторых, плейсхолдеры можно доставать как-то так: {$_modx->getPlaceholder('page.nav')} или {$_pls['page.nav']}
Дмитрий
18 ноября 2016, 19:23
+3
эх… эти бы возможности, да полгода назад. Я уже таких костылей наделал…
Дмитрий
10 ноября 2016, 16:07
0
Заодно и нам расскажите
Дмитрий
10 ноября 2016, 16:06
0
А вы проверьте :)
Возьмите скрипт импорта, сгенирируйте 80К товаров с характеристиками и изображениями и загрузите. Делов на несколько часов. Зато наверняка знать будете.