TP-Docs
HTML5 Icon HTML5 Icon HTML5 Icon
TP on Social Media

Recent

Welcome to TinyPortal. Please login or sign up.

Members
  • Total Members: 3,963
  • Latest: BiZaJe
Stats
  • Total Posts: 195,917
  • Total Topics: 21,308
  • Online today: 629
  • Online ever: 8,223 (February 19, 2025, 04:35:35 AM)
Users Online
  • Users: 0
  • Guests: 466
  • Total: 466

Conditional Block (probably the most useful block in the universe)

Started by akulion, February 01, 2007, 03:10:58 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.


TimUSA

Looking at this code:
http://www.tinyportal.net/index.php?topic=12898.msg107662#msg107662

How would i change this so that it would be based on user selected language rather than user groups?

Thanks Tim

jacortina

$user_info['language'] will hold the selected language for the user.

But you'll have to figure out the values it could be. English, for example, is "english" (lowercase). So to test for any given language, you might need to do some testing first, like adding a: echo $user_info['language'], '< br />';line to the code (make it conditional on being one that you DON'T recognize). Then you'll know what you have to add a check for.

TimUSA

When I use the following code, the menu isn't changing when I change languages in my profile???

global  $scripturl, $context, $user_info;

////////////////////////////////////////////////////
// ENGLISH MEMBERS
////////////////////////////////////////////////////
if (in_array(english, $user_info['language']) || $context['user'])
{
echo '
<b>Membership</b><br />
<font size="2">
<a href="'.$scripturl.'?page=74"> Memberlist</a><br />
<a href="'.$scripturl.'?page=69"> Membership Handbook</a><br />
<a href="'.$scripturl.'?page=70"> Racing Application</a><br />

<b>Racing</b><br />
<font size="2">
<a href="'.$scripturl.'?cat=14"> Rules</a><br />
<a href="'.$scripturl.'?page=44"> Password</a><br />
<a href="'.$scripturl.'?page=56"> Tournaments</a><br />
<a href="'.$scripturl.'?page=62"> Club Championship</a><br />

<b>Web Tools</b><br />
<font size="2">
<a href="'.$scripturl.'?action=forum"> Forum</a><br />
<a href="'.$scripturl.'?action=help"> Help</a><br />
<a href="'.$scripturl.'?action=search"> Search</a><br />
<a href="'.$scripturl.'?action=profile"> Profile</a><br />
<a href="'.$scripturl.'?action=pm"> Messages</a><br />
<a href="'.$scripturl.'?action=calendar"> Calendar</a><br />
<a href="'.$scripturl.'?action=tpmod;dl"> Download</a><br />
<a href="'.$scripturl.'?action=links"> Links</a><br />
<a href="'.$scripturl.'?action=gallery"> Gallery</a><br />
<a href="'.$scripturl.'?action=invite"> Invite</a><br />

<b>Articles</b><br />
<font size="2">
<a href="'.$scripturl.'?page=39"> Fleet Racing</a><br />
<a href="'.$scripturl.'?page=63"> Team Racing</a><br />
<a href="'.$scripturl.'?tpmod;sa=submitarticle"> Submit Article</a><br />
</font>';
}

////////////////////////////////////////////////////
// FRENCH MEMBERS
////////////////////////////////////////////////////
elseif (in_array(french, $user_info['language']) || $context['user'])
{
echo '
<b>Membre</b><br />
<font size="2">
<a href="'.$scripturl.'?page=74"> Liste De Membre</a><br />
<a href="'.$scripturl.'?page=69"> Manuel De Membre</a><br />
<a href="'.$scripturl.'?page=70"> Application</a><br />

<b>Emballage</b><br />
<font size="2">
<a href="'.$scripturl.'?cat=14"> Règles</a><br />
<a href="'.$scripturl.'?page=44"> Mot de passe</a><br />
<a href="'.$scripturl.'?page=56"> Tournois</a><br />
<a href="'.$scripturl.'?page=62"> Championnat De Club</a><br />

<b>Outils de Web</b><br />
<font size="2">
<a href="'.$scripturl.'?action=forum"> Forum</a><br />
<a href="'.$scripturl.'?action=help"> Aide</a><br />
<a href="'.$scripturl.'?action=search"> Recherche</a><br />
<a href="'.$scripturl.'?action=profile"> Profil</a><br />
<a href="'.$scripturl.'?action=pm"> Courrier</a><br />
<a href="'.$scripturl.'?action=calendar"> Calendrier</a><br />
<a href="'.$scripturl.'?action=tpmod;dl"> Téléchargement</a><br />
<a href="'.$scripturl.'?action=links"> Liens</a><br />
<a href="'.$scripturl.'?action=gallery"> Galerie</a><br />
<a href="'.$scripturl.'?action=invite"> Invitez</a><br />

<b>Articles en anglais</b><br />
<font size="2">
<a href="'.$scripturl.'?page=39"> Emballage De Flotte</a><br />
<a href="'.$scripturl.'?page=63"> Emballage D Équipe</a><br />
<a href="'.$scripturl.'?tpmod;sa=submitarticle"> Soumettez L Article</a><br />
</font>';
}

