Ejemplo n.º 1
0
 function recurseCats($id, $itemsByCats, $catChildrenByCats, $level = 0, $asCategoryTitleField, $liveSite, $targetOption, $targetView, $targetViewName, $additionalQueryStringParams, $openTarget, $arrayKeysDiff, $titleIdentifier, $idIdentifier, $idURLFilter, $catidIdentifier, $catidURLFilter, $supportedRouterHelperAdapters, $guessItemid, $mainTable)
 {
     if (isset($catChildrenByCats[$id])) {
         foreach ($catChildrenByCats[$id] as $catChild) {
             $itemsOfCategory = isset($itemsByCats[$catChild['id']]) ? $itemsByCats[$catChild['id']] : null;
             $catTitleName = $catChild['catname'];
             // Multilevel tree for items and parent containing cats
             if ($asCategoryTitleField) {
                 // Set for empty category root nodes that should not be clickable
                 $noExpandableNode = count($itemsOfCategory) ? '' : ' noexpandable';
                 echo '<ul class="jmap_filetree" style="margin-left:' . $level * 15 . 'px"><li class="' . $noExpandableNode . '"><span class="folder">' . $catTitleName . '</span>';
                 echo '<ul>';
             } else {
                 // Multilevel tree of categories itself
                 echo '<ul style="margin-left:' . $level * 15 . 'px">';
             }
             if (count($itemsOfCategory)) {
                 foreach ($itemsOfCategory as $elm) {
                     $title = isset($titleIdentifier) && $titleIdentifier != '' ? $elm->{$titleIdentifier} : null;
                     // Additional fields
                     $additionalParamsQueryString = null;
                     $objectVars = array_diff_key(get_object_vars($elm), $arrayKeysDiff);
                     // Filter URL safe alias fields id/catid
                     if (isset($objectVars[$idIdentifier]) && $idURLFilter) {
                         $objectVars[$idIdentifier] = JFilterOutput::stringURLSafe($objectVars[$idIdentifier]);
                     }
                     if (isset($objectVars[$catidIdentifier]) && $catidURLFilter) {
                         $objectVars[$catidIdentifier] = JFilterOutput::stringURLSafe($objectVars[$catidIdentifier]);
                     }
                     if (is_array($objectVars) && count($objectVars)) {
                         $additionalQueryStringFromObjectProp = '&' . http_build_query($objectVars);
                     }
                     if (isset($supportedRouterHelperAdapters[$targetOption]) && $supportedRouterHelperAdapters[$targetOption]) {
                         include 'adapters/' . $targetOption . '.php';
                     } else {
                         $guessedItemid = null;
                         if ($guessItemid) {
                             $guessedItemid = JMapRouteHelper::getItemRoute($targetOption, $targetViewName, $elm->{$idIdentifier}, $elm, $mainTable);
                             if ($guessedItemid) {
                                 $guessedItemid = '&Itemid=' . $guessedItemid;
                             }
                         }
                         $seflink = JRoute::_('index.php?option=' . $targetOption . $targetView . $additionalQueryStringFromObjectProp . $additionalQueryStringParams . $guessedItemid);
                     }
                     echo '<li>' . '<a target="' . $openTarget . '" href="' . $liveSite . $seflink . '" >' . $title . '</a></li>';
                 }
             }
             echo '</ul>';
             if ($asCategoryTitleField) {
                 echo '</li></ul>';
             }
             recurseCats($catChild['id'], $itemsByCats, $catChildrenByCats, $level + 1, $asCategoryTitleField, $liveSite, $targetOption, $targetView, $targetViewName, $additionalQueryStringParams, $openTarget, $arrayKeysDiff, $titleIdentifier, $idIdentifier, $idURLFilter, $catidIdentifier, $catidURLFilter, $supportedRouterHelperAdapters, $guessItemid, $mainTable);
         }
     }
 }
Ejemplo n.º 2
0
            $title = isset($titleIdentifier) && $titleIdentifier != '' ? $elm->{$titleIdentifier} : null;
            // Additional fields
            $additionalQueryStringFromObjectProp = null;
            $objectVars = array_diff_key(get_object_vars($elm), $arrayKeysDiff);
            // Filter URL safe alias fields id/catid
            if (isset($objectVars[$idIdentifier]) && $idURLFilter) {
                $objectVars[$idIdentifier] = JFilterOutput::stringURLSafe($objectVars[$idIdentifier]);
            }
            if (isset($objectVars[$catidIdentifier]) && $catidURLFilter) {
                $objectVars[$catidIdentifier] = JFilterOutput::stringURLSafe($objectVars[$catidIdentifier]);
            }
            if (is_array($objectVars) && count($objectVars)) {
                $additionalQueryStringFromObjectProp = '&' . http_build_query($objectVars);
            }
            if (isset($supportedRouterHelperAdapters[$targetOption]) && $supportedRouterHelperAdapters[$targetOption]) {
                include 'adapters/' . $targetOption . '.php';
            } else {
                $guessedItemid = null;
                if ($guessItemid) {
                    $guessedItemid = JMapRouteHelper::getItemRoute($targetOption, $targetViewName, $elm->{$idIdentifier}, $elm, $mainTable);
                    if ($guessedItemid) {
                        $guessedItemid = '&Itemid=' . $guessedItemid;
                    }
                }
                $seflink = JRoute::_('index.php?option=' . $targetOption . $targetView . $additionalQueryStringFromObjectProp . $additionalQueryStringParams . $guessedItemid);
            }
            echo '<li>' . '<a target="' . $openTarget . '" href="' . $this->liveSite . $seflink . '" >' . $title . '</a></li>';
        }
        echo '</ul></li></ul>';
    }
}