Dynamisches erzeugen von Contenido-Platzhaltern

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
woddel
Beiträge: 89
Registriert: Mi 2. Jun 2004, 10:49
Kontaktdaten:

Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von woddel » Mi 2. Okt 2013, 13:37

Hallo!

Ich hatte mir vor einiger Zeit mal ein schönes Modul gebastelt, das 10 Bildplatzhalter nacheinander erzeugt.

Folgendes Skript hatte ich eingesetzt:
http://forum.contenido.org/viewtopic.php?f=62&t=23603

echo make_cms_type("CMS_IMG",$bildnummer);

Leider passiert da in Version 4.9 garnix und ich bin ahnungslos...

Hat jemand Ahnung oder einen Tip?
Ich bedanke mich schon mal!

Schönen Gruß aus Franken
Woddel
woddel

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von xmurrix » Mi 2. Okt 2013, 14:17

Hallo woddel,

probiere doch mal, deine Funktion gegen folgendes zu ersetzen:

Code: Alles auswählen

function make_cms_type($container_type, $container_id) {
    $typeGenerator = new cTypeGenerator();
    return $typeGenerator->getGeneratedCmsTag($container_type, $container_id);
}
Habe das zwar nicht bisher verwendet, aber so müsste es eigentlich funktionieren.

Allerdings wurde in CONTENIDO 4.9 CMS_IMG gegen CMS_IMGEDITOR abgelöst, und dieser CMS-Typ macht beim Speichern eine Weierleitung, was beim Speichern dynamischen genereierter CMS_IMGEDITOR Instanzen eventuell Probleme versursachen kann. Da gibt es einen Beirag dazu unter:
http://forum.contenido.org/viewtopic.php?f=92&t=34229

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Leo
Beiträge: 308
Registriert: Mi 19. Apr 2006, 19:26
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von Leo » Sa 18. Okt 2014, 14:32

Hallo zusammen,

ich habe die Anpassung mal ausprobiert. Leider funktioniert die Funktion make_cms_type weiterhin in Contenido 4.9 nicht. Hat jemand ne andere Idee?

VG Leonhard

Leo
Beiträge: 308
Registriert: Mi 19. Apr 2006, 19:26
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von Leo » Sa 18. Okt 2014, 14:58

function make_cms_type( $container_type, $container_id ) {

$typeGenerator = new cTypeGenerator();

$tmp = $typeGenerator->getGeneratedCmsTag($container_type, $container_id);

$tmp_output = str_replace('\\\"','"',$tmp);
$tmp_output = stripslashes($tmp_output);

return $tmp_output;
}

Damit geht es! Hoffe, es hilft nicht nur mir weiter. :D

VG Leonhard

frogli
Beiträge: 70
Registriert: Do 29. Apr 2004, 17:42
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von frogli » Di 29. Sep 2015, 08:40

Ich have festgestellt, dass die Funktion in 4.9.8 nicht mehr funktioniert. Vielleicht könnte das jemand bestätigen und eine passende Lösung anbieten. :)

Hier reichen leider meine autodidaktische EDV-Kenntnisse nicht aus. :roll:

wiener Grüße,
frogli

Leo
Beiträge: 308
Registriert: Mi 19. Apr 2006, 19:26
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von Leo » Di 29. Sep 2015, 12:40

Korrekt!

Soweit ich richtig informiert bin, wurde gerade irgendetwas an der Dateiverwaltung geändert. Zurzeit habe ich aber dafür keine Zeit. Deshalb habe ich mir erst einmal eine einfache Funktion geschrieben, um an die Inhalte zu kommen.

Es ist jedenfalls korrekt, die Funktion make_cms_type läuft mit CMS_IMGEDITOR nicht mehr.

VG

Leonhard

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von frederic.schneider_4fb » Do 1. Okt 2015, 08:43

Guten Morgen,

eigentlich (wenn ich mir den Code gerade so ansehe) müsste es funktionieren. Eure Funktion ruft die Funktion getGeneratedCmsTag() der Klasse cTypeGenerator auf. Diese Funktion ist ein Alias für die private cTypeGenerator-Funktion _processCmsTags() mit den selben Parametern Type und Index. Sofern _processCmsTags() übergebene Typen findet, ruft es für den jeweiligen Content-Typen die Funktionen generateEditCode() im Backend bzw. generateViewCode() im Frontend auf. Beide Funktionen beinhaltet die Klasse cContentTypeImgeditor. Hättet Ihr für mich ggf. Fehlermeldungen o. ä., die helfen würden, das Problem zu lokalisieren?
Frederic Schneider
Entwickler bei der four for business AG

matt.loker
Beiträge: 203
Registriert: Mo 7. Mai 2007, 09:05
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von matt.loker » Mo 12. Okt 2015, 18:44

