Aktualisierung der Templates wird nicht in Artikel übernomm'

avocado-systems
Beiträge: 6
Registriert: Mi 23. Jul 2008, 17:32
Kontaktdaten:

Aktualisierung der Templates wird nicht in Artikel übernomm'

Beitrag von avocado-systems »

Hallo

ich habe es hier schon in einem anderen Thread gelesen, dass es ein Bug sein muss...

Ich benutze die Version 4.8.4 (werde demnächst auf 4.8.6 updaten wegen mail bug).

Ich habe ein neues Suchmodul erstellt und dies in ein Template(Hauptseite) eingebunden. Dort gibt es eine CMS_VAR[1] als Überschrift, die ich bei der Vorkonfiguration setzen kann.

Das Problem ist, dass dieses Template anscheinend nicht global ist. Es wird nicht automatisch von den einzelnen Artikeln, denen es zugewiesen ist, 'neu geladen' (da die Einstellungen für die einzelnen Artikel wohl aus den Mandanteneinstellungen gezogen werden)

Mit Verlaub, aber das ist ein ziemlich dämlicher Bug!! Oder?

Ich muss nun für jeden Artikel(und das sind nicht wenige) in Content->Artikel->Konfiguration die Überschrift für das Suchmodul eingeben und abspeichern. Da Contenido ein echtes Performanceproblem hat, dauert das entsprechend lange.

Gibt es eine Art Auto-Update-Fkt. oder ein einmaliges Eintragen irgendwo?

MfG
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Ich würde nachträgliche Module/Values (bzw. Primär alle) mit Default-Werten im Output zuweisen. Dann ist auch eine Vergabe von Versionen möglich bzw. flexibles updaten von alten Module.

Code: Alles auswählen

// diesen Teil sollte man immer im Header machen,
// dann hat man eine Übersich über die verwendeten Values
// bei größeren Modulen mit 20, 30 Values sehr effektiv
// und man kann zentral auf die Werte eingehen / sie überprüfen
$name = "CMS_VAR[1]"; 

// eingehen/prüfen des Werts - Default setzen
if( !$name ) {
  $name = "666";
}
mfg OliverL
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Re: Aktualisierung der Templates wird nicht in Artikel übern

Beitrag von tono »

avocado-systems hat geschrieben:(werde demnächst auf 4.8.6 updaten wegen mail bug)
Und wegen Sicherheitslöchern??????????

Zu deinem angesprochenen Problem. Es heißt Vorkonfiguration. Das man damit keine Nachträglichen Änderungen machen kann liegt auf der Hand.

Die von Dir beschriebene Funktionwäre sicherlich manchmal wünschenswert, aber es ist kein Bug. Das ist so gedacht.

Die Frage ist, ob derjenige der das Suchmodul programmiert hat, sich überlegt hat, ob es nicht anders praktischer wäre. Es gibt in Contenido durchaus Möglichkeiten globale Einstellungen zu definieren.
Bis dann
Tono
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono »

Siest Du, OliverL, der wieder mal schneller war zeigt, das das Modul das Problem darstellt und nicht Contenido.
Bis dann
Tono
avocado-systems
Beiträge: 6
Registriert: Mi 23. Jul 2008, 17:32
Kontaktdaten:

naja

Beitrag von avocado-systems »

Das ist ja nun nicht ganz das was ich suche. Das ist eher ein Workaround für mein Problem (oder eigentlich generelles Problem).
Das default setzen ist guter/normaler Programmierstil, da ist mir schon bewusst.

Aber wenn ich nun einen neuen Inhalt für eine CMS_VAR[x] bei der Konfiguration eingebe, wird dies zwar für neue Artikel, denen dieses Template zugewiesen wird, übernommen, jedoch nicht für schon vorhandene Artikel. So müsste ich auch die einzelenen default-Werte im Modul anpassen. Das ist umständlich und nur bedingt eine Lösung!

Ich wäre für eine Implementation einer 'updateTemplatesForArtikels();' !

2. Warum kann man die Werte in den Modulen nur bei der Zuweisung zu einem Template befüllen. Das müsste separat funktionieren. Wozu gibt es ein Menüpunkt Module, wenn man dort das quasi-Layout einstellt, den Inhalt für die Elemente aber immer und überall anders setzten kann? Das macht bei statischen Standardeinträgen (wie Überschrift, Input-Button, etc.) überhaupt keinen Sinn!

