Back to top

Autore Topic: Gestione personalizzata utenti  (Letto 20748 volte)

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #20 il: 23 Mar 2013, 13:12:31 »
Dopo la modifica, gli articoli associati ad ogni utente, non hanno un titolo equivalente allo username dell'utente stesso?
Ovviamente solo quelli creati successivamente alla modifica, quelli creati prima vanno riaperti e risalvati...
No way as a way,
   no limit as a limit...

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #21 il: 23 Mar 2013, 13:15:39 »
Deve funzionare perché questa procedura la utilizzo in altri casi sul mio sito (uso il campo SD field concat per assicurarmi di creare alias univoci);
Il campo direi che è impostato correttamente...


in ogni caso forse è meglio che lavori direttamente sul punto 2 che non è affatto più complicato e ti servirà per imparare direttamente tutte le tecniche avanzate;
No way as a way,
   no limit as a limit...

Offline eugenata

  • Esploratore
  • **
  • Post: 96
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #22 il: 23 Mar 2013, 13:19:28 »
Dopo la modifica, gli articoli associati ad ogni utente, non hanno un titolo equivalente allo username dell'utente stesso?
Ovviamente solo quelli creati successivamente alla modifica, quelli creati prima vanno riaperti e risalvati...

NO, come ho scritto prima ne quelli vecchi (sospettavo fosse così e ho fatto nuove registrazioni) ne quelli nuovi.

Offline eugenata

  • Esploratore
  • **
  • Post: 96
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #23 il: 23 Mar 2013, 13:38:02 »
Sto attuando il punto 2.

Ho inserito nel menù utente la voce "modifica" di tipo modifica profilo utente.

L'utente ora vede i campi editabili.
Il titolo di questa pagina è un generico: "User"

L'utente però, dopo il login viene comunque reindirizato alla pagina del profilo utente e non a quella modifica profilo utente.

A parte questo, come faccio a mettere il contenuto dell'editor in questa pagina?
Editando il form lato frontend con SEBLOD, non mi mostra il campo editor da poter inserire, lo mostra solo nella vista Contenuto.


Offline eugenata

  • Esploratore
  • **
  • Post: 96
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #24 il: 23 Mar 2013, 13:41:42 »
Mi accorgo ora che dopo aver inserito il campo SD field concat, non posso + entrare nel profilo degli utenti in backend, mi dice: Oops, template non found.

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #25 il: 23 Mar 2013, 14:22:00 »
Ti basta rientrare nel tipo di contenuto e risalvare...
No way as a way,
   no limit as a limit...

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #26 il: 23 Mar 2013, 14:33:14 »
Ho un attimo di tempo, vedo se riesco a sistemartelo...
No way as a way,
   no limit as a limit...

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #27 il: 23 Mar 2013, 15:05:17 »
Prova a dare un'occhiata:


1 ho modificato la voce del profilo nel tipo "modifica profilo";
2 ho cambiato il tipo del campo comunicazioni da "editory wysiwyg" a "area di testo"
3 ho messo il campo comunicazioni nel form frontend impostato su "valore"
4 ho cambiato il valore della proprietà "redirect dopo login" del modulo "login form" del gestore moduli di joomla, in modo che al login si venga redirezionati alla voce del punto 1)


come vedi ora accedendo, si va sul proprio profilo, e lì si vedono i propri dati editabili (nome utente, pass, email) e la comunicazione invece non è editabile;


il motivo del cambio effettuato al punto 2 sta nel fatto che un campo editor wysiwyg, se impostato su "valore" mostra anche i tag HTML, il campo area testo no; ad esempio se in un campo wysiwyg impostato su valore ci scrivo "prova comunicazione", nel form verrà visualizzato "<p>prova comunicazione</p>...


Questo è il meglio che puoi fare senza scriver nemmeno una riga di codice; per andare avanti ti devi creare una variazione personalizzata...

Non so di che entità siano i tuoi problemi con l'inglese ma:

