Приклади MODxAPI

    Приклад DocInfo на базі modResource MODxAPI

    Тепер сніпет DocInfo НЕ буде навантажувати сторінку повторними SQL запитами при багаторазовому отриманні значень з одного і того ж документа.

    Вміст сховища розміщується в папці /assets/lib/MODxAPI/

    Створюється плагін на події OnWebPageInit, OnManagerPageInit і OnPageNotFound з кодом:

    include_once(MODX_BASE_PATH."assets/lib/MODxAPI/modResource.php");
    if(!isset($modx->doc)){
     $modx->doc = new modResource($modx);
    }

    Після чого створюється сніпет допустимо DocInfo

    $id = isset($id) ? (int)$id : $modx->documentObject['id'];
    $field = isset($field) ? (string)$field : 'id';
    if($field == 'id'){
        $out = $id;
    }else{
        if($modx->documentObject['id'] == $id){
            $out = isset($modx->documentObject[$field]) ? $modx->documentObject[$field] : '';
            if(is_array($out)){
               $out = isset($out[1]) ? $out[1] : '';
            }
        }else{
            $out = $modx->doc->edit($id)->get($field);
        }
    }
    return (string)$out;

    Profit! Тепер сніпет DocInfo не буде навантажувати сторінку повторними SQL запитами при багаторазовому отриманні значень з одного і того ж документа