PDA

Zobacz pełną wersję : Zmienny modul zalezny od jezyka Joom!Fish



gab.skim
30-06-2006, 12:15
Probuje zmontowac modul pod Joomla, ale nie mam wielkiego doswiadczenia w PHP. Chodzi mi o modul z wiazany z Joom!Fish, ktory wyswietla rozne grafiki w zaleznosci od wersji jezykowej, probowalem skorzystac ze zmiennej w url do artykulu np: /index.php?option=com_joomap&Itemid=20&lang=gr.
Stworzylem cos jak ponizej ale nie chula.




defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
?>
<?php
if($lang==en)
{
echo '<table cellpadding="0" cellspacing="0" class="moduletable">
<tr>
<td>
<a href="en.php"><img width="255" height="332" alt="Sklep - wyposażenie" src="/wireland/images/stories/wireland/glowna_sklep.jpg" /></a><img width="266" height="332" src="/wireland/images/stories/wireland/glowna_reklama.jpg" alt="" /><img width="259" height="332" src="/wireland/images/stories/wireland/glowna_dom.jpg" alt="" /> </td>

</tr>
</table>';
}
elseif($lang==gr)
{
echo '<table cellpadding="0" cellspacing="0" class="moduletable">
<tr>
<td>
<a href="gr.php"><img width="255" height="332" alt="Sklep - wyposażenie" src="/wireland/images/stories/wireland/glowna_sklep.jpg" /></a><img width="266" height="332" src="/wireland/images/stories/wireland/glowna_reklama.jpg" alt="" /><img width="259" height="332" src="/wireland/images/stories/wireland/glowna_dom.jpg" alt="" /> </td>

</tr>
</table>';
}
else
{
echo '<table cellpadding="0" cellspacing="0" class="moduletable">
<tr>
<td>
<a href="index.php"><img width="255" height="332" alt="Sklep - wyposażenie" src="/wireland/images/stories/wireland/glowna_sklep.jpg" /></a><img width="266" height="332" src="/wireland/images/stories/wireland/glowna_reklama.jpg" alt="" /><img width="259" height="332" src="/wireland/images/stories/wireland/glowna_dom.jpg" alt="" /> </td>

</tr>
</table>';
}
?>


z gory dzieki za pomoc

pozdrawiam

Kuba

zwiastun
30-06-2006, 16:42
Poprzerzucaj forum na mambopl.net - z tego ca pamiętam, chyba tam była podnoszona kwestia przy mambelfishu, a może art jest?

Rybik
30-06-2006, 19:28
<!-- SEKCJA WSTEPNA -->
<?php
// slabe zabezpieczenie
if ($_SERVER['HTTP_REFERER'] =='') die( 'Direct Access to this location is not allowed.' );
// kolejne slabe zabezpieczenie
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
//pobranie jezyka z cookie
//wewnatrz rozszerzen Joomla mozna ta linie pominac, stosowac przy iframe
$lang = $_REQUEST['mbfcookie']['lang'];
//montowanie nazwy pliku w zaleznosci od jezyka, np pl.php
$my_file = sprintf("%s%s%s","",$lang,".php");
// montowanie sciezki powtarzalnej zeby odchudzic pozniej kod
$my_path = '/wireland/images/stories/wireland/';
?>


<!-- PRZYKLADOWA INSTRUKCJA WARUNKOWA PROSTA-->
<?php if $lang = 'en' {
echo 'English is fun';
echo 'Be brave !';
}?>

<!-- PRZYKLADOWA INSTRUKCJA WARUNKOWA ZMIESZANA Z HTML-->
<table>
<tr>
<?php if $kolumny = 2 { ?>
<td>Komorka jeden</td>
<td>Komorka dwa</td>
<?php } else {?>
<td>Komorka podwojna</td>
<?php } ?>
</tr>
</table>


<!-- TWOJEGO MODULU CIAG DALSZY -->
<table cellpadding="0" cellspacing="0" class="moduletable">
<tr>
<td>
<a href="<?php echo $my_file;?>">
<img width="255" height="332" src="<?php echo $my_path;>glowna_sklep.jpg" alt="Sklep - wyposażenie" />
</a>
<img width="266" height="332" src="<?php echo $my_path;?>glowna_reklama.jpg" alt="" />
<img width="259" height="332" src="<?php echo $my_path;?>glowna_dom.jpg" alt="" />
</td>
</tr>
</table>
1. Html w plikach php jest interpretowany z marszu wiec nie trzeba kazdego taga htmlowego ubierac w echo, a wrecz na odwrot w pliku php dac kodzik htmlowy ze wstawkami php
2. W uzasadnionych wypadkach, jak np pliki php pokazywane w iframe nie mozna korzystac z $lang tylko pobrac ja ze zmiennej srodowiskowej ale na potrzeby modulow Joomla $lang powinno wystarczyc - to zmienna ktora wypluwa fish i powinna w obrebie wszystkich rozszerzen Joomla byc widoczna
3. nazwa jezyka zwracana przez $lang albo $_REQUEST['mbfcookie']['lang'] jest lancuchem znakow, zatem porownuje sie ja -> if $lang = 'en'
4. Zamiast pisac ifa na kazdy jezyk tylko w celu wstawienia linka do odpowiedniego pliku, uzylem zmiennej zawierajacej nazwe pliku aktualizowana przy kazdym przelaczeniu