http://www.seblod.com/support/documentation/seblod-2x/templates/1758-templating-101-overrides.html

anche una comprensione parziale può essere utile se te lo devo spiegare...
No way as a way,
   no limit as a limit...

Offline eugenata

  • Esploratore
  • **
  • Post: 96
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #28 il: 23 Mar 2013, 15:58:56 »
Purtroppo l'area di testo non è funzionale per quello ceh devo realizzare, ovvero mostrare all'utente una serie di link, oltre al testo, per scaricare cataloghi e listini in pdf.

La soluzione 1, quella che visualizza l'articolo con il titolo Jommal user.. andrebbe bene se non fosse per il titolo dell'articolo.

Mi chiedo: si potranno tradurre le etichette dei campi in un sistema multilingua?
Per il resto cercherò di far funzionare il plugin SD in qualche modo..

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #29 il: 23 Mar 2013, 16:29:35 »
SEBLOD supporta il multilingua allo stesso modo di joomla; bisogna abilitare jText dalle opzioni di SEBLOD (pannello lingua);
Per il resto, puoi utilizzare anche editor wysiwyg, creando la variazione personalizzata;


Fai così:


crea, con un qualunque editor HTML (alla peggio anche con blocco note) un file php col nome che vuoi, es: profilo.php


dentro ci copi questo:


Codice: [Seleziona]

<?php
/**
* @version  SEBLOD 2.x Core
* @package SEBLOD (App Builder & CCK) // SEBLOD nano (Form Builder)
* @url http://www.seblod.com
* @editor Octopoos - www.octopoos.com
* @copyright Copyright (C) 2012 SEBLOD. All Rights Reserved.
* @license  GNU General Public License version 2 or later; see _LICENSE.php
**/


// No Direct Access
defined'_JEXEC' ) or die;


// Init
if ( $app->isAdmin() ) {
$background_color = '#ffffff';
$position_padding = '15px';
} else {
$background_color = 'none';
$position_padding = '5px';
}


// Prepare Style
if ( $hasOptions ) {
if ( $app->isAdmin() ) {
$background_color = $options->get'background_color'$background_color );
$background_color = $background_color == 'none' ) ? '#ffffff' $background_color;
$position_padding = $options->get'position_padding'$position_padding );
} else {
$background_color = $options->get'background_color'$background_color );
$position_padding = $options->get'position_padding'$position_padding );
}
$border_size = $options->get'border_size''0' );
$border_style = $options->get'border_style''solid' );
$border_color = $options->get'border_color''#dedede' );
$border_radius = $options->get'border_radius''5' );
$padding = $position_padding != '' ) ? 'padding:'.$position_padding.';' '';

$css = '/* Variation: '.$variation.' on '.$id.' */' ."\n" $css
. '#'.$id.'.'.$variation.' { background-color:'.$background_color.'; border:'.$border_size.'px '.$border_style.' '.$border_color.'; position:relative; '.$padding
. ' -moz-border-radius:'.$border_radius.'px; -webkit-border-radius:'.$border_radius.'px; border-radius:'.$border_radius.'px; overflow:hidden; }'."\n";
$cck->addCSS$css );
} elseif ( 
$app->get'cck_variation_'.$variation ) !== true ) {
$app->set'cck_variation_'.$variationtrue );

$padding = $position_padding != '' ) ? 'padding:'.$position_padding.';' '';
$css = '/* Variation: '.$variation.' */' ."\n" $css
. 'div.'.$variation.' { background-color:'.$background_color.'; border:0px solid #dedede; position:relative; '.$padding
. ' -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; overflow:hidden; }'."\n";
$cck->addCSS$css );
}


// Set Style
$class = $variation.' '.$orientation;
$cck->setHeight$height$id );
?>



<div>

</div>


diciamo che questo codice crea una variazione vuota; puoi usarlo come base per qualunque variazione;
di per se una variazione è una visualizzazione particolare di una sezione del form SEBLOD (o del CONTENT);


