Karpunin Alexey

Karpunin Alexey

С нами с 15 января 2013; Место в рейтинге пользователей: #901
Павел Романов
16 октября 2019, 11:42
1
+1
А так?
<script>
       	$(document).on('af_complete', function(event, response) {
            var form = response.form;
            if (form.attr('id') == 'callback-form' && response.success) {
               window.location.href = "[[~25]]"
            }
        });
</script>
Баха Волков
11 февраля 2019, 20:06
1
+1
А разве прописав кастомный параметр при вызове FormIt (или AjaxForm) он не попадает прямиком в чанк формы?
Паша, попадёт конечно, отличная реализация, только в заметке речь о чанках писем или я что-то не понял?)
Павел Гвоздь
11 февраля 2019, 19:52
2
+1
немного схитрить используя свойство fieldNames сниппета FormIt
А разве прописав кастомный параметр при вызове FormIt (или AjaxForm) он не попадает прямиком в чанк формы?
Я делаю примерно так:
{'!AjaxForm' | snippet : [
    ...
    'formFields' => [
        'name' => [
            'type' => 'text',
            'label' => '',
            'placeholder' => 'Ваше имя',
            'required' => true,
        ],
        'email' => [
            'type' => 'email',
            'label' => '',
            'placeholder' => 'Ваш email',
        ],
        'phone' => [
            'type' => 'text',
            'label' => '',
            'placeholder' => 'Контактный телефон',
            'required' => true,
        ],
    ],
    ...
]}

И в чанке формы:
{foreach $formFields as $fk => $fv}
    {if $fv['label']?}
        <div class="form__label-w">
            <label class="form__label">
                {$fv['label']}
            </label>
        </div>
    {/if}

    {switch $fv['type']}
        {case 'text'}
            <div class="form__input-w">
                <input class="form__input" type="text" name="{$fk}" placeholder="{$fv['placeholder']}">
            </div>

        {case 'email'}
            <div class="form__input-w">
                <input class="form__input" type="email" name="{$fk}" placeholder="{$fv['placeholder']}">
            </div>

        {case 'textarea'}
            <div class="form__input-w">
                <textarea class="form__input" name="{$fk}" placeholder="{$fv['placeholder']}"></textarea>
            </div>
    {/switch}

    <div class="form__error error_{$fk}"></div>
{/foreach}
Володя
18 сентября 2017, 09:19
1
0
если у вас актуальная версия компонента msOptionsPrice то вот это лишнее
/* опции модификации, тут вручную собираем нужные характеристики товара(опции) */
    $options = array(
        'color' =>  $color,
        'size' => $size
    );
    $msoptionsprice = $modx->getService('msoptionsprice');
    $msoptionsprice->initialize('web');
    /* создаем опции продукта */
    $options = $msoptionsprice->setProductOptions($rid, $options);
опции будут созданы автоматически при создании модификации
Володя
21 июня 2017, 16:18
3
0
можно еще используя феном
{foreach $options as $name => $values}
    {do $values|sort}
	...
{/foreach}
настройка pdotools_fenom_php должна быть Да
Володя
18 мая 2017, 13:33
1
+1
Как исключить все опции, но включить только нужные?
foreach $product.options as $key => $option}
    {if $key not in ['color','size']}{continue}{/if}
{/foreach}
Leo
Leo
16 декабря 2016, 13:38
3
0
рабочий вариант, проверено

<?php
define('MODX_API_MODE', true);
require 'index.php';		// Если файл лежит не в корне - здесь нужно указать верный путь
$modx->getService('error','error.modError');
$modx->setLogLevel(modX::LOG_LEVEL_INFO);
$modx->setLogTarget(XPDO_CLI_MODE ? 'ECHO' : 'HTML');

if (!isset($parents)) {$parents = 0;}		// Можно указать список категорий для поиска товаров
if (!isset($resources)) {$resources = '';}	// Можно указать конкретный список товаров

$pdo = $modx->getService('pdoFetch');
$condition = array('parents' => $parents);
$files = $pdo->getCollection('msProduct',
	array(
		'msProduct.class_key' => 'msProduct',
	),
	array(
		'class' => 'msProduct',
		'parents' => $parents,
		'resources' => $resources,
		'innerJoin' => array(
			'msProductFile' => array(
				'alias' => 'msProductFile',
				'on' => array(
					'msProduct.id = msProductFile.product_id',
					'msProductFile.parent' => 0,
					'msProductFile.type' => 'image',
				)
			)
		),
		'select' => array(
			'msProductFile' => 'all'
		),
		'sortby' => 'msProduct.id'
	)
);

echo '<pre>';
echo $pdo->getTime();
foreach ($files as $row) {
	$file = $modx->newObject('msProductFile');	
	$file->fromArray($row, '', true, true);
	
	$children = $file->getMany('Children');
	foreach ($children as $child) {
		$child->remove();
	}
	$file->generateThumbnails();
	
	// Обновляем thumb и image товара
	if ($product = $file->getOne('Product')) {
		$product->updateProductImage();
	}
}

echo microtime(true) - $modx->startTime;
Павел
23 ноября 2016, 09:49
1
0
Доброе утро. Скайп: hramtsov.p
Андрей
22 августа 2016, 15:00
2
+1
И модификатором можно:

{$_modx->resource.template | in : [3, 4] ? '[[$myChunk]]' : ''}