Beiträge von Streethawk68
-
-
Ich habe eine \site\services\provider.php des Inhalts
PHP: provider.php
Alles anzeigen<?php defined('_JEXEC') or die; use Joomla\CMS\Extension\ComponentInterface; use Joomla\CMS\Extension\MVCComponent; use Joomla\CMS\Extension\Service\Provider\ComponentDispatcherFactory; use Joomla\CMS\Extension\Service\Provider\MVCFactory; use Joomla\CMS\MVC\Factory\MVCFactoryInterface; use Joomla\CMS\Dispatcher\ComponentDispatcherFactoryInterface; use Joomla\DI\Container; use Joomla\DI\ServiceProviderInterface; return new class implements ServiceProviderInterface { public function register(Container $container): void { $container->registerServiceProvider(new MVCFactory('\\PasswordGenerator\\Component\\Passwordgenerator')); $container->registerServiceProvider(new ComponentDispatcherFactory('\\PasswordGenerator\\Component\\Passwordgenerator')); $container->registerServiceProvider(new \Joomla\CMS\MVC\View\HtmlViewServiceProvider('PasswordGenerator')); $container->set( ComponentInterface::class, function (Container $container) { $component = new MVCComponent($container->get(ComponentDispatcherFactoryInterface::class)); $component->setMVCFactory($container->get(MVCFactoryInterface::class)); return $component; } ); } };
angelegt. Darin soll mit
$container->registerServiceProvider(new \Joomla\CMS\MVC\View\HtmlViewServiceProvider('PasswordGenerator'));
die View registriert werden. "autoload_psr4.php" zuvor gelöscht. Caches geleert. Leider immer noch kein entsprechender Menüeintragstyp.
-
-
XML: passwordgenerator.xml
Alles anzeigen<?xml version="1.0" encoding="utf-8"?> <extension type="component" version="4.0" method="upgrade"> <name>com_passwordgenerator</name> <creationDate>2025-04-04</creationDate> <author>Karl Gustav Alt</author> <authorEmail>info@example.com</authorEmail> <authorUrl>https://example.com</authorUrl> <copyright>Copyright (C) 2025 Karl Gustav Alt. All rights reserved.</copyright> <license>GNU General Public License version 2 or later; see LICENSE.txt</license> <version>1.0.0</version> <description>Komponente zur Generierung sicherer Passwörter</description> <!-- 🔹 Frontend --> <files folder="site"> <folder>src</folder> <folder>tmpl</folder> </files> <!-- 🔹 Frontend Namespaces --> <namespace path="site/src/Controller">PasswordGenerator\Component\Passwordgenerator\Site\Controller</namespace> <namespace path="site/src/Model">PasswordGenerator\Component\Passwordgenerator\Site\Model</namespace> <namespace path="site/src/View/Password">PasswordGenerator\Component\Passwordgenerator\Site\View\Password</namespace> <!-- 🔹 Backend / Administrator --> <administration> <menu>Passwort-Generator</menu> <controller>src/Controller/DisplayController.php</controller> <default_view>password</default_view> <files folder="admin"> <folder>src</folder> <folder>tmpl</folder> <folder>language</folder> <file>services/provider.php</file> </files> <!-- 🔹 Backend Namespaces --> <namespace path="admin/src/Controller">PasswordGenerator\Component\Passwordgenerator\Administrator\Controller</namespace> <namespace path="admin/src/Model">PasswordGenerator\Component\Passwordgenerator\Administrator\Model</namespace> <namespace path="admin/src/View/Password">PasswordGenerator\Component\Passwordgenerator\Administrator\View\Password</namespace> </administration> </extension>
-
Letzter Versuch, versprochen.
Es gibt 2 DisplayController.php:
Einen hier: com_passwordgenerator\site\src\Controller
<?php
namespace PasswordGenerator\Component\Passwordgenerator\Site\Controller;
\defined('_JEXEC') or die;
use Joomla\CMS\MVC\Controller\BaseController;
class DisplayController extends BaseController
{
public function display($cachable = false, $urlparams = [])
{
parent::display();
}
}
?>Und einen hier: com_passwordgenerator\admin\src\Controller
<?php
namespace PasswordGenerator\Component\Passwordgenerator\Administrator\Controller;
\defined('_JEXEC') or die;
use Joomla\CMS\MVC\Controller\BaseController;
class DisplayController extends BaseController
{
public function display($cachable = false, $urlparams = [])
{
// Lade die View für die Password-Komponente
$view = $this->getView('password', 'html'); // 'password' ist der Name der View
$view->display(); // Zeigt die View an
}
} -
-
-
-
-
-
-
-
Hallo!
"O'Reilly" ist der Verlag, mit dessen Buch ich arbeite. Tim Schürmann: Joomla 4. Ich hatte diesen Thread gestartet, weil ich die im Buch beschriebene Komponente nicht ans Laufen bekam. Dies funktioniert mittlerweile, die Komponente zählt die Beiträge. In der Folge wollte ich eine eigene Komponente programmieren. Diese ist es, die die jetzigen Probleme macht. Symptom: Im Backend wird sie unter "Komponenten" angezeigt (# 3). Klickt man darauf, erscheint jedoch (# 4). Ihr fragt jetzt, wie der Link heiße. Wohlgemerkt, ich rede nur vom Backend bis jetzt. Der einzige Link, den ich dazu nennen kann, ist (# 10). Zum Bild von # 14: Wie gelange ich an diese Ansicht. Darf ich die Komponente, wie sie bisher ist, als Skript hier einstellen?
Grüße, Streethawk68
-
-
Christiane, der heißt so: "https://kingcode.de/administrator/…sswordgenerator"
Grüße!
P.S. Debugging und Fehlerbericht gerade deaktiviert. Hacking-Paranoia.
-
Okay, danke. Hier die Namespaces:
namespace PasswordGenerator\Component\Passwordgenerator\Administrator\Model;
namespace PasswordGenerator\Component\Passwordgenerator\Administrator\View\Password;
namespace PasswordGenerator\Component\Passwordgenerator\Site\View\Password;
namespace PasswordGenerator\Component\Passwordgenerator\Administrator\Controller;Grüße!
-
-
-
-