Наверх

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

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

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>

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

Удалить index из URL ресурсов, дочерних главной

24 июля 2016, 19:29

<?php
switch ($modx->event->name) {
    case 'OnWebPagePrerender':
        $modx->resource->_output = str_replace('"index/', '"', $modx->resource->_output);
        break;
    case 'OnPageNotFound':
        $uri = explode('?', $_SERVER['REQUEST_URI']);
        if ($res = $modx->findResource('index' . $uri[0])) {
            $modx->sendForward($res);
        }
        break;
    case 'OnHandleRequest':
        if (strpos($_SERVER['REQUEST_URI'], 'index/') !== false) {
            $url = str_replace('index/', '', $_SERVER['REQUEST_URI']);
            $modx->sendRedirect($url, array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
        }
        break;
    default:
        break;
}
return;

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

Полнотекстовый поиск с помощью pdoResources

13 июля 2016, 12:29

Добавляем полнотекстовый индекс в таблицу
ALTER TABLE `modx_customextra_items` ADD FULLTEXT(`name`);
После чего появляется возможность использовать MATCH
[[!pdoResources?
  &class=`customExtraItem`
  &loadModels=`customextra`
  &sortby=`{"name":"ASC"}`
  &where=`[
            "MATCH(customExtraItem.name) AGAINST ('[[!#get.search]]')"
          ]`
  &tpl=`@INLINE <p>{$name}</p>`
]]

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

Прикрепление картинки к объекту на ExtJS

07 июля 2016, 19:54

MyComponent.window.EditPersonal = function(config) {
  config = config || {};
  var self = this;
  Ext.applyIf(config,{
    title: _('mycomponent.title.win_edit')
    ,url: MyComponent.config.connectorUrl
    ,autoHeight: true
    ,width: 950
    ,modal: true
    ,fileUpload: true
    ,enctype : 'multipart/form-data'
    ,baseParams: {
      action: 'mgr/tgmupersonal/update'
    }
// ...

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

Простой ExtJS ComboBox со списком значений

07 июля 2016, 18:57

var storeitems = new Ext.data.ArrayStore({
    id: 'gender-items'
    ,fields: ['value',{name: 'gender', type: 'string']}
    ,data: [['m','Мужской'],['f','Женский']]
});
MyComponent.combo.gender = function(config) {
    config = config || {};
    Ext.applyIf(config,{
        store: storeitems
        ,displayField: 'gender'
        ,valueField: 'value'
        ,hiddenName: 'gender'
        ,mode: 'local'
        ,triggerAction: 'all'
        ,editable: false
        ,selectOnFocus: false
        ,preventRender: true
        ,forceSelection: true
        ,enableKeyEvents: true
    });
    MyComponent.combo.gender.superclass.constructor.call(this,config);
};
Ext.extend(MyComponent.combo.gender,MODx.combo.ComboBox);
Ext.reg('tyumsmubase-combo-gender',MyComponent.combo.gender);

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

Как вывести только контейнеры MODX

05 июля 2016, 13:58

Будут выведены только те ресурсы, у которых есть дочерние.
[[pdoResources?
  &parents=`0`
  &select=`{
        "modResource":"id, pagetitle",
        "Children":"COUNT(Children.id) as count"
    }`
  &leftJoin=`{
      "Children":{"class":"modResource", "on":"modResource.id = Children.parent"}
    }`
  &sortby=`{"id":"ASC"}`
  &where=`{"parent":0, "Children.id:IS NOT":null}`
  &groupby=`modResource.id`
  &limit=`0`
  &tpl=`@INLINE <p>{$id}. {$pagetitle} - {$count} {$count | decl : "дочерний ресурс|дочерних ресурса|дочерних ресурсов"}</p>`
  &showLog=`0`
]]

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

Типовой файл .gitignore для кастомного компонента MODX

05 июля 2016, 11:58

.gitignore
config.core.php
ht.access
.htaccess
index.php
/connectors/
/manager/

/assets/*
!/assets/components/
/assets/components/*
!/assets/components/mycomponent/
!/assets/components/cmpgeneratorpro/
/assets/components/cmpgeneratorpro/*
!/assets/components/cmpgeneratorpro/build/
/assets/components/cmpgeneratorpro/build/*
!/assets/components/cmpgeneratorpro/build/_build_mycomponent/

/core/*
!/core/components/
/core/components/*
!/core/components/mycomponent/

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

Сообщение об успешной отправке AjaxForm в модалке

13 июня 2016, 14:32

FancyBox

<script>
  $(document).on('af_complete', function(event, response) {
      var form = response.form;
      if (response.success) {
          $.fancybox.close();
          $.fancybox('<h1>' + response.message + '</h1>');
      }
  });
</script>

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

Пример leftJoin в pdoResources. Вывод картинок Gallery

09 июня 2016, 16:04

[[pdoResources?
  &tpl=`@INLINE <img src="[[++assets_url]]gallery/[[+filename]]">`
  &sortby=`{"id":"ASC"}`
  &limit=`0`
  &where=`{"album":1}`
  &class=`galAlbumItem`
  &loadModels=`gallery`
  &select=`{
    "galAlbumItem": "*",
    "galItem": "*"
  }`
  &leftJoin=`{
    "galItem":{"class":"galItem", "on":"galItem.id = galAlbumItem.item"}
  }`
]]

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

Минимальный вызов ms2Gallery

24 мая 2016, 10:43

{'ms2Gallery' | snippet : [
  'tpl' => '@INLINE {foreach $files as $file}
      <a href="{$file["url"]}" class="fancybox2" rel="gal-{$file["resource_id"]}">
        <img src="{$file["url"] | phpthumbon : "w=730&h=435&zc=1"}"
         alt="{$file["resource_id"] | respurce : "pagetitle"}"
         title="{$file["resource_id"] | respurce : "pagetitle"}">
      </a>
    {/foreach}',
  'resource' => $_modx->resource.id
]}

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

Авторизация

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

Подписка или RSS

Буду присылать новые статьи — никакого спама



Шаблоны MODX

1 2 Дальше »

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