Сергей Хлопов

Сергей Хлопов

С нами с 09 апреля 2018; Место в рейтинге пользователей: #849

Как изменить кнопку "Загрузить ещё" в mFilter2 ?

Здравствуйте, подскажите пожалуйста, как изменить кнопку «Загрузить ещё». при вызове mFilter2 задаю следующие параметры:
[[!mFilter2?
        &suggestions=``
        &class=`msProduct`
        &element=`msProducts`
        &limit=`8`
        &sort=`ms_vendor|Id:asc`
        &parents=`6`
        &tplOuter=`mSearch2_blockElement`
        &tpls=`tpl.msProducts.row2`
        &includeTVs = `fileDowl,Proiz`
        &includeThumbs = `medium`
        &filters=`
        ms|vendor:vendors,
        tv|Styles:default,
        tv|Surface:default,
        tv|Colors:default,
        parent:categories,
        `
        &tplFilter.outer.ms|vendor=`tpl.mFilter2.filter.outerMain`
        &tplFilter.row.ms|vendor=`tpl.mFilter2.filter.checkboxMain`
        &tplFilter.outer.tv|Styles=`tpl.mFilter2.filter.outerMainStyle`
        &tplFilter.row.tv|Styles=`tpl.mFilter2.filter.checkboxMainStyle`
        &tplFilter.outer.tv|Surface=`tpl.mFilter2.filter.outerMainSurface`
        &tplFilter.row.tv|Surface=`tpl.mFilter2.filter.checkboxMainSurface`
        &tplFilter.outer.tv|Colors=`tpl.mFilter2.filter.outerMainColor`
        &tplFilter.row.tv|Colors=`tpl.mFilter2.filter.checkboxMainColor`
        &tplFilter.outer.resource|parent=`tpl.mFilter2.filter.outerMainCategories`
        &tplFilter.row.resource|parent=`tpl.mFilter2.filter.checkboxMainCategories`
        &ajaxMode=`button` //Внимание
        &ajaxTplMore=`@INLINE <button class="btn btn-default btn-more">123</button>` //Внимание
    ]]
Вот там где комментарием «Внимание» тут я передаю в параметры значение, что бы загрузка новых товаров была с помощью кнопки а потом шаблон для этой кнопки, но он почему то не применяется.

А вот сам чанка оформление всего блока фильтра и результатов:
<div class="msearch2" id="mse2_mfilter">
    <div class="row" id="filterBlock">
        <div class="col-md-12 main-filter-Config">
            <ul class="nav nav-pills nav-justified" id="myTab" role="tablist">
              <li class="nav-item">
                <a class="typeWidth nav-link" title="Фильтр по типу" id="color-tab" data-toggle="tab" href="#typeP" role="tab" aria-controls="typeP" aria-selected="false">Вид товара<span class="count-check-checkElem0 disNon">(<span class="elemcheck currentCheck-checkElem0"></span> из <span class="elemcheck allCheckbox-checkElem0"></span>)</span></a>
              </li>
              <li class="nav-item checkElemBefore">
                <a class="witdhElement nav-link active" title="Фильтр по производителю" id="fabr-tab" data-toggle="tab" href="#fabr" role="tab" aria-controls="fabr" aria-selected="true">Производитель <span class="count-check-checkElem1 disNon">(<span class="elemcheck currentCheck-checkElem1"></span> из <span class="elemcheck allCheckbox-checkElem1"></span>)</span></a>
              </li>
              <li class="nav-item">
                <a class="nav-link" title="Фильтр по стилю" id="style-tab" data-toggle="tab" href="#style" role="tab" aria-controls="style" aria-selected="false">Стиль <span class="count-check-checkElem2 disNon">(<span class="elemcheck currentCheck-checkElem2"></span> из <span class="elemcheck allCheckbox-checkElem2"></span>)</span></a>
              </li>
              <li class="nav-item">
                <a class="nav-link witdhElement2" title="Фильтр по поверхности" id="pov-tab" data-toggle="tab" href="#pov" role="tab" aria-controls="pov" aria-selected="false">Поверхность <span class="count-check-checkElem3 disNon">(<span class="elemcheck currentCheck-checkElem3"></span> из <span class="elemcheck allCheckbox-checkElem3"></span>)</span></a>
              </li>
              <li class="nav-item">
                <a class="nav-link" title="Фильтр по цвету" id="color-tab" data-toggle="tab" href="#color" role="tab" aria-controls="color" aria-selected="false">Цвет <span class="count-check-checkElem4 disNon">(<span class="elemcheck currentCheck-checkElem4"></span> из <span class="elemcheck allCheckbox-checkElem4"></span>)</span></a>
              </li>
            </ul>
            <div class="main-line-default"></div>
            <form action="[[~[[*id]]]]" method="post" id="mse2_filters">
                <div class="resultQuery tab-content" id="pills-tabContent">
                    [[+filters]]
                </div>
                [[+filters:isnot=``:then=`
				<button type="reset" class="restartBtn btn btn-default hidden">[[%mse2_reset]]</button>
				<button type="submit" class="btn btn-success pull-right hidden">[[%mse2_submit]]</button>
				<div class="clearfix"></div>
			    `]]
            </form>
        </div>
    </div>
    <div class="informationBlock"></div>
    <div class="row gridElementShop">
        <div class="col-md-12 Arraycollection">
            <div id="mse2_results" class="contentBlock row">
                [[+results]]
            </div>
            <div id="pdopage" class="mse2_pagination">
    			[[!+page.nav]]
    		</div>
        </div>
    </div>