???
avocado-systems
Beiträge: 6
Registriert: Mi 23. Jul 2008, 17:32
Kontaktdaten:

wie jetzt?

Beitrag von avocado-systems »

@tono

Sage ich doch. Der mail-bug ist ja wohl ein Sicherheitsloch, oder?

Das musst du mir jetzt mal näher erklären! Wieso ist es so gedacht, dass das Konfigurieren eines Templates nur für neu zugewiesene Artikel greift! Das ist unlogisch!

Was machst du denn, wenn du ein neues Modul eintwickelst, was du auf allen Seiten angezeigt haben möchtest! Alle bestehenden Artikel per Hand konfigurieren???
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

@tono: mal wieder 8)

Hallo avocado-systems,

Hab beim Posten vergessen das es eine Überschrift ist und das es ein Suchmodul ist.

Sollte Value1 ein Titel sein wie "Volltextsuche", "Suchwort" oder "Suche starten!" ist die Lösung das als/über Konfiguration zu definieren -ääähhh- Suboptimalt. :wink:

Ich würde das durch die Übersetzung jagen.

Konfiguration bedeutet für mich immer so was wie Bildgrößen für automatische Umrechnung aber das Bild wieder über den CMS-TYPE.

Vielleicht Postest du mal das Modul, dann man kann sich das anschauen und Tipps geben.


mfg Oliver

PS: Das programmieren von effizienten, funktionalen, benutzerfreundlichen, multilingualen, performanten (usw.) ist eine Kunst.

PPS.: Den Bug den du meinst wurde glaube ich von mir gepostet und bezog sich auf die neu Zuweisung beim Template austausch und das lediglich über das Left-Top-Menü.
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Re: wie jetzt?

Beitrag von OliverL »

schlag auf schlag!
avocado-systems hat geschrieben:Was machst du denn, wenn du ein neues Modul eintwickelst, was du auf allen Seiten angezeigt haben möchtest! Alle bestehenden Artikel per Hand konfigurieren???
Ich konfiguriere nicht alle Artikel fast ausschließlich nur Kategorien.
Konfigurationen die für alle Artikel gelten sollen kann man als Mandaten-Einstellungen setzen.
avocado-systems hat geschrieben:Wozu gibt es ein Menüpunkt Module, wenn man dort das quasi-Layout einstellt, den Inhalt für die Elemente aber immer und überall anders setzten kann? Das macht bei statischen Standardeinträgen (wie Überschrift, Input-Button, etc.) überhaupt keinen Sinn!
Vestehe ich nicht.
Layout -> Grundstrucktur der Seite (nicht Darstellung, dafür ist CSS)
Module -> Für dynamischen Inhalt (Artikel-Listen, Inhalten, ...)
- Modul-Template -> Aussehen der dynamischen Inhalt (hier gehören Inputfelder rein / HTML-Elemente)
- Übersetungen -> Hier gehört der Inputtext rein / sprachspezifischer Text
Templates -> Kompositionen

Standardstruktur:
1. Header
1.1. Laden von zusätzlichen Funktionen
1.2. Laden von Variablen
1.3. Überprüfen und setzen von Default-Werten
2. Body
2.1. Daten auslesen
2.2. Daten aufbereitung
2.3. Ausgabe der Daten

Sollte dein Modul weniger als 20 Zeilen lang sein wäre das bedenklich.

mfg OliverL
Zuletzt geändert von OliverL am Fr 10. Okt 2008, 21:20, insgesamt 1-mal geändert.
tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono »

Wenn ich ein neues Modul entwickel, das auf allen Seiten den gleichen Wert anzeigt, dann hohl ich diesen Wert nicht aus der Konfiguration. Sondern zum Beispiel aus der Manadanteneinstellung.
Bis dann
Tono
avocado-systems
Beiträge: 6
Registriert: Mi 23. Jul 2008, 17:32
Kontaktdaten:

Re: Modul-Template

Beitrag von avocado-systems »

Also erstmal vorweg, ich bin Contenido-Newbie, kenne mich aber schon ein bissle mit gängigen Programmierparadigmen und -sprachen aus.

@OliverL:

