+ Antworten
Ergebnis 1 bis 10 von 10

Thema: Allgemeine Verständnisfrage: Template kopieren u. Overrides

  1. #1
    Neu an Board Avatar von MsMudia
    Registriert seit
    04.06.2009
    Ort
    Menden/Sauerland
    Alter
    45
    Beiträge
    70
    Bedankte sich
    8
    Erhielt 8 Danksagungen
    in 6 Beiträgen

    Standard Allgemeine Verständnisfrage: Template kopieren u. Overrides

    Ich habe diesmal keine Probleme, eher eine reine Verständnisfrage.

    Ich habe einige Änderungen in den Core-Dateien von Joomla vorgenommen und ebenso in einigen Komponenten. Bei einem Update von Joomla und dessen Komponenten sind diese Änderungen dann jedesmal wieder auf's Neue durchzuführen, da sie nach dem Update natürlich überschrieben sind. Um das zu umgehen, wäre es doch sinnvoll:

    1. mein abgeändertes Beez-Template zu kopieren und es umzubenennen
    2. Template Overrides zu benutzen

    Ist das soweit richtig oder habe ich noch was vergessen? Ich möchte nämlich endlich alles richtig machen und nicht nur halb.

    Zu 1.
    Bisher hatte ich nur das Beez-Template ziemlich heftig abgeändert (ist als solches auch nicht mehr zu erkennen). Hatte aber als typischer Anfänger nicht daran gedacht, es vorher zu kopieren und umzubenennen, damit das ursprüngliche Beez noch bestehen bleibt.
    Habe das heute nun endlich erledigt und bin so vorgegangen:
    1. Ordner beez umbenannt in neues_template
    2. In der Datei templateDetails.xml alle beez in neues_template umbenannt
    3. In der Index.php alle beez mit neues_template überschrieben
    4. In der component.php alle beez mit neues_template überschrieben
    5. Als letztes noch die language/de-DE.tpl_beez.ini und administrator/language/de-DE.tpl_beez.ini (gleiches für die en-EN...) kopiert und umbenannt in ...neues_template.ini

    Bisher wird alles soweit richtig angezeigt, aber der Teufel steckt ja bekanntlich im Detail - vielleicht gibt es irgendwo in den Tiefen meiner Seiten noch eine Stelle, die nicht korrekt ist. Habe ich an alles gedacht beim Umbenennen oder fehlt noch was Wichtiges? Vor allem: wie finde ich raus, ob ich nicht irgendwo mal manuell einen Link in irgendeiner Datei angelegt habe, die noch auf beez/... verweist??

    Zu 2.
    Ich hatte z. B. in der Easybook Datei form.php eine Änderung vorgenommen, die natürlich auch bei jedem Update weg ist. Habe mich nun endlich an das (für mich) schwierige Thema Overrides rangetraut und die form.php aus dem Pfad
    joomla/components/com_easybook/views/entry/tmpl/form.php kopiert, abgeändert und in mein template unter: joomla/templates/mein_template/html/com_easybook/entry/form.php abgelegt.
    Und wunderbar, Joomla erkennt die Änderung und sie bleibt nun bei Updates erhalten.

    Soweit so gut. Könnte ich das gleiche denn auch mit der pagination.php machen? Stehe da grad auf dem Schlauch, da es ja keine Komponente ist. Wie muss denn da der zu erstellende Pfad aussehen? Ursprünglich ist die Datei hier: joomla/libraries/joomla/html/pagination.php. Oder muss die Datei in jedem Fall in einem view liegen? So richtig 100%ig verstanden habe ich das Thema Overrides noch nicht...

    Sorry für den langen Post - aber ich versuche gerade, meine Seite vernünftig aufzuziehen, um es in Zukunft leichter zu haben... Wäre sehr dankbar für einige Anregungen.

  2. #2
    Verbringt hier viel Zeit
    Registriert seit
    28.07.2009
    Beiträge
    866
    Bedankte sich
    20
    Erhielt 192 Danksagungen
    in 188 Beiträgen

    Standard

    1) wenn mich nicht alles täuscht, dann sind in den ini-Einträgen auch beez-"Werte" vorhanden, die du ändern musst (oder auch nicht, keine Ahnung, ich habs gemacht).

    2) Ich würde dynamische Links erzeugen, damit du das Problem mit dem Ändern der Pfade nicht hast. So siehts bei mir aus:

    Code:
    $template_path = $this->baseurl."/templates/".$this->template;
    ...
    <link href="<?php echo $template_path; ?>/css/template.css" rel="stylesheet" type="text/css" />
    3) Probier mal, die pagination direkt in den html-Ordner zu kopieren. Bin mir aber nicht 100% sicher, ob das klappt. Wenn ein Override nicht möglich war, bin ich folgendermaßen vorgegangen: im html-Verzeichnis einen neuen Ordner erstellt und dorthin alle abgeänderten Dateien kopiert. In jeder Datei als Kommentar eine Beschreibung, was ich genau geändert habe und wohin es kopiert werden muss. Dann kannst du relativ schnell die Dateien nach einem update wieder an die richtige Stelle kopieren. So viel Aufwand ist es nicht.

  3. #3
    Neu an Board Avatar von MsMudia
    Registriert seit
    04.06.2009
    Ort
    Menden/Sauerland
    Alter
    45
    Beiträge
    70
    Bedankte sich
    8
    Erhielt 8 Danksagungen
    in 6 Beiträgen

    Standard

    Sorry, komme aus privaten Gründen erst heute wieder an den PC. Danke erstmal für die Antwort.

    Zu 1.
    Hab mal geschaut, habe aber in den ini-Dateien keine Daten mehr gefunden, die ich hätte ändern können... Ich hoffe, dass ich alles erwischt habe.

    Zu 2.
    Jaja... Im Nachhinein wär es natürlich fein, wenn meine Links so aussehen würden. Da ich aber eine totale PHP-Niete bin, hätte ich diese Links selber so nicht erstellen können. Ich befürchte deshalb, dass irgendwo der ein oder andere manuelle Link eingefügt wurde. Bin mir aber nicht sicher. Daher: gibt es eine Möglichkeit, solche Links aufzuspüren?
    Aber in Zukunft werde ich solche Links jetzt meiden.

    Zu 3.
    Das mit der Pagination.php hat nicht geklappt - es liegt nämlich schon eine Datei mit demselben Namen in dem Ordner. Allerdings sieht diese anders aus als die im joomla/libraries...-Ordner. Ist aber auch kein großer Aufwand, diese eine kleine Änderung vorzunehmen.

    Ist übrigens eine super Idee, die Änderungen direkt in den Ordner zu speichern. Ich habe bisher alle meine Änderungen von Joomla, Komponenten und Modulen in einer seitenlangen Word-Datei bis in die kleinste Einzelheit geschrieben. Da konnte ich bisher bei jedem Update einer Komponente nachlesen, was ich wo geändert habe. Ist nicht wirklich viel Aufwand, aber ein Override wäre noch einfacher...


    Die obige Frage wäre noch wichtig und: für den Fall, dass ich irgendwas vergessen habe zu ändern in Bezug auf Template - kann das irgendwo Schaden anrichten?

    Meine letzte Fage, mal wieder zum Verständnis Overrides (ich bin wohl zu doof dazu):
    Wenn ich nun (um bei meinem obigen Beispiel zu bleiben) ein Override der form.php des Easybook erstellt habe, bleibt ja bei einem Update und somit Überschreiben der URSPRÜNGLICHEN form.php im easybook-Ordner meine NEUE form.php in meinem Template erhalten. Soll ja auch so sein. Wenn nun aber vom Programmierer dieser Komponente ein wichtiger Code in eben jener form.php geändert wurde, kommt diese ja nun auch nicht mehr zum Tragen. Passt das Update dann überhaupt noch zu der in meinem Template verwendeten form.php??
    Diese Frage bezieht sich auf ALLE Updates. Versteht ihr was ich meine?? Passen nach einem Update die neu programmierten Teile überhaupt noch zu den von mir in MEINEM Template und daher NICHT geänderten abgelegten Dateien??

    Das ist wirklich der Punkt, den ich überhaupt nicht verstehe in der ganzen Programmierung von Joomla. Ich hoffe, ich konnte mich verständlich genug ausdrücken... Sorry für die vielleicht doofe Frage...

  4. #4
    Verbringt hier viel Zeit
    Registriert seit
    28.07.2009
    Beiträge
    866
    Bedankte sich
    20
    Erhielt 192 Danksagungen
    in 188 Beiträgen

    Standard

    2) Naja, so viele Links können es doch eigentlich gar nicht sein. Normalerweise wird auf die template-css verwiesen und auf die Bilder im template/images-Ordner. Und das hast du eigentlich in der index.php alles erledigt. Normale Bilder, die im content-Bereich angezeigt werden, würde ich direkt in der root/images/... abspeichern, so bist du templateunabhängig. Eine Möglichkeit, Links aufzuspüren, fällt mir grad keine ein, ausser manuell durchzugehen...

    3) Ja genau, so siehts aus. Obs jetzt passt oder nicht, hmm. Ich hab ehrlich gesagt keine Ahnung, ob solche Sachen (meist gehts ja um die Darstellung) häufig geändert werden. Ich hatte ehrlich gesagt schon einige Updates gemacht, und alle Overrides sehen immer noch so aus, wie sie sollen. Falls was Grundlegendes geändert werden sollte, würdest du das wahrscheinlich am Aussehen erkennen. Für den Fall hab ich wie gesagt genau notiert, was wo und für welchen Zweck geändert wurde

  5. #5
    Neu an Board Avatar von MsMudia
    Registriert seit
    04.06.2009
    Ort
    Menden/Sauerland
    Alter
    45
    Beiträge
    70
    Bedankte sich
    8
    Erhielt 8 Danksagungen
    in 6 Beiträgen

    Standard

    Zu 2) Ja, hab ich eigentlich so gemacht. Bilder im Content sind templateunabhängig eingebunden. Also müsste ich eigentllich alles erwischt haben. Bisher ist auch noch keine verunglückte Seite aufgetaucht...

    Zu 3) Hab mir das nochmal durch den Kopf gehen lassen. Wenn ich das mit den Overrides nun richtig verstanden habe, geht es dabei nur um die VIEWS, sprich Dateien, die sich um das AUSSEHEN des Templates kümmern.

    Alle Overrides sind nun erstellt - ich werde heute Abend ein Update von 1.5.14 auf 1.5.20 machen und anschließend alle Komponenten überprüfen und ggfs. updaten. Ich bin gespannt, wie meine Seite nachher aussieht...

  6. #6
    Hat hier eine Zweitwohnung
    Registriert seit
    17.12.2009
    Beiträge
    1.063
    Bedankte sich
    51
    Erhielt 196 Danksagungen
    in 190 Beiträgen

    Standard

    @SBob:

    Rein aus Interesse:
    Warum ist bei dir vor
    PHP-Code:
    $this->template
    ein Punkt? Was bewirkt das?

    PHP-Code:
    $template_path $this->baseurl."/templates/".$this->template
    <- Bleibt Opera treu.
    Wer braucht schon Firebug, wenn man Dragonfly hat?
    Gelösten Thread bitte auch so kennzeichnen.

  7. #7
    Wohnt hier Avatar von Harmageddon
    Registriert seit
    04.03.2010
    Ort
    Heilbronn
    Beiträge
    2.126
    Bedankte sich
    138
    Erhielt 616 Danksagungen
    in 605 Beiträgen

    Standard

    Als Trenner zwischen " und $this. Ist bei PHP so üblich
    Konnte ich helfen? "Danke" klicken kostet nichts und tut nicht weh.
    Problem gelöst? Ersten Post bearbeiten - Erweitert - Präfix: "Gelöst" - Danke!
    allergisch gegen grausame Rechtschreibung

  8. #8
    Hat hier eine Zweitwohnung
    Registriert seit
    17.12.2009
    Beiträge
    1.063
    Bedankte sich
    51
    Erhielt 196 Danksagungen
    in 190 Beiträgen

    Standard

    Also immer mit Punkten eingrenzen?
    <- Bleibt Opera treu.
    Wer braucht schon Firebug, wenn man Dragonfly hat?
    Gelösten Thread bitte auch so kennzeichnen.

  9. #9
    Hat hier eine Zweitwohnung Avatar von progandy
    Registriert seit
    25.06.2007
    Beiträge
    1.936
    Bedankte sich
    13
    Erhielt 638 Danksagungen
    in 575 Beiträgen

    Standard

    @HansZ: Der Punkt verkettet die Strings. Es wird also $template->baseurl genommen, /templates/ angehängt und dann $this->template angehängt. Das ganze wird dann in die Variable $template_path gespeichert.

    @MsMudia: Falls du auch Page Navigation verändern willst, benötigst du das Plugin Extended Page Navigation Das gleiche gibt es auch für Pagebreak
    Suche und FAQ helfen bei Problemen oft weiter!

  10. Erhielt Danksagungen von:


  11. #10
    Neu an Board Avatar von MsMudia
    Registriert seit
    04.06.2009
    Ort
    Menden/Sauerland
    Alter
    45
    Beiträge
    70
    Bedankte sich
    8
    Erhielt 8 Danksagungen
    in 6 Beiträgen

    Standard

    Zitat Zitat von progandy Beitrag anzeigen
    @MsMudia: Falls du auch Page Navigation verändern willst, benötigst du das Plugin Extended Page Navigation Das gleiche gibt es auch für Pagebreak
    Hey - danke, der Tipp war gut. Beim Überfliegen sah ich "Support for template overrides" - das klingt schon mal gut. Werde ich mal ausprobieren. Vielen Dank!

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein