Jump to content

Bandierine o Pulsanti per cambiare la lingua


BomAle

Recommended Posts

Questo codice può essere usato per inserire delle bandiere affiancate ai nomi delle lingue disponibili nel footer.

 

cerca nel globalTemplate

{$lang['title']}

aggiungi prima

<if test="$lang['id'] == 1"><img alt="English" src="http://i48.tinypic.com/2822hcj.jpg"></if><if test="$lang['id'] == 23"><img alt="Italiano" src="http://i49.tinypic.com/rw0zyd.jpg"></if>

sostituisci 23 con l'id della lingua a cui far corrispondere l'immagine.

post-29-0-31450700-1356361116_thumb.png

 

Per chi volesse riportare il codice in altre zone del template, quindi avere una barra con i pulsanti che permettono di cambiare la lingua in uso, allora prendete questo codice (header)

                                <style type="text/css">                                /* ICONE LINGUA STILE */                                span.lingua.selezionato img{                                      opacity: 1 !important;                                    }                                span.lingua img{                                      opacity: 0.5 !important;                                    }                                </style>                                <foreach loop="$footer_items['lang_chooser']['options'] as $lang">                                    <span class='lingua<if test="$lang['selected']"> selezionato</if>'>                                        <a href="{$this->lang->changeLanguageUrl( $lang['id'] )}"><if test="$lang['id'] == 1"><img alt="English" title="English" src="http://i48.tinypic.com/2822hcj.jpg">  </if><if test="$lang['id'] == 23"><img alt="Italiano" title="Italiano" src="http://i49.tinypic.com/rw0zyd.jpg">  </if></a>                                    </span>                                </foreach>

post-29-0-93764400-1356361110_thumb.png

 

Se dovete usarlo in un template a parte attenzione al params="..." altrimenti appariranno degli errori nell'header!

Ho preso l'idea da wininizio.it ... forse hanno usato un codice diverso ma mi sembra più efficace questo ;)

Edited by Skillman_92
  • Like 3
Link to post
Share on other sites

semplice nel globalTemplate cerca

<div id='user_navigation' class='logged_in'>							<ul class='ipsList_inline right'>

e aggiungilo dopo <ul class='ipsList_inline right'>

Link to post
Share on other sites
  • Admin

Tu hai:

					<if test="memberbox:|:$this->memberData['member_id']">						<div id='user_navigation' class='logged_in'>							<ul class='ipsList_inline right'>

 

sotto metti:

<style type="text/css">                                /* ICONE LINGUA STILE */                                span.lingua.selezionato img{                                      opacity: 1 !important;                                    }                                span.lingua img{                                      opacity: 0.5 !important;                                    }                                </style>                                <foreach loop="$footer_items['lang_chooser']['options'] as $lang">                                    <span class='lingua<if test="$lang['selected']"> selezionato</if>'>                                        <a href="{$this->lang->changeLanguageUrl( $lang['id'] )}"><if test="$lang['id'] == 1"><img alt="English" title="English" src="http://i48.tinypic.com/2822hcj.jpg">  </if><if test="$lang['id'] == 23"><img alt="Italiano" title="Italiano" src="http://i49.tinypic.com/rw0zyd.jpg">  </if></a>                                    </span>                                </foreach>

 

e infatti sotto il foreach avrai:

								<if test="showInboxNotify:|:! ( ! $this->memberData['member_id'] && $this->settings['force_login'] ) && !($this->settings['board_offline'] && !$this->memberData['g_access_offline'])">

 

Ovvero lo pillola delle notifiche dei messaggi

  • Like 1
Link to post
Share on other sites

potrebbe essere perchè và in conflitto con altri codici... noto che ha il tema personalizzato, perciò il problema è trovare un'altra posizione nel template!

edit ... una posizione quasi perfetta nella barra nera visibile a destra da visitatori e utenti registrati...

cerca

			<div id='header_bar' class='clearfix'>				<div class='main_width'>