////////////////////////////////////////////////////
// ADMINS ONLY
////////////////////////////////////////////////////
if ($context['user']['is_admin']){
echo '
<b>Admin</b><br />
<font size="2">
<a href="'.$scripturl.'?action=admin"> Admin Panel</a><br />
</font><br />';
}

echo'</div>';

jacortina

Lines like these don't need to be THAT complex:

if (in_array(english, $user_info['language']) || $context['user'])

Simply try:
if ($user_info['language'] == 'english')

Note actual string value in the single quotes (double quotes would work, too), and the two equals used in equality tests.


TimUSA

This worked in an article, but when I put everything into a php block i get the following error:
QuoteParse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/vskayc/public_html/Sources/Load.php(1773) : eval()'d code(35) : eval()'d code on line 98

this is my code exactly as i have put into the php block:
global  $scripturl, $context, $user_info;

////////////////////////////////////////////////////
// ENGLISH MEMBERS
////////////////////////////////////////////////////
if ($user_info['language'] == 'english')
{
echo '
<b>Membership</b><br />
<font size="2">
<a href="'.$scripturl.'?page=74"> Memberlist</a><br />
<a href="'.$scripturl.'?page=69"> Membership Handbook</a><br />
<a href="'.$scripturl.'?page=70"> Racing Application</a><br />

<b>Racing</b><br />
<font size="2">
<a href="'.$scripturl.'?cat=14"> Rules</a><br />
<a href="'.$scripturl.'?page=44"> Password</a><br />
<a href="'.$scripturl.'?page=56"> Tournaments</a><br />
<a href="'.$scripturl.'?page=62"> Club Championship</a><br />

<b>Web Tools</b><br />
<font size="2">
<a href="'.$scripturl.'?action=forum"> Forum</a><br />
<a href="'.$scripturl.'?action=help"> Help</a><br />
<a href="'.$scripturl.'?action=search"> Search</a><br />
<a href="'.$scripturl.'?action=profile"> Profile</a><br />
<a href="'.$scripturl.'?action=pm"> Messages</a><br />
<a href="'.$scripturl.'?action=calendar"> Calendar</a><br />
<a href="'.$scripturl.'?action=tpmod;dl"> Download</a><br />
<a href="'.$scripturl.'?action=links"> Links</a><br />
<a href="'.$scripturl.'?action=gallery"> Gallery</a><br />
<a href="'.$scripturl.'?action=invite"> Invite</a><br />

<b>Articles</b><br />
<font size="2">
<a href="'.$scripturl.'?page=39"> Fleet Racing</a><br />
<a href="'.$scripturl.'?page=63"> Team Racing</a><br />
<a href="'.$scripturl.'?tpmod;sa=submitarticle"> Submit Article</a><br />
</font>';
}

////////////////////////////////////////////////////
// FRENCH MEMBERS
////////////////////////////////////////////////////
if ($user_info['language'] == 'french')
{
echo '
<b>Membre</b><br />
<font size="2">
<a href="'.$scripturl.'?page=74"> Liste De Membre</a><br />
<a href="'.$scripturl.'?page=69"> Manuel De Membre</a><br />
<a href="'.$scripturl.'?page=70"> Application</a><br />

<b>Emballage</b><br />
<font size="2">
<a href="'.$scripturl.'?cat=14"> Règles</a><br />
<a href="'.$scripturl.'?page=44"> Mot de passe</a><br />
<a href="'.$scripturl.'?page=56"> Tournois</a><br />
<a href="'.$scripturl.'?page=62"> Championnat De Club</a><br />

<b>Outils de Web</b><br />
<font size="2">
<a href="'.$scripturl.'?action=forum"> Forum</a><br />
<a href="'.$scripturl.'?action=help"> Aide</a><br />
<a href="'.$scripturl.'?action=search"> Recherche</a><br />
<a href="'.$scripturl.'?action=profile"> Profil</a><br />
<a href="'.$scripturl.'?action=pm"> Courrier</a><br />
<a href="'.$scripturl.'?action=calendar"> Calendrier</a><br />
<a href="'.$scripturl.'?action=tpmod;dl"> Téléchargement</a><br />
<a href="'.$scripturl.'?action=links"> Liens</a><br />
<a href="'.$scripturl.'?action=gallery"> Galerie</a><br />
<a href="'.$scripturl.'?action=invite"> Invitez</a><br />

<b>Articles en anglais</b><br />
<font size="2">
<a href="'.$scripturl.'?page=39"> Emballage De Flotte</a><br />
<a href="'.$scripturl.'?page=63"> Emballage D Équipe</a><br />
<a href="'.$scripturl.'?tpmod;sa=submitarticle"> Soumettez L Article</a><br />
</font>';
}

