Autor Beitrag
elundril
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3747
Erhaltene Danke: 123

Windows Vista, Ubuntu
Delphi 7 PE "Codename: Aurora", Eclipse Ganymede
BeitragVerfasst: Sa 12.06.10 19:44 
Hallo,

ist es möglich die Zitat-Funktion so zu erweitern das man nur das Zitiert was man markiert hat. Wenn nichts markiert ist, dann soll der ganze Beitrag zitiert werden. Das wäre echt praktisch, weil ich gerne Selektiv zitiere.

lg elundril

_________________
This Signature-Space is intentionally left blank.
Bei Beschwerden, bitte den Beschwerdebutton (gekennzeichnet mit PN) verwenden.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Sa 12.06.10 19:46 
Ist glaube nicht so einfach wegen der Selektion.

Du kannst aber gerne: Zitat spalten verwenden und die nicht benötigten Teile entfernen ... So mach ich das dann meist.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 12.06.10 19:46 
Der Vorschlag kam schonmal, glaube ich. Ansich wäre das eine prima Sache. Aber: Das Problem ist, dass man dann anhand der Markierung im HTML rausfinden muss, von wo bis wo die denn im BBCode ginge, um ein korrektes Zitat zu erstellen. Und das ist echt knifflig!

Ich denke, das Aufspalten von Zitaten muss da leider genügen.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Sa 12.06.10 20:23 
user profile iconChristian S. hat folgendes geschrieben Zum zitierten Posting springen:
Der Vorschlag kam schonmal, glaube ich. Ansich wäre das eine prima Sache. Aber: Das Problem ist, dass man dann anhand der Markierung im HTML rausfinden muss, von wo bis wo die denn im BBCode ginge, um ein korrektes Zitat zu erstellen. Und das ist echt knifflig!

Ich denke, das Aufspalten von Zitaten muss da leider genügen.


ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
<script language=javascript>
function getSelText()
{
    var txt = '';
     if (window.getSelection)
    {
        txt = window.getSelection();
             }
    else if (document.getSelection)
    {
        txt = document.getSelection();
            }
    else if (document.selection)
    {
        txt = document.selection.createRange().text;
            }
    else return;
document.aform.selectedtext.value =  txt;
}
</script>
<input type="button" value="Get selection" onmousedown="getSelText()">

src: www.codetoad.com/jav...et_selected_text.asp


und die Sache mit dem BB Code sollte auch nicht so schwer sein.
Vorraussetzung: man selektiert nur texte innerhalb des posts.

Grob zusammengefasst:
1) Suchen des selektierten strings im originaltext
2) Bei ungleichheit auf BBCode checken, BB Code mit in den Reply packen
3) mit den weiteren zeichen bei 1) weitermachen
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 12.06.10 20:56 
Schau Dir doch z.B. mal den BBCode für ein Zitat an, in dem die Referenz auf den zitierten Beitrag ist. Da ist der kopierte Text ganz anders als der, den Du als BBCode hast.

//edit: Auch wenn Quelltext mit kopiert wird, sind da dann plötzlich die Worte "Quelltext" und "markieren" drin (also das, was über einem Quelltext steht). Vielleicht dann noch der Alt-Text der Grafiken zum ein- und ausklappen von Quelltext. Oder jemand hat den Quelltext eingeklappt und kopiert dann!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Sa 12.06.10 22:04 
Man könnte den Quelltext des Beitrags mit dem markierten Text abgleichen und so feststellen, ob sich ein markierter Teil in einem Tag befindet. Allerdings ist auch das immer noch eine ziemlich knifflige Angelegenheit.
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: So 13.06.10 11:55 
user profile iconChristian S. hat folgendes geschrieben Zum zitierten Posting springen:
Schau Dir doch z.B. mal den BBCode für ein Zitat an, in dem die Referenz auf den zitierten Beitrag ist. Da ist der kopierte Text ganz anders als der, den Du als BBCode hast.

//edit: Auch wenn Quelltext mit kopiert wird, sind da dann plötzlich die Worte "Quelltext" und "markieren" drin (also das, was über einem Quelltext steht). Vielleicht dann noch der Alt-Text der Grafiken zum ein- und ausklappen von Quelltext. Oder jemand hat den Quelltext eingeklappt und kopiert dann!


ja aber wo ist das Problem?

Bsp mit dem Code:
Markiert wurde "Quelltext: ..." das heißt falls dies auftritt müsste ein BBCode im originalpost kommen mit den Daten. Sprich der Teil des originalposts kann übernommen werden und "Quelltext:" wird im markierten übersprungen.
Das gleiche spiel kann man bei Zitaten auch anwenden.

