hat conSaveContentEntry() ein Problem?

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: hat conSaveContentEntry() ein Problem?

Beitrag von Oldperl » Do 14. Jul 2016, 15:09

ähm :roll:

nur mal so ein paar Ideen

Code: Alles auswählen

$midcat = $_POST['exidcat'];
$midcat = $midcat + 0; 
sollte man evtl. besser so schreiben

Code: Alles auswählen

$midcat = (isset($_POST['exidcat']))?(int)$_POST['exidcat']:0; 
in der if-Abfrage ist der letzte Teil wohl so nicht richtig

Code: Alles auswählen

if ($_POST['export'] && $midcat > 0 && $midcat > $exlngid) { 
denn warum wird hier die zu exportierende Kategorie-Id mit der Sprach-Id verglichen?

beim holen der Inhalte

Code: Alles auswählen

$m['CMS_HEAD']['1'] = base64_encode($article->getContent('CMS_HEAD', 1)); 
muss man beim Inhalt beachten ob man im Front oder Backend ist. Im Backend wird der Quellcode für den Editor zurück geliefert.

Code: Alles auswählen

$mm = implode(file($pb['importfolder'] . $mmfile));
$mf = unserialize($mm);
hier kann was nicht stimmen, eventuell nochmal das Handling von Arrays und deren Verarbeitung beim Serialisieren nachlesen.

Auch die Verwendung der Funktion conEditFirstTime scheint nicht ganz korrekt zu sein, so ist beispielsweise $idcatnew normalerweise ein Array (kein int wie fälschlicherweise in der phpDoc angegeben).
Soweit nur mal ein paar Punkte die ich beim überfliegen gesehen habe. Wobei ich generell dazu raten würde den RAW-Daten-Export der 4.9 zu nutzen und gegebenenfalls die dabei erstellte xml-Datei beim Import zu verwenden.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

mattmarr
Beiträge: 361
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: hat conSaveContentEntry() ein Problem?

Beitrag von mattmarr » Do 14. Jul 2016, 15:53

Hallo Ortwin!

Danke fürs kruze drüberschauen.
Ich werde mir das mal heuteabend bzw morgen nochmal genauer anschauen und entsprechend rückmeldung geben.



Grüße aus den tiefen von Contenido 4.9.9 :)

mattmarr
Beiträge: 361
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: hat conSaveContentEntry() ein Problem?

Beitrag von mattmarr » Fr 15. Jul 2016, 16:34

Hi @all!