</div>
Подскажите пожалуйста что тут можно сделать. Заранее благодарю за ответ.
Сергей Хлопов
29 июня 2018, 10:11
modx.pro
1 230
0

Почему при открытии картинки с помощью fancybox отправляется Ajax запрос ?

Здравствуйте подскажите пожалуйста вывожу товар с помощью mFilter2, дополнительно сделал что можно посмотреть увеличенную картинку товара нажав на иконку «лупы с плюиском» реализовано это с помощью fancybox,см. скриншот «товары.png», и теперь вот если нажать на эту иконку которая увеличивает картинку, то будет открыта окно с увеличенной картинкой см. скриншот «увеличенная картинка»и теперь если его закрыть, картинку эту, то будет отправлен ajax запрос см. скриншот «ajax запрос». И весь товар в итоге обновляется.
Сначала я вообще подумал что может быть эта проблема из за того что в адресную строку браузера записывает информацию и mFilter2 и fancybox см. скриншот «увеличенная картинка» выделил красным, но потом я попробовал увеличить картинку когда адресная строка была чистая, и собственно всё повторилось, ajax запрос отправился после закрытия картинки. А сейчас вот, я посмотрел в столбце Initiator а там jquery-3.3.1.min.js:2 указан данный файл, то есть он послужил что ли отправке ajax запроса, это же ведь библиотека jquery см скриншот «внимание».
Не совсем вот понимаю почему так происходит, подскажите пожалуйста что тут можно сделать, заранее благодарю за ответ.
Сергей Хлопов
28 июня 2018, 10:52
modx.pro
1 153
0

Как получить количество товаров с определенным значением в tv поле ?

Здравствуйте, подскажите пожалуйста у меня есть товары созданные с помощью компонента miniShop2 у этих товаров есть tv поле которые называется Proiz, у некоторых товаров в этом tv поле хранить такая строка «Atlas Concore», собственно вопрос в том, как получить количество товаров с таким значением в tv поле «Atlas Concore»?
Сергей Хлопов
25 июня 2018, 12:26
modx.pro
1 282
0

Почему не выводиться значение плейсхолдера ?

