Willkommen, Gast
Benutzername: Passwort: Angemeldet bleiben:
  • Seite:
  • 1
  • 2

THEMA: berechneter Wert für den Alias

berechneter Wert für den Alias 14 Apr 2016 16:10 #3606

  • chr-hl
  • chr-hls Avatar
  • OFFLINE
  • Beiträge: 8
  • Dank erhalten: 1
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

berechneter Wert für den Alias 14 Apr 2016 19:50 #3607

  • time4mambo
  • time4mambos Avatar
  • OFFLINE
  • Mal gucken ob was passiert...
  • Beiträge: 900
  • Dank erhalten: 176
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Folgende Benutzer bedankten sich: chr-hl

berechneter Wert für den Alias 15 Apr 2016 07:16 #3609

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, Beratung, SEO und mehr.
Letzte Änderung: 15 Apr 2016 07:18 von Pierre Corell. Begründung: natürlich Before statt AfterStore^^
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Folgende Benutzer bedankten sich: chr-hl

berechneter Wert für den Alias 15 Apr 2016 10:07 #3610

  • chr-hl
  • chr-hls Avatar
  • OFFLINE
  • Beiträge: 8
  • Dank erhalten: 1
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

berechneter Wert für den Alias 15 Apr 2016 10:53 #3611

  • time4mambo
  • time4mambos Avatar
  • OFFLINE
  • Mal gucken ob was passiert...
  • Beiträge: 900
  • Dank erhalten: 176
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Folgende Benutzer bedankten sich: chr-hl

berechneter Wert für den Alias 15 Apr 2016 12:59 #3613

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, Beratung, SEO und mehr.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
Folgende Benutzer bedankten sich: chr-hl

berechneter Wert für den Alias 16 Apr 2016 12:58 #3614

  • chr-hl
  • chr-hls Avatar
  • OFFLINE
  • Beiträge: 8
  • Dank erhalten: 1
@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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

berechneter Wert für den Alias 19 Apr 2016 15:04 #3628

  • chr-hl
  • chr-hls Avatar
  • OFFLINE
  • Beiträge: 8
  • Dank erhalten: 1
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
Der Administrator hat öffentliche Schreibrechte deaktiviert.

berechneter Wert für den Alias 19 Apr 2016 19:26 #3629

  • FINWICK
  • FINWICKs Avatar
  • OFFLINE
  • Beiträge: 199
  • Dank erhalten: 40
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 das Joomla -Plugin
Letzte Änderung: 19 Apr 2016 19:27 von FINWICK.
Der Administrator hat öffentliche Schreibrechte deaktiviert.

berechneter Wert für den Alias 19 Apr 2016 20:25 #3630

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, Beratung, SEO und mehr.
Der Administrator hat öffentliche Schreibrechte deaktiviert.
  • Seite:
  • 1
  • 2
nach oben