Diese Problematik sollte sich eig mit Regex und einer mapping Table lösen lassen.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 13.06.10 12:03 
Wenn in einem Posting in einem Programmiererforum das Wort "Quelltext:" vorkommt, ist das nun wirklich nicht eindeutig auf einen BBCode zurückzuführen.

Du darfst mir gerne mit mehr als ein paar hingeworfenen Stichworten zeigen, wie einfach das ist. Bis dahin werde ich es mit der Begründung, dass der Aufwand bei weitem nicht lohnt, nicht einbauen. :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: So 13.06.10 12:20 
Naja man hat ja Zugriff auf den BB kodierten Text, sodass man gucken kann, ob sich an der Stelle wo im markierten Text ein "Quelltext:" steht ein [delphi]-Tag befindet.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 13.06.10 12:22 
Ich muss ja aber erst einmal die passende Stelle finden, bevor ich nachgucken kann.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 13.06.10 12:24 
user profile iconF34r0fTh3D4rk hat folgendes geschrieben Zum zitierten Posting springen:
Naja man hat ja Zugriff auf den BB kodierten Text, sodass man gucken kann, ob sich an der Stelle wo im markierten Text ein "Quelltext:" steht ein [delphi]-Tag befindet.
Mag ja sein, aber so einfach ist es dennoch nicht. Im Grunde müsste man von vorne an die einzelnen Teile mit dem BB-Code abgleichen um so die Worte nacheinander zuzuordnen. Dann muss man noch schauen, dass man die BB-Codes alle korrekt öffnet und schließt, ...

Klar ist es möglich. Aber mit welchem enormen Aufwand für den kleinen Nutzen?

Mal abgesehen davon:
Wenn man jetzt einen Teil markiert und zitiert, dann hat man direkt nur noch einen Fetzen des Originalposts. Insbesondere bei längeren Posts wächst dann die Gefahr von Missverständnissen. Insbesondere, wenn dann doch mal was verrutscht.

Da teile ich lieber das Zitat gezielt dort, wo ich es möchte. Das ist nun wirklich kein Aufwand. ;-)
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 13.06.10 12:39 
Wenn du dich damit näher beschäftigen willst, user profile iconF34r0fTh3D4rk, dann mach das doch :D Dafür brauchst du ja keine Datenbank oder sonstiges Zeug, das nur die EE-Admins haben.

Aber ich denke, Texte abzugleichen ist nicht der richtige Ansatz, er ist viel zu ungenau. Ich würde etwas anderes vorschlagen: Im Firefox geben window.getSelection().anchorNode und window.getSelection().focusNode den Anfangs- und Endknoten der Markierung zurück. Was du machen müsstest, wäre, den Posting selbst zu parsen und dabei darauf zu achten, an welcher Stelle der Anfangs- bzw. Endknoten erstellt wird. Diese Positionen merkst du dir. So kann man zwar nicht mitten im Wort trennen, aber zumindest eine Absatzgenaue, sofern BB-Codes verwendet wurde, sogar noch genauere, Markierung wäre möglich.

Für BB-Code ist diese Möglichkeit ziemlich kompliziert, weil BB-Codes normalerweise mit regulären Ausdrücken geparst werden. Aber vielleicht bekommst du es ja hin... ;)
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 13.06.10 12:45 
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Im Firefox geben window.getSelection().anchorNode und window.getSelection().focusNode den Anfangs- und Endknoten der Markierung zurück. Was du machen müsstest, wäre, den Posting selbst zu parsen und dabei darauf zu achten, an welcher Stelle der Anfangs- bzw. Endknoten erstellt wird.
Dann muss man den aber immer noch zuordnen. Das heißt man müsste im Grunde jedem Tag eine eigene ID geben. Etwas viel Aufwand, wie gesagt. :D

// EDIT:
Aber wenn jemand ne fertige Lösung anbietet, wird Christian vermutlich nicht abgeneigt sein. ;-)
Ich vermute aber mal das kann gerade niemand anbieten. :mrgreen:
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 13.06.10 12:53 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconYogu hat folgendes geschrieben Zum zitierten Posting springen:
Im Firefox geben window.getSelection().anchorNode und window.getSelection().focusNode den Anfangs- und Endknoten der Markierung zurück. Was du machen müsstest, wäre, den Posting selbst zu parsen und dabei darauf zu achten, an welcher Stelle der Anfangs- bzw. Endknoten erstellt wird.
Dann muss man den aber immer noch zuordnen. Das heißt man müsste im Grunde jedem Tag eine eigene ID geben. Etwas viel Aufwand, wie gesagt. :D

Da gibt's doch XPath, oder wie das heißt? Naja, auf jeden Fall kann jeder Knoten identifiziert werden, indem man die Position im übergeordneten Knoten angibt, und das ganze rekursiv: Bei <a><b1 /><b2><c /></a> hätte <c /> dann die ID 0-1-0.