مسعود

ایراد در کد php تغییر اندازه موقعیت ها

6 پست در این موضوع

سلام

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

<!-- test2 --> 
		<?php if ($this->countmodules('right')) { $x= "1";}?>
           <?php if ($this->countmodules('left')) { $y= "2";}?>
		<?php $z=$x+$y;?>

		<?php if ($z="3") {?>
			<div id="contents" style="width: 577px;"> <jdoc:include type="modules" name="contents" style="xhtml" /> <jdoc:include type="component" /> </div>
		<?php } elseif ($z="1") { ?>
			<div id="contents" style="width: 787px;float: right;"> <jdoc:include type="modules" name="contents" style="xhtml" /> <jdoc:include type="component" /> </div>
           <?php } elseif ($z="2") { ?>
			<div id="contents" style="width: 787px;float: right;"> <jdoc:include type="modules" name="contents" style="xhtml" /> <jdoc:include type="component" /> </div>
		<?php } else { ?>
           	<div id="contents" style="width: 1024px;"> <jdoc:include type="modules" name="contents" style="xhtml" /> <jdoc:include type="component" /> </div>
		<?php } ?>
<!-- end test2 -->

هیچ تغییری ایجاد نمی کنه

Share this post


Link to post
Share on other sites
آموزش ووکامرس قالب جوملا قالب وردپرس قالب رایگان وردپرس قالب رایگان جوملا هاست نامحدود هاست جوملا هاست لاراول هاست وردپرس هاست ارزان هاست ربات تلگرام خرید دامنه آموزش ساخت ربات تلگرام با php آموزش لاراول آموزش cPanel آموزش php آموزش فرم ساز RSform آموزش ساخت ربات جذب ممبر آموزش ساخت ربات دوستیابی آموزش ساخت ربات فروشگاهی برای ووکامرس آموزش طراحی سایت داینامیک با php آموزش بخش پشتیبانی با rsticket

این متغیر ها چیه از کجا اومده؟

[color=#000000][color=#007700][/color][color=#0000BB]$x[/color][/color]
[color=#000000][color=#0000BB]$y[/color][color=#007700][/color][/color]
[color=#000000][color=#0000BB]$z[/color][color=#007700][/color][/color]

بعد شما چند تا موقعیت برای component داری درست میکنی؟!

Share this post


Link to post
Share on other sites

سه تا موقعیت right و left و contents دارم. می خوام با بودن یا نبودن موقعیت های راست و چپ ، اندازه موقعیت contents تغییر کنه.

$x اگر موقعیت right وجو داشته باشه برابر یک میشه.

$y اگر موقعیت left وجو داشته باشه برابر دو میشه.

$z حاصل جمع x و y هست.

بر اساس مقدار Z که عددی بین 0 تا 3 هست ، عرض موقعیت contents تعیین میشه :

0 یعنی موقعیت راست و چپ وجود ندارن بنابراین عرض موقعیت contents باید تمام صفحه باشه

1 یعنی فقط موقعیت راست وجو داره بنابراین عرض موقعیت contents باید 787 پیکسل باشه

2 یعنی فقط موقعیت چپ وجود داره بنابراین عرض موقعیت contents باید 787 پیکسل باشه

3 یعنی موقعیت راست و چپ وجود دارن بنابراین عرض موقعیت contents باید 577 پیکسل باشه

نمی دونم اصلا میشه اینطوری عرض رو تنظیم کرد یا نه :21:

Share this post


Link to post
Share on other sites
سه تا موقعیت right و left و contents دارم. می خوام با بودن یا نبودن موقعیت های راست و چپ ، اندازه موقعیت contents تغییر کنه.

$x اگر موقعیت right وجو داشته باشه برابر یک میشه.

$y اگر موقعیت left وجو داشته باشه برابر دو میشه.

$z حاصل جمع x و y هست.

بر اساس مقدار Z که عددی بین 0 تا 3 هست ، عرض موقعیت contents تعیین میشه :

0 یعنی موقعیت راست و چپ وجود ندارن بنابراین عرض موقعیت contents باید تمام صفحه باشه

1 یعنی فقط موقعیت راست وجو داره بنابراین عرض موقعیت contents باید 787 پیکسل باشه

2 یعنی فقط موقعیت چپ وجود داره بنابراین عرض موقعیت contents باید 787 پیکسل باشه

3 یعنی موقعیت راست و چپ وجود دارن بنابراین عرض موقعیت contents باید 577 پیکسل باشه

نمی دونم اصلا میشه اینطوری عرض رو تنظیم کرد یا نه :21:

مسعوود جان چرا خودتو، و کد و قالب رو پیچوندی عزیز دلم

خیلی راحت میتونی این کار رو هم بکنی

الان با چنتا روش هم برات توضیح میدم که مشکلت کاملا حل بشه

روش اول (تعریف نام کلاس برای موقعیت ها): اگه اندازه موقعیت های چپ و راستت ثابته و تنها عرض متغیرت مال اون بخش مطالب هست. این کار رو بکن (خوبی این روش اینکه که تغییراتت محدود میشهبه فایل CSS قالبت نه فایل index.php)

کد HTML مربوط به این روش :

<!-- Begin Left Sidebar -->
<?php if ($this->countModules('left')) : ?>
<div class="left">
<jdoc:include type="modules" name="left" style="xhtml" />
</div>
<?php endif; ?>
<!-- End Left Sidebar -->
<!-- Begin Content -->
<article class="<?php echo $ContentClass; ?>">
<jdoc:include type="message" />
<jdoc:include type="component" />
</article>
<!-- End Content -->
<!-- Begin Right Sidebar -->
<?php if ($this->countModules('right')) : ?>
<div class="right">
   <jdoc:include type="modules" name="right" style="xhtml" />
</div>
<?php endif; ?>
<!-- End Right Sidebar -->

کد PHP مربوط به این روش که باید محاسباتش در بالای فایل index.php انجام بشه.

<?php

if ($this->countModules('left') && $this->countModules('right'))
{

$ContentClass = "content2";
}
else if ($this->countModules('left') || $this->countModules('right'))
{
	$ContentClass = "content1";
}
else 
{
$ContentClass = "content";
}

?>

کد CSS هم که به صورت زیر میشه حالا میتونی اندازه هاتو بر اساس PX یا درصد بنویسی

.content {	
width: 100%;
.
.
.
}

content1{
width: 75%;
.
.
.
}

.content2{
width: 50%;
.
.
.

}

اگر هم ثابت نباشه left و right باز هم مهم نیست و میتونی این روش تعریف نام کلاس رو برای برای همه تعریف کنی و به جای استفاده از یک متغیر از سه متغیر استفاده کنی

روش دوم (تعریف اندازه در فایل PHP ): خوب این روش هم دقیق خودت تا یه جایی رو استفاده کنی که تو این روش فقط متغییر ها رو به جای نام استایل اندازه موقعیت ها در نظر میگیری. این روش رو باری هر سه موقعیت متغیر در نظر میگیرم که اگه چنتا متغیر بود هم مشکل نداشته باشی

فقط یه نکته رو چون خودم تست نکردم تو این روش مطمئن نیستم، به همین خاطر کل دستور style رو نوشتم و خود دلیلش هم اینه که کد های PHP داخل خود CSS وجود نداره و با اینکه سمت سرور هست PHP و زودتر عملایتش انجام میشه ولی احتمال دادم که داخل دستور استایل چون هر کدی نوشته میشه CSS هست PHP اجرا نشه به همین خاطر من به عنوان محتویات متغیر خودم کل دستور style رو تغریف کردم. حالا خودت تست کن اگه جواب داد که چه بهتر نکرد که همین کار که من کردم رو بکن

کد HTML در این روش :

<!-- Begin Left Sidebar -->
<?php if ($this->countModules('left')) : ?>
<div class="left" <?php echo $LeftSize; ?>>
<jdoc:include type="modules" name="left" style="xhtml" />
</div>
<?php endif; ?>
<!-- End Left Sidebar -->
<!-- Begin Content -->
<article class="content" <?php echo $ContentSize; ?>>
<jdoc:include type="message" />
<jdoc:include type="component" />
</article>
<!-- End Content -->
<!-- Begin Right Sidebar -->
<?php if ($this->countModules('right')) : ?>
<div class="right" <?php echo $RightSize; ?>>
   <jdoc:include type="modules" name="right" style="xhtml" />
</div>
<?php endif; ?>
<!-- End Right Sidebar -->

کد PHP مربوط به این روش که باید محاسباتش در بالای فایل index.php انجام بشه.

<?php

if ($this->countModules('left') && $this->countModules('right'))
{

$RightSize = 'style="width:100px;"';
$LeftSize = 'style="width:120px;"';
$ContentSize = 'style="width:500px;"';
}
else if ($this->countModules('left') || $this->countModules('right'))
{
	$RightSize = 'style="width:200px;"';
	$LeftSize = 'style="width:220px;"';
	$ContentSize = 'style="width:530px;"';
}
else 
{
$RightSize = 'style="width:0px;"';
$LeftSize = 'style="width:0px;"';
$ContentSize = 'style="width:100%;"';
}

?>

دیدی خیلی راحت تر از چیزی بود که فکرشو میکردی

حالا برو تمرین کن که این روش رو هزار بار و در هزارن جا میتونی به روش های مختلف برای انعطاف قالبت استفاده کنی

موفق و سربلند باشی.

Share this post


Link to post
Share on other sites

واقعا حیفم اومد تشکر نکنم gift کدی که استفاده کردم این بود و خیلی راحت جواب داد. به عنوان روش سوم [sibil] :

<?php if ($this->countmodules('right')&& $this->countmodules('left')) {?> <!-- اگر موقعیت راست و چپ موجود باشن -->
			<div id="contents" style="width: 577px;"> <jdoc:include type="modules" name="contents" style="xhtml" /> <jdoc:include type="component" /> </div>
		<?php } elseif ($this->countmodules('right')&& !$this->countmodules('left')) { ?> <!-- اگر فقط موقعیت راست موجود باشه -->
			<div id="contents" style="width: 787px;margin-left:0px;"> <jdoc:include type="modules" name="contents" style="xhtml" /> <jdoc:include type="component" /> </div>
               <?php } elseif (!$this->countmodules('right')&& $this->countmodules('left')) { ?> <!-- اگر فقط موقعیت چپ موجود باشه -->
			<div id="contents" style="width: 787px;margin-right:0px;"> <jdoc:include type="modules" name="contents" style="xhtml" /> <jdoc:include type="component" /> </div>
		<?php } else { ?> <!-- اگر هیچ کدام از موقعیت های راست و چپ موجود نباشن -->
           	<div id="contents" style="width: 1024px;"> <jdoc:include type="modules" name="contents" style="xhtml" /> <jdoc:include type="component" /> </div>
		<?php } ?>

برای آدم های تنبلی مثل من خوبه :41:

Share this post


Link to post
Share on other sites

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری