we:write Dateiname, Title usw.
we:write Dateiname, Title usw.
Hallo zusammen,
Ich hoffe ihr könnt mir weiterhelfen. Und zwar will ich im Frontend per Formular neue Seiten anlegen. Das funktioniert auch alles wunderbar. Ich hab ein Template mit dem Formular und ein Template, welches die Daten per we:write speichert. Diese neu angelegten Dateien haben leider keinen Titel und auch der Dateiname ist die webEdition-ID. Wie kann ich diese Felder beim speichern setzen? Zum Beispiel soll der Titel gleich der Überschrift sein. Ich habe schon gesehen, dass dies wohl mit Php lösbar ist, jedoch weiß ich nicht genau wie ich es bei we:create einbauen kann.
Vielen Dank im Voraus für eure Hilfe
Ich hoffe ihr könnt mir weiterhelfen. Und zwar will ich im Frontend per Formular neue Seiten anlegen. Das funktioniert auch alles wunderbar. Ich hab ein Template mit dem Formular und ein Template, welches die Daten per we:write speichert. Diese neu angelegten Dateien haben leider keinen Titel und auch der Dateiname ist die webEdition-ID. Wie kann ich diese Felder beim speichern setzen? Zum Beispiel soll der Titel gleich der Überschrift sein. Ich habe schon gesehen, dass dies wohl mit Php lösbar ist, jedoch weiß ich nicht genau wie ich es bei we:create einbauen kann.
Vielen Dank im Voraus für eure Hilfe
Zuletzt geändert von wellend am Mi 8. Dez 2010, 20:22, insgesamt 2-mal geändert.
- haydi
- Senior Member
- Beiträge: 645
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Hirschberg
- Kontaktdaten:
Re: we:create Dateiname, Title usw.
Oha, scheint wohl ein neues we-Tag zu sein? Steht nicht in der Doku...
Re: we:create Dateiname, Title usw.
oh
Da hab ich das wohl mit we:write verwechselt! Sorry!
Da hab ich das wohl mit we:write verwechselt! Sorry!
-
- webEdition Partner
- Beiträge: 1825
- Registriert: Di 7. Mär 2006, 16:50
- Wohnort: Wien
- Kontaktdaten:
Re: we:write Dateiname, Title usw.
Hallo wellend,
Mit we:write erzeugte Dokumente kannst du z.B. so umbenennen:
Den Title des Dokuments kannst du so setzen:
HTH,
Sascha
Mit we:write erzeugte Dokumente kannst du z.B. so umbenennen:
Code: Alles auswählen
<we:write type="document" doctype="...." />
<we:ifWritten type="document">
<?php
$file_id = $GLOBALS['we_document']['we_global_form']->ID;
$new_filename = "<gewuenschter dokumentname>";
/* Sanitize new filename */
$suchmuster = array('/ü/','/ä/','/ö/','/Ü/','/Ä/','/Ö/','/ß/','/ /','([\40])','([^a-zA-Z0-9-])','(-{2,})');
$ersetzungen = array('/ue/','/ae/','/oe/','/Ue/','/Ae/','/Oe/','/ss/','-','-','','-');
$new_filename = strtolower(preg_replace($suchmuster, $ersetzungen, $new_filename));
/* Change filename. */
$query="UPDATE tblFile
SET
Text = REPLACE(Text, '" . $file_id . "', '" . $new_filename . "'),
Path = REPLACE(Text, '" . $file_id . "', '" . $new_filename . "'),
Filename = REPLACE(Text, '" . $file_id . "', '" . $new_filename . "')
WHERE
ID='" . $file_id . "'";
$result = mysql_query($query);
?>
Den Title des Dokuments kannst du so setzen:
Code: Alles auswählen
<?php
$_REQUEST['we_ui_we_global_form']['Title'] = "<gewuenschter dokumentitel>";
?>
<we:write type="document" doctype="...." />
HTH,
Sascha
Re: we:write Dateiname, Title usw.
Hallo Sascha, vielen Dank für deine Antwort!
Leider funktioniert das Ganze bei mir nicht :/ Wie ich das verstanden habe muss der PHP Code so eingefügt werden. Hier ist der Quellcode aus meinem Template, welches das Dokument speichert.
Grüße,
David
Leider funktioniert das Ganze bei mir nicht :/ Wie ich das verstanden habe muss der PHP Code so eingefügt werden. Hier ist der Quellcode aus meinem Template, welches das Dokument speichert.
Code: Alles auswählen
<we:include type="template" id="45" />
<we:include type="template" id="46" />
<div id="content">
<?php $_REQUEST['we_ui_we_global_form']['Title'] = "Test Test"; ?>
<we:write type="document" formname="News" publish="true" admin="Administrator" doctype="News - Eintrag" />
<we:ifWritten type="document">
<div class="hinweis_success">Das Dokument wurde gespeichert.</div>
</we:ifWritten>
<we:ifNotWritten type="document">
<div class="hinweis_fail">Das Dokument wurde nicht gespeichert.</div>
</we:ifNotWritten>
</div>
David
-
- webEdition Partner
- Beiträge: 1825
- Registriert: Di 7. Mär 2006, 16:50
- Wohnort: Wien
- Kontaktdaten:
Re: we:write Dateiname, Title usw.
Kannst du etwas konkreter werden?Leider funktioniert das Ganze bei mir nicht
LG,
Sascha
- haydi
- Senior Member
- Beiträge: 645
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Hirschberg
- Kontaktdaten:
Re: we:write Dateiname, Title usw.
Wow, Sascha, bin begeistert über deine Hilfestellung/Antwort; das lässt ja keine Wünsche mehr übrig.
@David: Der PHP-Code bzgl. Dateiname muss zwischen die Tags <we:ifWritten type="document">[...]</we:ifWritten>
Falls es bei dir nicht funktionieren sollte -> was genau funktioniert denn nicht? Fehlermeldung(en)?
@David: Der PHP-Code bzgl. Dateiname muss zwischen die Tags <we:ifWritten type="document">[...]</we:ifWritten>
Falls es bei dir nicht funktionieren sollte -> was genau funktioniert denn nicht? Fehlermeldung(en)?
-
- Senior Member
- Beiträge: 425
- Registriert: Do 1. Jan 1970, 02:00
- Wohnort: Dresden
- Kontaktdaten:
Re: we:write Dateiname, Title usw.
Allerdings ändert sich bei Saschas Lösung der Name nur in der Datenbank - im Dateisystem müsste er auch noch geändert werden, denn die PHP-Datei wird ja bereits durch das <we:write> mit ihrem automatisch generierten Namen im Dateisystem abgelegt.
Gruß,
Alex
Gruß,
Alex
http://www.xport.de – Internet-Agentur für Hotels
http://www.domainpreisvergleich.de – Domain-Preisvergleich inkl. Verfügbarkeits-Check – ist meine Wunschdomain noch frei, und wo registriere ich sie am günstigsten?
http://www.domainpreisvergleich.de – Domain-Preisvergleich inkl. Verfügbarkeits-Check – ist meine Wunschdomain noch frei, und wo registriere ich sie am günstigsten?
-
- webEdition Partner
- Beiträge: 1825
- Registriert: Di 7. Mär 2006, 16:50
- Wohnort: Wien
- Kontaktdaten:
Re: we:write Dateiname, Title usw.
Korrekt! Danke für den Hinweis. Das ist bei unseren Lösungen noch nicht notwendig gewesen, da wir die Dokumente nicht gleich veröffentlichen lassen. Das erfolgt dann durch eine RedakteurIn. Wie man einen erneutes write triggern kann, kann ich auf die Schnelle leider auch nicht beantworten. Vielleicht findet sich dazu etwas im Forum.Creutzburg hat geschrieben:Allerdings ändert sich bei Saschas Lösung der Name nur in der Datenbank - im Dateisystem müsste er auch noch geändert werden, denn die PHP-Datei wird ja bereits durch das <we:write> mit ihrem automatisch generierten Namen im Dateisystem abgelegt.
Und weil es mir gerade wieder einfällt! Seit ein paar Versionen gibt es für <we:write /> ein paar zusätzliche Attribute:
- name .... Der zu setzende Dokument-/Objektname.
- onpredefinedname [appendto, infrontof, overwrite]: Um zu bestimmen wie mit vordefinierten Namen umgegangen werden soll.
- onduplicate [abort, overwrite, increment]: Um zu bestimmen wie mit Duplikaten umgegangen werden soll.
HTH,
Sascha
Re: we:write Dateiname, Title usw.
Also er speichert die Datei ganz normal, aber der Titel ändert sich nicht. Ich bekomme auch keine Fehlermeldungen...WBTMagnum hat geschrieben:Kannst du etwas konkreter werden?Leider funktioniert das Ganze bei mir nicht
LG,
Sascha
Ich habe testweise bei we:write publish="false" gesetzt. Der Titel wurde leider auch nicht gespeichert.
Lässt sich der Titel vielleicht über setElements('Title') schreiben?
Die Änderung wäre sehr interessant. Sie wurde aber nur für type="object" vorgenommenUnd weil es mir gerade wieder einfällt! Seit ein paar Versionen gibt es für <we:write /> ein paar zusätzliche Attribute:
* name .... Der zu setzende Dokument-/Objektname.
* onpredefinedname [appendto, infrontof, overwrite]: Um zu bestimmen wie mit vordefinierten Namen umgegangen werden soll.
* onduplicate [abort, overwrite, increment]: Um zu bestimmen wie mit Duplikaten umgegangen werden soll.
Vielen Dank für eure Hilfe!!!
Grüße David
-
- webEdition Partner
- Beiträge: 1825
- Registriert: Di 7. Mär 2006, 16:50
- Wohnort: Wien
- Kontaktdaten:
Re: we:write Dateiname, Title usw.
bzgl. dem Dateinamen:
Das kann natürlich sein, dass das nur für Objekte gilt. Hab mir das nur kurz im Source angeschaut und gedacht, dass das Attribut "name" auch bei Dokumenten berücksichtigt wird.
bzgl. dem Dokumenttitel:
Hat dein <we:form /> das name Attribut gesetzt? Falls ja, dann musst du anstelle von "we_ui_we_global_form" den Wert "we_ui_<formname>" verwenden.
HTH,
Sascha
Das kann natürlich sein, dass das nur für Objekte gilt. Hab mir das nur kurz im Source angeschaut und gedacht, dass das Attribut "name" auch bei Dokumenten berücksichtigt wird.
bzgl. dem Dokumenttitel:
Hat dein <we:form /> das name Attribut gesetzt? Falls ja, dann musst du anstelle von "we_ui_we_global_form" den Wert "we_ui_<formname>" verwenden.
HTH,
Sascha
Re: we:write Dateiname, Title usw.
Wow, perfekt! Jetzt setzt er mir den Titel und nach ein bisschen gebastel ändert er auch den Dateinamen
Leider musste ich feststellen, dass nach einer Umbenennung des Dateinamens webEdition etwas verwirrt ist. Öffne ich das Dokument dann im Backend und veröffentliche es noch einmal, dann ist alles wunderbar. Kann man einen Rebuild per Php aufrufen? Taucht dieser Fehler auch bei euch auf?
Danke!
Grüße,
David
Leider musste ich feststellen, dass nach einer Umbenennung des Dateinamens webEdition etwas verwirrt ist. Öffne ich das Dokument dann im Backend und veröffentliche es noch einmal, dann ist alles wunderbar. Kann man einen Rebuild per Php aufrufen? Taucht dieser Fehler auch bei euch auf?
Danke!
Grüße,
David
Re: we:write Dateiname, Title usw.
So ich habe es nun endlich hinbekommen
Und zwar trigger ich hiermit, dass das gerade erstellte Dokument nocheinmal gespeichert und veröffentlicht wird. Bei der Veröffentlichung beseitigt webEdition sein Linkchaos!
Vielen Dank für eure Hilfe!!!
Das zeigt wieder einmal, dass die webEdition-Community sehr stark ist!
Grüße David
Und zwar trigger ich hiermit, dass das gerade erstellte Dokument nocheinmal gespeichert und veröffentlicht wird. Bei der Veröffentlichung beseitigt webEdition sein Linkchaos!
Code: Alles auswählen
<?php
// PHP-Klassen von webEdition zum Arbeiten mit webEdition-Seiten einbinden
include_once $_SERVER['DOCUMENT_ROOT'].'/webEdition/we/include/we.inc.php';
include_once $_SERVER['DOCUMENT_ROOT'].'/webEdition/we/include/we_classes/we_webEditionDocument.inc.php';
// Neues Objekt für eine webEdition-Seite erzeugen
$doc = new we_webEditionDocument();
// webEdition-Seite mit einer bestimmten ID (hier: 667) initialisieren
$doc->initByID($fileid);
// webEdition-Seite speichern
$doc->we_save();
// webEdition-Seite veröffentlichen
$doc->we_publish();
?>
Das zeigt wieder einmal, dass die webEdition-Community sehr stark ist!
Grüße David
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 65 Gäste