Im Editor direkt den Artikel-Titel bearbeiten?

Gesperrt
markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Im Editor direkt den Artikel-Titel bearbeiten?

Beitrag von markusheinzer » Mo 19. Dez 2005, 17:11

Hallo zusammen
Gibt es eine Möglichkeit, direkt aus dem Artikel-Editor den Artikel-Titel zu bearbeiten? Redaktoren, die nicht auf die Artikel-Eigenschaften zugreifen dürfen, könnten dann den Artikel-Titel (der ja im Backend bei der Artikel-Übersicht angezeigt wird) trotzdem bearbeiten.
Zum Beispiel Übersetzer, die den Artikel-Titel ebenfalls übersetzen sollen und nicht nur den Artikel-Inhalt.
Ich fände es ideal, wenn der Artikel-Titel und eine Artikel-Überschrift so synchronisiert werden könnten.

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: Im Editor direkt den Artikel-Titel bearbeiten?

Beitrag von Halchteranerin » Mo 19. Dez 2005, 17:12

markusheinzer hat geschrieben:Gibt es eine Möglichkeit, direkt aus dem Artikel-Editor den Artikel-Titel zu bearbeiten?
Nicht, dass ich wuesste.
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Mo 19. Dez 2005, 23:36

Im Ernst?
Man müsste doch nur den resultierenden Wert aus z.B. CMS_HTMLTEXT auslesen und dann in die Datenbank unter Artikel-Titel reinschreiben. Den aktuellen Artikel-Titel könnte man sogar am Anfang noch auslesen und an CMS_HTMLTEXT als Vorgabe-Wert übergeben. Der Kreis würde sich schliessen. Oder seh ich das ein bisschen zu einfach?

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Di 20. Dez 2005, 08:20

Meinst du jetzt den Artikeltitel, also das, was unter Eigenschaften zu finden ist, oder die Artikelueberschrift, die man in der Headline ausgibt? Die lauten nicht zwingend gleich, ich wuerde sogar sagen, bei den wenigsten ist das der Fall.
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Di 20. Dez 2005, 10:34

Genau. Ich meine den Artikel-Titel, der unter Eigenschaften erscheint (und ja auch bei der Artikel-Übersicht im Backend. Mein Problem ist eben, dass ich gerne hätte, wenn dieser Titel von Redakteuren bearbeitet werden kann (z.B. übersetzt in eine andere Sprache), ohne dass ich denen Zugriff auf die ganzen Artikel-Eigenschaften geben muss.
Ich möchte eben, dass die beiden Titel gleich lauten. Dann kann ich bei Artikellisten nach Artikel-Titel (aus Eigenschaften) sortieren lassen und bei der Anzeige (resp. Bearbeitung im Back-End) trotzdem die "normale" headline ausgeben.
Ist nicht grad einfach auszudrücken. Weisst du, was ich meine?

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Di 20. Dez 2005, 10:42

Ich weiss schon, was du meinst. :wink: Ich glaube aber nicht, dass du einfach so deinen Wunsch umsetzen kannst, denn du wirst am Contenido etwas aendern muessen, oder ich denke gerade zu kompliziert. Der Artikeltitel und die Artikelueberschrift werden naemlich an zwei verschiedenen Stellen gespeichert.
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Di 20. Dez 2005, 10:54

jaja. ist mir schon klar. Ich WILL auch etwas ändern... :)
Ich stelle mir vor, dass man das in einem Modul unterkriegen kann.
Das Modul müsste den Artikel-Titel (aus Eigenschaften) auslesen. Das kriege ich hin.
Dann müsste es dem cms-Typ CMS_HTMLTEXT (z.b. dieser, weil der nur normalen Text erlaubt) eine Vorgabe machen, was der als vorgegebenen bearbeitbaren Text anzeigen soll - das kriege ich bis jetzt noch nicht hin, da mir völlig unklar ist, mit welchen Variablen die cms-Typen ansprechbar sind.
Dann müsste der aus der Bearbeitung resultierende Text wieder in die DB unter Artikel-Titel (aus den Eigenschaften) gespeichert werden. Das würde ich wahrscheinlich auch hinkriegen.
Sorry, dass ich das alles nochmal erkläre...

Meinst Du, so was würde hinhauen?
Zuletzt geändert von markusheinzer am Di 20. Dez 2005, 14:31, insgesamt 1-mal geändert.

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Di 20. Dez 2005, 11:20

Es gibt von mir irgendwo unter Module 4.4 ein Modul, mit dessen Hilfe man den Artikeltitel (unter Eigenschaften) als Headline uebernehmen kann. Das ist keine Kunst. Das Problem sehe ich darin, wenn der Titel in der Ueberschrift geaendert wird, dass dieser neue Titel zusaetzlich unter Artikeleigenschaften gespeichert wird.

Versuch doch einfach mal das, was du dir vorstellst, und dann siehst du, ob es klappt oder nicht. :wink:
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Di 20. Dez 2005, 14:30