Ich hab das ganze jetzt nochmal durchgecheckt und sehr viele Tests gemacht.
Egal was ich anstelle. Es wird beim Import, von mehr als ein Artikel/Datei, immer nur der erste korrekt im Contenido eingetragen. Alle weiteren bekommen zwar einen neuen Artikeleintrag im Contenido aber ohne auch nur ein Inhalt.
Ich hab auch mal versucht die Funktion conSaveContentEntry() rekursiv zurück zu verfolgen. Alle Daten kommen Korrekt in conSaveContentEntry() an. Gehen aber in der While-Schleife, ab Zeile 366, verloren. (functions.con2.php - http://api.contenido.org/con491/source- ... ml#341-396) :?



Gruß
Matthias

mattmarr
Beiträge: 361
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: hat conSaveContentEntry() ein Problem?

Beitrag von mattmarr » Di 19. Jul 2016, 12:44

*knock* *knock* :roll: :mrgreen:

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: hat conSaveContentEntry() ein Problem?

Beitrag von homtata » Di 19. Jul 2016, 13:25

Zur Installation und Fehlersuche fehlt mir echt die Zeit. Daher einfach weiter Fragen, da du das besser eingrenzen kannst durch Dumps:
- Wird denn die while-Schleife überhaupt jedesmal durchlaufen, oder wird die chainIterator-Bedingung ab einem gewissen Durchgang gar nicht mehr erfüllt?
- Falls durchlaufen: verlieren $idartlang usw. in der Schleife WIRKLICH ihren Wert?? Es ist unwahrscheinlich, dass die Variablen wie $idartlang - wenn sie VOR der Schleife Inhalt hatten - innerhalb der while-Schleife ungültig werden aus heiterem Himmel.
- Falls die Schleife jedesmal durchlaufen wird: ist DANACH $value gesetzt oder nicht?

dermicha
Beiträge: 95
Registriert: Mi 9. Dez 2009, 17:57
Kontaktdaten:

Gelöst?: hat conSaveContentEntry() ein Problem?

Beitrag von dermicha » Mi 14. Dez 2016, 14:00

Hallo zusammen,

ich kann das Problem bestätigen. Ich habe eine ähnliche Funktion, die Daten aus einem Array in einer Schleife in neu angelegten Artikeln ablegt, die vor gut einem Jahr noch einwandfrei funktionierte.

Jetzt habe ich das gleiche Problem: Nur der erste Artikel wird korrekt angelegt und befüllt, bei allen weiteren fehlen sämtliche Inhalte. Lediglich für für Content Types/Ids, die bisher noch nicht beschrieben wurden, wird Inhalt in der DB abgelegt. Unter Rohdaten sind alle Content Types/Ids angelegt, aber leer.

Die Werte sind unmittelbar vor dem Aufruf von conSaveContentEntry() und unmittelbar danach vorhanden, das habe ich überprüft.

Unmittelbar nach

Code: Alles auswählen

$versioning->prepareContentForSaving($idartlang, $content, $value);
am Ende der Funktion in der functions.con.php ist $value auch befüllt. Ebenso in prepareContentForSaving in der concontentversioning.php nach

Code: Alles auswählen

            case 'disabled':
                if ($content->isLoaded()) {
                    // Update existing entry
                    $content->set('value', $value);
                    $content->set('author', $author);
                    $content->set('lastmodified', date('Y-m-d H:i:s'));
                    $content->store();
Da es in 2015 noch funktionierte: Könnte es eventuell mit Umbauten im Zusammenhang mit der Artikel-Versionierung liegen?

Update:
Nach Ersetzung des vorletzten Parameters in der conSaveContentEntry ca. Zeile 547 von NULL auf $value funktioniert der Import wieder:

Code: Alles auswählen

$content = $contentColl->create($idartlang, $idtype, $typeid, $value, NULL);
http://api.contenido.org/con4911/source ... y.html#547

Das erneute Überschreiben des ursprünglich leeren $value in der contentversioning.php in Zeile 564 scheint da nicht zu funktionieren:

Code: Alles auswählen

$content->set('value', $value);
http://api.contenido.org/latest/source- ... g.html#564

Wäre schön, wenn das geprüft und gegebenenfalls in die nächste Version einfließen würde. Sollte die Änderung das Problem nicht vollständig/korrekt lösen, würde ich mich freuen, wenn es zeitnah einen Patch gäbe...

Viele Grüße
Michael

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: hat conSaveContentEntry() ein Problem?

Beitrag von Faar » Mi 14. Dez 2016, 15:13

Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

dermicha
Beiträge: 95
Registriert: Mi 9. Dez 2009, 17:57
Kontaktdaten:

Re: hat conSaveContentEntry() ein Problem?

Beitrag von dermicha » Mi 14. Dez 2016, 15:17

Ja, durch die Artikel-Versionierung. Dabei hat sich das wohl eingeschlichen.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: Gelöst?: hat conSaveContentEntry() ein Problem?

Beitrag von Faar » Mi 14. Dez 2016, 15:21

dermicha hat geschrieben: Update:
Nach Ersetzung des vorletzten Parameters in der conSaveContentEntry ca. Zeile 547 von NULL auf $value funktioniert der Import wieder:

Code: Alles auswählen

$content = $contentColl->create($idartlang, $idtype, $typeid, $value, NULL);
http://api.contenido.org/con4911/source ... y.html#547
Das müsste meiner Meinung nach auch der Fehler sein, wenn da NULL statt $value steht.
In der alten Funktion nach Zeile 382 ist $value noch drin und dieses nachfolgende NULL mit 0 gesetzt.
http://api.contenido.org/con491/source- ... y.html#382
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

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

Re: hat conSaveContentEntry() ein Problem?

Beitrag von frederic.schneider_4fb » Do 15. Dez 2016, 11:07

Ich habe dazu ein Ticket angelegt, damit das überprüft wird - ausdrücklich auch die vorgeschlagene Lösung
Frederic Schneider
Entwickler bei der four for business AG

dermicha
Beiträge: 95
Registriert: Mi 9. Dez 2009, 17:57
Kontaktdaten:

Re: hat conSaveContentEntry() ein Problem?

Beitrag von dermicha » Do 15. Dez 2016, 11:26

Vielen Dank!

mattmarr
Beiträge: 361
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: hat conSaveContentEntry() ein Problem?

Beitrag von mattmarr » Di 10. Jul 2018, 14:55

Hallo!
frederic.schneider_4fb hat geschrieben:
Do 15. Dez 2016, 11:07
Ich habe dazu ein Ticket angelegt, damit das überprüft wird - ausdrücklich auch die vorgeschlagene Lösung
Gibt es schon infos und einen passenden Link zum Ticket?



Grüße
Matthias

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

Re: hat conSaveContentEntry() ein Problem?

Beitrag von frederic.schneider_4fb » Do 30. Aug 2018, 08:36

Frederic Schneider
Entwickler bei der four for business AG

mattmarr
Beiträge: 361
Registriert: Mo 3. Aug 2009, 14:11
Kontaktdaten:

Re: hat conSaveContentEntry() ein Problem?

Beitrag von mattmarr » Do 30. Aug 2018, 09:07

Hallo frederic!
frederic.schneider_4fb hat geschrieben:
Do 30. Aug 2018, 08:36
Ja, siehe hier:
https://git.contenido.org/projects/CON/ ... f5a4c44805 :-)
Danke für die Info.

Kannst Du auch bitte mal nebenbei schauen warum ich euer GIT nicht mehr nutzen kann?
Passwort zurücksetzen funktioniert aber das einloggen nicht mehr.



Gruß
Matthias

dermicha
Beiträge: 95
Registriert: Mi 9. Dez 2009, 17:57
Kontaktdaten:

Re: hat conSaveContentEntry() ein Problem?

Beitrag von dermicha » Mo 7. Okt 2019, 15:24

Kann es sein, dass das in die 4.10 nicht eingeflossen ist? Oder wurde es anders gelöst?

VG
Michael

Antworten