e inserisci questo codice dopo

                                <style type="text/css">                                /* ICONE LINGUA STILE */                                span.lingua.selezionato img{                                      opacity: 1 !important;                                    }                                span.lingua img{                                      opacity: 0.5 !important;                                      padding-top:10px;                                    }                                </style>                                <foreach loop="$footer_items['lang_chooser']['options'] as $lang">                                    <span class='lingua right<if test="$lang['selected']"> selezionato</if>'>                                          <a href="{$this->lang->changeLanguageUrl( $lang['id'] )}"><if test="$lang['id'] == 1"><img alt="English" title="English" src="http://i48.tinypic.com/2822hcj.jpg"></if><if test="$lang['id'] == 6"><img alt="Italiano" title="Italiano" src="http://i49.tinypic.com/rw0zyd.jpg"></if></a>                                    </span>                                </foreach>
Edited by Skillman_92
Link to post
Share on other sites
potrebbe essere perchè và in conflitto con altri codici... noto che ha il tema personalizzato, perciò il problema è trovare un'altra posizione nel template!

Io utilizzo la skin di default Skill, e le modifiche al global template sono due messe in croce.

Io trovo la porzione indicata da voi, ma la pgina bianca proprio non la capisco.

 

Provo a fare come dici, ma puoi farmi uno screen di come viene?

Link to post
Share on other sites
  • 1 month later...

Per aggiungere le bandierine nella Barra utente nera in alto, aprire i template della skin, ed andare nel globalTemplate

 

appena dopo

					<if test="memberbox:|:$this->memberData['member_id']">						<div id='user_navigation' class='logged_in'>							<ul class='ipsList_inline right'>

 

aggiungere

 

<!-- AGGIUNTA  BANDIERINE START --><style type="text/css"> 								/* ICONE LINGUA STILE */								span.lingua.selezionato img{									  opacity: 1 !important;									}								span.lingua img{									  opacity: 0.5 !important;									}								</style>								<foreach loop="$footer_items['lang_chooser']['options'] as $lang">									<span class='lingua<if test="$lang['selected']"> selezionato</if>'>										<a href="{$this->lang->changeLanguageUrl( $lang['id'] )}"><if test="$lang['id'] == 1"><img alt="English" title="English" src="http://i48.tinypic.com/2822hcj.jpg">  </if><if test="$lang['id'] == 23"><img alt="Italiano" title="Italiano" src="http://i49.tinypic.com/rw0zyd.jpg">  </if></a>									</span>								</foreach><!-- AGGIUNTA  BANDIERINE END -->

 

come vedete le immagini sono hostate su tinypic, quindi non dovete fare nessun upload

post-1-0-64384300-1360425685_thumb.jpg

  • Like 1
Link to post
Share on other sites
danielegenova

al posto delle bandierine è ovviamente possibile inserire anche solo del semplice testo

<li>testo</li>

 

Funziona ma il testo si vede SOLO quando si è loggati

Link to post
Share on other sites

controlla che non è posizionato all'interno di un <if...>...<if/>

 

posta la porzione di codice, anche qualcosa in più, per capire meglio.

Link to post
Share on other sites
danielegenova

controlla che non è posizionato all'interno di un <if...>...<if/>

 

posta la porzione di codice, anche qualcosa in più, per capire meglio.

 

 

 

 

<li class='active'>                                    <a href="{parse url="app=core&module=reports&do=index" base="public"}" title='{$this->lang->words['view_reports']}'>{$this->memberData['_cache']['report_num']} {$this->lang->words['report_member_bar']}</a>                                </li>                            </if>                        </ul>                    </if>                    <if test="memberbox:|:$this->memberData['member_id']">                        <div id='user_navigation' class='logged_in'>                            <ul class='ipsList_inline right'><li>Benvenuto su MacVillage, registrati o accedi tramite FaceBook o Twitter</li>                                <if test="showInboxNotify:|:! ( ! $this->memberData['member_id'] && $this->settings['force_login'] ) && !($this->settings['board_offline'] && !$this->memberData['g_access_offline'])">                                    <if test="messengerlink:|:$this->memberData['g_use_pm'] AND $this->memberData['members_disable_pm'] == 0"> 
Edited by danielegenova
Link to post
Share on other sites
Umberto Castagna

Ma se vuoi aggiungere un messaggio di benvenuto, perchè non dai un'occhiata QUI ?? ti personalizzi come vuoi i parametri e via

Link to post
Share on other sites

li devi aggiungere ANCHE prima di :

 

 

