Андрей

Андрей

С нами с 28 февраля 2013; Место в рейтинге пользователей: #139
Андрей
11 июля 2017, 20:00
0
У него у него в migx может там несколько записей с country для каждого ресурса, надо все собрать наверное, а не только из первого ключа.

там массив такого вида наверняка
[
	[
		'MIGX_id' => 1,
		'country' => ...
	],
	[
		'MIGX_id' => 2,
		'country' => ...
	]
]
И так для каждого ресурса
Андрей
11 июля 2017, 19:42
0
Судя по ошибке — не подключился pdoTools, может он удален или не установлен?
Андрей
05 июля 2017, 20:19
0
Видимо так

[[+wrapper]] надо в li ставить, а у вас после, поэтому и разметка вся едет.

&tpl=`@INLINE <li class="catalog__item catalog__item_lvl1 js-catalog__item"  data-disabled-lg><a  class="catalog__link catalog__link_lvl1 catalog__link_toggle js-catalog__toggle " href="javascript:void(0)">[[+menutitle]]</a>[[+wrapper]]</li>`

&tplInnerRow=`@INLINE <li><a href="[[+link]]">[[+menutitle]]</a>[[+wrapper]]</li>`
Андрей
05 июля 2017, 20:12
0
От 40 000 р, по срокам 2-3 недели, все будет зависеть от ТЗ. Контакты в профиле.
Андрей
05 июля 2017, 09:44
+1
В документ можно вставить вызов чанка с формой.

Самый простой вариант — это сделать скрытое модальное окно с формой прямо на странице, а по клику на кнопку/ссылку показывать окно, без всяких ajax.
Андрей
04 июля 2017, 21:03
0
AjaxForm при вызове сниппета формирует конфиг и запускается через метод AjaxForm.initialize, его можно увидеть в коде страницы.

Соответственно, наверное, нужно при загрузке формы в окно перевызвать этот метод.

Не проверял и не уверен что будет работать.

JS
$(document).on('click', 'a#callbutton', function() {
  var id = $(this).data('id');

  $.ajax({
    url: '/assets/ajax.php',
    method: 'POST',
    dataType: 'json',
    data: {
      action: 'getContent',
      id: id
    }
  })
  .done(function(response) {
    if (response.success) {
      $('.modal-window-wrap','#modal-window').html(response.data.content);

      // Тут надо перевызвать AjaxForm
      AjaxForm.initialize(response.config);

    } else {
      AjaxForm.Message.error(response.message);
    }
  });

  return false;
});

PHP
<?php
if ($_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest' || empty($_REQUEST['action'])) {exit();}

define('MODX_API_MODE', true);
require_once dirname(dirname(__FILE__)).'/index.php';

$modx->getService('error','error.modError');
$modx->getRequest();
$modx->setLogLevel(modX::LOG_LEVEL_ERROR);
$modx->setLogTarget('FILE');
$modx->error->message = null;

if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'getContent') {

  $result = array(
    'success' => false
  );

  $id = $_REQUEST['id'];

  if (!$id) {
    $result['message'] = 'Не указан ID ресурса';

    return json_encode($result, true);
  }

  if (!$modx->loadClass('ajaxform', MODX_CORE_PATH . 'components/ajaxform/model/ajaxform/', false, true)) {
    return false;
  }

  $AjaxForm = new AjaxForm($modx, array());

  $AjaxFormConfig = array(
    'assetsUrl' => $AjaxForm->config['assetsUrl'],
    'actionUrl' => str_replace('[[+assetsUrl]]', $AjaxForm->config['assetsUrl'], $AjaxForm->config['actionUrl']),
    'closeMessage' => $AjaxForm->config['closeMessage'],
    'formSelector' => "form.{$AjaxForm->config['formSelector']}",
    'pageId' => $id
  );

  if ($resourse = $modx->getObject('modResource', $id)) {
      $content = $resourse->get('content');
      
      $maxIterations = (integer) $modx->getOption('parser_max_iterations', null, 10);
      $modx->getParser()->processElementTags('', $content, false, false, '[[', ']]', array(), $maxIterations);
      $modx->getParser()->processElementTags('', $content, true, true, '[[', ']]', array(), $maxIterations);

      $result['success'] = true;
      $result['config'] = $AjaxFormConfig;
      $result['data'] = array(
          'pagetitle' => $resourse->get('pagetitle'),
          'content' => $content
      );

  } else {
      
      $result['message'] = 'Такого ресурса не существует';
      
  }

  return json_encode($result, true);

}
Андрей
04 июля 2017, 19:53
0
> При создании скидки не получается указать дефолтные значения полей — поставил бы глубину 10 по умолчанию.

При создании поля указать параметр
originalValue: 10

> Но есть подозрения, что вписывать id удобнее.

Можно мультиселект сделать.
Андрей
01 июля 2017, 14:07
0
При добавлении в корзину по кнопке файл sexmarket-online.ru/assets/components/minishop2/action.php должен возвращать json, а у вас возвращает код страницы.
Андрей
30 июня 2017, 10:45
0
Тогда вам нужен параметр far=1 или far=C, он сделает нужного размера картинку и поместит ее посредине.

Насчет цветов, возможно стоит указать формат jpg, может с этим что-нибудь связано.
Андрей
30 июня 2017, 07:44
0
Посмотрите может тут что-то есть.

Вообще цвет фона это для прозрачных изображений, зачем он вам если у вас и так фон белый, а что бы картинка была строго нужного размера, надо поставить zc=1
Андрей
28 июня 2017, 17:53
+2
Можно сделать сниппет и вызывать его как фильтр

Например назвать getTVNames
$input = explode(',', $input);
$output = array();

$tv = $modx->getObject('modTemplateVar', array('name' => 'имя_tv')); // tv name
$tv = $tv->toArray();

$values = explode('||', $tv['elements']);

foreach($input as $i) {
    foreach($values as $v) {
        $data = explode('==', $v);
        
        if ($i == $data[1]) {
            $output[] = $data[0];
        }
    }
}

return implode(',', $output);

Пример вызова
[[+tv.mytv:getTVNames]]
Андрей
28 июня 2017, 17:30
0
В пути / вначале не должно быть
Андрей
28 июня 2017, 17:28
0
Имя==Имя||Фамилия==Фамилия||Отчество==Отчество
Андрей
26 июня 2017, 11:46
+3
Посмотрите 4 пункт, и что будет если поменять link_tag_scheme на abs.
Андрей
25 июня 2017, 07:32
+1
Думаю можно проще сделать, получить все заведенные в админке опции и в цикле пройтись по всем

$all_options = $modx->getCollection('msOption');

foreach($all_options as $opt) {
	$key = $opt->get('key');

	if ( empty($res->get($key)) ) {
		$options[$key] = $res2->get($key);
        }
}
Андрей
23 июня 2017, 20:13
+1
Да он будет на всех страницах, но можете ограничить его поставив условие, например

//по id, parent, template или еще как-то

if ($modx->resource->id == 1) {
...
}

Сниппет вам не нужен будет скорее всего, раз вы в плагине все менять будете.
Андрей
23 июня 2017, 18:55
0
Посмотрите ошибки в консоли браузера, в логах модх и сервера. Возможно при создании коллекции вы что-нибудь не так указали.
Андрей
23 июня 2017, 18:52
0
Копать в параметры phpthumb которые у minishop2  задаются в его источнике файлов.
Андрей
23 июня 2017, 17:26
0
От 100 000 р, все будет зависеть от ТЗ, контакты в профиле.