Author Topic: ich brauch ma hilfe :-/  (Read 2284 times)

0 Members and 1 Guest are viewing this topic.

CleptomaiN

  • Guest
ich brauch ma hilfe :-/
on: Thu, 26. June 2003 - 18:14:25
Ahoi ersma

ich bräuchte wohl mal hilfe
und zwar geht es darum:
ich hab ein problem mit den templates und zwar:
bisher hab ich immer alle texte in mysql abgespeichert die ich dann spaeter auf der seite ausgegeben hab....
aber jetzt mit den templates hatte ich erst das problem das er keine neuen zeilen gemacht hat (hat sich jez von alleine geloest das prob) aber trotzdem hab ich noch ein problem mit der ganzen sache und zwar:

wenn ich ein user-freundliches interface machen will und dabei nicht allzuviel mysql space benutzen will komm ich mit garnix mehr klar.
Ich muss ja jedesmal "<br>" da mit reinbringen und wenn ich das dann wieder aufrufe um dem user seinen eigenen text in eine textarea zu stecken und er kanns dann editeren dann hat er da ueberall <br>'s da drinne .... und die meisten kennen sich ja nich so dolle aus und das sieht natuerlich auch nich so gut aus ... udn vor allem wenn die nicht alle super dolle html kenner sind dann is ja auch bloede mitm wieder absaven vom editierten text.

also ich koennte es rein-theoretisch auch mit str_replace() machen aber gibt es nicht eine einfachere moeglichkeit in einen dbloop <br>'s mit unterzumischen ohne das man es im mysql stehen hat ?!?!
Also genauer gesagt gibt es irgendwelche variablen die man irgendwo bei dem db-loop noch veraendern kann ?!
praktisch waere wenns so gänge, dass man die mysql_query() variablen noch erst veraendern kann mit zb. nl2br() bevor es dann in das template geht oda so .... aba mit nem anderen weg bin ich auch zufrieden....


(unverstaendlich genug??*gg*)

ich erhoff mir mal einfach so dreist ein wenig hilfe  :roll:

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
ich brauch ma hilfe :-/
Reply #1 on: Thu, 26. June 2003 - 23:50:30
Ich glaube, ich habe das Problem verstanden.

Eine Eingabe wird mit "nl2br()" gespeichert. Du hast einen Ändern-Button und dieser ruft den Text aus der DB und gibt ihn an ein Template/Textarea.

Ziel: Im Text soll der <br> nicht mehr drin stehen ...

Nun, dass kann vlibTemplate nicht, weil das eine komplizierte Geschichte von regulären Ausdrücken erfordern würde. Das ist einfach nicht das Einsatzgebiet von vlibTemplate und deswegen so ein Feature mit ziemlicher Sicherheit nicht eingebaut werden. Der Parser, der sowas für's IPB macht ist 1209 Zeilen lang. Da stehen dann Sachen drin wie:

Code: [Select]
$txt = preg_replace /br|br //,
, $txt ;

$txt = preg_replace /
/, br, $txt ;


Dadurch wird <br> vor und zurück geparst.

Ich hoffe, ich konnte Dir zumindest ein bißchen helfen.

CleptomaiN

  • Guest
ich brauch ma hilfe :-/
Reply #2 on: Sun, 29. June 2003 - 14:09:55
uhmmmmm
die replace sachen wusste ich schon ....... aber trotzdem nochmal danke fuer die info, dass vlib das nich kann ...

 8)

Yaslaw Kowalejeff

  • Guest
ich brauch ma hilfe :-/
Reply #3 on: Mon, 30. June 2003 - 09:26:40
Das hat nichts mit vLiB zu tun, eher mit php und MySQL allgemein.

ändere dein Scribt so, dass die Eingaeb nicht mit nl2br() gespeicher wird.
Dannkannst du zum editieren einfach den Feldinhalt in die Textarea ausgeben. Wenn dann des Resultat als reiner text ausgegeben wird, dann verwendest du erst den nl2br()
Bsp:

$tmpl->setVar('meinFeld', nl2br(meineZeile['meinFeld']));

Yaslaw, das nicht als fehlender Teil von vLiB betrachtend

PS: Es gibt ein deutschsprachiges Subforum.......

CleptomaiN

  • Guest
ich brauch ma hilfe :-/
Reply #4 on: Mon, 30. June 2003 - 17:09:18
oeh .... ne

