Joomla.it Forum
Non solo Joomla... => Sviluppo => : WebJoomla 09 Jun 2010, 18:43:31
-
Salve a tutti,
è da molto che non scrivo sul forum, ma seguo la comunità joomla molto spesso. Ho una piccola difficoltà e credo possiate aiutarmi:
dovrei assegnare ad un utente, lato front-end, la possibilità di inserire una sola news a settimana all'interno di una determinata categoria sezione, tutti i giorni eccetto la domenica.
Esempio:
dall'amministrazione del cms assegno l'utente XXX al gruppo XXX, il quale accedendo dalla front-end alla sua area personale, può inserire un articolo all'interno della Sezione/Categoria YY.
La limitazione sta nel fatto che può inserire massimo 1 articolo a settimana tutti i giorni eccetto la domenica.
E' fattibile? Conosco abbastanza bene php e MySql ma vorrei qualche dritta per capire su che file interagire o se esiste già un componente che permetta questa cosa per Joomla 1.5.18
A buon rendere
WebJoomla
-
ciao,
non so esista un componente che fa ciò, io farei un override di
components/com_content/views/article/tmpl/form.php
e metterei qui la logica di controllo; non è il massimo nel template, ma meglio che modificare il core.
ciao,
marco
-
Ciao,
prima di mettere mano al core,
ho provato molti componenti della JED, tra cui Content Submit http://extensions.joomla.org/extensions/news-production/content-submission/5178 (http://extensions.joomla.org/extensions/news-production/content-submission/5178)
Permette in pratica di creare un link al menù di joomla, specificando in quali categorie/sezioni inserire l'articolo.
Prima di passare alla modifica dei files, vorrei disabilitare l'editor dalla frontend, e nel relativo file tmpl c'è
<?php
echo $this->editor->display('text', $this->article->text, '100%', '400', '70', '15');
?>
Questa riga in pratica richiama l'editor, con relativi pulsanti (pagebreak inserisci immagine, etc).
Come faccio a disabilitare l'editor direttamente da qui? Ho provato a disabilitarlo dall'amministrazione ma comunque rimangono attivi i vari plugin. Se riuscissi a disabilitare il tutto da qui, sarebbe l'ideale, in quanto disabilitarlo dall'admin, significherebbe disabilitarlo manualmente per ogni utente.
Potete aiutarmi?
A presto
-
veramente non ho capito :(
è lo stesso problema di prima? un override del template non è una modifica al core.
vuoi disabilitare l'editor? come si inseriscono poi i contenuti? vuoi solo disabilitare l'editor rte? usa una texarea.
ciao,
marco
-
Ciao mmleoni,
e grazie per aver risposto.
Ti spiego meglio: vorrei disabilitare l'editor per permettere l'inserimento di solo testo, non formattato, senza immagini, colori , etc nell'articolo. Vorrei limitare anche il numero di caratteri .Questo articolo sarà poi salvato nella categoria news-email. E grazie al componente mass mail, sarà possibile inviare ogni x giorni, un email con le news contenute in quella categoria.
Ecco l'uso che farò dello stesso.
A presto
e grazie ancora
-
Grazie all'illuminazione ricevuta da mmleoni,
relativa alla textarea,
ho fatto questa modifica usando inputbox:
originariamente:
<?phpecho $this->editor->display('text', $this->article->text, '100%', '400', '70', '15');?>
con
<input class="inputbox" type="text" id="text" name="text" size="50" maxlength="120" value="<?php echo $this->escape($this->article->text); ?>" />
risolvendo così un primo step.
Ora il problema é: come faccio a controllare, se l'utente mirko con id 64 ha già inserito una news nella categoria "news-email" con id 31? In pratica vorrei fare un controllo per fare inserire una sola news ad ogni utente in questa categoria.
A presto e grazie ancora
-
scusa, ma senza andare a modificare il codice è sufficiente impostare di default no editor
e l'editor che vuoi per gli utenti che vuoi..
le modifiche al codice se non le fai con l'override al primo aggiornamento rischiamo di sparire e non è detto che poi sia sufficiente modificare la stessa riga..
ma in questo caso ci sono le impostazioni..
-
metti un select count(*) nel file che ho citato prima e vedi se è il caso di disegnare la form di input.
nota che l'uso della textarea (non input a meno che non siano effettivamente 120 chars) non impedisce di inserire codice html, dato che nel model vi è un ALLOWRAW come specifica di filtro (nota la stessa cosa vale anche se disabiliti l'editor!).
forse a questo punto di conviene copiarti il contenuto del fe di com_content ed installarlo come un nuovo componente, dopo di che modificare il codice ove serve.
ciao,
marco
-
Ciao 56francesco,
se imposto tutto dall'amministrazione, devo per ogni utente registrato, impostare l'editor su no editor, e poi comunque rimarrebbero attivi sotto l'editor, i pulsanti dei plugin. Per non parlare del numero massimo di caratteri, che in questo caso non saprei come gestirlo.
Infatti in questo caso ho ottenuto quello che volevo: no editor nella front-end, eliminazione pulsanti dei plugin dell'editor ( pagebreak, inserisci immagine, etc) e news di massimo 120caratteri.
Per quanto riguarda l'override, non ho modificato i files direttamenti dalla dir del componente, ma in
miotemplate/html/com_contentsubmit\views\article\tmpl\bycategory.php
Ora devo capire come effettuare quel controllo nel db, relativo all'utente e categoria.
A presto
-
metti un select count(*) nel file che ho citato prima e vedi se è il caso di disegnare la form di input.
nota che l'uso della textarea (non input a meno che non siano effettivamente 120 chars) non impedisce di inserire codice html, dato che nel model vi è un ALLOWRAW come specifica di filtro (nota la stessa cosa vale anche se disabiliti l'editor!).
forse a questo punto di conviene copiarti il contenuto del fe di com_content ed installarlo come un nuovo componente, dopo di che modificare il codice ove serve.
ciao,
marco
In effetti non avevo pensato a questo.. infatti inserendo codice html, vedo che viene accettato... idee di come "impedire" di inserire codice html all'interno di questa inputbox? Cercando su google parlavano di AllowRaw e di AllowHtml
-
dopo il bind della tabella alle variabili post, nel model, valorizza il field 'text' utilizzando STRING come filtro.
ripeto: io copierei il fe del com_content come nuovo componente...
ciao,
marco