Владимир

Владимир

С нами с 28 декабря 2012; Место в рейтинге пользователей: #83
t.g
t.g
22 августа 2017, 21:11
1
+2
Вешаете на событие OnHandleRequest, или через файл .htaccess можна так.
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
Юрий
19 июля 2017, 16:34
1
+1
Тоже пытался заставить работать masonry с подгруппой через pdoPage, но по непонятным причинам, не хотел инициализироваться плагин стандартным способом:
$(document).on('pdopage_load', function (e, config, response) {
      var $grid = $(".masonry");
      $grid.masonry('reloadItems');
      $grid.masonry( 'layout' );
  });
Давая небольшую задержку через setTimeout, заработало на ура.
Вот финальный код:
$(document).ready(function () {
  /* masonry */
  var $grid = $('.masonry').masonry({
    itemSelector      : '.masonry-item',
    columnWidth       : '.masonry-item',
    gutter            : 15,
    percentPosition   : true,
    transitionDuration: '0'
  });
  
  /* pdopage_load */
  $(document).on('pdopage_load', function (e, config, response) {
    function masonryUpd () {
      var $grid = $(".masonry");
      $grid.masonry('reloadItems');
      $grid.masonry( 'layout' );
    }
    setTimeout(masonryUpd, 300);
  });
});
Что странно. По идее не нужно никакой задержки.
Володя
22 июня 2017, 09:51
2
+1
с шаблонизатором все проще, можно писать прям в шаблоне все
{extends 'file:templates/category.tpl'}

{block 'initialize'}
    {parent}

    {var $tag = $_modx->getPlaceholder('vp.tag')}
    {var $_modx->resource.longtitle = $tag}

    {var $crumbs = 0}
    {var $parents = 0}
    {var $resources = '!msProducts'|snippet:[
    'parents' => 0,
    'optionFilters' => json_encode([
    'tags' => $tag
    ]),
    'returnIds' => 1
    ]}

    {if $resources is empty}
        {var $url = ('site_start'|option) | url : ['scheme' => 'full'] : []}
        {$_modx->sendRedirect($url, ['responseCode' => 'HTTP/1.1 404 Not Found'])}
    {/if}

{/block}
Андрей
20 июня 2017, 18:13
1
+1
Да, сейчас проверил, в сниппете BabelLinks в начале пишете

$pdo = $modx->getService('pdoTools');

//далее в сниппете меняете в трех местах $babel->getChunk на $pdo->getChunk

И все, теперь сниппет поддерживает fenom
Максим Кузнецов
13 июня 2017, 09:05
1
+1
Конкретно по данному баннеру не подскажу, но в целом можно сделать так:

Если разметка под баннеры (через tpl_n) грузится, но сам баннер не подгружается, то нужно вешать его реинициализацию на
$(document).ajaxStop(function(){
	
});
Также будет не лишним вешать на уже подгруженный баннер какой-либо класс (допустим, .ready), и при последующей реинициализации обновлять только новые позиции через .not('.ready').

Если разметка под баннеры не подгружается, то нужно самостоятельно считать нужную позицию для размещения баннера и вставлять сами баннеры на событие
$(document).on('mse2_load', function(e, data) {

});
Андрей
09 июня 2017, 09:29
1
+2
Не знаю как вы выравниваете, но если text-align: justify, то между пунктами меню должны быть переносы или пробелы иначе работать не будет.

Проще конечно с помощью display: flex; justify-content: space-between;
Сергей Шлоков
05 июня 2017, 22:03
1
+2
Я бы создал коллекцию объектов (можно через pdoResources) таким запросом
select Res.* from `modx_site_content` as Parent
inner join `modx_site_content` as Res on Res.parent = Parent.id
where Parent.parent = 12
ORDER BY Res.parent ASC, Res.id DESC
А затем пробежался по массиву и сформировал требуемую коллекцию с одним дочерним ресурсом.
Итого всего один запрос к БД.
Александр Янк
19 мая 2017, 08:11
1
+1
Перечитал очень много материалов, но размер миниатюр не победил, зато нашел другое решение.

Все возможные ключи для массива и их значения можно получить, добавив в чанк следующий код:

{foreach $_pls as $key => $value}
	<p>{$key} => {$value}</p>
{/foreach}

Там я нашел такое значение image:

image => /assets/images/products/39/400-(21-10)-oak-sherwood.jpg

В чанк вместо {$thumb} добавил {$image} в результате я добился результата, но выводятся тяжелые картинки… joxi.ru/vAWYWgwIv4E7mW