Ich habe das Problem seit der 4.9.8 auch. ich erhalte aber keine Fehlermeldung um dir weiterhelfen zu können.
Was ich herausgefunden habe:
1) Es passiert unter PHP 5.3, 5.4 und 5.6 - daran kann es nicht liegen
2) $ocType->getGeneratedCmsTag("CMS_IMGEDITOR", $idupl); trägt den Wert korrekt in die Datenbank ein
idtype 22
typeid 675
value 205
3) $ocType->getGeneratedCmsTag("CMS_IMG", $idupl); kommt jedoch nicht an der Wert in der Datenbank ran.
Ich habe testweise "CMS_IMG[675]" fix eingetragen und das Bild wurde angezeigt.

Ich hoffe ich konnte dir etwas weiterhelfen.

Viele Grüße
Matt

matt.loker
Beiträge: 203
Registriert: Mo 7. Mai 2007, 09:05
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von matt.loker » Mo 19. Okt 2015, 16:19

Hallo Frederic,
konntest du dir das Problem in der Zwischenzeit mal anschauen? Wäre echt klasse wenn es hier bald eine Lösung gäbe. Vielen Dank für deine Rückmeldung.

Viele Grüße
Matt

Leo
Beiträge: 308
Registriert: Mi 19. Apr 2006, 19:26
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von Leo » Mi 28. Okt 2015, 00:45

Hallo Frederic, leider erhalte ich ebenfalls keine Fehlermeldung. Vg Leonhard

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von frederic.schneider_4fb » Do 29. Okt 2015, 09:05

Ich bitte um Verzeihung, ich war - aufgrund eines Marathons - eine Woche im Urlaub. Habt Ihr die Möglichkeit mir mal Euer entsprechendes Modul zur Verfügung zu stellen, damit ich es mit Euren Einstellungen testen kann? Gerne auch an frederic.schneider@4fb.de. Danke!
Frederic Schneider
Entwickler bei der four for business AG

Leo
Beiträge: 308
Registriert: Mi 19. Apr 2006, 19:26
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von Leo » Do 29. Okt 2015, 11:06

Hallo Frederic,

die Funktion sieht bei mir so aus:

Code: Alles auswählen

function make_cms_type( $container_type, $container_id ) {
	$typeGenerator = new cTypeGenerator();
	$tmp = $typeGenerator->getGeneratedCmsTag($container_type, $container_id);

	$tmp_output = str_replace('\\\"','"',$tmp);
    $tmp_output = stripslashes($tmp_output);

    return $tmp_output;
}
und im Modul wird es so eingebunden:

Code: Alles auswählen

$path = make_cms_type("CMS_IMG",$type_id);
oder

Code: Alles auswählen

$path = make_cms_type("CMS_IMGEDITOR",$type_id);
Vielen Dank!

VG

Leonhard

frederic.schneider_4fb
Beiträge: 967
Registriert: Do 15. Apr 2004, 17:12
Wohnort: Eschborn-Niederhöchstadt
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von frederic.schneider_4fb » Do 29. Okt 2015, 12:59

Ihr bekommt nächste Woche eine Rückmeldung und ggf. Lösungsmöglichkeit!
Frederic Schneider
Entwickler bei der four for business AG

rethus
Beiträge: 1851
Registriert: Di 28. Mär 2006, 11:55
Wohnort: Mönchengladbach
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von rethus » Do 5. Nov 2015, 16:15

In der Datei class.content.type.imgeditor.php ab Zeile 180 - 188 folgenden Code:

Code: Alles auswählen

if ($editable = false) {
                $content = new cApiContent();
                $content->loadByMany(array(
                    'idartlang' => $idArtLang,
                    'idtype' => $idtype,
                    'typeid' => $id
                ));
                return $content->get('value');
            } else if ($editable = true) {
 
gegen diesen ersetzen:

Code: Alles auswählen

if ($editable == false) {
                $content = new cApiContent();
                $content->loadByMany(array(
                    'idartlang' => $idArtLang,
                    'idtype' => $idtype,
                    'typeid' => $id
                ));
                return $content->get('value');
            } else if ($editable == true) {
 
Hier wurde anstatt der Vergleichsoperattor "==" eine Zuweisung gemacht "="
Could I help you... you can help me... buy me a coffee . (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )

xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung

Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType

Leo
Beiträge: 308
Registriert: Mi 19. Apr 2006, 19:26
Kontaktdaten:

Re: Dynamisches erzeugen von Contenido-Platzhaltern

Beitrag von Leo » Do 19. Nov 2015, 12:47

Hallo rethus,

es scheint die Ursache gewesen zu sein. Nach der Anpassung funktioniert die Ausgabe mit make_cms_type("CMS_IMG",1) wieder. Vielen Dank!

Viele Grüße

Leonhard

Antworten