al1ve

al1ve

С нами с 05 июня 2016; Место в рейтинге пользователей: #1189
30 октября 2023, 12:32
0
Хорошо, попробую
28 октября 2023, 16:47
0
ну в моём случае, порядковый, наверное, относительно элементов в таблице migx. И ещё я заметил, что когда ввожу в блоке с индикаторами {if $idx}, а в блоке со слайдами {if $row} (если снять с публикации один из дочерних элементов с публикации, например), то всё работает, но ничего не крутится, так как у меня в коде прописано условие {if $idx==0}. Наверное, это из-за него не крутится, так как когда я снимаю ресурс с публикации, то отсчёт слайдов в data-bs-slide-to="{$idx}" начинается с 1 и тогда не срабатывает класс active. А на скрине пример заполненного поля слайда, чтобы сделать его динамичным. Только не пойму почему поля пустые в списке. Что я забыл настроить? Просто в первый раз с migx работаю.
28 октября 2023, 15:55
0
В общем, я переделал свой слайдер при помощи migx по этой статье — web-revenue.ru/modx-revo/sozdanie-slayderov-pri-pomoshhi-migx только в поля я ввёл переменные вида [[#id ресурса.pagetitle]], а сам код теперь выглядит так:
{set $rows = json_decode($_modx->resource.slider, true)}
<div id="portfolio-category-caption" class="carousel slide">
  <div class="carousel-indicators">
    {foreach $rows as $idx => $row}
	{if$_modx->resource.idx | resource: 'published' == 1}
    <button type="button" data-bs-target="#portfolio-category-caption" data-bs-slide-to="{$idx}" {if $idx==0}
	class="active" aria-current="true" {/if} aria-label="{$row.caption}"></button>
	{/if}
    {/foreach}
  </div>
  <div class="carousel-inner">
    {foreach $rows as $idx => $row}
	{if $_modx->resource.idx | resource: 'published' == 1}
    <a href="{$row.url}">
      <div class="carousel-item {if $idx == 0} active{/if}">
        <img src="{$row.slide}" class="d-block w-100"
		alt="{$row.caption}">
        <div class="carousel-caption d-none d-md-block">
          <h5>{$row.caption}</h5>
          <p class="list-style-none">{$row.description | limit:'1000'}</p>
        </div>
      </div>
    </a>
	{/if}
    {/foreach}
  </div>
  <button class="carousel-control-prev" type="button" data-bs-target="#portfolio-category-caption" data-bs-slide="prev">
    <span class="carousel-control-prev-icon" aria-hidden="true"></span>
    <span class="visually-hidden">Previous</span>
  </button>
  <button class="carousel-control-next" type="button" data-bs-target="#portfolio-category-caption" data-bs-slide="next">
    <span class="carousel-control-next-icon" aria-hidden="true"></span>
    <span class="visually-hidden">Next</span>
  </button>
</div>
Всё получилось динамическим кроме одного — не знаю как правильно написать проверку. Если ресурс снят с публикации или отсутствует, то и слайда с ним нет в карусели.
06 октября 2023, 18:44
0
Ну я просто предположил. Либо просто не сохраняет из-за неверных символов в паттерне (вроде так бывает).
30 сентября 2023, 22:52
0
Ну ошибки разве что насчёт прекращении поддержки модх 2.3.0 или что то такое.
Почему то подозреваю, что где то в файле настроек модх забыли прописать код, который изменяет значение этой настройки в таблицу бд. Но это не точно.
16 апреля 2023, 19:02
0
а, хорошо. Спасибо за совет. Попробую.
16 апреля 2023, 09:13
0
Насчёт php — я почему то думал, что там $files.length отвечает за вычисление длины массива, но оказалось, что в документации по php немного не так. В общем, попробую
15 апреля 2023, 20:26
0
Доку по minishop2 читал, но особо ничего такого не нашёл, либо пока не разобрался. Про параметр &limit и &offset я знаю, но, думаю, они не подходят. Хотя нашёл про &toSeparatePlaceholders. Думаю, это оно
27 августа 2021, 16:03
0
хотя это может уже не актуально, но тоже столкнулся с такой проблемой. Оказалось всё просто. В вызов нужно добавить
&strictMode=`0`
По крайней мере, мне помогло
26 августа 2019, 16:14
0
блин, так и думал что есть parent… Но почему то думал что нет такого, потому что не нашёл его в документации docs.modx.pro. Забыл проверить это свойство в официальной документации… Спасибо за помощь ^^ в следующий раз буду внимательней.
19 апреля 2019, 17:55
0
хорошо, спасибо. Ну и хотелось бы узнать — а обязательно переводить ВСЕ чанки сниппетов на феном? или оставить стандартные теги modx? Как вы обычно делаете?
18 апреля 2019, 15:57
0
ну не критично, просто я думал, что если оставлять стандартные теги modx, то сайт будет работать чуть медленнее, чем если бы он полностью состоял из тегов фенома. Ну и я почему то думал что все сниппеты умеют работать с феномом и поэтому хотел перевести все страницы и теги на феном. Или это не обязательно?
18 апреля 2019, 10:33
0
теперь какая то другая ошибка выскочила. Не отображаются картинки из галереи в списке работ. Вот код элемента работы.
<div class="col">
  <div class="card portfolio-item {$cls}">
	<a href="{$_modx->makeUrl($id)}">
	{'!Gallery'|snippet:[
	'thumbTpl'=>'portfolio-image-thumb',
	'album'=> $pagetitle,
	'limit'=>'1'
	]}</a>
	<div class="card-body">
	  <a href={$_modx->makeUrl($id)}><h5 class="card-title">{$pagetitle}</h5></a>
	  <p class="card-text">{$introtext}</p>
	  <a href="{$portfolio_url}" class="btn btn-primary">Перейти на сайт заказчика</a>
	</div>
  </div>
</div>
А вот код чанка-шаблона.
<img src="{$_modx->getPlaceholder('thumbnail')}" class="card-img-top img-fluid img-thumbnail"/>
[[+thumbnail]] работает исправно. Вроде до этого {$_modx->getPlaceholder('thumbnail')} у меня нормально работал.
В консоли браузера пишет следующее:
Failed to load resource: the server responded with a status of 403 (Forbidden)
А в самом исходном коде страницы выводит это:
<img src="{$_modx->getPlaceholder('thumbnail')}" class="card-img-top img-fluid img-thumbnail"/></a>
Что я пробовал:
1. вставить этот код напрямую:
'thumbTpl'=>'<img src="{$_modx->getPlaceholder('thumbnail')}" class="card-img-top img-fluid img-thumbnail"/>'
2. пробовал написать {'thumbnail'|placeholder}
3. пробовал написать тупо {$thumbnail}

Как правильно вызывать плейсхолдер [[+thumbnail]]? Попробовал ещё добавить 'toPlaceholder'=>'thumbnail', но тоже ничего не вышло
17 апреля 2019, 18:07
0
аа… понял. Буду знать
17 апреля 2019, 17:27
0
да, tvPrefix помог. Спасибо большое =) только я не пойму — почему так? Вроде и без префикса работало. Значит в аналогичных вызовах придётся тоже добавлять 'tvPrefix'=>' '?
17 апреля 2019, 16:52
0
<div class="row">
{'!pdoPage' | snippet:[
'parents' => '19',
'level' => '1',
'includeTVs' => 'portfolio_url',
'tpl' => 'portfolio-item',
'sortdir' => 'ASC' ]}

{$_modx->getPlaceholder('!page.nav')}
</div>
Но в коде чанка открытой работы ссылка ведёт куда нужно:
<div class="col">
  <div class="image-block">
	{'!Gallery'|snippet:['album'=>$_modx->resource.pagetitle]}
  </div>
</div>
<div class="col">
  <div class="description-block">
  	<p><b>Описание: </b>{$_modx->resource.description}</p>
	<p><b>Дата выполнения работы: </b>{$_modx->resource.portfolio_date}</p>
	<p><b>Список выполненных работ: </b>{$_modx->resource.portfolio_completedTasks}</p>
	<p><b>Комментарий к работе: </b>{$_modx->resource.portfolio_comment}</p>
	<p><b>О клиенте: </b>{$_modx->resource.portfolio_about}</p>
	<a href="{$_modx->resource.portfolio_url}" class="btn btn-primary">Перейти на сайт заказчика</a>
  </div>
</div>
17 апреля 2019, 16:01
0
ну да, переименование тв-полей в духе portfolio_date решило проблему, но теперь в чанке-шаблоне не срабатывает вывод ссылки. точнее, ссылка не выводит куда надо.
<div class="col">
  <div class="card portfolio-item {$cls}">
	<a href="{$_modx->makeUrl($id)}">
	{'!Gallery'|snippet:[
	'thumbTpl'=>'portfolio-image-thumb',
	'album'=> $pagetitle,
	'limit'=>'1'
	]}</a>
	<div class="card-body">
	  <a href={$_modx->makeUrl($id)}><h5 class="card-title">{$pagetitle}</h5></a>
	  <p class="card-text">{$introtext}</p>
	  <a href="{$portfolio_url}" class="btn btn-primary">Перейти на сайт заказчика</a>
	</div>
  </div>
</div>
по идее, теперь должно работать, но ни {$portfolio_url}, ни {$_modx->getPlaceholder('portfolio_url')} почему то не срабатывает. Он выводит только на главную страницу. в &includeTVs я исправил название тв-поля. До этого вроде срабатывал код {$_pls['portfolio-url']}. Может я забыл где то исправить значение тв?
17 апреля 2019, 14:12
0
Ну раз есть способ обойти, то почему бы его не использовать. Но, видимо, придётся переименовать. Попробую.
17 апреля 2019, 13:34
0
ну я пробовал с $_pls — не сработало. Может дело в чём-то другом? пробовал ещё через переменную — тоже не вышло. К примеру, такой код:
{var $portfolio_date = $_pls['portfolio-date']}
{$portfolio_date}
17 апреля 2019, 13:32
0
попробовал — не вышло. ну если что — этот чанк вызывается в шаблоне таким кодом:
<div class="content-color">
	  <h1>{$_modx->resource.pagetitle}</h1>
	  <div class="row">
	  {$_modx->getChunk('portfolio-item-description_template')}
	  </div>
	  </div>
Проверил — не влияет ли тире в названии чанка на работоспособность. Вроде не влияет.