////////////////////////////////////////////////////
// ITALIAN MEMBERS
////////////////////////////////////////////////////
if ($user_info['language'] == 'italian')
{
echo '
<b>Membri</b><br />
<font size="2">
<a href="'.$scripturl.'?page=74"> Lista Del Membro</a><br />
<a href="'.$scripturl.'?page=69"> Manuale Del Membro</a><br />
<a href="'.$scripturl.'?page=70"> Applicazione</a><br />

<b>Concorrenza</b><br />
<font size="2">
<a href="'.$scripturl.'?cat=14"> Regole</a><br />
<a href="'.$scripturl.'?page=44"> Parola d'accesso</a><br />
<a href="'.$scripturl.'?page=56"> Tornei</a><br />
<a href="'.$scripturl.'?page=62"> Campionato Del Randello</a><br />

<b>Attrezzi Di Web site</b><br />
<font size="2">
<a href="'.$scripturl.'?action=forum"> Discussione</a><br />
<a href="'.$scripturl.'?action=help"> Aiuto</a><br />
<a href="'.$scripturl.'?action=search"> Ricerca</a><br />
<a href="'.$scripturl.'?action=profile"> Profilo</a><br />
<a href="'.$scripturl.'?action=pm"> Posta</a><br />
<a href="'.$scripturl.'?action=calendar"> Calendario</a><br />
<a href="'.$scripturl.'?action=tpmod;dl"> Trasferimento</a><br />
<a href="'.$scripturl.'?action=links"> CollegamentiLiens</a><br />
<a href="'.$scripturl.'?action=gallery"> Galleria</a><br />
<a href="'.$scripturl.'?action=invite"> Inviti</a><br />

<b>Articoli in inglese</b><br />
<font size="2">
<a href="'.$scripturl.'?page=39"> Corsa Della Flotta</a><br />
<a href="'.$scripturl.'?page=63"> Corsa Della Squadra</a><br />
<a href="'.$scripturl.'?tpmod;sa=submitarticle"> Presenti L'Articolo</a><br />
</font>';
}

////////////////////////////////////////////////////
// ADMINS ONLY
////////////////////////////////////////////////////
if ($context['user']['is_admin']){
echo '
<b>Admin</b><br />
<font size="2">
<a href="'.$scripturl.'?action=admin"> Admin Panel</a><br />
</font><br />';
}

echo'</div>';


I also tried tagging it with:
<?php

?>

but with no avail:(

jacortina

This is the kind of thing which will give you a "gotcha", no matter how long you code.

I'll bet you any amount that you DIDN'T use the Italian block in the article. Why?

These lines are the killers:
<a href="'.$scripturl.'?page=44"> Parola d'accesso</a><br />
<a href="'.$scripturl.'?tpmod;sa=submitarticle"> Presenti L'Articolo</a><br />

See it? The extra single-quote / apostrophe? It has to be 'escaped'. Any others like this have to be escaped (possessive apostrophe-s will get you, too: Mr. Smith's ...):
<a href="'.$scripturl.'?page=44"> Parola d\'accesso</a><br />
<a href="'.$scripturl.'?tpmod;sa=submitarticle"> Presenti L\'Articolo</a><br />

TimUSA

Yep and I would venture to say that even as a newbie, I knew better. Thanks

wilsy

Hi all,

Could this be used to display only when on a certain page?

Eg.

?action=profile;u=', $context['user']['id'] ,';sa=pictures;add

Regards,

Wilsy.

This website is proudly hosted on Crocweb Cloud Website Hosting.