Всего 125 346 комментариев

Василий Наумкин
15 мая 2013, 11:44
0
В miniShop2 этого не заложено и не планируется.

Скорее всего, будет отдельный платный компонент для личного кабинета, но не знаю, когда.
Мордынский Николай
15 мая 2013, 11:23
0
чего то у меня cronmanager на 2,2,7 глючил на этапе выбора снипета форма выбора снипета на секунду открывалась и тут же закрывалась
Мордынский Николай
15 мая 2013, 11:06
0
так вы бы выложили бы решение для соплеменников то)) повидимому вы это делали для умных выпадающих списков опций товара (либо фильтров) в любом случае думаю многим бы пригодилось для общего развития)
Мордынский Николай
15 мая 2013, 11:02
0
Иван, попробуйте дать объявление на modx.im там evo разработчики, на этом сайте в основном revo
Василий Наумкин
15 мая 2013, 10:58
0
Опять же на будущее: если поля обычные, они достаются из msProductData, а если JSON, то из msProductOption.

Так что, легко можно управиться за 2 запроса в БД на неограниченное число параметров.
Сергей Фартушный
15 мая 2013, 10:44
0
А по теме действительно проще будет брать цвета из msProductOption
Сергей Фартушный
15 мая 2013, 10:31
0
в том то и проблема, что нужны не только json поля, но и обычные. Немного изменил логику скрипта, теперь вопрос актуален только в качестве информации на будущее.
В любом случае спасибо за ответ.
Илья Горбаров
15 мая 2013, 09:01
0
Спасибо за наводку, кстати.

Включение отображения ошибок позволило избавится от 500 ошибки, но никакой ошибки не появилось. Странно это.
Илья Горбаров
15 мая 2013, 08:16
0
Самое странное, что в логах nginx нет ничего про 500. Это меня в тупик поставило.
Василий Наумкин
15 мая 2013, 05:31
0
JSON поля товара копируются в таблицу msProductOption — выбирай оттуда DISTINCT value.
Василий Наумкин
15 мая 2013, 05:29
0
О чем иенно речь?

К примеру, при подключении оплаты через Qiwi, счет выставляется в эту систему. Юзер заходит, оплачивает, после чего Qiwi уведомляет магазин об оплате.

А ты что имеешь в виду?
Clean
15 мая 2013, 01:00
0
Спасибо за наводку, все сделал, все ОК.

Тем кто только собирается, у Киви есть одна бага-у них SOAP схема 1.2 а в описании 1.1
Это разные вещи, поэтому если в ходе выполнения Xml вернуло вот такую херню:

SOAP-ERROR: Parsing WSDL: Could not find any usable binding services in WSDL.
то нужно в IShopClientWS.wsdl
поменять
<soap12:binding style="document" transport="http://www.w3.org/2003/05/soap/bindings/HTTP/"/>
на
<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
Сергей Фартушный
14 мая 2013, 23:35
0
<?php
$q = $modx->newQuery('msProductData');
$q->select(array('DISTINCT msProductData.color'));
$colors = array();
if ($q->prepare() && $q->stmt->execute()){
foreach($q->stmt->fetchAll(PDO::FETCH_ASSOC) as $color) {
if($color['color'] === NULL || $color['color'] == '[""]') continue;
$colors = array_merge($colors, json_decode($color['color']));
}
}
var_dump(array_unique($colors));
Есть другая проблема. Как выбрать одним запросом уникальные значения из нескольких полей той же таблицы, но не уникальные комбинации этих полей, а именно все уникальные значения каждого поля и одним запросом? Может кто подскажет?
Александр Донский
14 мая 2013, 23:21
0
Когда я устанавливал Tickets, просматривал видео несколько раз и разбил для себя на шаги, возможно это поможет:
  1. на странице создания топиков (на видео это главная страница Home) вызываем сниппет TicketForm
  2. создали шаблон Ticket — шаблон для топика
  3. в нем вызвали чанк Content.ticket (который еще не создан)
  4. создали шаблон Main
  5. в настройках системы указали шаблон Ticket для тикетов
  6. на главную страницу добавляем авторизацию (например, HybridAuth или Loginza)
  7. создаем новую группу, указываем права
  8. авторизуемся на сайте
  9. создаем раздел тикетов с шаблоном Main
  10. создаем копию чанка Content, переименовываем его Content.ticket, в этот чанк добавляем вызов снипета TicketComments
Александр Донский
14 мая 2013, 23:10
0
Спасибо, Денис!
Александр Донский
14 мая 2013, 23:09
0
Спасибо за совет. В принципе, я буду это использовать (если так можно добавить теги, то это вообще отлично!). Но в данном случае у меня есть раздел, где именно надо с фронтенда.
Roman Smile
14 мая 2013, 20:17
0
Другой документации по Тикетам на данный момент нет, только это немое видео) Его можно останавливать)
Denys Butenko
14 мая 2013, 19:56
0
Или через modCLI [gist] запускать процессор чистки кеша.
Clean
14 мая 2013, 17:47
0
удалять содержимое папки /core/cache
Denys Butenko
14 мая 2013, 17:40
0
В чанке создания тикета добавь input с типом file и name, например, photo:
<input type="file" name="photo">
Дальше, добавь enctype атрибут для формы.
<form method="post" enctype="multipart/form-data" action="[[~[[*id]]]]">
Дальше в плагине добавляем обработку загрузки изображения:
case 'OnDocFormSave':
      // Указываем путь, пробовал $modx->getOption('assets_url').'path/to/dir/';
      // получается со слэшем вначале: /assets/images/.
      $path = 'assets/images/'; 
      if($mode == 'new'){  // Режим создания документа
        if (!empty($_FILES)) {  // Проверка на пустоту массива $_FILES
          @mkdir($path, 0777, true); // Создаем папку для хранения изображений, с правами 0777, третий аргумент - рекурсивное создание папок.
          foreach($_FILES as $k => $v) {
            $name = $v['name'];
            $size = $v['size'];
            $tmp = $v['tmp_name'];

            $ext = pathinfo($name, PATHINFO_EXTENSION); //получаем расширение файла
            $hash = md5(time().$name.$size); // новое название файла
            $uploadfile = $path.$hash.$ext; // объединяем в конечный путь к файлу

            if (copy($tmp, $uploadfile)) { // копируем изображения из временной папки в нужное место
              $resource->set('photo', $uploadfile); 
              $resource->save(); // Сохраняем объект.
            }
          }
        }
      } else {
        //resource update
      }
Ну, а дальше, уже сам проверки на расширение, размер и т.д. добавь.