Наверх

Шпаргалки по MODX RSS

mFilter2 - фильтрация по кнопке (выключить автофильтр)

05 августа 2017, 09:28

<script>
    $(document).ready(function(){
        $(document).off('change', '#mse2_filters');
        $('#mse2_filters [type="submit"]').removeClass('hidden');
    });
</script>
или
&filterOptions=`{"autoLoad":0}`

Читать дальше

Вывод всех тегов ms2Gallery

07 июля 2017, 08:12

{'pdoResources' | snippet : [
    'loadModels' => 'ms2gallery',
    'class' => 'msResourceFileTag',
    'leftJoin' => '{
        "File":{ "class":"msResourceFile", "on":"File.id = msResourceFileTag.file_id" }
    }',
    'select' => '{
        "msResourceFileTag": "*",
        "File": "*"
    }',
    'where' => '{ "File.resource_id": ' ~ $_modx->resource.id ~ ' }',
    'groupby' => 'tag',
    'sortby' => '{ "tag":"ASC" }',
    'limit' => 0,
    'tpl' => '@INLINE <span>{$tag}</span>'
    'outputSeparator' => ', '
]}

Читать дальше

Проверка отправки почты в MODX

16 июня 2017, 15:55

Запустить код в дополнении Console:
<?php
$to    = 'site@mail.ru';
$theme = 'Site URL: ' . MODX_HTTP_HOST;
$body  = 'Test mail message';
$from  = $modx->getOption('emailsender');

$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->address('to', $to);
$modx->mail->set(modMail::MAIL_FROM, $from);
$modx->mail->set(modMail::MAIL_FROM_NAME, 'Console');
$modx->mail->set(modMail::MAIL_SUBJECT, $theme);
$modx->mail->set(modMail::MAIL_BODY, $body);
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
    echo 'Sending failed. Error: ' . $modx->mail->mailer->ErrorInfo;
} else {
    echo 'Success';
}
$modx->mail->reset();

Читать дальше

Плавный скроллинг по клику на ссылку

16 июня 2017, 15:33

<a href="#" onclick="
  $('body,html').animate({
    scrollTop: $('.contacts').first().offset().top
  }, 600);
  return false;
">Обратная связь</a>

Читать дальше

Список ресурсов для ТВ «Список с одиночным выбором»

17 апреля 2017, 17:52

@EVAL return $modx->runSnippet('pdoResources', array('parents' => 64, 'limit' => 0, 'tpl' => '@INLINE {$pagetitle}=={$id}', 'outputSeparator' => '||', 'where' => '{"parent":64}', 'sortby' => '{"menuindex":"ASC"}'));

Читать дальше

Получение заголовка видео с youtube

08 апреля 2017, 10:24

Создаём плагин на событие OnDocFormSave
<?php
if ($mode == 'new') {
  if (strpos(trim($resource->pagetitle), ' ') === false) {
    $url = 'https://www.youtube.com/watch?v=' . $resource->pagetitle;
    $html = file_get_contents($url);
    $dom = new DomDocument();
    $dom->loadHTML('<?xml version="1.0" encoding="UTF-8"?>'. $html);
    if ($title = $dom->getElementById('eow-title')) {
      $modx->log(1, $resource->pagetitle);
      $video_id = $resource->pagetitle;
      $resource->set('pagetitle', $title->nodeValue);
      $resource->set('template', 18);
      $resource->setTVValue('video', $video_id);
      $resource->save();
    }
  }
}
Теперь, чтобы добавить видео на сайт, создаём новый ресурс, в заголовок которого вставляем ID видео с Youtube. Плагин вытащит название этого видео, а ID сохранит в соответствующем ТВ.
Читать дальше

Cортировка по ТВ-параметру ЧИСЛО для pdoResources

12 января 2017, 10:11

[[pdoResources?
  &tpl=`@INLINE {$pagetitle} - {$price}`
  &sortby=`{"CAST(`TVprice`.`value` AS DECIMAL(13,3))":"ASC"}`
  &includeTVs=`price`
]]

