Clansuite Community Forum

 
Willkommen Gast. Bitte einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

Einloggen mit Benutzername, Passwort und Sitzungslänge
 
Seiten: [1]   Nach unten
  Drucken  
Autor Thema: Widgets Themes bezogen  (Gelesen 571 mal)
0 Mitglieder und 2 Gäste betrachten dieses Thema.
paulbr
Developer
*****
Offline Offline

Beiträge: 126


« am: Oktober 05, 2010, 06:29:43 »

hallo

gibt es eigentlich die Möglichkeit templates und widgets z.b. widget_menu themenbezogen anzulegen,
ohne diese in den modules ändern zu müssen?

Erklärung:
  Ich möchte gerne mal ein eigenes Theme erstellen, dazu müssen viele widgets angepasst werden.
  Nun möchte ich aber die bestehenden widgets nicht ändern damit sie auf den anderen Themen passen.
  Ich könnte nun hergehn und bestehende widgets innerhalb der view des jeweiligen Models kopieren
  dann mit neuem Namen darin abspeichern, im controller dann das widget als function definieren...
  macht aber irgendwie keinen Sinn, wenn 100 leute eigene themen anlegen und die hälfte die widgets
  dafür ändern muss, gibt das ein ziemliches durcheinander.

  In der render.base ist ja vorgesehn, das man innerhalb des frondendtheme einen Ordner modules haben kann,
  Allerdings wird das entsprechende widget nicht aus diesem Ordner geladen.

  Ich hoffe die Problematik einigermassen verständlich erläutert zu haben.

  Nochmal ein konkretes Beispiel:
  {load_module name="menu" action="widget_menu"}
  soll geladen werden, da aber das menü anders als der Standard ist, soll es nicht aus dem
  'modules/menu/view/smarty' sondern aus 'themes/frontend/black/modules/menu' geladen werden.

  Das geht aber nicht so einfach
  Es gibt nun 2 Möglichkeiten:
    1. man ändert die bestehende 'widget_menu.tpl' nach eigenen wünschen ab oder
    2. man legt ein neues widget an z.b. 'widget_menu_black.tpl', welches man dann im
        menu.controller.php definiert.

  beide Möglichkeiten haben den Nachteil, das entweder kein anderes frontend mehr genutzt werden kann,
  oder das der view ordner des modules irgendwann überlaufen wird, wenn jeder für sein theme ein
  angepasstes widget braucht, mal abgesehen von der flut widget definitionen im controller.

  Besser wäre es doch, wenn erstmal im frontend geschaut wird, ob es das widget dort gibt,
  wenn nicht wird dann das widget aus dem modules geladen.

  So hat man immer das standard widget des modules, wenn kein eigen definiertes im theme ordner vorhanden ist.


gruss
paul
Gespeichert
Jens-A. Koch
Maintainer
*
Offline Offline

Beiträge: 574

One-Man Team


« Antworten #1 am: Oktober 05, 2010, 07:46:48 »

Hallo Paul,

für das Aufsuchen der Widget-Templates gilt ja auch das allgemeine Pfadarray aus der Renderer_Base.
Allerdings hatte der Templatename als Bestandteil "view/smarty" - diese Ordner gibts in Themes nicht, folglich wird immer das TPL aus dem Modulordner zurückgeliefert. Habe die load_module entsprechend geändert und eine weitere Prüfung eingeführt.

- 'modules' . DS . $module . DS . $action . '.tpl';
- 'modules' . DS . $module . DS . 'view' . DS . 'smarty' . DS . $action . '.tpl';
- $module . DS . 'view' . DS . 'smarty' . DS . $action . '.tpl'

Reihenfolge der Pfade für das Aufsuchen von Smarty Templates
Code:
Debugging function.load_module.php on line 124:
Clansuite_Debug::printR($smarty->template_dir);

Type: array
Length: 9
Value: Array
(
    [0] => C:\Programme\Zend\Apache2\htdocs\clansuite\trunk\themes\frontend\standard\
    [1] => C:\Programme\Zend\Apache2\htdocs\clansuite\trunk\themes\frontend\standard\modules\index\
    [2] => C:\Programme\Zend\Apache2\htdocs\clansuite\trunk\themes\frontend\standard\
    [3] => C:\Programme\Zend\Apache2\htdocs\clansuite\trunk\modules\
    [4] => C:\Programme\Zend\Apache2\htdocs\clansuite\trunk\modules\index\
    [5] => C:\Programme\Zend\Apache2\htdocs\clansuite\trunk\modules\index\view\
    [6] => C:\Programme\Zend\Apache2\htdocs\clansuite\trunk\modules\index\view\smarty\
    [7] => C:\Programme\Zend\Apache2\htdocs\clansuite\trunk\themes\core\view\smarty
    [8] => C:\Programme\Zend\Apache2\htdocs\clansuite\trunk\themes\
)

Bitte testen und rückmelden ob's läuft.
Gruß, Jens
Gespeichert

Keine Supportanfragen per PN oder Mail. Fragen bitte nur im Forum stellen (Wie man Fragen richtig stellt).
paulbr
Developer
*****
Offline Offline

Beiträge: 126


« Antworten #2 am: Oktober 05, 2010, 08:16:48 »

Super

so läuft es Perfekt, es wird nun erst im frontend nach dem template geschaut und geladen wenn
vorhanden. Wenn nicht wird es aus dem modules geholt.

Einfach perfekt, so braucht man an den modules nichts verändern und kann schön eigene Styles
verwenden.

Danke

gruss
paul
Gespeichert
Jens-A. Koch
Maintainer
*
Offline Offline

Beiträge: 574

One-Man Team


« Antworten #3 am: Oktober 05, 2010, 10:19:00 »

Danke fürs Testen. Schritt für Schritt gehts vorwärts.

Closed.
Gespeichert

Keine Supportanfragen per PN oder Mail. Fragen bitte nur im Forum stellen (Wie man Fragen richtig stellt).
Seiten: [1]   Nach oben
  Drucken  
 
Gehe zu:  


Powered by SMF 1.1.16 | SMF © 2006-2009, Simple Machines

Google visited last this page Mai 18, 2012, 08:13:32