AHK95

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

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

میخوام موقعی که مثلا ماژول user1 غیر فعال باشه ماژول کناریش که user2 هست با عرض مثلا 600 نشون داده بشه ولی موقعی که فعال باشه با عرض 300 نشون بده برای این کار باید از چه دستوری استفاده کنم؟

Share this post


Link to post
Share on other sites

سلام دوست عزیز.

برای این کار باید از موقعیت های شرطی استفاده کنید. یعنی باید قبل از اینکه موقعیت user2 رو بسازید چک کنید که اگر در user1 ماژول بود،

user2 با یک استایل و اگر در user1 ماژول نبود user2 با یک استایل دیگر نمایش داده شود. کد آن به صورت زیر است.

<?php if ($this->countmodules('user1')) {?>

<div id="user2" style="width: 300px;"> <jdoc:include type="modules" name="user2" style="xhtml" /> </div>

<?php } else { ?>

<div id="user2" style="width: 600px;"> <jdoc:include type="modules" name="user2" style="xhtml" /> </div>

<?php } ?>

توی هر قسمت style متفاوتشون رو بده و توی فایل template.css استایل هایی که با هم مشابه هستند رو بده.

حله دوست عزیز.:didi:

1 کاربر پسند دیده است

Share this post


Link to post
Share on other sites

سلام

ممنون واقعا جوابتون فوق العاده بود ممنون ممنون ممنون

ولی میشه خواهشا کمی بیشتر توضیح بدید برای css نویسیش؟

مثلا چه استایلی برای 300پیکسل بدیم؟و چه استایلی برای600 پیکسلی؟

خوهشا کمک کنید چون 1 ساله دنبال این کد میگشتم ممنون

Share this post


Link to post
Share on other sites

بله حتما:128fs318181:

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

مثلا تفاوت اصلی آنها در ابعاد آنهاست که یکی مثلا 300 در 400 است و دیگری 600 در 450

این استایل ها که تفاوت آنها است، را به صورت جداگانه باید در فایل index.php در قسمت استایل مربوط به تعریف هر موقعیت نوشت. یعنی همان کدهایی

که قسمت قبلی نوشتم

<?php if ($this->countmodules('user1')) {?>

<div id="user2" style="width: 300px; height: 400px;"> <jdoc:include type="modules" name="user2" style="xhtml" /> </div>

<?php } else { ?>

<div id="user2" style="width: 600px; height: 450px;"> <jdoc:include type="modules" name="user2" style="xhtml" /> </div>

<?php } ?>

حال باید مشاهبت آن دو را پیدا کنیم به عنوان مثال می خواهیم هر دوی آنها رنگ پس زمینه ی آبی داشته باشند.

این استایل ها را باید در فایل template.css نوشت. به صورت زیر:

#user2 {

background-color: blue;

}

Share this post


Link to post
Share on other sites

شرمنده که دوباره تاپیک رو کشیدم بیرون !

سوال منم همینه با این تفاوت که وقتی تعداد ماژول ها زیاد باشه مثلا 4 تا طبیعتا باید کد کوتاه تری باشه چون با روش بالا خیلی کار پیچ در پیچ و پیچیده میشه

کسی هست از دوستان که راهنمایی کنه ؟

پ.ن : چیزی که به ذهن خودم رسیده اینه که باید قطعه کدی باشه که تعداد ماژول های فعال اون بخش رو بشمره و با توجه به تعداد ماژول ها اندازه اونها رو تعیین کنه ولی متاسفانه من زیاد php بلد نیستم :auau:

Share this post


Link to post
Share on other sites

اون روش بالا که دوست عزیز گفتم از ساده ترین روش هایی هست که امکان پذیر می باشد البته در چند موقعیت کنار هم خیلی ساده ترند ولی مشکلاتی در قالب های با موقعیت های زیاد ایجاد می کنند

شما باید مطمعا برای این کار که بخواهید یک قالب کاملا شرطی درست کنید به دستوران php آشنایی داشته باشید وگرنه امکان پذیر نمی باشد

از جمله موارد دیگری که می شه این کارو کرد به زبان ساده می گم :

شما چند متغییر در یک فایل دیگه یا در فایل ایندکس معرفی کنید که اسم دایو باشه ( اگر در فایل دیگر معرفی می کنید اینکلود بکنید)

اول دو متغییر تعریف کنید مثلا به نام

a

b

بعد این دو متغییر رو در کنار هم در چند دایو قرار بدهید بعد یک متغیر کمکی برای این دایو ها درست کنید به نام

c

حالا بیایید بگید اگر یکی از این دو دایو a , b فعال نبود دایو c فعال شود

خوب در اینجا باید حواستون باشه تمام مربع ها float یکی بگیرند که یکی فعال نشد بچسبند به یک سمت

از بوتسترپ نیز با تغییرات می شه استفاده کرد

امید وارم که بدرتون بخوره

Share this post


Link to post
Share on other sites

جناب شهریار ممنون از راهنمایی شما

یک سوال

چطور میتونم تعداد ماژول های فعال رو بشمرم ( با php) خیلی دنبال دستوری برای این کار گشتم ولی چیزی ندیدم

Share this post


Link to post
Share on other sites

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

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

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

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


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

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

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


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