Поддержать Проект

Обратная связь

[MODX] Guru
  • Информация
  • Разработчикам
  • Дополнения
    • DocLister
    • DLMenu
    • DLCrumbs
    • DLBuildMenu
    • DLLastViews
    • DLSiblings
    • DLRequest
    • DLglossary
    • DLSitemap
    • DocInfo
    • FormLister
    • Wayfinder
    • phpthumb
    • LikeDislike
    • eForm
    • Ditto
    • multiTV
    • AjaxMegaSearch
    • AjaxSearch
    • WebLoginPE
    • Breadcrumbs
    • CodeMirror
    • AnythingRating
    • Easy Newsletter
    • FirstChildRedirect
    • OpenGraphTags
    • ddTypograph
    • TagSaver
    • BlackList
    • CfgTv
    • ModxAccount
    • Forgot Manager Login
    • GetField
    • if
    • Jot
    • ListChild
    • ListIndexer
    • ManagerManager
    • ddMMEditor
    • MaxiGallery
    • MemberCheck
    • ddGetMultipleField
    • MetaX
    • MODxBB и phpBB
    • Yams
    • Personalize
    • PHx
    • Reflect
    • tagLinks
    • TransAlias
    • TvTagCloud
    • UltimateParent
    • WebSignup
    • WebLogin
    • countViews
    • thumb
    • imageCaptor
    • optimizeJPG
    • Preview Next
    • Shopkeeper
    • SiteMap
    • Sass
    • Selector
    • SimpleGallery
    • SimpleTube
    • SimpleFiles
    • Star Rating
    • MinifyX
    • adminNav
    • SimplePolls
    • CResource
    • MODxAPI
    • customTables
    • HtmlInLine
    • HtmlMinModxEvo
    • SHKUserProfile
    • PickDocsInTree
    • evoSearch
    • editDocs
    • PageBuilder
    • HybridAuth
    • Compare
    • alterTitle
  • Виджеты
  • Уроки
  • Разработчики
  • Готовые примеры
  • Блог
  • Конфиги
  • HTML коды
© [MODX] Guru
  • Дополнения
  • avatar
    • Автор: AgelxNash
    • HtmlInLine
    • CResource
    • MinifyX
    • DLglossary
    • DLBuildMenu
    • DocLister
    • TagSaver
    • DocInfo
    • DLCrumbs

MODxAPI MODX Evo ✈ Evolution CMS

  • Дополнения
  • MODxAPI
1934

MODxAPI MODX Evo ✈ Evolution CMS

Легковесное подобие ORM прослойки для MODX Evolution. Изначально проектировалось как замена библиотеки DocManager, но в итоге оптимизирован код и заложен потенциал для создания обертки с произвольной логикой для любых таблиц.

Пример интеграции в MODX Evolution

Содержимое репозитория размещается в папке /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 запросами при многократном получении значений из одного и того же документа

[[DocInfo? &id=`6` &field=`pagetitle`]]