Wenn du auf "komponentenNameControllerWos" bestehst, musst du selbst den richtigen Namen der View angeben beim Laden, weil dein Controller durch das Anhängsel "wos" ja nicht mehr dem Namenskonzept entspricht:
$view = &$this->getView("wos", "komponentenName");
und dann müssen auch die Models und Tables angepasst werden.
Viel Stress...
Wenn du eine Zuordnung zwischen $view und Controller festklopfen kannst, d.h. die "wos" View sowieso nur mit dem "wos" Controller zusammen funzt, dann nimm $view und ermittel daraus den Namen der Controller-Datei und -Klasse.
Code:
$view = JRequest::getCmd('view');
switch ( strtolower($view) )
{
case 'wos':
case 'was':
$controller = 'wos';
break;
case 'foo':
case 'bar':
$controller = 'fubar';
break;
default:
$controller = '';
}
// im unterordner "/controller/XXXXcontroller.php" laden
require_once JPATH_COMPONENT.DS.'controller' .DS. $controller .'controller.php';
$classname = ucfirst($controller) . 'Controller';
$controller = new $classname( ); /// z.B. FubarController, WosController
Dein Controller muss übrigens
nicht den Namen der Komponente tragen, der muss nur im "bootstrap" stimmen, also der Datei die alle Bibliothekn und einen Controller läd und dann execute() und redirect() anwirft.
Wirf mal einen Blick auf die "com_weblinks", dort werden mehrere Controller verwendet.
Viel Spaß,
CirTap
Lesezeichen