PDA

View Full Version : مشکل در اضافه کردن js به قالب جوملا 2.5



مهدی مانیان
جمعه 26 اسفند 1390, 14:03 عصر
با سلام.

من یک قالب جوملا دارم.

حالا این قالب که ltr هست را من برایش یک css نوشتم که rtl شود. این کد را که در فایل php قالب می گذارم درست می شود:


<?php if($this->direction == 'rtl') : ?>
<link href="<?php echo $this->baseurl ;?>/templates/<?php echo $this->template ;?>/css/template_rtl.css" rel="stylesheet" type="text/css" />
<?php endif; ?>

تا اینجا مشکلی نیست. و سایت در زبان فارسی rtl هست و در انگلیسی ltr.

حالا منو یک مشکل دارد و من یک فایل جاوا را برای حل این مشکل rtl کردم و حالا من می خواهم این فایل را هم هنگام rtl شدن لود کنم.(این فایل در php قالب برای ltr لود شده است ولی من حالا می خواهم یکی دیگه را که rtl کردم را بگم وقتی که سایت rtl شد به جای اون نمایش دهد.)

من این کد را که به جای کد قبلی می گذارم جواب نمی دهد:


<?php if($this->direction == 'rtl') : ?>
<link href="<?php echo $this->baseurl ;?>/templates/<?php echo $this->template ;?>/css/template_rtl.css" rel="stylesheet" type="text/css" />
<link href="<?php echo $this->baseurl ;?>/templates/<?php echo $this->template ;?>/zt_menus/zt_megamenu/menu.rtl.js" type="text/javascript" />
<?php endif; ?>


این کدی که برای اون فایل js نوشته شده است:(برای ltr)


$document->addScript(JURI::base().'templates/'.$this->_template.'/zt_menus/'.'zt_'.$this->_name.'menu/'.'zt.'.$this->_name.'menu.js');

این کد را هم تست کردم فایده نداشت:


<?php if($this->direction == 'rtl') : ?>
<link href="<?php echo $this->baseurl ;?>/templates/<?php echo $this->template ;?>/css/template_rtl.css" rel="stylesheet" type="text/css" />
$document->addScript(JURI::base().'templates/'.$this->_template.'/zt_menus/'.'zt_'.$this->_name.'menu/'.'zt.'.$this->_name.'menu.rtl.js');
<?php endif; ?>


چه کار کنم تا نمایش دهد؟

نکته ای که هست این که این سایت دو زبانه هست و من نمی تونم بگم دو قالب جدا باشد.(با استفاده از یک جوملا نسخه 2.5)

من باید بگم که وقتی سایت rtl شد این فایل css و این فایل جاوا را نمایش دهد.


با تشکر.

Reza1607
جمعه 26 اسفند 1390, 14:09 عصر
دوست عزيز براي لود شدن فايل هاي جاوا اسكريپت بايد از تگ script استفاده كنيد نه از تگ link

مهدی مانیان
شنبه 27 اسفند 1390, 12:28 عصر
سلام.

من این کارو کردم ولی جواب نداد. به این صورت:


<?php
if($this->direction == 'rtl') {
'<link href="<?php echo $this->baseurl ;?>/templates/<?php echo $this->template ;?>/css/template_rtl.css" rel="stylesheet" type="text/css" />';
'<link href="<?php echo $this->baseurl ;?>/templates/<?php echo $this->template ;?>/css/typo_rtl.css" rel="stylesheet" type="text/css" />';
'<script href="<?php echo $this->baseurl ;?>/templates/<?php echo $this->template ;?>/zt_menus/zt_megamenu/zt.megamenu.rtl.js" type="text/javascript" />' ;
} else {
'<script href="<?php echo $this->baseurl ;?>/templates/<?php echo $this->template ;?>/zt_menus/zt_megamenu/zt.megamenu.js" type="text/javascript" />' ;
}
?>

من به این صورت هم که تعریف می کنم بازهم اجرا نمی شود:


<?php if($this->direction == 'rtl') : ?>
'<link href="<?php echo $this->baseurl ;?>/templates/<?php echo $this->template ;?>/css/template_rtl.css" rel="stylesheet" type="text/css" />';
'<script href="<?php echo $this->baseurl ;?>/templates/<?php echo $this->template ;?>/zt_menus/zt_megamenu/zt.megamenu.rtl.js" type="text/javascript" />' ;
<?php endif; ?>


این کد مشکلی دارد؟ الان نه css و نه js لود میشود.
من می خواهم بگم به قالب که وقتی سایت rtl بود این css و این js لود شود و در غیر این صورت (else) این js را لود کند.
چه طوری این کارو بکنم(قالب جوملا 2.5) اصلا این ها ربطی به جوملا دارد؟

یک سوال دیگه:
من چطوری می تونم یک متغیری که تعریف کردم را بگم که وقتی rtl بود اجرا شود و وقتی نبود اجرا نشود؟(یا به جایش یک متغیر دیگه اجرا شود؟)

با تشکر.

مهدی مانیان
شنبه 27 اسفند 1390, 15:16 عصر
خیلی ممنون از دوستان.

حل شد با استفاده از این کد:


if($this->direction == 'rtl') {
$ztrtl = 'rtl';
} else {
$ztrtl = 'ltr';
}