[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Module mit Anker - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Anne
Beiträge: 36
Registriert: 13. Feb 2009, 13:16

Module mit Anker

19. Nov 2009, 16:55

Hallo!

Diese Frage wurde bereits gestellt, und zwar z.B. hier: http://forum.redaxo.de/ftopic9254.html

Dort hatte ich die Anregung für ein simples Modul für einen Container als Zwischenheadline geholt. Ich lasse dort die Slice-ID als Ankerpunkt automatisch einsetzen, das hat auch geklappt.

Nachdem ich im Seitenquelltext die Ankernamen nachgesehen und meine Verlinkungen manuell gesetzt hatte, haben sich alle Anker plötzlich erhöht (aus "a name="58"" wurde z.B. "a name="80""). Kann es sein, dass die Slice-IDs sich bei jeder Freigabe als Liveversion wieder verändern? Dann sind sie für meine Ankerpunkte wohl nicht geeignet.

Redaxo 4.2

Hier mein Modul:

INPUT

Code: Alles auswählen

<input type=text size=20 name=VALUE[1] value="REX_VALUE[1]">
OUTPUT

Code: Alles auswählen

<a name="<?php print REX_SLICE_ID ?>"></a>
<div class="subhead">REX_VALUE[1]</div>
Hat jemand eine Idee, wie man sonst Module mit Ankern versehen könnte, wenn die Module mehrmals auf einer Seite verwendet werden?

Noch eine Frage: die Ankerpunkte, die mein Modul automatisch gesetzt hatte, wurden bei der Verlinkung im Tinymce-Editor nicht angezeigt. Kann man das beeinflussen?

Vielen Dank und LG

Anne

netmanix

20. Nov 2009, 23:02

Zur 1. Frage:
Hierbei handelt es sich aus meiner Sicht um ein Bug / Feature der Arbeitsversion. Denn auch Verweise / Includes auf eine der SLICE_IDs aus anderen Modulen/ Artikeln ist dann wohl auch nicht mehr möglich.
Melde das doch mal im Bug-Forum
Versuche nach Möglichkeit deine Artikel so kurz zu halten, dass keine Anker erforderlich sind.

Zur 2. Frage:
TinyMCE wird man wohl nicht dazu bewegen können die Anker asuzulesen.

Benutzeravatar
webseitengeschichten
Beiträge: 12
Registriert: 7. Nov 2009, 19:47
Kontaktdaten: Website

21. Nov 2009, 22:09

Hallo Anne,
Kann es sein, dass die Slice-IDs sich bei jeder Freigabe als Liveversion wieder verändern? Dann sind sie für meine Ankerpunkte wohl nicht geeignet.
Ja, das ist auch meine Erfahrung. - Slice-IDs der Liveversion werden bei jeder Freigabe neu vergeben (beginnend mit der zuletzt vergebenen ID + 1).
Hat jemand eine Idee, wie man sonst Module mit Ankern versehen könnte, wenn die Module mehrmals auf einer Seite verwendet werden?
Für Dein Beispiel könntest Du einen zusätzliches Eingabefeld für den Ankernamen definieren:

Code: Alles auswählen

<input type=text size=20 name="VALUE[2]" value="REX_VALUE[2]" />
Die Ausgabe wäre dann:

Code: Alles auswählen

<a name="<?php print 'REX_VALUE[2]'; ?>"></a>
<div class="subhead">REX_VALUE[1]</div>
Naja - Ich vermute, Du suchst eine automatische Lösung?

Ich habe das gelöst, indem ich die aktuelle Anker-Nummer in einer eigens dafür angelegten Tabelle in der Datenbank speichere. Wird ein neuer Anker vergeben, erhöht sich diese Nummer automatisch um 1:

[ externes Bild ]

Hier wird eine Überschrift mit einem automatisch generierten Anker versehen. Das Feld kann natürlich auch dazu benutzt werden, einen Ankernamen per Hand einzugeben.
TinyMCE wird man wohl nicht dazu bewegen können die Anker asuzulesen.
Mit TinyMCE habe ich mich nicht beschäftigt. Wohl aber mit dem Auslesen von Ankern über eine modifizierte Textile-Hilfe (Ich weiß nicht, ob Dir das gerade weiter hilft, möchte diesen Ansatz jedoch an dieser Stelle teilen, weil ich den Eindruck habe, es könnte auch andere interessieren.):

[ externes Bild ]

Der generierte Ankername wurde als Wert (value) des Blockes/Slices in der Datenbank gespeichert und kann durch die Textile-Hilfe ausgelesen und - zusammen mit den anderen Bestandteilen der URL - in das Texteingabefeld eingefügt werden.

Diese Textile-Hilfe habe ich für ein System von 5 miteinander kooperierenden Modulen (um)programmiert, welches ich gerne im Forum vorstellen möchte.

Gruß,

Michael

PS: Mehr zu meinem Modulsystem findet Ihr hier: www.redaxo.org/de/forum/post98932.html
Zuletzt geändert von webseitengeschichten am 5. Apr 2012, 15:33, insgesamt 1-mal geändert.

Anne
Beiträge: 36
Registriert: 13. Feb 2009, 13:16

27. Nov 2009, 18:02

Hallo netmanix, hallo Michael,

danke für die Antworten und die Mühe!

Ich habe mich für die einfache Variante mit der Eingabemöglichkeit für einen Ankernamen entschieden, brauche das zur Zeit nur für eine Seite mit Adressen, die nach Themen gelistet werden. Normalerweise arbeite ich mit TinyMCE (dort kann man ja Anker einfügen), in diesem Fall aber werden die Überschriften als Zwischenheadlines mit einem kleinen Modul eingefügt.

Mir erscheint es tatsächlich verwirrend, dass sich die Slice-IDs verändern. Ich habe aber noch nicht genau getestet, ob sie sich mit der Liveschaltung erhöhen oder bereits mit dem Editieren eines Blocks.

Ist das wirklich ein Bug oder steckt vielleicht eine Absicht dahinter? Da ich noch ziemlich am Anfang stehe und mir der Überblick für die Zusammenhänge fehlt, möchte ich mich nicht zu weit aus dem Fenster lehnen...

LG

Anne

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

16. Apr 2010, 14:43

Moin Anne,
Anne hat geschrieben:Mir erscheint es tatsächlich verwirrend, dass sich die Slice-IDs verändern. ...
Ist das wirklich ein Bug oder steckt vielleicht eine Absicht dahinter? Da ich noch ziemlich am Anfang stehe und mir der Überblick für die Zusammenhänge fehlt, möchte ich mich nicht zu weit aus dem Fenster lehnen...
bin erst heute aufgrund http://forum.redaxo.de/ftopic13394-0-asc-15.html auf diesen thread gestoßen.. Da ich zufälligerweise gestern erst selbst bemerkt habe, daß das Version Addon über unterschiedliche slices arbeitet.. folgende 2$ dazu:

Ob man es als bug bezeichnen will (oder darf) sei mal dahingestellt, aber es ändert zumindest ein bis dato konstantes Grundprinzip.. insofern finde ich die Lösung nicht gerade optimal, zumal es AFAIK nirgends kommuniziert wird..
Welche Implikationen es - über die Verwendung der slice id für irgendwelche "privaten" Zwecke hinaus - hat läßt sich ad hoc schwer abschätzen.. zumindest erhöht es die Komplexität, und aus dem Bauch raus glaube ich es _könnte_ sich irgendwann in Zukunft als Hemmschuh erweisen.

Bezügl. deines konkreten Problems: Ich verwende die slice id auch schon seit langem in vielen meiner Module für die automatische Generierung von Anchors, allerdings dergestalt, daß das slice Jonglieren durch Version keine Rolle spielt:

Ich lese beim Anlegen eines Blocks die aktuelle slice id aus der URL, und speichere sie in einem REX_VALUE.. d.h. sie ändert sich nicht mehr (es sei denn ich ändere manuell bzw. lösche sie), und ist somit live wie working gültig.. Codebeispiel:

Code: Alles auswählen

if (rex_request('function','string') != 'add') // neuer Block
{
  $anchorID = rex_request('slice_id','int'); // id = aktuelle slice id
}
else // bestehender Block..
{
  if("REX_VALUE[20]" == '') // ..aber kein Wert für Anchor
  {
    $anchorID = rex_request('slice_id','int');
  }
  else // gespeicherte id..
  {
    $anchorID = "REX_VALUE[20]";
  }
}
hth,
Jan

Zurück zu „Allgemeines [R4]“