le ultime 3 righe del file, ovvero:
Codice: [Seleziona]
<div>

</div>
sono quelle che devono contenere il codice per mostrare i campi nel modo che vuoi tu;
una variazione si applica come ho detto solo ad una sezione, quindi, ad esempio potresti mettere tutti i campi del form frontend nella sezione mainbody, e solo il campo comunicazioni nella sezione bottombody, in modo da applicare solo a lui la visualizzazione personalizzata;


quindi nel file php, dentro il div finale ci mettiamo il codice:
in SEBLOD hai sempre 3 modi per accedere ad un campo via codice (qui ne elenco 2 perché il 3° è quasi equivalente al 2°):


1- $cck->renderField('nome_campo');
2- $cck->getValue('nome_campo');


(tenendo conto che "nome_campo" è il "name del campo" e non il "title" (per chiarezza:


http://www.flickr.com/photos/94275295@N05/8583188270/in/photostream/lightbox/


)


Il metodo 1 renderizza il campo, ovvero se sei sul form lo rende editabile (sul content invece sarebbe lo stesso fisso), il metodo 2 preleva in maniera grezza il suo contenuto; di conseguenza nel file php alle ultime 3 righe occorre sostituire:


Codice: [Seleziona]
<div>
   <?php   


        
echo '<div>'.$cck->getValue('comunicazioni').'</div>';


   
?>

</div>


i tag <?php e ?> servono a racchiudere il codice php; il comando php "echo" stampa a video quello che segue; l'operatore punto "." realizza la concatenazione di stringhe; di conseguenza il comando stampa a video la stringa '<div>' (le stringhe costanti sono racchiuse tra apici), concatenata col valore del campo comunicazioni, concatenato con la stringa '</div>' per chiudere  il contenitore HTML;


si potrebbe usare anche semplicemente:


Codice: [Seleziona]
    echo $cck->getValue('comunicazioni');


se non si desidera variare lo stile del campo;
faccio un esempio pratico:
con quest'ultimo comando stampi a video il valore del campo comunicazioni così come è stato inserito;
se ad esempio volessi che il contenuto del campo sia sempre stampato a video ma tutto maiuscolo, in blu e carattere altezza 16px, userei una variante del primo codice:



Codice: [Seleziona]
<div>
   <?php   


        
echo '<div class="comunicazione">'.$cck->getValue('comunicazioni').'</div>';


   
?>

</div>


così da assegnare al campo la classe "comunicazione";
poi mi basterebbe aggiungere al CSS del template del sito joomla le righe:


Codice: [Seleziona]
.comunicazione {
    text-transform: uppercase;
    color: #0c00ff;
    font-size: 16px;
}


o comunque qualunque altro stile si voglia ;)


con FTP vai nella cartella /templates/seb_one/variations e crei una cartella che abbia lo stesso nome del file php che hai appena fatto, es: profilo


Ci carichi dentro il file profilo.php;


Infine, dentro al content type user di SEBLOD, su form FRONTEND, applichi la variazione "profilo" alla sezione bottombody (o cmq alla sezione dove hai messo il campo comunicazioni)


Al di là del post che sembra lunghissimo, le variazioni sono estremamente semplici da creare e gestire, e sono una potenza, perché ti fanno ottenere sempre esattamente il risultato che vuoi, scrivendo solo un poco di PHP (ti basta conoscere i due comandi che ho elencato) e un po' di HTML e CSS per gli stili...
« Ultima modifica: 23 Mar 2013, 16:36:05 da Cereal___killer »
No way as a way,
   no limit as a limit...

Offline eugenata

  • Esploratore
  • **
  • Post: 96
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #30 il: 23 Mar 2013, 16:50:02 »
Grazie Cereal___Killer.
Quindi questa cosa, se ho capito bene, mi serve per mostrare il contenuto del campo editor non come tag html ma come html risultante.