Здравствуйте, подскажите пожалуйста, я немного изменил исходник сниппета msGallery, что бы он выводил кол-во картинок в галереи для каждого товара и назвал его «msGalleryMain»
Вот что я добавил:
array_shift($files);
foreach($files as $key => $value) {
        $output[] = $pdoFetch->getChunk($tpl, array(
            'urlImg' => $value["medium"],
            'Id' => $IdItem,
        ));
}
$countElem = count($output);
$modx->setPlaceholder('PlcCoutGallery',$countElem);
$output = implode("\n",$output);
return $output;
А в самом чанке вот как происходит вызов данного сниппета, чанк называется — tpl.msProducts.row2:
<div class="galleryBlock">
            [[!msGalleryMain?
                &tpl=`tplImagesGroup`
                &product = {$id}
                &IdItem = {$id}
            ]]
        </div>
        <div class="iconinfo">
            [[+PlcCoutGallery]]
        </div>
И собственно всё хорошо, получаю html разметку картинок галереи с помощью чанка tplImagesGroup а потом через плейсхолдер [[+PlcCoutGallery]] выводиться кол-во картинок. Перезагружаю страницу и вижу что кол-во картинок выводиться, прикрепил скриншот 1. Но теперь если я с помощью ajax-а выбираю опять же категорию «Плитка», что приводит к тому что все те же товары я снова получаю но только уже через ajax теперь.
Вот код php который выполняется по средствам ajax:
<?php 
/* include MODX_API BEGIN */
define('MODX_API_MODE', true);
require_once($_SERVER['DOCUMENT_ROOT'].'/index.php');
$modx=new modX();
$modx->initialize('web');
/* include MODX_API END */
$param = array(
	"tpl" => "tpl.msProducts.row2",
	"parents" => $_POST["Id"],
	"depth" => "0",
	"includeThumbs" => "medium",
	"sortby" => "pagetitle",
	"sortdir" => "ASC",
	"limit" => "8"
);
$output = $modx->runSnippet('msProducts',$param);
$modx->getParser()->processElementTags('', $output, false, false, '[[', ']]', array(), 10);
$modx->getParser()->processElementTags('', $output, true, true, '[[', ']]', array(), 10);
if(empty($output)) {
	echo "-1";
}
else {
	echo $output;
}

То в плейсхолдере где была 2-ка изначально теперь 0 скриншот 2. Но вот интересный момент что если в сниппете здесь вот записать что то типа такого $modx->setPlaceholder('PlcCoutGallery',«qwe»);
то будет все время выводиться qwe и даже после ajax. А почему вот после ajax не выводиться кол-во элементов не понимаю, просто вот если выводить вот так «echo $countElem» то выводиться кол-во и после ajax даже. Подскажите пожалуйста почему не выводиться кол-во элементов через плейсхолдер поле ajax.
Заранее благодарю за ответ
Сергей Хлопов
23 июня 2018, 18:51
modx.pro
684
0

Как интегрировать сайт с 1С ?

Здравствуйте, ещё ни разу не интегрировал сайт с 1C, подскажите пожалуйста как это сделать? Задача стоит такая, в 1С хранятся данные, какая там структура и как они хранятся пока ещё не знаю, суть в том, что на сайте это должно выглядеть как вот на скриншоте, прикрепил файл, как бы такие вот карточки. Суть вопроса в том, как интегрировать сайт с 1С, просто может быть готовый компонент есть который позволяет выгружать данные из 1С, что нужно для выгрузки (интеграции) с 1С, Заранее благодарю за ответ.
Сергей Хлопов
31 мая 2018, 17:09
modx.pro
719
0

Как получить id комментария который удаляется ?

Здравствуйте, подскажите пожалуйста. Создаю свой плагин который будет выполняться на событие OnBeforeCommentRemove, то есть перед удалением комментария.
К комментарию просто можно прикрепить файл, а когда комментарий администратор удаляет через админу, файл который был прикреплен не удаляется и остаётся на сервере.
Собственно сам вопрос в том, каким образом можно получить id комментария который удаляется, либо текущий объект комментария как то. Просто зная ID комментария который удаляется, я тогда могу получить путь к картинке таким вот образом, $modx->getObject(«TicketComment», $id)->photo; и потом собственно удалить картинку.
В самом объекте находиться свойство photo, а в этом свойстве находиться путь до картинки.
Подскажите пожалуйста, что тут можно сделать. Заранее благодарю
Сергей Хлопов
10 апреля 2018, 10:18
modx.pro
558
0