berechneter Wert für den Alias

Mehr
14 Apr 2016 16:10 - 14 Apr 2016 18:33 #3606 von chr-hl
chr-hl erstellte das Thema berechneter Wert für den Alias
Hallo,
mit dem Buch von Axel habe ich vieles schon hinbekommen.
Zur nachfolgenden Problemstellung jedoch ist mir bisher keine Lösung gelungen.
Der Alias wird ja ohne Zutun aus dem Titel gebildet.
Ich möchte jedoch als Alias den Titel ergänzt um das aktuelle Datum abspeichern, weil es mehrere Beiträge an unterschiedlichen Tagen mit dem gleichen Titel geben kann.
Bei einer späteren Veränderung des Titels soll der Alias bestehen bleiben und sich nicht verändern.
In LotusScript gibt es die Möglichkeit, abzufragen ob das Dokument = Beitrag noch nicht einmal gespeichert wurde.

Hätte da Jemand für mich etwas im "Köcher"?

Vielen Dank
Christian
Letzte Änderung: 14 Apr 2016 18:33 von chr-hl. Begründung: dies und das

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
14 Apr 2016 19:50 #3607 von time4mambo
time4mambo antwortete auf das Thema: berechneter Wert für den Alias
Hallo Christian,

mit Datum hinten dran, weiß ich auch nicht. Müsstest da mal selber etwas rumspielen. Aber grundsätzlich geht es so:
seblod.time4mambo.de/forum/inhaltstypen-...chem-titel.html#2050


Axel

Das SEBLOD®®®-Handbuch auf Amazon
Tutorials zu Joomla und MS-Office: www.time4joomla.de
Folgende Benutzer bedankten sich: chr-hl

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
15 Apr 2016 07:16 - 15 Apr 2016 07:18 #3609 von Pierre Corell
Pierre Corell antwortete auf das Thema: berechneter Wert für den Alias
Du kannst im BeforeStore Event $config["isNew"] verwenden, um heraus zu bekommen ob es sich um einen neuen Beitrag handelt, benötigst dafür jedoch das Codepack.
Alternativ kannst du die Variable eventuell auch über einen Position Override etc. ansprechen, das habe ich aber ehrlich gesagt noch nicht ausprobiert.

J!Praxis - Besser.Online - seit 2009
Joomla! Business Support, Programmierung, Websicherheit.
Letzte Änderung: 15 Apr 2016 07:18 von Pierre Corell. Begründung: natürlich Before statt AfterStore^^
Folgende Benutzer bedankten sich: chr-hl

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
15 Apr 2016 10:07 #3610 von chr-hl
chr-hl antwortete auf das Thema: berechneter Wert für den Alias
Hallo,

vielen Dank für Eure schnellen Antworten.
Z.Zt. ist es mir jedoch nicht möglich, alles auszuprobieren.
Wenn ich es nicht vergesse (das Alter), dann gebe ich nächste Woche ein Feedback.
Der Link von Axel dürfte mich auch schon weiterbringen, den ich muss "nur" einen eindeutigen Alias generieren bei gleichem Titel und da ist es egal, ob mit Datum oder ID.
Bei der Antwort von Pierre verstehe ich im Moment nur "Bahnhof".
Wo finde ich das BeforeEvent, Codepack etc.?
Das hört sich nach einem "Buddeln" in dem Innenleben von Joomla / SEBLOD® an.

Christian

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
15 Apr 2016 10:53 #3611 von time4mambo
time4mambo antwortete auf das Thema: berechneter Wert für den Alias
Christian,
wenn du auf der Foren-Indexsite bist, dann siehst du oben "Lösungen" - so eine Art FAQ. Dort gibts auch was zum Thema Speicherung und dort drin diesen Thread:
seblod.time4mambo.de/forum/rund-um-das-t...rn-before-after.html


Axel

Das SEBLOD®®®-Handbuch auf Amazon
Tutorials zu Joomla und MS-Office: www.time4joomla.de
Folgende Benutzer bedankten sich: chr-hl

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
15 Apr 2016 12:59 #3613 von Pierre Corell
Pierre Corell antwortete auf das Thema: berechneter Wert für den Alias

