Тепер сніпет 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); }
$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 запитами при багаторазовому отриманні значень з одного і того ж документа