Joomla.it Forum
Joomla! 3 => Joomla! 3 => : nick61 04 Feb 2021, 16:27:12
-
Buongiorno a tutti.Avrei bisogno di creare sotto Joomla! la seguente situazione per una associazione e vorrei sapere se è fattibile e come poterla realizzare. Da quello che ho capito con WP lo è.
Per prima cosa andrebbe fatto in modo che gli Author o i Publisher, da front end, possano rendere visibile agli utenti Public solo in parte il contenuto del loro articolo (la parte iniziale), mentre una seconda parte di contenuti (inclusa la prima) possa essere vista solo da chi entra sul sito con user-id e password.
Abbiamo tentato di utilizzare il plugin di Regulars Lab Conditional Content ma con risultati deludenti. Ad esempio il codice del plugin {show usergrouplevels=...} e il contenuto che dovrebbe rimanere nascosto viene visualizzato nell'intro text in BT Content Slider. Che voi sappiate esistono componenti, plug-in o tricks che permettano appunto di gestire all'interno di un articolo la visualizzazione di sue parti condizionata dai diritti di accesso dell'utente?
Ma non solo, quello che servirebbe in più all'associazione è permettere all'utente Public di cliccare sulla possibilità di visualizzare la parte nascosta dell'articolo solo dopo aver compilato una contact form (es. nome, cognome, email e accettazione privacy), quindi all'invio della form avere accesso immediato alla versione completa dell'articolo (contenuti visibili a tutti e quelli visibili solo ai soci loggati). Naturalmente l'accesso a chi compila il form deve dare la possibilità di vedere solo l'articolo per il quale richiede l'accesso e non a tutte le area "Registered" disponibili ai soci loggati
Com'è possibile gestire questa attività? Esiste un plug-in o che tipo di programmazione va integrata a Joomla!?
Grazie in anticipo per il supporto.
Nick
-
Ciao nick61, secondo me se ti studi a fondo la gestione dei permessi di accesso di Joomla puoi fare tutto quello che ti è stato richiesto.
https://www.joomla.it/guide-joomla-3/8424-gestione-dei-permessi-di-accesso.html (https://www.joomla.it/guide-joomla-3/8424-gestione-dei-permessi-di-accesso.html)
-
Ciao, benvenuto sul forum, con joomla puoi rendere il testo introduttivo pubblico e l'articolo completo solo ai registrati, senza bisogno di estensioni https://www.joomla.it/blog/8037-joomla-articoli-testo-introduttivo-pubblico-testo-esteso-riservato.html (https://www.joomla.it/blog/8037-joomla-articoli-testo-introduttivo-pubblico-testo-esteso-riservato.html)
-
Grazie a tutti della pazienza e dei suggerimenti ma ho paura che con le sole risorse messe a disposizione dai componenti standard di Joomla! non sia possibile sbrigarsela.Come posso fare infatti a far visualizzare il contenuto completo dell'articolo ad un utente guest o public solo dopo che questo ha inviato una form di contatto, attenzione non di registrazione al sito. Questa è la parte che pone il vero problema, non deve essere infatti necessario registrarsi per visualizzare il contenuto "nascosto" ma solo inviare la form con i dati richiesti. Grazie in anticipo
Nick
-
Credo che dovresti fare un override della vista articoli, inserendo il form dopo la parte introduttiva e all'invio senza errori ridirezionare all'articolo completo oppure scoprire il div della parte rimanente.
-
la prima parte di quello che chiedi
Buongiorno a tutti.Avrei bisogno di creare sotto Joomla! la seguente situazione per una associazione e vorrei sapere se è fattibile e come poterla realizzare. Da quello che ho capito con WP lo è.
Per prima cosa andrebbe fatto in modo che gli Author o i Publisher, da front end, possano rendere visibile agli utenti Public solo in parte il contenuto del loro articolo (la parte iniziale), mentre una seconda parte di contenuti (inclusa la prima) possa essere vista solo da chi entra sul sito con user-id e password.
la fai semplicemente seguendo l'articolo che ti ho linkato
la seconda parte
Ma non solo, quello che servirebbe in più all'associazione è permettere all'utente Public di cliccare sulla possibilità di visualizzare la parte nascosta dell'articolo solo dopo aver compilato una contact form (es. nome, cognome, email e accettazione privacy), quindi all'invio della form avere accesso immediato alla versione completa dell'articolo (contenuti visibili a tutti e quelli visibili solo ai soci loggati). Naturalmente l'accesso a chi compila il form deve dare la possibilità di vedere solo l'articolo per il quale richiede l'accesso e non a tutte le area "Registered" disponibili ai soci loggati
Com'è possibile gestire questa attività? Esiste un plug-in o che tipo di programmazione va integrata a Joomla!?
Grazie in anticipo per il supporto.
Nick
non penso sia possibile e non solo con joomla, almeno secondo me..., perche bisognerebbe avere sul database delle tabelle che salvano tramite un ID, un Nome/email, o altro chi fa l'invio del modulo di contatto ed in quale articolo e di conseguenza mostrargli il testo completo solo di quel articolo, non so se con qualche componente, tipo fabrik (?), sia possibile crearee una cosa del genere, magari su questo tomtomeight o giuseboss ti possono aiutare.Per il problema di BT Content Slider che mostra il codice dovrebbe avere una opzione nella configurazione per filtrarli, comunque ti sconsiglio di usarlo, se ricordo bene, è da un pò che lavoro poco su joomla non sono piu molto informato, gli sviluppatori sono "spariti" e non aggiornano piu le loro estensioni.
-
Grazie $Red.
Spero che qualcuno che ci legge possa aiutarmi, non gratuitamente nel caso.
Nick
-
Qui solo senza compensi, nel caso puoi inserire un annuncio rispettando il particolare regolamento della apposita sezione.
-
Prova a fare un override con questo codice:
Devi inserirlo appena dopo la parte di anteprima, al posto di dove metteresti il leggi tutto.
<?php
$app = JFactory::getApplication();
$postData = $app->input->post;
?>
<div class="message-section">Compila questo form per leggere tutto l'articolo.</div>
<form action="<?php echo JUri::current(); ?>" method="post" class="message-form" >
Nome:[br /]
<input type="text" name="sendername" value="" required >
[br /]
Telefono:[br /]
<input type="text" name="phone" value="" required >
[br /]
E-mail:[br /]
<input type="text" name="emailaddress" value="" required >
[br /]
<input type="hidden" id="product" name="product" value="<?php echo $this->escape($this->item->title); ?>">
<input type="hidden" id="email" name="email" value="1">
Messaggio:[br /]
<textarea name="message"class="textarea" required ></textarea>
<div class="list-unstyled mgscheckbox-style mgsstyle-checkbox">
<input id=cookieconsent name=cookieconsent data-error="Required Consent"required type=checkbox value="SI">
<label for=cookieconsent>Accettando l informativa sulla <a href="(link alla privacy)">Privacy Policy[/url]
confermi che acconsenti che questo sito memorizzi le tue informazioni
</label>
</div>
<input type="submit" class="my-button" value="Invia">
</form>
</div>
<?php if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['email'] == 1)
{
$mailer = JFactory::getMailer();
$sender = array( 'tua@email.xx','(nome sito)' );
$mailer->setSender($sender);
$mailer->setSubject('Richiesta di lettura per l'articolo: ' .$_POST['product']);
$mailer->addRecipient('tua@email di ricezione);
$body = 'Questo è un messaggio di: '
. '[br /][br /] '
. 'Nome: ' . $_POST['sendername'] . '[br /][br /]'
. 'email: ' . $_POST['emailaddress'] . '[br /][br /]'
. 'Phone: ' . $_POST['phone'] . '[br /][br /]'
. 'Messaggio: ' . $_POST['message'] . '[br /][br /]'
. 'Privacy: ' . $_POST['cookieconsent'] . '[br /][br /]'
;
$mailer->isHTML(true);
$mailer->Encoding = 'base64';
$mailer->setBody($body);
$send = $mailer->Send();
if ( $send !== true ) {
$app->enqueueMessage("Messaggio NON inviato con successo!" , 'fail');
$app->redirect(JUri::current());
} else {
$app->enqueueMessage('Il messaggio è stato inviato con successo! Ora puoi leggere tutto l'articolo! ', 'success');
$app->redirect(JUri::current());}
}
Ad esito positivo di invio email quì vieni rediretto nella stessa pagina ma puoi modificarlo per direzionarlo all'articolo completo.Ci sono a questo punto diversi metodi per far completare la letture per intero, ma vedi prima se è applicabile così, poi si vede di aggiungere javascript per mascherare e scoprire div della parte restante.
-
Grazie e 1000 per l'aiuto,
provo subito e ti faccio sapere.
Nick
-
tomtomeight grazie,sto facendo i test e devo aver fatto qualche errore in quanto ricevo errore 404 e non ricevo l'email di conferma, ma forse ho visto dove ho sbagliato.
nick
-
tomtomeight, ho reinserito il codice senza usare nessun editor ma purtroppo dopo l'invio ricevo ancora errore 404 e la mail di conferma non mi arriva :-(
Grazie
nick
-
Che errore ricevi? Riesci ad inviare altre email dal tuo server?
Prova se ricevi errore anche a questo link ove ho lo stesso form che ti ho girato, per un catalogo corsi che sto sviluppando.
https://registro.infotecnica.eu/formazione/corso/4.html
Dimmi se anche questo ti da lo stesso errore, io ti dirò se ho ricevuto email.
-
Grazie Tomtomeight.
Form inviata dal tuo sito in sviluppo senza errore, vedo anche il banner verde con il messaggio di inviato con successo.
Probabilmente sono io che ho fatto qualche sciocchezza nell'inserimento del PHP, sempre che non sia un problema dovuto al template. Nel sito in sviluppo uso Helix Ultimate di Joomshaper e anche diverese pagine create con SP Page Builder Pro.
nick
-
Ho ricevuto email. Ma non mi hai detto tu che errori ricevi, magari metti a max report errori.
-
Tomtomheight ti dico cosa ho fatto
Copiato codice PHP che mi hai inviato, modificato inserendo miei indirizzi email e inserito nel sorgente dell'articolo direttamente (senza utilizzare nessun editor) quindi ho salvato l'articolo.
Visualizzando l'articolo però vedo anche il codice PHP inserito (non come nel tuo esempio), compilando ugualmente e inviando la form ottengo errore (404 Page not found) e non ricevo nessuna email.
Al momento come ti dicevo ho provato sul sito in sviluppo che utilizza il Template Helix Ultimate, ho anch provato a impostare Protostar come template di default, ma la situazione è identica.
Grazie
nick
-
Ma non devi inserirlo direttamente nell'articolo ma nel file della view content default.php.
Forse ho sbagliato a spiegarti nel senso che il codice deve essere messo nel punto dopo il testo introduttivo che devi evincere nel file default.php del override.
-
Tomtomeight prima di tutto grazie per la cortesia e la pazienza.Come avrai capito non ho particolari conoscenze di programmazione PHP :-(Sono anni che uso Joomla! ma sempre utilizzando componenti e moduli disponibili, raramente ho fatto modifiche al codice.
Venendo al mio problema come ti dicevo utilizzo Helix Ultimate come template per il quale è già presente un override in /html/com_content/articles/default.php
Non riesco quindi a capire in che punto dovrei inserire il tuo codice aggiuntivo per la gestione della form.
Se poi anche riuscissi a far funzionare il tuo sistema mi sembra di capire che in ogni articolo del sito sarebbe visibile la form e non è quello che avrei bisogno.
grazie
nick