<li>									<span class='services'>										<if test="limFacebook:|:IPSLib::loginMethod_enabled('facebook')">											<a href='{parse url="app=core&module=global&section=login&serviceClick=facebook" base="public"}'>{parse replacement="lim_facebook"}</a>										</if>										<if test="limTwitter:|:IPSLib::loginMethod_enabled('twitter')">											<a href='{parse url="app=core&module=global&section=login&serviceClick=twitter" base="public"}'>{parse replacement="lim_twitter"}</a>										</if>										<if test="limWindows:|:IPSLib::loginMethod_enabled('live')">											<a href='{parse url="app=core&module=global&section=login&do=process&use_live=1&auth_key={$this->member->form_hash}" base="public"}'>{parse replacement="lim_windows"}</a>										</if>

che si trova poco sotto

Link to post
Share on other sites
danielegenova

Ma se vuoi aggiungere un messaggio di benvenuto, perchè non dai un'occhiata QUI ?? ti personalizzi come vuoi i parametri e via

 

Forse perchè non ne ero a conoscenza? Grazie

li devi aggiungere ANCHE prima di :

 

 

<li>									<span class='services'>										<if test="limFacebook:|:IPSLib::loginMethod_enabled('facebook')">											<a href='{parse url="app=core&module=global&section=login&serviceClick=facebook" base="public"}'>{parse replacement="lim_facebook"}</a>										</if>										<if test="limTwitter:|:IPSLib::loginMethod_enabled('twitter')">											<a href='{parse url="app=core&module=global&section=login&serviceClick=twitter" base="public"}'>{parse replacement="lim_twitter"}</a>										</if>										<if test="limWindows:|:IPSLib::loginMethod_enabled('live')">											<a href='{parse url="app=core&module=global&section=login&do=process&use_live=1&auth_key={$this->member->form_hash}" base="public"}'>{parse replacement="lim_windows"}</a>										</if>

che si trova poco sotto

 

Funziona! Grazie, gentilissimo come sempre  ;)

Link to post
Share on other sites
  • 11 months later...

È possibile anche automatizzare il sistema, attraverso la cache dei linguaggi installati.

