Андрей

Андрей

С нами с 09 апреля 2015; Место в рейтинге пользователей: #68
Алексей Ерохин
03 ноября 2017, 14:12
2
0
Вызов jGrowl
$.jGrowl("Stick this!", { sticky: true });
Илья Уткин
31 октября 2017, 11:17
2
+4
Я делал так:

Чанк outer для фильтра:
<div id="mse2_[[+table]][[+delimeter]][[+filter]]">
    [[+rows]]
</div>

Чанк rows для фильтра:
{if $idx == 0}
      <label for="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]">
        <input type="checkbox" name="[[+filter_key]]"
          id="mse2_[[+table]][[+delimeter]][[+filter]]_[[+idx]]"
          value="[[+value]]" [[+checked]] [[+disabled]]/> [[+title]] <sup>[[+num]]</sup>
      </label>
{/if}

То есть, тупо не показываю вторую галочку.
Alex Zhuravlev
16 октября 2017, 22:24
2
0
Дописал под себя getLanguages.
Сделал вывод в placeholders и добавил css class «active»

getLanguages
<?php
$pdo = $modx->getService('pdoTools');

$uri = $_SERVER['REQUEST_URI'];
if(substr($uri, 0, 1)) {
    $uri = mb_substr($uri, 1);
    $tmp = explode('/', $uri);
    if($path = $tmp[0]) {
        $tmp = $modx->getObject('localizatorLanguage', array('http_host:LIKE' => "%/{$path}/"));
        if($tmp) {
            $uri = str_replace("{$path}/", "", $uri);
        }
    }
}

$protocol = 'https://';
$languages = $modx->getIterator('localizatorLanguage');
foreach($languages as $language) {
    if(mb_substr($language->http_host, -1) == '/') {
        $placeholders = array(
            'cultureKey'=>$language->key,
            'active'=>$language->key == $modx->localizator_key ? 'active' : '',
            'url'=>$protocol . $language->http_host . $uri,
        );
    } else {
        $placeholders = array(
            'cultureKey'=>$language->key,
            'active'=>$language->key == $modx->localizator_key ? 'active' : '',
            'url'=>$protocol . $language->http_host . '/' . $uri,
        );
    }
    $output .= $pdo->getChunk($tpl, $placeholders);
}

return $output;

В шаблоне
<div class="langs">
	{$_modx->runSnippet('!getLanguages', ['tpl' => 'section-langs-1',])}
	<div class="dropdown-menu">
		{$_modx->runSnippet('!getLanguages', ['tpl' => 'section-langs-2',])}
	</div>
</div>

Содержимое section-langs-1
<a href="#" data-toggle="dropdown" role="button" aria-expanded="false"></a><img class="imglang {$active}" src="/assets/img/flags/{$cultureKey}.png" alt="{$cultureKey}">

Содержимое section-langs-2
<div class="dropdown-item">
    {if $active != 'active'}
        <a class="{$active}" href="{$url}"><img class="imglang {$active}" src="/assets/img/flags/{$cultureKey}.png" alt="{$cultureKey}"></a>
    {else}
        <div class="{$active}"><img class="imglang {$active}" src="/assets/img/flags/{$cultureKey}.png" alt="{$cultureKey}"></div>
    {/if}
</div>

На уникальность не претендую, но уверен что кому то поможет.
Критика и правки приветствуются.
Василий Наумкин
11 октября 2017, 10:28
2
+1
Нужно.

Причём, писать лучше массивом, потому что сейчас у тебя там JSON с ошибкой:
'includeTVs' => 'searching',
'where' => [
	'searching' => 1, 
	'Status.value:IN' => ['', 0, 2],
],
Тоже самое касается и join — все сниппеты pdoTools давно понимают указание массивов через Fenom.
man
man
09 октября 2017, 11:38
1
+1
Можно!
В значения по умолчанию пишешь стандартный migx-json, типа такого но со своими полями:
[{
	"MIGX_id":"1",
	"name":"name 1",
	"description":"description 1",
	"size":"10,5 х 14,8см",
	...
	"impPrint":"25"},
{
	"MIGX_id":"2",
	"name":"name 2",
	"description":"description 2",
	"size":"42,0 x 59,4 см",
	...
	"impPrint":"22"},
{
	"MIGX_id":"3",
	"name":"name 3",
	"description":"description 3",
	"size":"59,4 х 84,1 см",
	...
	"impPrint":"23"}
]
Stan Ezersky
14 сентября 2017, 21:57
1
0
Когда задаёте такие вопросы, хоть версии окружения пишите…
Илья Уткин
14 сентября 2017, 10:58
1
+1
[[!+modx.user.id:eq=`1`:then=`
  <a href="manager/?a=element/chunk/update&id=8" data-action="iframe">Редактировать</a>
`:else=``]]

Только вместо восьмёрки id нужного чанка. Ну и оформить ссылку уже можно как угодно с помощью стилей.
Илья Уткин
14 сентября 2017, 10:36
2
+3
Да, перед проверкой псевдонима никакое событие не вызывается. Здесь используется дополнение Tickets — тикеты это расширенные ресурсы с дополнительным функционалом, в том числе, со своим механизмом генерации URL.

Можно как костыль использовать такое решение:
1. Включаем автоматическую генерацию псевдонима
2. В плагине проверяем — если псевдоним ресурса такой же, как его сгенерировал бы MODX, заменяем псевдоним:
<?php
switch ($modx->event->name) {
    case 'OnDocFormSave':
        $generated = $resource->cleanAlias($resource->pagetitle);
        if ($resource->alias == $generated) {
            $resource->set('alias', $resource->id);
        }
        $resource->save();
        break;
    default:
        break;
}

Но это, конечно, очень грязный хак — ведь где-то автоматически сгенерированный псевдоним будет реально нужен. Нужно ограничивать работу плагина, например, родителем ресурса или его шаблоном.
Stan Ezersky
10 сентября 2017, 13:56
2
+2
Хотлинк-защита

location /images/ {
	valid_referers none blocked www.host.com host.com;
	if ($invalid_referer) {
		return 403;
	}
}
Володя
07 сентября 2017, 06:56
2
+2
<div id="msGallery" class="msoptionsprice-gallery">

    <div class="fotorama"
         data-nav="thumbs"
         data-fit_="cover"
         data-allowfullscreen="false"
         data-swipe="true"
         data-enableifsingleframe="false">

        {var $preload = []}

        {if $files?}
            {foreach $files as $file}
                {set $preload[] = '<img src='~$file['medium']~'>'}
                <a href="{$file['medium']}" target="_blank" alt="{$file['name']}" title="{$file['description']}">
                    <img src="{$file['small']}" class="img-responsive" alt="{$file['name']}" title="{$file['description']}">
                </a>
            {/foreach}
        {else}
            <a href="{('assets_url' | option) ~ 'img/noimage.png'}" target="_blank" alt="noimage" title="noimage">
                <img src="{('assets_url' | option) ~ 'img/noimage.png'}" alt="noimage" title="noimage">
            </a>
        {/if}
    </div>

</div>

<div style="position:fixed;left:9999px;opacity:0;">
    {$preload|join}
</div>
то есть добавил скрытый контейнер и в нем подгрузку изображений. Попробуйте…