Server : Apache System : Linux indy02.toastserver.com 3.10.0-962.3.2.lve1.5.85.el7.x86_64 #1 SMP Thu Apr 18 15:18:36 UTC 2024 x86_64 User : palandch ( 1163) PHP Version : 7.1.33 Disable Function : NONE Directory : /home/palandch/public_html/core/cache/includes/elements/modsnippet/ |
<?php function elements_modsnippet_12($scriptProperties= array()) { global $modx; if (is_array($scriptProperties)) { extract($scriptProperties, EXTR_SKIP); } /** * @name UltimateParent * @version 1.3 * @author Susan Ottwell <sottwell@sottwell.com> March 2006 * @author Al B <> May 18, 2007 * @author S. Hamblett <shamblett@cwazy.co.uk> * @author Shaun McCormick <shaun@modx.com> * @author Jason Coward <modx@modx.com> * * @param &id The id of the document whose parent you want to find. * @param &top The top node for the search. * @param &topLevel The top level node for the search (root = level 1) * * @license Public Domain, use as you like. * * @example [[UltimateParent? &id=`45` &top=`6`]] * Will find the ultimate parent of document 45 if it is a child of document 6; * otherwise it will return 45. * * @example [[UltimateParent? &topLevel=`2`]] * Will find the ultimate parent of the current document at a depth of 2 levels * in the document hierarchy, with the root level being level 1. * * This snippet travels up the document tree from a specified document and * returns the "ultimate" parent. Version 2.0 was rewritten to use the new * getParentIds function features available only in MODx 0.9.5 or later. * * Based on the original UltimateParent 1.x snippet by Susan Ottwell * <sottwell@sottwell.com>. The topLevel parameter was introduced by staed and * adopted here. */ if (!isset($modx)) return ''; $top = isset($top) && intval($top) ? $top : 0; $id= isset($id) && intval($id) ? intval($id) : $modx->resource->get('id'); $topLevel= isset($topLevel) && intval($topLevel) ? intval($topLevel) : 0; if ($id && $id != $top) { $pid = $id; $pids = $modx->getParentIds($id); if (!$topLevel || count($pids) >= $topLevel) { while ($parentIds= $modx->getParentIds($id, 1)) { $pid = array_pop($parentIds); if ($pid == $top) { break; } $id = $pid; $parentIds = $modx->getParentIds($id); if ($topLevel && count($parentIds) < $topLevel) { break; } } } } return $id; }