ich glaub du hast nich verstanden was ich frage ... mit php und mysql ging alles problemlos .... nur jetzt mit den templates und den db-loops ist das alles nicht mehr so einfach wie vorher

jetzt kann ich die einzelnen variablen ja nicht mehr bearbeiten zwischen "aus database holen" und "in den loop tun" *gg*



(Unverständlich genug?)

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
ich brauch ma hilfe :-/
Reply #5 on: Mon, 30. June 2003 - 17:15:44
Entschuldigung, dann hab ich Dich falsch verstanden.

NATÜRLICH kannst Du alles was aus der DB kommt bearbeiten, das geht nur nicht mit "setdbloop" sondern mit
setloop Beispiel.

Wie Du in dem Beispiel sehen kannst, wird das in der DB enthaltene Datum BEVOR es in den Loop geparst wird noch mal bearbeitet. Das kannst Du natürlich auch mit Deinem Text machen.

Ich dachte, Du willst das vlibTemplate für Dich alle <br> rausfiltert, dass kann vlibTemplate dann nicht.

Wenn ich Dich immer noch falsch verstehe, schick mir in einer PM Deine ICQ nummer, dann versuche ich dir mit Live-support zu helfen. :D

---

PS: Wenn ich mir Deinen ersten Post ansehe, dann habe ich Dich beim ersten Mal doch richtig verstanden ...

Yaslaw Kowalejeff

  • Guest
ich brauch ma hilfe :-/
Reply #6 on: Tue, 01. July 2003 - 11:13:20
Du kannst sie bereits im SQL berabeiten und dann na dbloop weitergeben...

Yaslaw, hinweisend

Offline ClausVB

  • Administrator
  • Hero Member
  • *****
  • Posts: 566
    • Homepage: clausvb.de
ich brauch ma hilfe :-/
Reply #7 on: Tue, 01. July 2003 - 14:34:33
Meister "Hinweisend" :-) ... wie machst Du mit SQL denn ein deutsches Datum?

Bitte nicht nur ein deutsches Datumsformat, sondern so richtig mit "Sonntag, den X. März ..."

Claus, fragend

Yaslaw Kowalejeff

  • Guest
ich brauch ma hilfe :-/
Reply #8 on: Tue, 01. July 2003 - 15:17:21
Code: [Select]
SELECT
  CASE WEEKDAYmeindatumfeld
    WHEN 0 THEN Montag
    WHEN 1 THEN Dienstag
    WHEN 2 THEN Mittwoch
    WHEN 3 THEN Donnerstag
    WHEN 4 THEN Freitag
    WHEN 5 THEN Samstag
    WHEN 6 THEN Sonntag
  END AS german_weekday,
  DAYOFMONTHmeindatumfeld AS day_number,
  CASE MONTHmeindatumfeld
    WHEN 1 THEN Januar
    WHEN 2 THEN Februar
    ELSE weitere Monate sind zu definieren
  END AS german_month,
  YEARmeindatumfeld AS year_number
FROM meinetabelle;

Und im Template:
{tmpl_var german_weekday}, der {tmpl_var day_number}, {tmpl_var german_month} {tmpl_var year_number}

Referenzen:
Case: http://www.mysql.com/doc/en/Control_flow_f...ns.html#IDX1172
Weekday: http://www.mysql.com/doc/en/Date_and_time_...ns.html#IDX1291

Yaslaw, viel bereits im SQL lösend

Nachtrag:
Oder man hängt schon alles mittels CONCAT im SQL zusammen:
Code: [Select]
SELECT
  CONCAT
    CASE WEEKDAYmeindatumfeld
      WHEN 0 THEN Montag
      WHEN 1 THEN Dienstag
      WHEN 2 THEN Mittwoch
      WHEN 3 THEN Donnerstag
      WHEN 4 THEN Freitag
      WHEN 5 THEN Samstag
      WHEN 6 THEN Sonntag
    END,
    , der ,
    DAYOFMONTHmeindatumfeld,
    , ,
    CASE MONTHmeindatumfeld
      WHEN 1 THEN Januar
      WHEN 2 THEN Februar
      ELSE weitere Monate sind zu definieren
    END,
    YEARmeindatumfeld
   AS german_textdate
FROM meinetabelle;
Last Edit: Sat, 12. March 2005 - 17:36:14 by ClausVB