ĆCh*Vih`p/Ch*V<qYCh*VP SCh*V` UCh*VPMCh*Vp`NYCh*V(UCh*VjsCh*V@+yCh*V*Ch*Vp{jsCh*V +UCh*Vp MCh*V NVCh*V0jsCh*V0@+:pCh*V` "yCh*V*Ch*V yCh*V@*VCh*VpPjsCh*VP@+:pCh*V` "yCh*V*Ch*V VCh*V`>`i``i`8@0i`n`i`0@ e`n`Ch*VP?mCh*V`=Ch*VPAvCh*VpjsCh*Vp +mCh*V `=Ch*VPPA/Ch*V<qYCh*V`RCh*V`segCh*V/tTCh*V`QrCh*V{AgCh*V4jsCh*V+@`s`@H@s`Ms`Ms`8Ns`H@s`Ss`Ȕ@@@8@8@pp`mCh*VP@}=Ch*V0P}ACh*V `}A Ch*V}<mCh*V~=mCh*V~=/Ch*Vp~<#Ch*VpP~uCh*V`~ACh*Vp~A/Ch*V~<qYCh*VP~Ch*VP{egCh*V`/Ch*VPAgCh*V4jsCh*V@+ SCh*VPĆCh*VihpCh*VPPB/Ch*V<qYCh*VPmCh*V (=AuCh*VPPu Ch*V <=@z`p%@@@@Ot`z`Pz`Pz``@y`DCh*V PgCh*VP`jsCh*V` +ĆCh*Vih0p Ch*VdECh*VfgA^}Ch*VP/Ch*V<QECh*V4;h0h*VyCh*V*mCh*V  p=Ch*VPA/Ch*V<QECh*V4;hXh*VmCh*V@x=Ch*VPAECh*V8`RsCh*V`AtCh*VsCh*VpA/Ch*V<9aCh*V>z`0z`@z`@z`z`Hy`@H@K@(@X`y`p.y`Pq`@U`his->loadHelper(); if (!$helper || !\is_callable([$helper, 'countItems'])) { return; } $helper::countItems($items, $section); } /** * Adds Count Items for Tag Manager. * * @param \stdClass[] $items The content objects * @param string $extension The name of the active view. * * @return void * * @since 4.0.0 * @throws \Exception */ public function countTagItems(array $items, string $extension) { $helper = $this->loadHelper(); if (!$helper || !\is_callable([$helper, 'countTagItems'])) { return; } $helper::countTagItems($items, $extension); } /** * Returns a valid section for articles. If it is not valid then null * is returned. * * @param string $section The section to get the mapping for * @param object $item The item * * @return string|null The new section * * @since 4.0.0 */ public function validateSection($section, $item = null) { $helper = $this->loadHelper(); if (!$helper || !\is_callable([$helper, 'validateSection'])) { return $section; } return $helper::validateSection($section, $item); } /** * Returns valid contexts. * * @return array * * @since 4.0.0 */ public function getContexts(): array { $helper = $this->loadHelper(); if (!$helper || !\is_callable([$helper, 'getContexts'])) { return []; } return $helper::getContexts(); } /** * Returns the router. * * @param CMSApplicationInterface $application The application object * @param AbstractMenu $menu The menu object to work with * * @return RouterInterface * * @since 4.0.0 */ public function createRouter(CMSApplicationInterface $application, AbstractMenu $menu): RouterInterface { $compname = ucfirst($this->component); $class = $compname . 'Router'; if (!class_exists($class)) { // Use the component routing handler if it exists $path = JPATH_SITE . '/components/com_' . $this->component . '/router.php'; // Use the custom routing handler if it exists if (is_file($path)) { require_once $path; } } if (class_exists($class)) { $reflection = new \ReflectionClass($class); if (\in_array('Joomla\\CMS\\Component\\Router\\RouterInterface', $reflection->getInterfaceNames())) { return new $class($application, $menu); } } return new RouterLegacy($compname); } /** * Returns the classname of the legacy helper class. If none is found it returns false. * * @return boolean|string * * @since 4.0.0 */ private function loadHelper() { $className = ucfirst($this->component) . 'Helper'; if (class_exists($className)) { return $className; } $file = Path::clean(JPATH_ADMINISTRATOR . '/components/com_' . $this->component . '/helpers/' . $this->component . '.php'); if (!is_file($file)) { return false; } \JLoader::register($className, $file); if (!class_exists($className)) { return false; } return $className; } } 0 Class "Joomla\CMS\Extension\LegacyComponent" not found