chr-hl schrieb: Bei der Antwort von Pierre verstehe ich im Moment nur "Bahnhof".
Wo finde ich das BeforeEvent, Codepack etc.?
Das hört sich nach einem "Buddeln" in dem Innenleben von Joomla / SEBLOD®® an.
Christian


Hi Christian,

ein Buddeln ist das meines Erachtens nicht - ganz ohne Programmierung komme zumindest ich nie bei CCK-Seiten aus. Die Codeplugins sind für mich persönlich essenziell :-)
Das Codepacck ist ein also käuflich erstehbares Plugin ( www.seblod.com/store/extensions/1854 ), dass dir verschiedene Eingriffsmethoden /-events zur Verfügung stellt, in denen du eigenen Code oder auch komplette Dateien eingreifen lassen kannst.

$config ist eine globale Variable, auf die du via dieser Events zugreifen kannst.
$config["isNew"] ist die von dir gesuchte Variable "neuer Beitrag ja oder nein" und gibt 1 bei einem neuen Beitrag und 0 bei einem bereits existierenden aus.
Du könntest also in der Methode BeforeStore in den Codebereich schreiben:
$new = $config["isNew"];
if ($new == 1) {
  $date = date(Ym);
  $fields['art_alias']->value = $fields['art_alias']->value . $date; //$cck-> usw. funktionieren hier nicht
}
um den Alias ausschließlich beim Speichern neuer Beiträge zu beeinflussen und den Standardwert zu verwenden plus einen Datumsstring Ym (JahrMonat).

Viel Erfolg beim Buddeln - mit dem Alter sieht man das aber sicher gelassener^^
Beste Grüße,
Pierre.

J!Praxis - Besser.Online - seit 2009
Joomla! Business Support, Programmierung, Websicherheit.
Folgende Benutzer bedankten sich: chr-hl

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
16 Apr 2016 12:58 #3614 von chr-hl
chr-hl antwortete auf das Thema: berechneter Wert für den Alias
@Axel: Asche über mein Haupt, dort hatte ich zu dieser Problemstellung natürlich nicht nachgesehen. :whistle:

@Pierre: Jetzt ist da schon Licht im Tunnel!

Wie gesagt: Ab Mitte der Woche bin ich wieder am heimischen Rechner, da kann ich hoffentlich was positives berichten.

ABER auch noch einmal so: DANKE!!!

Christian

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
19 Apr 2016 15:04 #3628 von chr-hl
chr-hl antwortete auf das Thema: berechneter Wert für den Alias
Hallo,

ein kleiner Zwischenstand:
Ich habe ein Feld erstellt, welches seinen Wert in "alias" der Tabelle "content" abspeichert.
Dieses Feld wird durch Verkettung aus den Werten von drei anderen Feldern erzeugt (Titel, weiteres Kennzeichen und Datum).
Das funktioniert auch, jedoch sind mir hier schon einige Dinge aufgefallen:

1.
Wird für das Datum als Trennzeichen für dessen Bestandteile der Punkt verwendet (z.B. d.m.Y), dann ist hinter dem Tag in den genannten Beispiel
Schluss mit der Ausgabe, also z.B. "testkennzeichen17". Mit einem Bindestrich wird das komplette Datum ausgegeben.

2.
Enthalten die Teilstrings Umlaute, so werden diese nicht umgesetzt ( ä >> ae), sondern der String wird abgeschnitten.
So wird aus Kopftücher + Test + 27-04-2016 >> kopfttest27-04-2016

3.
In den "normalen" Beiträgen wird der Alias aus dem Titel gebildet und wird auch bei Änderung des Titels nicht mehr verändert.
Nicht so bei meinem Alias, jede Änderung in den Feldern führte auch zu einer Veränderung des Alias!