OK, hab mich mal durchs Forum geforstet und das Modul-Template System verstanden.

Ich soll eine existierende Seite updaten und ein paar design-technische Veränderungen vornehmen. Will heißen: alle benötigten Module sind schon implementiert. (Obwohl der Typ der das gemacht hat, die Überschrift für das Modul direkt im Modul hardcodiert hat)
Ich benötigte lediglich ein Suchmodul als eine Art Widget unter der Hauptnavi, welches beim Button-drücken auf die richtige Suchseite mit entsprechenden Suchtreffern verweist.
Bedeutet also ich benötige weder php-Code noch irgendwelche Modul-Templates. Ich habe meinen Code direkt in das Module geschrieben.

Und wie funktioniert das mit der Übersetzung? Da steht nur "Ursprünglicher Modulstring" und "Übersetzung für Deutsch" keine CMS_VARs zu erkennen die ich ja übersetzen will.

@tono
Will heißen ich muss für jedes Modul extra nochmal in Adminstration->Mandaten->Mandanteneinstellungen gehen und dort eine Variable per Hand definieren!? Nich dein Ernst oder?
Es muss doch irgendwo eine zentrale Konfiguration für JEDES Modul in EINEM Mandanten geben!?

Gruß

Eingabe:

Code: Alles auswählen

if("CMS_VALUE[1]" == ""){
	$Search_headline = "Suche";
} else { 
	$Search_headline = "CMS_VALUE[1]"; }; 


echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
        <tr valign=\"top\">
          <td>Überschrift</td>
          <td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"".$Search_headline."\"></td>
        </tr>
      </table>";
Ausgabe

Code: Alles auswählen

<?php if("CMS_VALUE[1]" == ""){
	$Search_headline = "Suche";
      } else { 
	$Search_headline = "CMS_VALUE[1]"; };
?> 

<div class="main_search">
  <form name="suche" method="POST" action="front_content.php?idcat=60">
    <div class="main_search_headline" ><?php echo $Search_headline?></div>
    <input type="text" name="suche" value="<?php echo $suche; ?>">
    <button type="submit">suchen</button>
  </form>
</div>
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

ich hoffe, ich kann was zur klärung der sachlage beisteuern:

die template-vorkonfiguration ist lediglich eine vorlage mit werten. die konfigurationswerte können dann bei der kategorie oder beim artikel angepasst werden. wenn sich ein wert nun in der vorkonfiguration ändert, will man das möglicherweise - oder sogar im regelfall - nicht automatisch überall dort verändert haben, wo man den entsprechenden wert bewusst anders gesetzt hat.

du hast grundsätzlcih folgende möglichkeiten:

1. du kannst im mandanten konstanten definieren, die du dann in modulen verwenden kannst.

2. du kannst, sofern sich ein wert innerhalb eines modules nie ändern wird (z.b. startpunkt der navigation) diesen auch direkt im modul fest bezeichnen und ggf. auch dort zentral aktualisieren.

3. du kannst dir ein konfigurationsmodul schreiben, welches was auch immer für regeln anwendet, um zu den daten zu gelangen und damit dann variablen zu belegen, die du in allen anderen modulen verwenden kannst.

wichtig bei alledem ist, dass du verstehtst, dass die vorkonfiguration auf stufe template oder auch auf stufe kategorie nur eine wertvorbelegung ist. es ist ja gerade die idee, dass man werte für einen artikel spezifisch setzen kann. wenn das nicht möglich sein soll, dann gehört die entsprechende angabe auch nicht in die konfiguration, sondern in die mandanteneinstellungen oder direkt in das modul.

die paradigmen, die du ansprichst, mögen für die anwendungsentwicklung bedeutend sein. aber die konfiguration von artikeln muss nicht notwendigerweise desnselben mustern folgen.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Hi,

Bei der Übersetzung must du nur die Funktion <?php echo mi18n("english Text");?> aufrufen und im Bereich Style > Modul > "Modul" > Übersetzung den da erscheinenden Text übersetzen.

Für den Titel hier im Beispiel sicher sin voll.

Mann muss auch den Kosten-Nutzen-Faktor beachten. Die meisten Programmierer die für den schnellen Euro das machen (300€ für eine komplette Site) programmieren Müll.
Das hat wohl dein Vorgänger gemacht.
Wenn du $Search_headline (dahinter fehlt das ; ) ergänzt hast hätte er sich das Modul sparen können den man kann auch php im Layout verwenden (nicht empfehlenswert) .

