Lösung: BBCode per klick einfügen

Begonnen von dobra, Juni 16, 2007, 23:46:23

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Hallo,

Habe noch ein bißchen mit dem Review-Modul herumgespielt und das ist dabei herausgekommen
(noch nicht ganz fertig)

Eingabeformular:


Ergebnis:


Die Anleitung für den BBCode per klick einfügen gibt es hier http://aktuell.de.selfhtml.org/artikel/javascript/bbcode/

@cru
nachdem ich den OnlineEditor hier nicht verwenden kann ist das doch ein recht brauchbarer Ersatz ? (hoffe ich zumindest  ::))
oder kann es damit auch zu Problemen kommen, an die ich nicht gedacht habe?

mfG
dobra

dobra

#1
Hallo nochmal,

ein neuer Versuch:

in reviewuser.ipl

        .........
   ##Vorbereiten der Eingabemaske für Bewertungen
   my $temp = qq{
      <form name="formular1" method="post" action="__xxpath__?show$page,__xxsession__,$id2">
        .........
        .........
            <tr>
                  <td colspan="2"><textarea rows="15" cols="85" name="neu" wrap="hard" class="reviewasmall" maxlength="8000"></textarea>
                  </td>
                     <input type="hidden" name="cmd" value="hinzu">
                     <input type="hidden" name="id" value="$id">
                     <input type="hidden" name="item" value="$id">   
                     <input type="hidden" name="neu" value="neu">         
            </tr>   
            <tr>
                  <td  valign="top">Es sind maximal 8000 Zeichen erlaubt &nbsp; &nbsp;
               <a href="http://www.woll-insel.at/cgi-bin/shop2/iboshop.cgi?show1200004700">Vorschau</a>  &nbsp; &nbsp;</b></td>
                  <td><input type="submit" value="Beitrag abschicken">
                  </td>
            </tr>
                </table>
            </form>
        .........

#Versuch für Vorschauausgabe
sub Vorschau {
   my $vbewe = ssp::get_var_form("neu");   

      #Zeichen ersetzen
      $vbewe =~ s/</&lt;/g;
      $vbewe =~ s/>/&gt;/g;
      ############
      $vbewe =~ s/\[b\]/<b>/g;         ## Ersetzen der vorgefertigten Formatierungs-Tags
      $vbewe =~ s/\[\/b\]/<\/b>/g;      
        .........
        .........
      my $vtmp = qq|
         <br>
         <table>
         <tr>
            <td class="reviewtdtxt" width="90%">$vbewe</td>
         </tr>
         </table>   
      |;
      main::mprint $vtmp;      
}   

Ausgabe auf der Vorschau.html Seite mit

<!--spmacro:include(review_modul/inc/reviewuser.ipl)-->  und
__reviewuser::Vorschau__

ergibt   "undefined"

Was mache ich falsch  ???
mfG
dobra

cru

Hallo dobra,

auf den ersten Blick sehe ich nur, dass zum einen die <textarea> den Namen "neu" hat, und dann noch ein hidden <input> mit dem namen "neu" folgt. Namen sollten aber eindeutig sein, also es sollten nicht 2 Formularelemente den selben Namen tragen.

mfg
cru

dobra

Hallo cru,

Habe das geändert auf
        <input type="hidden" name="vorschau" value="neu">
und
   my $vbewe = ssp::get_var_form("vorschau");

es wird aber weiterhin nur "undefined" ausgegeben.

Irgendwie komme ich mit den Formulardaten übergeben nicht klar  :'(
mfG
dobra

cru

Hallo dobra,

<textarea rows="15" cols="85" name="neu" wrap="hard" class="reviewasmall" maxlength="8000"></textarea>

Diese Zeile sollte reichen, was wollen Sie denn mit dem hidden input bewirken?

Hier hat die <textarea> den Namen "neu" und mit ssp::get_var_form('neu') bekommen Sie den Inhalt der Textarea...

mfg
cru

dobra

EDIT:

Nachdem ich in diesem Fall mit ssp nicht klargekommen bin, habe jetzt eine JS-Lösung für die Vorschaufunktion gefunden
nicht ganz so ideal, wie ich es mir gedacht hatte - aber es funktioniert  :D (freu)

muß das Script jetzt nur noch anpassen (damit auch alle meine eingebauten BBCodes richtig verarbeitet werden)
das ist aber nur noch Schreibarbeit.........
mfG
dobra

dobra

#6
Geschafft - alle BBCodes werden in der Vorschau "in echt" dargestellt  ;D
(wer gucken möchte: auf jeder Detailseite - Bewertung, Frage oder Antwort - z.B.: http://www.woll-insel.at/cgi-bin/shop2/iboshop.cgi?showd2720!0,,Bandolino)
einziger Nachteil: funktioniert nur mit aktivem JS

Vielleicht kann mir doch noch jemand beim letzten (kleinen) Problemchen helfen:
ich habe es nicht geschafft, das die Schrift kleiner wird
größer mit
      $bewe =~ s/\[L\]/<FONT size=3>/g;
ja aber nicht kleiner
      $bewe =~ s/\[S\]/<font size=-4>/g; oder <font size=50%> oder <font size=\"-4\"> oder unzählige andere Schreibweisen-Versuche
hat alles nicht funktioniert.
(ist zwar nicht "lebensnotwendig", wäre aber schön, wenn das auch funktionieren würde)
mfG
dobra

ahe

Hallo dobra,

versuchen Sie mal die Schift mittels CSS zu verkleinern

<span style="font-size:smaller;">mein text</span>
MfG ahe

dobra

mfG
dobra