Nun habe ich das besagte Feld im Adminformular per auf disable gesetzt, wenn es gefüllt ist.
Die Erstellung eines solchen Beitrages klappt noch so, wie ich mir das vorgestellt habe.
Jedoch wird bei einer erneuten Speicherung dann der Alias gekürzt auf den Titel, wobei dann die Umlaute wieder umgesetzt werden (!).
Änderungen im Titel werden auch bei nachfolgenden Speicherungen für den Alias berücksichtigt.

So ganz zufriedenstellend ist es noch nicht und ich muss mir das noch mit "before" ansehen,
jedoch ist in meiner Aufgabenstellung keine Menüzuweisung auf einzelne Beiträgen erforderlich und somit könnte ich mit der derzeitigen Lösung leben,
aber mich hat schon ein gewisser Ergeiz gepackt.

Christian

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
19 Apr 2016 19:26 - 19 Apr 2016 19:27 #3629 von FINWICK
FINWICK antwortete auf das Thema: berechneter Wert für den Alias
Als alias sind nur (ascii) Kleinbuchstaben und Bindestrich erlaubt.
/libraries/vendor/joomla/filter/src/OutputFilter.php Funktion stringUrlSafe wird genutzt.
Es wird also gnadenlos das weggeworfen, was nicht erlaubt ist.

Gruß Norbert / FINWICK Kein Support via PN | JPlugger | NDE
Letzte Änderung: 19 Apr 2016 19:27 von FINWICK.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
19 Apr 2016 20:25 #3630 von Pierre Corell
Pierre Corell antwortete auf das Thema: berechneter Wert für den Alias
Hallo Christian,

leider hast du deine Ansätze nicht exakt beschrieben, also wo du angesetzt hast und wie... daher nur eine Idee für deinen erneut gespeicherten Alias.

Ich nehme an, du hast dies mit einer abhängigen Regel realisiert.
Es fehlt wahrscheinlich eine Abfrage, ob der Alias schon existiert - und / oder wird gebildet beim Setzen von Attributen (also bei Änderung) und nicht beim Laden. Sodass er als nicht existent gilt wenn das Feld (idR der Titel) nicht verändert wurde - und Joomla den Alias selbst bildet.
Da muss man etwas um die Ecke denken, das lernt man mit SEBLOD® schnell ;). Zwei solcher Regeln in 2 verschiedenen Feldern dürften Abhilfe schaffen.
Ich gehe von Feld 'alt-alias' und Feld 'alias' aus, die mit 'titel' zusammen agieren.
- alt-alias: übernimmt deine Regel WENN sich der Titel ändert
- alias isFilledBy 'alt-alias' WENN alias leer
Vielleicht braucht das noch eine kleine Modifikation - aber ich denke das Prinzip ist klar.
Mit meinem date-Code verhielt es sich übrigens ähnlich... es war ein Ansatz, keine 100% Lösung. Wandle das Datum in einen String um und schon kannst du auch Bindestriche etc. speichern, aber wie Finwick schon schrieb, musst du natürlich die Joomla Konventionen beachten.
$date = date();
$alias = 'alias';
$stringDate = '\'' .$date . '\''; // ergibt den String 'date'
$finalAlias = $alias .'-'.$stringDate;

Was die Sonderzeichen im Titel / Alias betrifft, wäre es natürlich weit praktischer, diesen Joomla zu überlassen (je nach Konfig.) - alternativ kannst du aber den neuen Alias String auch durch eine Regex-Ersetzung laufen lassen, sodass alle Sonderzeichen umgeschrieben werden. Nur weil es keinen direkten Menüpunkt zum Beitrag gibt, heisst ja nicht dass der direkte Link nicht existiert - in der Regel ist das der Fall als Titellink, Weiterlesen oder auch canonical Url im Quelltext. Ich würde an deiner Stelle schon darauf achten, dass die Aliasse nicht abgeschnitten werden.

Beste Grüße,
Pierre.

J!Praxis - Besser.Online - seit 2009
Joomla! Business Support, Programmierung, Websicherheit.

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Powered by Kunena Forum