Optimales Beispiel:
(inkl. Template, Übersetzung, und Settings)
KEIN INPUT!

Code: Alles auswählen

<?php
// Modul Output
// copyright four for business AG <www.4fb.de>
if (!isset($tpl) || !is_object($tpl)) {
    $tpl = new Template();
}
$tpl->reset();

$sTargetIdcat = getEffectiveSetting('search-results', 'idcat', '1');
$sTargetIdart = getEffectiveSetting('search-results', 'idart', '1');
$sFormAction = 'front_content.php?idcat='.$sTargetIdcat.'&idart='.$sTargetIdart;

$tpl->set('s', 'form_action', $sFormAction);
$tpl->set('s', 'label_search', mi18n("Suche"));
$tpl->generate('templates/search_input.html');
?>
@das was du zu tono geschriebn hast:
In Modulen bei den auf die Usability geachtet wurde must du nicht in die Mandanten-Eigenschaften gehen. Im Newsletter-Hander (von HerrB / Beispiel-Mandanten-Daten der Contenido-Setup) ist das setzen der globalen Settings im Modul integriert.
OliverL
Beiträge: 870
Registriert: Do 28. Jun 2007, 09:28
Kontaktdaten:

Beitrag von OliverL »

Noch ein kleines Beispiel für Settings.
... anhand eines Kontakt-Formulars für Betriebe ab 500 Personen.

Bei einem Kontaktformular das für ca. 500 Seiten verwendet wird sollte man sich doppelt durch Überprüfung absichern.

Hier habe ich folgendes Schema für Defaults genutzt:
1. extrahieren der ersten Mail-Adresse aus einem CMS-Typ (zB:CMS_HTML[x])
2. Nutzen der Adresse aus den Artikel-Konf. um Abteilungsleiter zu definieren (sollte dann über die Kategorie-Konf. erstellt werden damit alle Artikel diese Bekommen. 1 Kategorie = 1 Abteilung)
3. Eingetragene Mandanteneinstellung mit Kunden-Info-Mail-Adresse
4. eingetragene Admins des Mandanten/Sprache
5. eingetragene Sysadmins

Dieses Beispiel sollte meine Definition mit den mehr als 20 Zeilen unterstützen und Zeigen das bei richtiger verwendung der vom System bereitgestelten Funktionen sehr viel erreicht werden kann.
Bezug nehmend auf die 300€-Programmierer war das ein Zeit/Kosten Aufwand von um 500€ für genau 1 Modul :).

mfg OliverL
avocado-systems
Beiträge: 6
Registriert: Mi 23. Jul 2008, 17:32
Kontaktdaten:

Beitrag von avocado-systems »

Ok Danke, das war verständlich!

Muss ich wohl mit leben. Die 3 Varianten waren aber hilfreich, Danke.

Das mit der Vorkonfiguration hab ich ja verstanden, ich dachte eben nur wenn man in einem Modul mehrere CMS_VARs benutzt muss man die ja auch irgendwo zentral befüllen können. Und da es bei der Vorkonfiguration so schöne benutzerfreundliche Eingabefelder gibt, dacht ich dies ist die grundsätzliche Standardbelegung.

Das müsste es doch genrell für Module geben, oder?
Ich mein was hat es für einen Sinn, wenn man für z.B. mein Suchmodul die Überschrift "Suche" in Vorkonfiguration eingibt, dies für eine Kategorie festlegt. Nun hunderte Kategorien schreibt und der Auftraggeber möchte nun das es aber "Volltextsuche" heißt. Muss ich das ja in allen Kategorien oder Artikeln ändern.!? Puuhh!
avocado-systems
Beiträge: 6
Registriert: Mi 23. Jul 2008, 17:32
Kontaktdaten:

Beitrag von avocado-systems »

Hui, warst ganz schön fleißig!

Der Code war von mir ;-) Brauchte ja nur ein Widget das auf idcat=60 weiterleitet.

Dein Module-Template generierender Code war mal richtig die Hilfe!!!

Jetzt gehts los!

Danke, kann geschlossen werden.

Toitoitoi weiterhin!
Gesperrt