Pisalem to tak z palca wiec nie daje reki ze bedzie hulac ;)

stone
30-06-2006, 21:45
ewentualnie zmień w kodzie który podałeś w pierwszym poście


$lang==en
na


$_GET['lang'] == 'en'

gab.skim
03-07-2006, 10:53
Ok smiga z $_GET
Wielkie dzieki.

eMCe
09-07-2008, 16:22
Co jest źle? Joomla 1.0.15 oraz Joomfish 1.8.2




<?php if($_GET['lang'] == 'en') echo {'


<tr>
<td width="847" height="71" align="top" valign="middle" colspan="2" bgcolor="#000000">

<center>
<div id="ZamiastFlash" style="text-align:center; color:#ffffff;">
</div>
<script type="text/javascript">
// <![CDATA[

var so = new SWFObject("templates/proxy_trade_main/flash/menuPL.swf", "Menu ENG", "847", "71", "8", "#0d0d0d");
so.addVariable("flashVarText", "this is passed in via FlashVars for example only");
so.addParam("wmode", "opaque");
so.addParam("scale", "noscale");
so.write("ZamiastFlash");
// ]]>
</script>
</center>

</td>
</tr>;

'}

else{echo'

<tr>
<td width="847" height="71" align="top" valign="middle" colspan="2" bgcolor="#000000">

<center>
<div id="ZamiastFlash" style="text-align:center; color:#ffffff;">
</div>
<script type="text/javascript">
// <![CDATA[

var so = new SWFObject("templates/proxy_trade_main/flash/menuENG.swf", "Menu PL", "847", "71", "8", "#0d0d0d");
so.addVariable("flashVarText", "this is passed in via FlashVars for example only");
so.addParam("wmode", "opaque");
so.addParam("scale", "noscale");
so.write("ZamiastFlash");
// ]]>
</script>
</center>

</td>
</tr>;



' } ?>

eMCe
09-07-2008, 16:41
Okej, obeszłam problem, zdefiniowałam to jako moduł, potem w Joomfish sobie przetłumaczyłam i wszystko hula :)

Qbik
07-09-2012, 14:32
Ok odkopie temat

na joomli 1.5 mam moduł który wyświetla losowo flasha 1 z 3 chciałbym żeby wrzucał przetłumaczoną wersję

chciałem to zrobić w taki sposób, ale coś namieszałem


<?php

// no direct access
defined('_JEXEC') or die('Restricted access');
if $_GET['lang'] == 'pl'
{
$lista = array('elzanowski01.swf', 'cherka01.swf', '04ver8finalPL.swf');
}
elseif $_GET['lang'] == 'en'
{
$lista = array('elzanowski01en.swf', 'cherka01en.swf', '04ver8finalEN.swf');
}

$wybrany = $lista[array_rand($lista)];
?>

<div>
<object width="985" height="283" type="application/x-shockwave-flash" data="/images/flash/<?php echo $wybrany;?>">
<param name="movie" value="/images/flash/<?php echo $wybrany;?>" />
</object>
</div>

Qbik
07-09-2012, 17:08
ok zrobiłem

<?php

if ($_GET['lang'] == 'fr')
{
$lista = array('elzanowski01fra.swf', 'cherka01fra.swf', '04ver8finalFRA.swf');
}
elseif ($_GET['lang'] == 'en')
{
$lista = array('elzanowski01en.swf', 'cherka01en.swf', '04ver8finalEN.swf');
}
else
{
$lista = array('elzanowski01.swf', 'cherka01.swf', '04ver8finalPL.swf');
}

$wybrany = $lista[array_rand($lista)];
?>
<div>
<object width="985" height="283" type="application/x-shockwave-flash" data="/images/flash/<?php echo $wybrany;?>">
<param name="movie" value="/images/flash/<?php echo $wybrany;?>" />
</object>
</div>
jest tylko jedne problem jak jestem np na jez angielskim i kliknę home to pokazuje mi polską wersję flasha :(


można to jakoś poprawić?
po kliknięciu Home wczytuje adres bez rozszerzenia lang=