Also: Stunden später habe ich folgenden Code in mein Artikel-Titel-Modul hineingeschrieben und siehe da: es funktioniert!

Code: Alles auswählen

<?php

echo '<h3>'."CMS_HTMLTEXT[10]".'</h3>';

$editmode = false;
if($contenido&&($view=="edit"))
    {$editmode = true;}

if ($editmode == false) 
    {echo '<h3>'.$titel.'</h3>';}
else 
{

$bezeichnung = $a_content['CMS_HTMLTEXT'][10];
$bezeichnung = urldecode($bezeichnung);
$bezeichnung = htmldecode($bezeichnung);
$bezeichnung = strip_tags($bezeichnung);
$bezeichnung = str_replace("&nbsp;", " ", $bezeichnung);
$bezeichnung = htmlspecialchars($bezeichnung);
if ($bezeichnung == "") {$bezeichnung = "&nbsp;";}
$bezeichnung = nl2br($bezeichnung);

$sql = "UPDATE ".$cfg[tab]["art_lang"]." SET title='".$bezeichnung."' WHERE idart='".$idart."'";

$db2->query($sql);}

?>
Ich habe die nachträgliche Bearbeitung des CMS_HTMLTEXT-Outputs gleich aus der Typen-Tabelle (con_type) abgeschrieben.
Mit ganz schrägen Sonderzeichen funktioniert es bisher noch nicht: šćčđ usw. Ich arbeite drum in Südosteuropa und die Ex-Jugoslawischen Menschen brauchen diese Zeichen. Vielleicht hat mir hier noch jemand einen Trick?

Was ich hiermit nun natürlich nicht abfange: Wenn der Redakteur den Artikel-Titel (in den Eigenschaften) bearbeitet, dann merkt das der Artikel-Bearbeiter gar nicht. Mit anderen Worten: Mein erster Punkt ist noch nicht realisiert - dass der vorhandene Artikel-Titel am Anfang in das CMS_HTMLTEXT als Vorgabe mitgegeben wird. Aber da die Redakteure (bzw. Übersetzer) ja eben nicht in die Artikel-Eigenschaften reindürfen und -müssen, stellt sich dieses Problem gar nicht. Der Administrator muss es halt wissen. Falls Du (Halchteranerin) denkst, dass Dein zitiertes Modul für 4.4 mir da weiterhelfen könnte, sag mir bitte, was genau Du meinst. Ich habe es nicht gefunden. Nützen würde es in meinen Augen aber nur, wenn der Artikeltitel (von den Eigenschaften) nicht nur einfach ausgegeben wird, sondern eben an den CMS-TYP weitergegeben wird.

simu
Beiträge: 48
Registriert: Di 4. Okt 2005, 08:44
Wohnort: Schweiz
Kontaktdaten:

Beitrag von simu » Di 20. Dez 2005, 16:01

versuchs mal damit:

Code: Alles auswählen

<?php

$cart = new Article( $idart, $client, $lang );
$titleart = $cart->getField("title");
$titlehtml = $cart->getContent("CMS_HTMLTEXT", 10);
if( $titlehtml ) {

  $titlehtml = $a_content['CMS_HTMLTEXT'][10];
	$titlehtml = urldecode($titlehtml);
	$titlehtml = htmldecode($titlehtml);
	$titlehtml = strip_tags($titlehtml);
	$titlehtml = str_replace("&nbsp;", " ", $titlehtml);
	$titlehtml = htmlspecialchars($titlehtml);
	if ($titlehtml == "") {$titlehtml = "&nbsp;";}
	$titlehtml = nl2br($titlehtml);

  if( $titlehtml != $titleart ) {
  	consaveContentEntry($cart->getField("idartlang"), "CMS_HEAD", 10, $titleart);
	  conGenerateCodeForArtInAllCategories($idart);
  }
}

echo '<h3>'."CMS_HTMLTEXT[10]".'</h3>';

$editmode = false;
if($contenido&&($view=="edit"))
    {$editmode = true;}

if ($editmode == false)
    {echo '<h3>'.$titel.'</h3>';}
else
{

$bezeichnung = $a_content['CMS_HTMLTEXT'][10];
$bezeichnung = urldecode($bezeichnung);
$bezeichnung = htmldecode($bezeichnung);
$bezeichnung = strip_tags($bezeichnung);
$bezeichnung = str_replace("&nbsp;", " ", $bezeichnung);
$bezeichnung = htmlspecialchars($bezeichnung);
if ($bezeichnung == "") {$bezeichnung = "&nbsp;";}
$bezeichnung = nl2br($bezeichnung);

$sql = "UPDATE ".$cfg[tab]["art_lang"]." SET title='".$bezeichnung."' WHERE idart='".$idart."'";

$db2->query($sql);}

?>
hab das nicht getestet aber in etwa so sollte das funktionieren...