<foreach loop="$this->cache->getCache( 'lang_data' ) as $lang">...class="lingua right<if test="intval($this->member->language_id) == intval($lang['lang_id'])"> selected</if>"</foreach>
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Pad
      By Pad
      Ormai dal 2015 gestisco un portale che si basa su Wordpress e IPBoard. Il forum è utilizzato e la community abbastanza attiva. 
      In questo momento sono alla ricerca di un professionista che sia conoscitore di IPB e delle capacità delle varie App di sistema, con l'obiettivo di dare una rinnovata al sito e per progettare insieme alcune caratteristiche che ritengo siano chiave.
      Qualcuno si occupa di queste attività? Avete persone da consigliarmi?
      Grazie!
    • BomAle
      By BomAle
      Ogni sviluppatore di Invision Power Board per sfruttare il sistema di aggiornamento interno della piattaforma deve realizzare uno script per permettere ai clienti di controllare nuove versioni del plugin.
       
      Per permettere allo sviluppatore ciò il team IPS ha predisposto, dalla 3.1.x, il metodo $_GET.
       
      Il codice
      /* PATH (IPS_ROOT_PATH, DOC_IPS_ROOT_PATH) */define('MY_IPB_LOCATION', '/home/****/public_html/forum/');require_once( MY_IPB_LOCATION . '/initdata.php' );require_once( MY_IPB_LOCATION . CP_DIRECTORY . '/sources/base/ipsRegistry.php' );$registry = ipsRegistry::instance();$registry->init();/******* INIZIO CLASSE *******//** * Class versionCheck for IPB Hooks & Apps * @version 1.0.0 * @author Amged Osman * @link http://amgedosman.com/ * @date 11:19 PM Friday, December 6, 2013 */ class versionCheck{ private $ipb30x = array ( '30001', '30003','30004', '30005', '30008', '30009', '30010', '30011', '30012'); private $ipb31x = array ( '31000','31003', '31004', '31005', '31006','31007'); private $ipb32x = array ( '32000', '32001', '32002', '32003', '32004', '32005', '32006', '32007'); private $ipb33x = array ( '33000','33007', '33009', '33010', '33012', '33013', '33014', '33015', '33016'); private $ipb34x = array ( '34000', '34005', '34007', '34008', '34009', '34010', '34011', '34012' ); public $TRUEorFALSE = array (true => 1, false => 0); public $theReturn = true; public $debug = 0; public $TRUEorFALSE_debug = array (true => 'Update Available', false => "You're up-to-date"); /** * @access public * autoRun for the class & switch */ public function autoRun(){ $this->boardVersion = isset($_GET['boardVersion']) ? $_GET['boardVersion'] : 00000; $this->version = isset($_GET['version']) ? $_GET['version'] : 00000; $this->fileId = isset($_GET['fileid']) ? $_GET['fileid'] : 000; switch ($this->fileId){ case '000': default: $this->showNone(); break; case '6766': $this->pmod_all(); break; } return $this->results; $this->_returnResults(); exit(); } /** * @access protected * later on this will return the public functions return to the index.php */ protected function _returnResults(){ return $this->results; } /** * @return (advanced) HTML & the update status * @access public */ public function showNone(){ $this->theReturn = false; $html = "No Id Passed"; $this->results = array ('html' => $html, 'return' => $this->theReturn ); } /** * @return (advanced) HTML & the update status * @access public */ public function pmod_all(){ $latestFileVersion = 20001; if (in_array($this->boardVersion , $this->ipb30x) ){ $latestFileVersion = 10000; } if (in_array($this->boardVersion , $this->ipb31x) ){ $latestFileVersion = 10000; } if ($latestFileVersion <= $this->version ){ $this->theReturn = false; } $html = $this->TRUEorFALSE[$this->theReturn]; if ($this->debug === 1){ $html = "Latest File: {$latestFileVersion}<br />Current Version: {$this->version}<br />{$this->TRUEorFALSE_debug[$this->theReturn]}"; } $this->results = array ('html' => $html, 'return' => $this->theReturn ); } }/******* FINE CLASSE *******/$versionCheckClass = new versionCheck();$versionCheckClass->debug = 0;$results = $versionCheckClass->autoRun();echo $results['html'];return $results['return']; Funzionamento
      La richiesta passa nello script chiamando la classe versionCheck e stampa a video 1 se c'è un aggiornamento e 0 se non presente.
       
      Configurazione
      Per inserire un nuovo elemento nel processo bisogna creare un "case" nella funzione autoRun esempio
      case '6766': $this->pmod_all(); break; quindi bisogna creare un metodo/funzione esempio
      public function pmod_all(){ $latestFileVersion = 20001; if (in_array($this->boardVersion , $this->ipb30x) ){ $latestFileVersion = 10000; } if (in_array($this->boardVersion , $this->ipb31x) ){ $latestFileVersion = 10000; } if ($latestFileVersion <= $this->version ){ $this->theReturn = false; } $html = $this->TRUEorFALSE[$this->theReturn]; if ($this->debug === 1){ $html = "Latest File: {$latestFileVersion}<br />Current Version: {$this->version}<br />{$this->TRUEorFALSE_debug[$this->theReturn]}"; } $this->results = array ('html' => $html, 'return' => $this->theReturn ); } È possibile effettuare un debug (controllo delle variabili passate dall'url) cambiando il valore a 1, abilitatelo per un analisi e reimpostate 0 quanto possibile...
      $versionCheckClass->debug = 1;  e ricordatevi di specificare i parametri di get boardVersion e version esempio
      http://vostrosito.it/check.php?&boardVersion=34000&version=20000&fileid=6766 Utilizzo
      Salvate il codice in una pagina di ip.content o creando un file nell'ftp, nel mio caso check.php, in una directory a piacere...
      Recatevi presso le impostazioni della hook creata e aggiungete in "Update URL" la pagina web esempio
      http://www.invisionita.it/bomale/hook/check.php?&fileid=6766 ricordandovi di specificare il "fileid" passato nello switch di autoRun()
      infine per controllare gli aggiornamenti delle hook seguite il link di seguito...
      http://vostrosito.it/admin/index.php?&app=core&module=applications&section=hooks&do=hooks_overview&checkUpdates=1 Ringrazio amgedosman per l'articolo originale in inglese, e per le istruzioni passo passo di Michael (2011)
    • najaru
      By najaru
      Per chi avesse una skin modificata, nella quale l'applicazione di DawPi per le icone dei forum personalizzate non funziona, metto questo codice, che nel boardindextemplate permette di visualizzare delle icone personalizzate per i forum
       
      <!-- MODIFICA CUSTOM ICONS LETTE E NON INIZIO --> <tr class='<if test="$this->settings['glareRemoveFade']=='0'">tableFade</if> <if test="hasUnreadClass:|:$forum_data['_has_unread']">unread</if>'> <td class='col_c_icon'> <if test="hasUnread:|:$forum_data['_has_unread']"> <a id='forum_img_{$forum_data['id']}' href="{parse url="app=forums&module=forums&section=markasread&marktype=forum&forumid={$forum_data['id']}&returntoforumid={$this->request['f']}&i=1" base="public"}" data-tooltip="{$this->lang->words['bi_markread']}" class='forum_marker'><img src='{$this->settings['img_url']}/f_custom_{$forum_data['id']}.png' /></a> <else /> <a id='forum_img_{$forum_data['id']}' href="{parse url="app=forums&module=forums&section=markasread&marktype=forum&forumid={$forum_data['id']}&returntoforumid={$this->request['f']}&i=1" base="public"}" data-tooltip="{$this->lang->words['bi_markread']}" class='forum_marker'><img src='{$this->settings['img_url']}/f_custom_{$forum_data['id']}_read.png' /></a> </if><!-- MODIFICA CUSTOM ICONS LETTE E NON FINE --> 
      bisogna ovviamente caricare nella cartella della skin due icone per ciascun forum, una per il forum non letto con nome f_custom_IDdelfroum.png e per il forum letto f_custom_IDdelfroum_read.png


    • BomAle
      By BomAle
      Alcuni sono sicuro troveranno utile questa guida, praticamente sfrutteremo le risorse di invisionpower per costruire la nostra "lista rapida" dei forum.
       
      Quindi il necessario è:
      <php>//se non funziona provate a sostituire "class_forums" con "getClass('class_forums')"$this->forum_lista = $this->registry->class_forums->forumsForumJump( 1, 0, 1, $current, true );</php>{$this->registry->output->getTemplate('global')->forum_jump($this->forum_lista)}forumsForumJump costituisce una funzione che andrà ad inserire in $this->forum_lista una stringa di voci che corrispondono ai forum presenti, escludendo in questo caso quelli di tipo "redirect".
       
      in seguito, all'interno del template, possiamo utilizzare la stringa per costruire il nostro menù rapido utilizzando il forum_jump presente nel gruppo globale.
       
      il risultato:
       
      ATTENZIONE: La classe richiesta "class_forums" deve essere inizializzata quindi se non funziona bisogna aggiungere un ulteriore passaggio in cima del codice < php >, ma come detto qui non occorre...
      if ( ! $this->registry->isClassLoaded('class_forums' ) ){ $classToLoad = IPSLib::loadLibrary( IPSLib::getAppDir( 'forums' ) . "/sources/classes/forums/class_forums.php", 'class_forums', 'forums' ); $this->registry->setClass( 'class_forums', new $classToLoad( $this->registry ) ); $this->registry->getClass('class_forums')->strip_invisible = 1; $this->registry->getClass('class_forums')->forumsInit();}
    • najaru
      By najaru
      ecco un codice che si può utilizzare per visualizzare i topic senza risposte

      <br /><div class='general_box'> <h3><img src="http://www.yoursite.com/forums/public/style_images/greylust/comment_new.png" alt="" /> {$title}</h3> <ul class='hfeed'> <if test="is_array( $records ) && count( $records )"> {parse striping="feed_striping" classes="row1,row2 altrow"} <foreach loop="$records as $r"> <if test="$r['topic_posts'] == 0"> <li class='hentry {parse striping="feed_striping"}'><b><a href='{$r['url']}' rel='bookmark' title='{$r['title']}'>{$r['title']}</a></b>  Posted  <span><abbr class="published" title="{parse expression="date( 'c', $r['date'] )"}">{parse date="$r['date']" format="short"}</abbr></span> </li> </if> </foreach> </if> </ul></div>
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. to insert a cookie message.