Читать дальше

Запросы INSERT и UPDATE на PDO

06 декабря 2016, 08:10

// 'modx_table_name', array('row1' => 1, 'row2' =>2)
function _INSERT($table, $data){
	$keys = array_keys($data);
	$fields = '`' . implode('`,`', $keys) . '`';
	$placeholders = substr(str_repeat('?,', count($keys)), 0, -1);
	$sql = "INSERT INTO {$table} ({$fields}) VALUES ({$placeholders});";
	$stmt = $this->modx->prepare($sql);
	if (!$stmt->execute(array_values($data))) {
		$this->modx->log(1, print_r($stmt->errorInfo(), true) . ' SQL: ' . $sql);
	}
}

// 'modx_table_name', array('row1' => 1, 'row2' => 2), 'id', 1
function _UPDATE($table, $data, $key, $val){
	if(!$key || !$val) return false;
	$placeholders = array();
	foreach(array_keys($data) as $k) $placeholders[] = "`{$k}` =?";
	$placeholders = implode(', ', $placeholders);
	$data = array_values($data);
	array_push($data,$val);
	$sql = "UPDATE {$table} SET {$placeholders} WHERE `{$key}` =?;";
	$stmt = $this->modx->prepare($sql);
	if (!$stmt->execute(array_values($data))) {
		$this->modx->log(1, print_r($stmt->errorInfo(), true) . ' SQL: ' . $sql);
	}
}

Читать дальше

Подгрузка статей кнопкой с помощью pdoPage

19 сентября 2016, 10:27

<div class="news-items" id="newsItems">
    [[!+news-nav]]
    <div class="rows" style="overflow: hidden;">
        [[!pdoPage?
            &parents=`18`
            &tpl=`newItemTpl`
            &showHidden=`1`
            &includeTVs=`image`
            &limit=`4`
            &sortby=`{"publishedon":"ASC"}`
            
            &pageVarKey=`news-page`
            &totalVar=`news-total`
            &pageNavVar=`news-nav`
            &pageCountVar=`news-count`
            
            &ajaxMode=`button`
            &ajaxElemWrapper=`#newsItems`
            &ajaxElemRows=`#newsItems .rows`
            &ajaxElemPagination=`#newsItems .pagination`
            &ajaxElemLink=`#newsItems .pagination a`
            &ajaxElemMore=`#newsItems .more`
            &ajaxTplMore=`@INLINE <span class="news-more more"><span></span>Показать еще</span>`
        ]]
    </div>
</div>

Читать дальше

Разбивка страниц по категориям (родителям)

11 августа 2016, 22:24

<div id="pdopage">
    <div class="rows">
    [[!pdoPage?
        &parents=`0`
        &level=`0`
        &limit=`6`
        &where=`{"modResource.parent:!=":0}`
        &sortby=`{"p_menuindex":"ASC", "publishedon":"DESC"}`
        &ajaxMode=`default`
        &leftJoin=`{
            "Parent":{"class":"modResource", "on":"Parent.id = modResource.parent"}
        }`
        &select=`{
            "modResource":"*",
            "Parent":"Parent.id as pid, Parent.pagetitle as parent_pagetitle, Parent.uri as p_uri, Parent.menuindex as p_menuindex"
        }`
        &tpl=`@INLINE <h4 class="parent-title parent-{$pid}" data-pid="{$pid}">{$parent_pagetitle}</h4>
        <p>{$pagetitle}</p>`
    ]]
    </div>
    [[!+page.nav]]
</div>
<script>
    function hideTitles() {
        $('.parent-title').hide();
        $('.parent-title').each(function(){
            $('.parent-' + $(this).data('pid')).first().show();
        });
    }
    hideTitles()
    $(document).on('pdopage_load', function(e, config, response) {
        hideTitles()
    });
</script>

Читать дальше

Авторизация

через сервис Loginza:


Шаблоны MODX

1 2 Дальше »

Объектная
модель
MODX