simu
Beiträge: 48
Registriert: Di 4. Okt 2005, 08:44
Wohnort: Schweiz
Kontaktdaten:

Beitrag von simu » Di 20. Dez 2005, 16:58

Gell, du hast das umgeschrieben, um mein erstes Problem zu lösen. Das mit den Spezialbuchstaben?
Ich habe den code den du für die Konvertierung des HTML-Titels zu einem reinen Text-Titel verwendet, um den momentanen HTML-Titel mit dem Artikel-Titel vergleichen zu können:

Code: Alles auswählen

$titlehtml = $a_content['CMS_HTMLTEXT'][10];
   $titlehtml = urldecode($titlehtml);
   $titlehtml = htmldecode($titlehtml);
   $titlehtml = strip_tags($titlehtml);
   $titlehtml = str_replace("&nbsp;", " ", $titlehtml);
   $titlehtml = htmlspecialchars($titlehtml);
   if ($titlehtml == "") {$titlehtml = "&nbsp;";}
   $titlehtml = nl2br($titlehtml);
dies ist notwendig, damit der HTML-Titel nicht ersetzt wird wenn diese identisch sind... damit nicht alle HTML Formatierungen verloren gehen...

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Di 20. Dez 2005, 20:13

markusheinzer hat geschrieben:Nützen würde es in meinen Augen aber nur, wenn der Artikeltitel (von den Eigenschaften) nicht nur einfach ausgegeben wird, sondern eben an den CMS-TYP weitergegeben wird.
Bei meinem Modul wurde es nur ausgegeben.
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Di 20. Dez 2005, 20:35

Also: ich habe nun folgende konkrete Frage zum ersten Teil "meines" Moduls:

Wenn ich den Artikel-Titel in den Eigenschaften ändere und dann auf "Editor" klicke, dann wird vorerst mal der alte CMS_HTML-Inhalt angezeigt, und siehe da, wenn man noch einmal auf "Editor" klickt, dann kommt der geänderte Artikel-Titel mit. Irgendwie hört der "CMS_HTML[10]" zuerst gar nicht darauf, dass man ihm schon einen neuen Wert reingespeichert hat. ??

Code: Alles auswählen

<?php

// Auslesen der benötigten Variablen

$cart = new Article( $idart, $client, $lang );
$titleart = $cart->get("title");
$idartlang = $cart->get("idartlang");

// Überschreiben des vorhandenen Wertes anhand des Artikeltitels

consaveContentEntry($idartlang, "CMS_HTMLTEXT", 10, $titleart);
conGenerateCodeForArtInAllCategories($idart);

echo '<h3>'."CMS_HTMLTEXT[10]".'</h3>';

?>

simu
Beiträge: 48
Registriert: Di 4. Okt 2005, 08:44
Wohnort: Schweiz
Kontaktdaten:

Beitrag von simu » Mi 21. Dez 2005, 09:19

um den refresh zu umgehen musst du noch den wert der im $a_content-Array gespeichert ist aktualisieren der code würde also in etwa so aussehen:

Code: Alles auswählen


<?php

// Auslesen der benötigten Variablen

$cart = new Article( $idart, $client, $lang );
$titleart = $cart->get("title");
$idartlang = $cart->get("idartlang");

// Überschreiben des vorhandenen Wertes anhand des Artikeltitels

consaveContentEntry($idartlang, "CMS_HTMLTEXT", 10, $titleart);
conGenerateCodeForArtInAllCategories($idart);

$a_content['CMS_HTMLTEXT'][10] = $titleart;

echo '<h3>'."CMS_HTMLTEXT[10]".'</h3>';

?>

markusheinzer
Beiträge: 81
Registriert: Do 8. Sep 2005, 13:18
Wohnort: Sarajevo
Kontaktdaten:

Beitrag von markusheinzer » Mi 21. Dez 2005, 10:25

Vielen Dank für Deine Hilfe.
Aber das geht immer noch nicht, habe ich auch schon ausprobiert.
Nun: ich habe mir über Nacht folgendes überlegt:

1. wäre ich glaub kurz vor dem Durchbruch. Wenn nämlich dieser - wie du es nennst - Refresh nicht durchgeführt würde, dann würde mein Modul klappen.

2. ist mir klar geworden, dass ich so rigide Vorstellungen darüber habe, was die Redaktoren (bei mir nur Übersetzer) nicht antasten dürfen, dass ich das glaub am besten zum Vornherein nicht mit diesen Content-Typen löse. Sondern dass ich die freien Artikel-Eigenschaften-Felder verwende und diese direkt über ein normales HTML-Form (in einem Modul) und dann mit einem aufgerufenen Script in der DB update. Das ist zwar dann etwas schwieriger abzuändern, aber der Webredaktor, der das Projekt übernimmt, hat schon genug drauf, dass er das kann.

Das bedeutet für mich, dass ich die Entwicklung "meines" Moduls in diesem Thread vorerst abbreche. Danke allen trotzdem.

Markus

Gesperrt