Skip to content

Instantly share code, notes, and snippets.

@Dmi3yy
Last active August 29, 2015 13:56

Revisions

  1. Dmi3yy revised this gist Mar 3, 2014. 1 changed file with 33 additions and 15 deletions.
    48 changes: 33 additions & 15 deletions modx1.0.13.ru.md
    Original file line number Diff line number Diff line change
    @@ -13,30 +13,48 @@
    - Thomas Jakobi (Jako) https://github.com/Jako
    - Segr Kaparov (Segr) https://github.com/segr
    - DivanDesign studio https://github.com/DivanDesign
    - esszett и Eoler

    a так же помогали: esszett и Eoler


    отдельное спасибо за помощь с переводами:
    ####отдельное спасибо за помощь с переводами:

    Dutch: Marc (fourroses) https://www.transifex.com/accounts/profile/fourroses/
    Dutch:

    Italian: luigif https://www.transifex.com/accounts/profile/luigif/
    Nicola (banzai) https://www.transifex.com/accounts/profile/banzai/
    - Marc (fourroses) https://www.transifex.com/accounts/profile/fourroses/

    Italian:

    - luigif https://www.transifex.com/accounts/profile/luigif/
    - Nicola (banzai) https://www.transifex.com/accounts/profile/banzai/

    Japanese: Masanori Yamamoto (yama) https://www.transifex.com/accounts/profile/yama/
    Japanese:

    - Masanori Yamamoto (yama) https://www.transifex.com/accounts/profile/yama/

    Russian: Dmytro Lukianenko (dmi3yy) https://www.transifex.com/accounts/profile/dmi3yy/
    Alex (Extremum) https://www.transifex.com/accounts/profile/Extremum/
    Pathologic https://www.transifex.com/accounts/profile/Pathologic/
    Segr Kaparov (Segr) https://www.transifex.com/accounts/profile/Segr/
    Russian:

    - Dmytro Lukianenko (dmi3yy) https://www.transifex.com/accounts/profile/dmi3yy/
    - Alex (Extremum) https://www.transifex.com/accounts/profile/Extremum/
    - Pathologic https://www.transifex.com/accounts/profile/Pathologic/
    - Segr Kaparov (Segr) https://www.transifex.com/accounts/profile/Segr/

    Swedish: PontusAgren https://www.transifex.com/accounts/profile/PontusAgren/
    Swedish:

    - PontusAgren https://www.transifex.com/accounts/profile/PontusAgren/

    Polish:

    - Witek Galecki (witq) https://www.transifex.com/accounts/profile/witq/
    - pmfx https://www.transifex.com/accounts/profile/pmfx/

    Portuguese:

    - everton\_seib https://www.transifex.com/accounts/profile/everton_seib/

    German:

    Polish: Witek Galecki (witq) https://www.transifex.com/accounts/profile/witq/
    pmfx https://www.transifex.com/accounts/profile/pmfx/
    Portuguese: everton\_seib https://www.transifex.com/accounts/profile/everton_seib/
    German: Thomas Jakobi (jako) https://www.transifex.com/accounts/profile/jako/
    - Thomas Jakobi (jako) https://www.transifex.com/accounts/profile/jako/



  2. Dmi3yy renamed this gist Mar 3, 2014. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  3. Dmi3yy revised this gist Mar 3, 2014. 1 changed file with 7 additions and 1 deletion.
    8 changes: 7 additions & 1 deletion modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -18,15 +18,21 @@ a так же помогали: esszett и Eoler


    отдельное спасибо за помощь с переводами:
    Dutch: Marc (fourroses) https://www.transifex.com/accounts/profile/fourroses/

    Dutch: Marc (fourroses) https://www.transifex.com/accounts/profile/fourroses/

    Italian: luigif https://www.transifex.com/accounts/profile/luigif/
    Nicola (banzai) https://www.transifex.com/accounts/profile/banzai/

    Japanese: Masanori Yamamoto (yama) https://www.transifex.com/accounts/profile/yama/

    Russian: Dmytro Lukianenko (dmi3yy) https://www.transifex.com/accounts/profile/dmi3yy/
    Alex (Extremum) https://www.transifex.com/accounts/profile/Extremum/
    Pathologic https://www.transifex.com/accounts/profile/Pathologic/
    Segr Kaparov (Segr) https://www.transifex.com/accounts/profile/Segr/

    Swedish: PontusAgren https://www.transifex.com/accounts/profile/PontusAgren/

    Polish: Witek Galecki (witq) https://www.transifex.com/accounts/profile/witq/
    pmfx https://www.transifex.com/accounts/profile/pmfx/
    Portuguese: everton\_seib https://www.transifex.com/accounts/profile/everton_seib/
  4. Dmi3yy revised this gist Mar 3, 2014. No changes.
  5. Dmi3yy revised this gist Mar 3, 2014. 1 changed file with 14 additions and 4 deletions.
    18 changes: 14 additions & 4 deletions modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -18,10 +18,20 @@ a так же помогали: esszett и Eoler


    отдельное спасибо за помощь с переводами:
    - Dutch: Marc (fourroses) https://www.transifex.com/accounts/profile/fourroses/
    - Italian: luigif https://www.transifex.com/accounts/profile/luigif/ Nicola (banzai) https://www.transifex.com/accounts/profile/banzai/
    - Japanese: Masanori Yamamoto (yama) https://www.transifex.com/accounts/profile/yama/
    - Russian: Dmytro Lukianenko (dmi3yy) https://www.transifex.com/accounts/profile/dmi3yy/ (Extremum)https://www.transifex.com/accounts/profile/Alex
    Dutch: Marc (fourroses) https://www.transifex.com/accounts/profile/fourroses/
    Italian: luigif https://www.transifex.com/accounts/profile/luigif/
    Nicola (banzai) https://www.transifex.com/accounts/profile/banzai/
    Japanese: Masanori Yamamoto (yama) https://www.transifex.com/accounts/profile/yama/
    Russian: Dmytro Lukianenko (dmi3yy) https://www.transifex.com/accounts/profile/dmi3yy/
    Alex (Extremum) https://www.transifex.com/accounts/profile/Extremum/
    Pathologic https://www.transifex.com/accounts/profile/Pathologic/
    Segr Kaparov (Segr) https://www.transifex.com/accounts/profile/Segr/
    Swedish: PontusAgren https://www.transifex.com/accounts/profile/PontusAgren/
    Polish: Witek Galecki (witq) https://www.transifex.com/accounts/profile/witq/
    pmfx https://www.transifex.com/accounts/profile/pmfx/
    Portuguese: everton\_seib https://www.transifex.com/accounts/profile/everton_seib/
    German: Thomas Jakobi (jako) https://www.transifex.com/accounts/profile/jako/



    ##Из основного на что хотел бы обратить внимание:
  6. Dmi3yy revised this gist Mar 3, 2014. 1 changed file with 6 additions and 1 deletion.
    7 changes: 6 additions & 1 deletion modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -15,9 +15,14 @@
    - DivanDesign studio https://github.com/DivanDesign

    a так же помогали: esszett и Eoler
    отдельное спасибо за помощь с переводами:


    отдельное спасибо за помощь с переводами:
    - Dutch: Marc (fourroses) https://www.transifex.com/accounts/profile/fourroses/
    - Italian: luigif https://www.transifex.com/accounts/profile/luigif/ Nicola (banzai) https://www.transifex.com/accounts/profile/banzai/
    - Japanese: Masanori Yamamoto (yama) https://www.transifex.com/accounts/profile/yama/
    - Russian: Dmytro Lukianenko (dmi3yy) https://www.transifex.com/accounts/profile/dmi3yy/ (Extremum)https://www.transifex.com/accounts/profile/Alex


    ##Из основного на что хотел бы обратить внимание:

  7. Dmi3yy revised this gist Mar 3, 2014. 1 changed file with 4 additions and 1 deletion.
    5 changes: 4 additions & 1 deletion modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -12,9 +12,12 @@
    - Dmytro Lukianenko (Dmi3yy) https://github.com/dmi3yy
    - Thomas Jakobi (Jako) https://github.com/Jako
    - Segr Kaparov (Segr) https://github.com/segr
    - Ilyas Ronef (Ronef) https://github.com/ronef
    - DivanDesign studio https://github.com/DivanDesign

    a так же помогали: esszett и Eoler
    отдельное спасибо за помощь с переводами:



    ##Из основного на что хотел бы обратить внимание:

  8. Dmi3yy revised this gist Mar 3, 2014. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -13,6 +13,7 @@
    - Thomas Jakobi (Jako) https://github.com/Jako
    - Segr Kaparov (Segr) https://github.com/segr
    - Ilyas Ronef (Ronef) https://github.com/ronef

    a так же помогали: esszett и Eoler

    ##Из основного на что хотел бы обратить внимание:
  9. Dmi3yy revised this gist Mar 3, 2014. 1 changed file with 8 additions and 0 deletions.
    8 changes: 8 additions & 0 deletions modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -7,6 +7,14 @@
    Улучшений: **24**
    Безопасность: **1**

    ##Над версией 1.0.13 работали:

    - Dmytro Lukianenko (Dmi3yy) https://github.com/dmi3yy
    - Thomas Jakobi (Jako) https://github.com/Jako
    - Segr Kaparov (Segr) https://github.com/segr
    - Ilyas Ronef (Ronef) https://github.com/ronef
    a так же помогали: esszett и Eoler

    ##Из основного на что хотел бы обратить внимание:

    - KCFinder - генерация псевдонимов через TransAlias
  10. Dmi3yy revised this gist Mar 2, 2014. 1 changed file with 3 additions and 1 deletion.
    4 changes: 3 additions & 1 deletion modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -25,7 +25,7 @@

    **Весь перечень изменений можно как всегда увидеть в файле install/changelog.txt**

    ##Подробней о изменениях
    ##Подробней о некоторых изменениях
    *тут так же упомяну несколько вещей которые появились еще в версии 1.0.12 но не были достаточно хорошо высветленны*

    ###Изменения API
    @@ -107,3 +107,5 @@

    ###ManagerManager
    Очень много изменений, детальней тут: http://code.divandesign.ru/modx/managermanager


  11. Dmi3yy revised this gist Mar 2, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -4,7 +4,7 @@

    Исправлений: **44**
    Рефактор: **42**
    Улучшений: **23**
    Улучшений: **24**
    Безопасность: **1**

    ##Из основного на что хотел бы обратить внимание:
  12. Dmi3yy revised this gist Mar 2, 2014. 1 changed file with 15 additions and 9 deletions.
    24 changes: 15 additions & 9 deletions modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -19,6 +19,9 @@
    - добавлен ID документа в заголовок при редактировании документа а так же в QM+
    - Breadcrumbs 1.0.4 (можно исключить документы с указанным шаблоном)
    - phpthumb 1.2 (не подключает phpthumb class если картинки на страничке уже пережаты)
    - eForm is 1.4.5 (новые возможности: &attachmentFields/&attachmentPath)
    - FirstChildRedirect 2.0 (добавленны параметры: &default, &sortBy, &sortDir, &responseCode)


    **Весь перечень изменений можно как всегда увидеть в файле install/changelog.txt**

    @@ -90,14 +93,17 @@
    [+ditto_index+] - аналог [+ditto_iteration+] но начинается с 1.


    ###Eform
    ###Wayfinder
    ###Breadcrumbs

    ###ManagerManager
    Очень много изменений, детальней тут:
    http://code.divandesign.ru/modx/managermanager


    ###FirstChildRedirect
    Новые параметры:

    &default - если нет дочернего документа то отправляет на указанный id, по умолчанию site_start

    метод сортировку по которому получаем первый документ
    &sortBy - по умолчанию menuindex
    &sortDir - по умолчанию ASC

    &responseCode - метод редиректа 301/302 по умолчанию 301


    ###ManagerManager
    Очень много изменений, детальней тут: http://code.divandesign.ru/modx/managermanager
  13. Dmi3yy revised this gist Mar 2, 2014. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -95,9 +95,9 @@
    ###Breadcrumbs

    ###ManagerManager
    Полный список изменений рекомендую смотреть тут:
    Очень много изменений, детальней тут:
    http://code.divandesign.ru/modx/managermanager
    так как слишком много нововведений




  14. Dmi3yy revised this gist Mar 2, 2014. 1 changed file with 19 additions and 4 deletions.
    23 changes: 19 additions & 4 deletions modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -41,7 +41,7 @@


    ####$modx->getIdFromAlias()
    Функция которая позволяет получить из Алиаса документа его id (используется в поиске в панели управления)
    Функция которая позволяет получить из Алиаса документа его id (используется в поиске в панели управления) доступна с версии 1.0.12

    $docid = $modx->getIdFromAlias('blog.html');
    $docid = $modx->getIdFromAlias('catalog/tovar.html');
    @@ -76,13 +76,28 @@



    ###Ditto
    Новые параметры:
    ###Ditto
    Доступно с версии 1.0.12
    Новые параметры:

    $outerTpl - работает по аналогии с Wayfinder, при отсутствии документов выводит то что указанно в параметре noResults. Использовать в нутри параметра нужно плейсхолдер [+wrapper+].

    $max_paginate, $max_previous - 2 параметра который влияют на пагинацию, по умолчанию(50 и 25 соответственно) Используются как замена сниппету splitPaginate для того что б при наличии большого количесва страниц отображать только часть

    Новые плейсхолдеры:


    [+ditto_class+] - принимает значения (odd, even и first, last, current)
    [+ditto_index+] - аналог [+ditto_iteration+] но начинается с 1.


    ###Eform
    ###Wayfinder
    ###Breadcrumbs

    ###ManagerManager
    Полный список изменений рекомендую смотреть тут:
    http://code.divandesign.ru/modx/managermanager
    так как слишком много нововведений



  15. Dmi3yy revised this gist Mar 2, 2014. 1 changed file with 45 additions and 99 deletions.
    144 changes: 45 additions & 99 deletions modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -7,7 +7,7 @@
    Улучшений: **23**
    Безопасность: **1**

    ##Из основного на что хотел бы обратить внимаение:
    ##Из основного на что хотел бы обратить внимание:

    - KCFinder - генерация псевдонимов через TransAlias
    - Обновлен ManagerManager до версии 0.6.1
    @@ -26,108 +26,54 @@
    *тут так же упомяну несколько вещей которые появились еще в версии 1.0.12 но не были достаточно хорошо высветленны*

    ###Изменения API
    ####$modx->getDocument
    ####$modx->getDocument,
    ####$modx->getDocuments,
    ####$modx->getDocumentChildren,
    ####$modx->getDocumentChildrenTVarOutput,
    ####$modx->getTemplateVarOutput,
    ####$modx->getTemplateVars

    Добавленна возможность при выборе документа не учитывать параметры: опубликован, удален

    /**
    * getDocument
    * @version 1.0.1 (2014-02-19)
    *
    * @desc Returns required fields of a document.
    *
    * @param $id {integer} - Id of a document which data has to be gained. @required
    * @param $fields {comma separated string; '*'} - Comma separated list of document fields to get. Default: '*'.
    * @param $published {0; 1; 'all'} - Document publication status. Once the parameter equals 'all', the result will be returned regardless of whether the ducuments are published or they are not. Default: false.
    * @param $deleted {0; 1; 'all'} - Document removal status. Once the parameter equals 'all', the result will be returned regardless of whether the ducuments are deleted or they are not. Default: 0.
    *
    * @return {array; false} - Result array with fields or false.
    */
    function getDocument($id = 0, $fields = '*', $published = 1, $deleted = 0){
    if ($id == 0){
    return false;
    }else{
    $docs = $this->getDocuments(array($id), $published, $deleted, $fields, '', '', '', 1);
    if ($docs != false){
    return $docs[0];
    }else{
    return false;
    }
    }
    }

    ####$modx->getDocuments
    Добавленна возможность выбирать все документы (к примеру раньше можно было выбирать только опубликованные или только не опубликованные, сейчас можно выбирать все)

    /**
    * getDocuments
    * @version 1.1.1 (2013-02-19)
    *
    * @desc Returns required documents (their fields).
    *
    * @param $ids {array; comma separated string} - Documents Ids to get. @required
    * @param $published {0; 1; 'all'} - Documents publication status. Once the parameter equals 'all', the result will be returned regardless of whether the documents are published or they are not. Default: 1.
    * @param $deleted {0; 1; 'all'} - Documents removal status. Once the parameter equals 'all', the result will be returned regardless of whether the documents are deleted or they are not. Default: 0.
    * @param $fields {comma separated string; '*'} - Documents fields to get. Default: '*'.
    * @param $where {string} - SQL WHERE clause. Default: ''.
    * @param $sort {comma separated string} - A comma-separated list of field names to sort by. Default: 'menuindex'.
    * @param $dir {'ASC'; 'DESC'} - Sorting direction. Default: 'ASC'.
    * @param $limit {string} - SQL LIMIT (without 'LIMIT '). An empty string means no limit. Default: ''.
    *
    * @return {array; false} - Result array with documents, or false.
    */
    function getDocuments($ids = array(), $published = 1, $deleted = 0, $fields = '*', $where = '', $sort = 'menuindex', $dir = 'ASC', $limit = ''){
    if(is_string($ids)){
    if(strpos($ids, ',') !== false){
    $ids = array_filter(array_map('intval', explode(',', $ids)));
    }else{
    $ids = array($ids);
    }
    }
    if (count($ids) == 0){
    return false;
    }else{
    // modify field names to use sc. table reference
    $fields = 'sc.'.implode(',sc.', array_filter(array_map('trim', explode(',', $fields))));
    $sort = ($sort == '') ? '' : 'sc.'.implode(',sc.', array_filter(array_map('trim', explode(',', $sort))));
    if ($where != ''){
    $where = 'AND '.$where;
    }
    $published = ($published !== 'all') ? "AND sc.published = '{$published}'" : '';
    $deleted = ($deleted !== 'all') ? "AND sc.deleted = '{$deleted}'" : '';
    // get document groups for current user
    if ($docgrp = $this->getUserDocGroups()){
    $docgrp = implode(',', $docgrp);
    }
    $access = ($this->isFrontend() ? 'sc.privateweb=0' : '1="'.$_SESSION['mgrRole'].'" OR sc.privatemgr=0').(!$docgrp ? '' : ' OR dg.document_group IN ('.$docgrp.')');
    $tblsc = $this->getFullTableName('site_content');
    $tbldg = $this->getFullTableName('document_groups');

    $result = $this->db->select(
    "DISTINCT {$fields}",
    "{$tblsc} sc
    LEFT JOIN {$tbldg} dg on dg.document = sc.id",
    "(sc.id IN (".implode(',', $ids).") {$published} {$deleted} {$where}) AND ({$access}) GROUP BY sc.id",
    ($sort ? "{$sort} {$dir}" : ""),
    $limit
    );
    $resourceArray = $this->db->makeArray($result);
    return $resourceArray;
    }
    }
    ####$modx->getDocumentChildren
    ####$modx->getDocumentChildrenTVarOutput
    @param $published {0; 1; 'all'} - Document publication status. Once the parameter equals 'all', the result will be returned regardless of whether the ducuments are published or they are not. Default: all.
    @param $deleted {0; 1; 'all'} - Document removal status. Once the parameter equals 'all', the result will be returned regardless of whether the ducuments are deleted or they are not. Default: 0.


    ####$modx->getIdFromAlias()
    ####$modx->getTemplateVarOutput
    ####$modx->getTemplateVars
    ####$modx->db->optimize()
    Функция которая позволяет получить из Алиаса документа его id (используется в поиске в панели управления)

    $docid = $modx->getIdFromAlias('blog.html');
    $docid = $modx->getIdFromAlias('catalog/tovar.html');


    ####$modx->sendmail()
    Функция отправки почты через API(доступен с версии 1.0.12), удобен тем что работает в связке с настройками тоесть отправляет почту через mail() или SMTP в зависимости от указанных настроек в панели управления.
    Пример использования:

    #простой вариант
    $param = array();
    $param['from'] = "{$site_name}<{$emailsender}>";
    $param['subject'] = $emailsubject;
    $param['body'] = $message;
    $param['to'] = $email;
    $rs = $modx->sendmail($param);

    #вариант с расширенными настройками
    $modx->loadExtension('MODxMailer');
    $modx->mail->IsHTML($isHtml);
    $modx->mail->From = $from;
    $modx->mail->FromName = $fromname;
    $modx->mail->Subject = $subject;
    $modx->mail->Body = $report;
    AddAddressToMailer($modx->mail,"replyto",$replyto);
    AddAddressToMailer($modx->mail,"to",$to);
    AddAddressToMailer($modx->mail,"cc",$cc);
    AddAddressToMailer($modx->mail,"bcc",$bcc);
    AttachFilesToMailer($modx->mail,$attachments);
    if(!$modx->mail->send()) return 'Main mail: ' . $_lang['ef_mail_error'] . $modx->mail->ErrorInfo;




    ###Ditto
  16. Dmi3yy created this gist Mar 2, 2014.
    142 changes: 142 additions & 0 deletions modx1.0.13.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,142 @@
    #Релиз 1.0.13 от 03.03.2014.

    Данный релиз включает довольно много исправлений а так же нововведений которые упростят разработку сайтов на MODX EVO.

    Исправлений: **44**
    Рефактор: **42**
    Улучшений: **23**
    Безопасность: **1**

    ##Из основного на что хотел бы обратить внимаение:

    - KCFinder - генерация псевдонимов через TransAlias
    - Обновлен ManagerManager до версии 0.6.1
    - обновлен clearCach можно вызывать с параметром full ($modx->clearCache('full');)
    - обновленны функции getDocuments, getTemplateVars, getTemplateVarOutput, getDocumentChildren, getDocumentChildrenTVarOutput, getDocumentChildren можно вызывать с параметром all для вывода всех документов (а не только опубликованны и не опубликованных, так же и с удаленными)
    - Обновлен Wyfinder 2.0.2 (можно использовать [+pagetitle+], [+longtitle+] а так же исправленна работа @INHERIT для custom TVs)
    - Все менеджеры с ролью = 1 могут видеть все документы как в админке так и на сайте (раньше если документ был только для какой то группы на сайте мнеджер не видел их)
    - добавлен метод “$modx->parseText”
    - добавлен ID документа в заголовок при редактировании документа а так же в QM+
    - Breadcrumbs 1.0.4 (можно исключить документы с указанным шаблоном)
    - phpthumb 1.2 (не подключает phpthumb class если картинки на страничке уже пережаты)

    **Весь перечень изменений можно как всегда увидеть в файле install/changelog.txt**

    ##Подробней о изменениях
    *тут так же упомяну несколько вещей которые появились еще в версии 1.0.12 но не были достаточно хорошо высветленны*

    ###Изменения API
    ####$modx->getDocument
    Добавленна возможность при выборе документа не учитывать параметры: опубликован, удален

    /**
    * getDocument
    * @version 1.0.1 (2014-02-19)
    *
    * @desc Returns required fields of a document.
    *
    * @param $id {integer} - Id of a document which data has to be gained. @required
    * @param $fields {comma separated string; '*'} - Comma separated list of document fields to get. Default: '*'.
    * @param $published {0; 1; 'all'} - Document publication status. Once the parameter equals 'all', the result will be returned regardless of whether the ducuments are published or they are not. Default: false.
    * @param $deleted {0; 1; 'all'} - Document removal status. Once the parameter equals 'all', the result will be returned regardless of whether the ducuments are deleted or they are not. Default: 0.
    *
    * @return {array; false} - Result array with fields or false.
    */
    function getDocument($id = 0, $fields = '*', $published = 1, $deleted = 0){
    if ($id == 0){
    return false;
    }else{
    $docs = $this->getDocuments(array($id), $published, $deleted, $fields, '', '', '', 1);
    if ($docs != false){
    return $docs[0];
    }else{
    return false;
    }
    }
    }

    ####$modx->getDocuments
    Добавленна возможность выбирать все документы (к примеру раньше можно было выбирать только опубликованные или только не опубликованные, сейчас можно выбирать все)

    /**
    * getDocuments
    * @version 1.1.1 (2013-02-19)
    *
    * @desc Returns required documents (their fields).
    *
    * @param $ids {array; comma separated string} - Documents Ids to get. @required
    * @param $published {0; 1; 'all'} - Documents publication status. Once the parameter equals 'all', the result will be returned regardless of whether the documents are published or they are not. Default: 1.
    * @param $deleted {0; 1; 'all'} - Documents removal status. Once the parameter equals 'all', the result will be returned regardless of whether the documents are deleted or they are not. Default: 0.
    * @param $fields {comma separated string; '*'} - Documents fields to get. Default: '*'.
    * @param $where {string} - SQL WHERE clause. Default: ''.
    * @param $sort {comma separated string} - A comma-separated list of field names to sort by. Default: 'menuindex'.
    * @param $dir {'ASC'; 'DESC'} - Sorting direction. Default: 'ASC'.
    * @param $limit {string} - SQL LIMIT (without 'LIMIT '). An empty string means no limit. Default: ''.
    *
    * @return {array; false} - Result array with documents, or false.
    */
    function getDocuments($ids = array(), $published = 1, $deleted = 0, $fields = '*', $where = '', $sort = 'menuindex', $dir = 'ASC', $limit = ''){
    if(is_string($ids)){
    if(strpos($ids, ',') !== false){
    $ids = array_filter(array_map('intval', explode(',', $ids)));
    }else{
    $ids = array($ids);
    }
    }
    if (count($ids) == 0){
    return false;
    }else{
    // modify field names to use sc. table reference
    $fields = 'sc.'.implode(',sc.', array_filter(array_map('trim', explode(',', $fields))));
    $sort = ($sort == '') ? '' : 'sc.'.implode(',sc.', array_filter(array_map('trim', explode(',', $sort))));
    if ($where != ''){
    $where = 'AND '.$where;
    }
    $published = ($published !== 'all') ? "AND sc.published = '{$published}'" : '';
    $deleted = ($deleted !== 'all') ? "AND sc.deleted = '{$deleted}'" : '';
    // get document groups for current user
    if ($docgrp = $this->getUserDocGroups()){
    $docgrp = implode(',', $docgrp);
    }
    $access = ($this->isFrontend() ? 'sc.privateweb=0' : '1="'.$_SESSION['mgrRole'].'" OR sc.privatemgr=0').(!$docgrp ? '' : ' OR dg.document_group IN ('.$docgrp.')');
    $tblsc = $this->getFullTableName('site_content');
    $tbldg = $this->getFullTableName('document_groups');

    $result = $this->db->select(
    "DISTINCT {$fields}",
    "{$tblsc} sc
    LEFT JOIN {$tbldg} dg on dg.document = sc.id",
    "(sc.id IN (".implode(',', $ids).") {$published} {$deleted} {$where}) AND ({$access}) GROUP BY sc.id",
    ($sort ? "{$sort} {$dir}" : ""),
    $limit
    );
    $resourceArray = $this->db->makeArray($result);
    return $resourceArray;
    }
    }
    ####$modx->getDocumentChildren
    ####$modx->getDocumentChildrenTVarOutput
    ####$modx->getIdFromAlias()
    ####$modx->getTemplateVarOutput
    ####$modx->getTemplateVars
    ####$modx->db->optimize()
    ####$modx->sendmail()


    ###Ditto
    Новые параметры:
    Новые плейсхолдеры:

    ###Eform
    ###Wayfinder
    ###Breadcrumbs
    ###ManagerManager