Andare a capo nelle chat
Andare a capo nelle chat postato il 20/03/2012 22:06:02 nel forum programmazione, open source e hosting
Salve a tutti.
Mi stavo chiedendo una cosa: è possibile, nelle chat, fare un'azione con l'"a capo"? Mi spiego maglio. Se io scrivo tre azioni (A, B, C) ottengo come risultato A B C. Io vorrei sapere se è possibile ottenere una cosa del tipo:
A
B
C
Ho provato a scrivere
, ma niente. Se metto lo non appare nella scritta dell'azione, e se scrivo A
B C ottengo A n B C.
Ho provato anche altri metodi che conosco per l'"a capo", ma nulla.
Ma è possibile scrivere un'azione in un pbc andando a capo o no?
Grazie.
Pagine → 1
20/03/2012 22:16:32
Sì, ho dimenticato di dirlo, uso gdrcd 5.1. Mancanza mia.
Ma ho provato anche con Accent e RPG Engine, e la cosa non cambia.
nl2br? Credo di sì. A dire il vero non lo so. Uso quella che c'è. Ho provato ad andare a capo con
, con <br> e altri, ma nada.
21/03/2012 00:03:07
nicodem ha scritto: La chat è registrata su <textarea> immagino. Per salvarla a db passi per la funzione nl2br?
spero vivamente che nl2br venga usata quando la stringa viene estratta dal db; non prima di inserirla <.<
Se non sbaglio gdrcd usa un <input type="text" />, per avere il "potere" di inserire ritorni a capo dovresti usare una textarea (come già detto da nicodem). Il difetto di usare una textarea è che poi per inviare l'azione devi premere con il mouse sul tasto Invia e non puoi più usare Invio dato che serve per andare a capo. Ma la cosa si può sempre fixare con un po' di javascript, facendo in modo che la pressione di Invio generi un invio del form e che per andare a capo si utilizzi la conbinazione Shift+Invio. Per lo meno io l'ho implementata così sulla mia land.
Il punto cruciale è comunque usare una textarea nela pagina web, e assicurarsi di usare nl2br() quando si va in output con php.
21/03/2012 11:44:52
nicodem ha scritto:
[quote]@leo@: spero vivamente che nl2br venga usata quando la stringa viene estratta dal db; non prima di inserirla <.<
Non è un problema di funzionalità. è un problema di "pensare avanti".
Così come non si deve usare htmlentities() (o gdrcd_filter('out',....)) prima dell'inserimento nel database, allo stesso modo non bisogna usare altre funzioni che impongono una codifica/uno stile fisso che non si può facilmente invertire, come nl2br. Questo perchè tu non puoi essere sicuro di come verranno usati i dati che memorizzi sul database, magari in un futuro.
Magari nel presente lo sai. Sai che i dati della chat li usi solo per stamparli sulla chat. Ma se in futuro tu volessi implementare delle funzionalità di navigazione/ricerca o comunque qualche funzionalità che necessita di manipolare e analizzare la stringa del messaggio di chat? Ti saresti fatto uno sgambetto da solo, perchè ora ti ritrovi a dover analizzare codice HTML invece che semplici stringhe, cosa che rende il tutto più complesso e problematico.
O magari in futuro potresti voler implementare dei servizi web sulla tua land, che magari usano un engine rest o xml-rpc ed espone i logchat in qualche modo verso l'esterno. O anche solo per implementare un Feed RSS: tutte queste applicazioni sono applicazioni che NON fanno output in HTML, ma in XML, in JSON o in tanti altri formati che necessitano che le stringhe non siano già state codificate in HTML. Cosa dovresti fare in questi casi? Implementare una funzione che annulli tutte le modifiche che avevi fatto sulla stringa iniziale riportandola nella forma in cui l'avevi ricevuta dall'utente; senza avere garanzie che funzionino sempre bene: la funzione htmlentities_decode() potrebbe fallire a invertire l'escape HTML in certi casi.
C'era un articolo molto interessante a riguardo nella documentazione sugli standard di scrittura in Drupal....se solo riuscissi a trovarlo. Comunque il succo è: immagazzina i dati sempre come gli utenti te li forniscono e manipolali solo in output, perchè solo al momento dell'output puoi essere sicuro di che filtri e quali formati usare per l'output; non puoi già saperlo sempre al momento dell'input.
EDIT: trovato http://drupal.org/node/263002 ↗
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
War Thunder ↗
Raja Dunia ↗
Exclusive Villa GdR ↗
State of Survival ↗