Vererbung
Re: Vererbung
Der vererbte Inhalt wird ganz normal gespeichert, wie anderer Inhalt auch.
Wenn aber kein Inhalt da ist, und die Vererbung nicht ausgeschaltet, schaut die Vererbung beim Startartikel der eigenen Kategorie, dann beim Startartikel der übergeordneten Kategorie usw. bis Inhalt da ist oder der Baum zuende ist.
Es wird aber nichts zusätzlich gespeichert.
Gruß
René
Wenn aber kein Inhalt da ist, und die Vererbung nicht ausgeschaltet, schaut die Vererbung beim Startartikel der eigenen Kategorie, dann beim Startartikel der übergeordneten Kategorie usw. bis Inhalt da ist oder der Baum zuende ist.
Es wird aber nichts zusätzlich gespeichert.
Gruß
René
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Vererbung
Hallo René,
ich glaube auch ich habe gerade einen Gedankenfehler gehabt.
In einem weiteren Modul wollte ich auf den Inhalt zugreifen und platzieren (ich wollte auch einige Textmanipulationen vornehmen, da dies als css-Klasse dienen soll). Das klappt im gleichen Artikel auch wunderbar (siehe Code-Schnipsel), da wo ich meinen Vererbungstext eingegeben haben, aber leider nicht in den Artikel der vererbten Unterkategorie, obwohl der "verebte Text" an sich bei dem Vererbungsmodul angezeigt wird.
Das ist nur ein Versuch gewesen
Lösung:
Ich habe das nun so gelöst, dass ich das Verebungsmodul mit dem gleichen Index noch einmal einsetze (also in meinem zweiten Modul an anderer Stelle). Bestimmt nicht so elegant aber klappt
Also hier noch kurz mein Code:
Ziel war es für mich im Verebungstext eine Branche anzugeben "Handwerker". Dieser Text wird dann immer über der Überschrift angezeigt.
Jetzt wollte ich aber per CSS die Branchen etwas verschieden stylen und wollte die Branchennamen alss CSS-Klasse gleich nutzen. Habe also ein Modul gemacht und das im Template z.B. als DIV gleich nach dem Bodytag eingesetzt (schließenden div natütlich nicht vergessen) ... oder als CSS in einen berits bestehenden umschließende DIV.
Da ich ja im Vorfeld meine Branche kenne, kann ich als auch schon die CSS-Klassen "bauen". Allerdings sollen diese keine Umlaute, Sonderzeichen und Leerzeichen haben und kleingeschrieben sein, sowie nicht zu lang werden (also max. 20 Zeichen), somit kam dieses kleine Modul zustande, welches die Verebung nutzt. Somit wird z.B. aus Ärzte & Gesundheit = aertztegesundheit.
MfG Steffen
ich glaube auch ich habe gerade einen Gedankenfehler gehabt.
In einem weiteren Modul wollte ich auf den Inhalt zugreifen und platzieren (ich wollte auch einige Textmanipulationen vornehmen, da dies als css-Klasse dienen soll). Das klappt im gleichen Artikel auch wunderbar (siehe Code-Schnipsel), da wo ich meinen Vererbungstext eingegeben haben, aber leider nicht in den Artikel der vererbten Unterkategorie, obwohl der "verebte Text" an sich bei dem Vererbungsmodul angezeigt wird.
Das ist nur ein Versuch gewesen
Code: Alles auswählen
$text = "CMS_HTML[3]";
$art = new Article($idart, $client, $lang);
echo $text ;
Ich habe das nun so gelöst, dass ich das Verebungsmodul mit dem gleichen Index noch einmal einsetze (also in meinem zweiten Modul an anderer Stelle). Bestimmt nicht so elegant aber klappt
Also hier noch kurz mein Code:
Ziel war es für mich im Verebungstext eine Branche anzugeben "Handwerker". Dieser Text wird dann immer über der Überschrift angezeigt.
Jetzt wollte ich aber per CSS die Branchen etwas verschieden stylen und wollte die Branchennamen alss CSS-Klasse gleich nutzen. Habe also ein Modul gemacht und das im Template z.B. als DIV gleich nach dem Bodytag eingesetzt (schließenden div natütlich nicht vergessen) ... oder als CSS in einen berits bestehenden umschließende DIV.
Da ich ja im Vorfeld meine Branche kenne, kann ich als auch schon die CSS-Klassen "bauen". Allerdings sollen diese keine Umlaute, Sonderzeichen und Leerzeichen haben und kleingeschrieben sein, sowie nicht zu lang werden (also max. 20 Zeichen), somit kam dieses kleine Modul zustande, welches die Verebung nutzt. Somit wird z.B. aus Ärzte & Gesundheit = aertztegesundheit.
Code: Alles auswählen
<?php
cInclude("frontend", "includes/class.vererbung.php");
$index = 3;
$type = 'CMS_HTML';
$vererbung = new Vererbung();
$text = $vererbung->Vererbe($index, $type);
$textincss = $text;
$ersetzemaldas = array("ü", "ä", "ö", "Ä", "Ö", "Ü", "ß", "ü", "ä", "ö", "Ü", "Ä", "Ö", "ß", " ", " ", "&", "–", "—", "?", "!", "", """, "'", "\"");
$mitdem= array("ue", "ae", "oe", "ue", "ae", "oe", "ss", "ue" ,"ae", "oe", "ue" ,"ae", "oe", "ss", "", "", "", "", "", "", "", "", "", "", "");
$textincss = ltrim($textincss, " ");
$textincss = html_entity_decode(strip_tags(str_replace($ersetzemaldas, $mitdem, urldecode($textincss))));
$textincss = strtolower($textincss);
$textincss = substr($textincss, 0, 20);
echo $textincss;
?>
Zuletzt geändert von derSteffen am Mi 13. Mär 2013, 08:41, insgesamt 5-mal geändert.
Re: Vererbung
Die einzige Möglichkeit, egal ob elegantderSteffen hat geschrieben:Bestimmt nicht so elegant aber klappt
Gruß
René
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Vererbung
Ach,
jetzt muss ich noch ne Frage loswerden.
Um meinenen verbtenText wird ein P-Tag ausgegeben was ja auch richtig ist, da dass ja der Tiny macht und so soll es auch sein. Nun möchte ich aber p-Tags entfernen, aber ander HTML-Tags sollen drin bleiben.
Aber bei diesem Code wird dann nur Array ausgegeben. Wornan liegt das?
Lösung 1:
Lösung 2:
Vielen Dank.
MfG Steffen
jetzt muss ich noch ne Frage loswerden.
Um meinenen verbtenText wird ein P-Tag ausgegeben was ja auch richtig ist, da dass ja der Tiny macht und so soll es auch sein. Nun möchte ich aber p-Tags entfernen, aber ander HTML-Tags sollen drin bleiben.
Code: Alles auswählen
<?php
if (!isset($tpl) || !is_object($tpl)) {
$tpl = new Template();
}
$tpl->reset();
cInclude("frontend", "includes/class.vererbung.php");
$index = 3;
$type = 'CMS_HTML';
$vererbung = new Vererbung();
$text = $vererbung->Vererbe($index, $type);
$text = ltrim($text, " ");
$art = new Article($idart, $client, $lang);
if ($edit) {
echo "<span class=\"beinfo\">Branche</span><br /><u>Vererbter Inhalt: </u>";
$tpl->set('s', 'text', "$text");
$tpl->generate('templates/text_blanko.html');
} else {
if ($text != "") {
echo "Branche: ";
$ersetzedas = array("<p>", "</p>");
$mitdem = array("", "");
// $text= str_replace($text, $ersetzedas, $mitdem);
$tpl->set('s', 'text', str_replace($text, $ersetzedas, $mitdem));
// $tpl->set('s', 'text', "$text");
$tpl->generate('templates/text_blanko.html');
} else {
echo "";
}
}
?>
Lösung 1:
Code: Alles auswählen
<?php
if (!isset($tpl) || !is_object($tpl)) {
$tpl = new Template();
}
$tpl->reset();
cInclude("frontend", "includes/class.vererbung.php");
$index = 3;
$type = 'CMS_HTML';
$vererbung = new Vererbung();
$text = $vererbung->Vererbe($index, $type);
$text = ltrim($text, " ");
$art = new Article($idart, $client, $lang);
if ($edit) {
echo "<span class=\"beinfo\">Branche</span><br /><u>Vererbter Inhalt: </u>";
$tpl->set('s', 'text', "$text");
$tpl->generate('templates/text_blanko.html');
} else {
if ($text != "") {
echo "Branche: ";
$ersetzedas = array("<p>", "</p>");
$mitdem = array("", "");
$tpl->set('s', 'text', str_replace($ersetzedas, $mitdem, $text, ));
$tpl->generate('templates/text_blanko.html');
} else {
echo "";
}
}
?>
Lösung 2:
Code: Alles auswählen
<?php
if (!isset($tpl) || !is_object($tpl)) {
$tpl = new Template();
}
$tpl->reset();
cInclude("frontend", "includes/class.vererbung.php");
$index = 3;
$type = 'CMS_HTML';
$vererbung = new Vererbung();
$text = $vererbung->Vererbe($index, $type);
$text = ltrim($text, " ");
$art = new Article($idart, $client, $lang);
if ($edit) {
echo "<span class=\"beinfo\">Branche</span><br /><u>Vererbter Inhalt: </u>";
$tpl->set('s', 'text', "$text");
$tpl->generate('templates/text_blanko.html');
} else {
if ($text != "") {
echo "Branche: ";
$text = str_replace("<p>", "", $text);
$text = str_replace("</p>", "", $text);
$tpl->set('s', 'text', "$text");
$tpl->generate('templates/text_blanko.html');
} else { echo ""; }
}
?>
Vielen Dank.
MfG Steffen
Zuletzt geändert von derSteffen am Mi 13. Mär 2013, 20:07, insgesamt 1-mal geändert.
Re: Vererbung
Hallo Steffen,
schau dir mal die Beschreibung der Funktion str_replace() an und achte vor allem auf die Reihenfolge der Parameter
http://de.php.net/manual/de/function.str-replace.php
Gruß
René
PS: Den Rest habe ich nur überflogen.
schau dir mal die Beschreibung der Funktion str_replace() an und achte vor allem auf die Reihenfolge der Parameter
http://de.php.net/manual/de/function.str-replace.php
Gruß
René
PS: Den Rest habe ich nur überflogen.
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Vererbung
Oh NEIN!
Es hätte ansatt dem:
So aussehen müssen:
Ich habe das mal oben in Lösung1 verbessert!
Danke René!
MfG Steffen
Es hätte ansatt dem:
Code: Alles auswählen
$tpl->set('s', 'text', str_replace($text, $ersetzedas, $mitdem));
Code: Alles auswählen
$tpl->set('s', 'text', str_replace($ersetzedas, $mitdem, $text));
Danke René!
MfG Steffen
Re: Vererbung
Hmmm, beide Lösungen sehen richtig aus.
Generell gilt: um die P-Tags zu entfernen kannst dumachen.
Wenn das nicht funktioniert, lass mich das mir bitte ansehen.
Gruß
René
Generell gilt: um die P-Tags zu entfernen kannst du
Code: Alles auswählen
$text = str_replace(array('<p>', '</p>'), '', $text);
Wenn das nicht funktioniert, lass mich das mir bitte ansehen.
Gruß
René
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Vererbung
Hallo René,
meine beiden Lösungsvorschläge, wie auch Dein Tipp, gehen auch
MfG und Danke
meine beiden Lösungsvorschläge, wie auch Dein Tipp, gehen auch
MfG und Danke
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Vererbung
Tipp:
Wenn es mal auf einmal nicht mehr funktioeren sollte - die Vererbung - und man eine Stunde verzweifel das Problem sucht, kann es daran liegen, dass in der Baumstruktur kein Startsrtikel mehr existiert, welche ja notwendig ist
MfG
Wenn es mal auf einmal nicht mehr funktioeren sollte - die Vererbung - und man eine Stunde verzweifel das Problem sucht, kann es daran liegen, dass in der Baumstruktur kein Startsrtikel mehr existiert, welche ja notwendig ist
MfG
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Vererbung
Hallo René,
bei deinem Code:
KLappt alles wunderbar, aber ich kann bei diesem die Vererbung nicht abschalten. Wenn ich ein anderes bild auswähle wird es auch genommen, wie gewünscht. Aber wenn ich bei einem Artikel nicht das Bild anziegen lassen möchte, kann ich das nicht abschalten - anders wie bei Texten. Da kann ich ja die Vererbung "deaktivieren" und dann wird auch nichts angezeigt! Ich habe natürlich schon versucht rumzutesten aber ich habe noch keine Lösung gefunden.
Vielen Dank
MfG Steffen
bei deinem Code:
Code: Alles auswählen
<?php
cInclude("frontend", "includes/class.vererbung.php");
$vererbung = new Vererbung();
if ($edit) {
echo "<span class=\"beinfo\">Logofade zuweisen, wenn gewünscht!</span><br />";
echo $vererbung->Vererbe(5, 'CMS_IMGEDIT');
} else {
$img = $vererbung->Vererbe(5, 'CMS_IMG');
if (strlen($img)) {
echo '<div class="logofadebild" style="background-image:url(' . $img . ')"></div>';
echo $vererbung->Vererbe(5, 'CMS_IMGTITLE');
}
}
?>
Vielen Dank
MfG Steffen
Re: Vererbung
Hallo Steffen und alle anderen,
ich habe soeben die neue Version 2.3 hochgeladen, die behebt die folgenden Fehler:
Gruß
René
ich habe soeben die neue Version 2.3 hochgeladen, die behebt die folgenden Fehler:
- Ausschalten der Vererbung z.B. bei CMS_IMG über CMS_IMGEDIT hat nicht funktioniert
- Ausschalten der Vererbung hat den CMS_Typ nicht berücksichtigt
Gruß
René
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Vererbung
Hallo,
ist es möglich, dass eine Vererbung generell aktiv ist, wenn eine vorhanden ist ohne, dass man die Vererbung per Klick im Editor aktivieren muss?
Vielen Dank
MfG Steffen
ist es möglich, dass eine Vererbung generell aktiv ist, wenn eine vorhanden ist ohne, dass man die Vererbung per Klick im Editor aktivieren muss?
Vielen Dank
MfG Steffen
Re: Vererbung
Hallo Steffen,
das sollte eigentlich der Standard sein.
Hast du vielleicht mal eine spezielle Version von mir gekriegt, oder ist das jetzt so der Fall?
Ich schaue mir das parallel aber auch nochmal an.
Gruß
René
das sollte eigentlich der Standard sein.
Hast du vielleicht mal eine spezielle Version von mir gekriegt, oder ist das jetzt so der Fall?
Ich schaue mir das parallel aber auch nochmal an.
Gruß
René
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Vererbung
Hallo René,
mhm ... also bei mir ist das so der Fall und eine extra Version binich mir ehrlich gesagt nicht sicher. Fakt ist, bei mir steuere ich die Vererbung über den Startartikel in der Kategorie und alle anderen Artikel in dieser Kategorie, kann ich per Klick sagen ... übernehme die Vererbuung. Ist das eine Spezial-Verion, weil es innerhalb einer "Ebene" greift?!
Vielen Dank
MfG Steffen
mhm ... also bei mir ist das so der Fall und eine extra Version binich mir ehrlich gesagt nicht sicher. Fakt ist, bei mir steuere ich die Vererbung über den Startartikel in der Kategorie und alle anderen Artikel in dieser Kategorie, kann ich per Klick sagen ... übernehme die Vererbuung. Ist das eine Spezial-Verion, weil es innerhalb einer "Ebene" greift?!
Vielen Dank
MfG Steffen
Re: Vererbung
Habs gefunden.
In der class.vererbung.php (aktuelle Version Zeile 69) steht:
Dass muss geändert werden in:
Damit ist dann wieder standardmäßig die Vererbung eingeschaltet.
Gruß
René
In der class.vererbung.php (aktuelle Version Zeile 69) steht:
Code: Alles auswählen
$sitKeineVererbung[$type][$field] = 1;
Code: Alles auswählen
$sitKeineVererbung[$type][$field] = 0;
Gruß
René