Mi sembra un'ottima soluzione.
Comincio a lavorarci

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #31 il: 23 Mar 2013, 16:51:45 »
E' più di così:
   ti permette di creare visualizzazioni personalizzate come vuoi tu;


Poi nello specifico sì, il codice che ti ho dato, fa questo; controlla solo che il "name" del campo sia effettivamente "comunicazioni", o non funzionerà...
No way as a way,
   no limit as a limit...

Offline eugenata

  • Esploratore
  • **
  • Post: 96
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #32 il: 26 Mar 2013, 01:26:04 »
E' più di così:
   ti permette di creare visualizzazioni personalizzate come vuoi tu;


Poi nello specifico sì, il codice che ti ho dato, fa questo; controlla solo che il "name" del campo sia effettivamente "comunicazioni", o non funzionerà...

Cereal___killer, continuo  a ringraziarti per l'aiuto che mi stai dando , credo utile anche a molti altri.

Purtroppo  però, la variazione del template non cambia nulla.
Ho provato entrambe le stringhe:

1- $cck->renderField('nome_campo');
2- $cck->getValue('nome_campo');

l'unica differenza è che nella 1 mostra anche l'etichetta del campo.
Per il resto continua a visualizzare il contenuto in formato codice html.

E' un peccato ... se solo riuscissi a cambiare il titolo avrei risolto mostrando la pagina utente (articolo).
Eppure è strano, ho seguito alla lettera (...e non solo) le indicazioni che hai scritto .. che sono le stesse indicate in inglese sul forum che hai linkato.
Quindi il procedimento dovrebbe essere corretto, eppure, c'è qualcosa che ci sfugge.

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #33 il: 26 Mar 2013, 01:48:06 »
Scusa ma mi sa che mi son perso:


ho dato un'occhiata al tuo sito e accedendo, nel profilo, mi mostra correttamente il form con il campo comunicazioni in sola lettura, come si vede qui:


http://www.flickr.com/photos/94275295@N05/8590242195/in/photostream/lightbox/


Come lo avevo impostato, senza variazioni;


Se modifichi il campo comunicazioni da area di testo a editor wysiwyg, allora devi fare la variazione; ma al momento ancora non l'hai fatto...
No way as a way,
   no limit as a limit...

Offline eugenata

  • Esploratore
  • **
  • Post: 96
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #34 il: 26 Mar 2013, 02:01:34 »
come fai a visualizzare quella pagina?

In questo momento la voce di menù è impostata su Profilo utente e non su Modifica profilo.
Forse un problema di cache?

Ti assicuro che ho già provato a mostrare la pagina modifica profilo con la variazione di template ma l'esito è stato quello sopra descritto.

Offline eugenata

  • Esploratore
  • **
  • Post: 96
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #35 il: 26 Mar 2013, 02:06:45 »
Adesso ho attivato entrambe le voci nel menù utente

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #36 il: 26 Mar 2013, 02:07:34 »
Mmm ora la vedo anche io come visualizza profilo;


cmq, ti conviene tornare a "modifica profilo"; tenendola così non si tratta solo di cambiare il titolo dell'articolo ma avrai anche altri problemi;


Rimetti su modifica profilo e prova a farmi vedere come viene fuori  con la variazione; lo risolviamo;
tra l'altro hai già rimesso il campo comunicazioni a editor wysiwyg?
No way as a way,
   no limit as a limit...

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #37 il: 26 Mar 2013, 02:10:38 »
Ok devo fare un paio di prove per vedere come risolvere...
No way as a way,
   no limit as a limit...

Offline eugenata

  • Esploratore
  • **
  • Post: 96
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #38 il: 26 Mar 2013, 02:18:21 »
Posto l'intero file profilo.php:

Codice: [Seleziona]
<?php
/**
* @version             SEBLOD 2.x Core
* @package            SEBLOD (App Builder & CCK) // SEBLOD nano (Form Builder)
* @url                http://www.seblod.com
* @editor            Octopoos - www.octopoos.com
* @copyright        Copyright (C) 2012 SEBLOD. All Rights Reserved.
* @license             GNU General Public License version 2 or later; see _LICENSE.php
**/


// No Direct Access
defined'_JEXEC' ) or die;


// Init
if ( $app->isAdmin() ) {
    
$background_color    =    '#ffffff';
    
$position_padding    =    '15px';
} else {
    
$background_color    =    'none';
    
$position_padding    =    '5px';
}


// Prepare Style
if ( $hasOptions ) {
    if ( 
$app->isAdmin() ) {
        
$background_color    =    $options->get'background_color'$background_color );
        
$background_color    =    ( $background_color == 'none' ) ? '#ffffff' $background_color;
        
$position_padding    =    $options->get'position_padding'$position_padding );
    } else {
        
$background_color    =    $options->get'background_color'$background_color );
        
$position_padding    =    $options->get'position_padding'$position_padding );
    }
    
$border_size            =    $options->get'border_size''0' );
    
$border_style            =    $options->get'border_style''solid' );
    
$border_color            =    $options->get'border_color''#dedede' );
    
$border_radius            =    $options->get'border_radius''5' );
    
$padding                =    ( $position_padding != '' ) ? 'padding:'.$position_padding.';' '';
    
    
$css        =    '/* Variation: '.$variation.' on '.$id.' */' ."\n" $css
                
.    '#'.$id.'.'.$variation.' { background-color:'.$background_color.'; border:'.$border_size.'px '.$border_style.' '.$border_color.'; position:relative; '.$padding
                
.    ' -moz-border-radius:'.$border_radius.'px; -webkit-border-radius:'.$border_radius.'px; border-radius:'.$border_radius.'px; overflow:hidden; }'."\n";
    
$cck->addCSS$css );
} elseif ( 
$app->get'cck_variation_'.$variation ) !== true ) {
    
$app->set'cck_variation_'.$variationtrue );
    
    
$padding    =    ( $position_padding != '' ) ? 'padding:'.$position_padding.';' '';
    
$css        =    '/* Variation: '.$variation.' */' ."\n" $css
                
.    'div.'.$variation.' { background-color:'.$background_color.'; border:0px solid #dedede; position:relative; '.$padding
                
.    ' -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; overflow:hidden; }'."\n";
    
$cck->addCSS$css );
}


// Set Style
$class    =    $variation.' '.$orientation;
$cck->setHeight$height$id );
?>



<div>
<?php   


        
echo '<div>'.$cck->getValue('comunicazioni').'</div>';


   
?>

</div>

MA se non ho capito male (niente di + facile) questo file fa mostrare al tempalte un formato di un certo tipo.
Questa opzione, però, credo sia già disponibile in una casella a discesa della configurazione del campo, ovvero: nascosto, form, sola lettura, valore.
Ma forse mi sbaglio...

Offline Cereal___killer

  • Appassionato
  • ***
  • Post: 287
    • Mostra profilo
Re:Gestione personalizzata utenti
« Risposta #39 il: 26 Mar 2013, 02:24:17 »
Sì, quella casella ha qualche impostazione, ma con una variazione hai più controllo;
gli fai fare tutto quello che vuoi perché maneggi direttamente il codice;


cmq ho fatto delle prove, ma come mi aspettavo a me funziona perfettamente, ovvero il getValue mi renderizza il campo in modo non editabile, ma senza mostrare i tag HTML;


Il campo comunicazioni al momento è di tipo "editor wysiwyg"?

Prova a togliere i div, ovvero in profilo.php fagli fare solo

echo $cck->getValue('comunicazioni');

anziché

echo '<div>'.$cck->getValue('comunicazioni').'</div>';
« Ultima modifica: 26 Mar 2013, 02:26:36 da Cereal___killer »
No way as a way,
   no limit as a limit...

 



Web Design Bolzano Kreatif