PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : چند سوال در رابطه با طراحی قالب در جوملا 1.7



alasht
02-09-2012, 08:09 PM
با سلام خدمت دوستان
من تازه شروع به یادگیری طراحی قالب جوملا کردم
قبلش این آموزش رو خوندم (طراحی قالب در جوملا (<b><font color=red>فقط کاربران عضو انجمن می توانند لینک ها را مشاهده کنند</font></b> %82%D8%A7%D9%84%D8%A8_%D8%AF%D8%B1_%D8%AC%D9%88%D9 %85%D9%84%D8%A7&redirect=no) ) و کلی هم سرچ کردن اما این سوالی که میخوام بپرسم رو جایی پیدا نکردم جوابشو
قبلش بگم من به php , html , css کاملا مسلطم و تجربه ساخت قالب وردپرس و پی اچ پی نیوک رو هم دارم
به عکس زیر توجه کنید
اکثر قالبا از 3 قسمت تشکیل شده
بلوک راست و وسط یا همون بلوکی که مطالب توش قرار میگیره و بلوک چپ
من میخواستم ببینم این سه قسمت رو چجوری با جوملا ستش کنم ؟
اینم عکسم
<b><font color=red>فقط کاربران عضو انجمن می توانند لینک ها را مشاهده کنند</font></b>
امیدوارم متوجه منظورم شده باشید اگه نیاره بگید بیشتر توضیح بدم
با تشکر

sepastian
02-09-2012, 08:22 PM
شما یه 2 تا سایدبار یه کلاس واسه مطالب احتیاج دارید
2 تا سایدبار رو در در index.php ایجاد کنید و موقعیت ماژول به هر کدوم اونها اختصاص بدید تا بتونید محتوای سایدبار ها نمایش داده بشن
در وسط هم که مطالب قراره نمایش داده بشه تگ نمایش مورد نظر اون رو قرار بدید

کد کامپوننت مطالب :

<jdoc:include type="component" />

کد نماش موقعیت ماژول سایدبار


<jdoc:include type="modules" name="sidebar1" style="xhtml" />

alasht
02-09-2012, 10:39 PM
ممنون دوست عزیز
ولی خیلی خلاصه بود من اصلا با کد نویسی جوملا آشنایی ندارم
میشه دقیقا با یه مثال توضیح بدید
با تشکر

alasht
02-12-2012, 02:59 PM
دوستان کسی نیست یه پاسخ کامل به ما بده

safajuy
02-12-2012, 04:11 PM
سلام

بلوک راست و وسط یا همون بلوکی که مطالب توش قرار میگیره و بلوک چپ
جوملا چنين محدوديتي نداره. شماميتونيد با جوملا 80 رديفه هم بسازيد!
مكاني رو كه كامپوننت و مطالب جوملا نمايش داده ميشه رو بايد از دستور componenting كه دوست عزيزمون زحمت قراردادن توي ويكي رو كشيدن و گذاشتن اونجا
بقيه موارد ماژوله. يعني همون بلوكي كه شما ميگي توي چپ و راست هست
كد ايجاد ماژول هم

<jdoc:include type="modules" name="left" style="xhtml" />
<jdoc:include type="modules" name="right" style="xhtml" />

با در نظرداشتن اينكه شما با html و css آشنايي داريد بايد درنظر داشته باشيد كه اين موارد بايد توي div ايجاد بشه. يعني استايل شما توي dive هستش

بقيه چيز ها هم كه بلديد ديگه

موفق باشيد

alasht
02-12-2012, 06:35 PM
ممنون از پاسخ کامل شما
با این توضیحات شما سر نخ دست افتاد و تونستم تا حدودی بفهمم چی به چیه
الان یه مشکلی هست
من برای ستونهای چپ و راست و وسط فرض کنید از این کد استفاده کردم

<div class="right">
<jdoc:include type="modules" name="left" style="RightBlock" />
</div>
<div class="center">
<jdoc:include type="component" style="CenterBlock" />
</div>
<div class="left">
<jdoc:include type="modules" name="left" style="LeftBlock" />
</div>

کد بالا رو من تو index.php نوشتم حالا طبق چیزایی که از که تا الان خوندم برای اینکه بتونم کدهای html خودم رو اعمال کنم رو قالب باید تو فولدر html یه فایل modules.php ایجاد کنم و کدهامو توش بزارم به این صورت


<?php
defined('_JEXEC') or die('Restricted access');
function modChrome_LeftBlock($module, &$params, &$attribs)
{
?>
<h3 class="Righttitle"><?php echo $module->title; ?></h3>
<div class="Rightcontent"><?php echo $module->content; ?></div>
<?php
}
function modChrome_RightBlock($module, &$params, &$attribs)
{
?>
<h3 class="Lefttitle"><?php echo $module->title; ?></h3>
<div class="Leftcontent"><?php echo $module->content; ?></div>
<?php
}
function modChrome_CenterBlock($module, &$params, &$attribs)
{
?>
<h3 class="Centertitle"><?php echo $module->title; ?></h3>
<div class="Centercontent"><?php echo $module->content; ?></div>
<?php
}
?>

الان سایدبارها یعنی

<jdoc:include type="modules" name="left" style="RightBlock" />
<jdoc:include type="modules" name="left" style="LeftBlock" />


درست کار میکنه و کدهای اچ تی ام الی که نوشتم روشون اعمال میشه
یعنی این دو تا تابع
modChrome_LeftBlock
modChrome_RightBlock

اما کدهای تابع modChrome_CenterBlock رو بلوک مطالب اعمال نمیشه و همون کدهای پیشفرض جوملا روش اعمال شده
میشه بفرمایید مشکل کجاست و برای تغییر کدهای بلوک مطالب باید چیکار کنم ؟
با تشکر

shmata
02-13-2012, 06:16 AM
توابعی که نام بردید رو کجا نوشتید و چکاری انجام میده ؟
از کدهایی که نوشتید تنها این کدها درست است

<div class="right">
<jdoc:include type="modules" name="left" style="RightBlock" />
</div>
<div class="center">
<jdoc:include type="component" style="CenterBlock" />
</div>
<div class="left">
<jdoc:include type="modules" name="left" style="LeftBlock" />
</div>
کد آخر 2 تا موقعیت با نام left ایجاد میکند که اصلا خوب نیست 2 موقعیت با یک name داشته باشیم . این باعث میشود که هر ماژولی که فعال میکنید 2 با نمایش داده شود.

alasht
02-13-2012, 10:09 AM
توابعی که نام بردید رو کجا نوشتید و چکاری انجام میده ؟
از کدهایی که نوشتید تنها این کدها درست است

<div class="right">
<jdoc:include type="modules" name="left" style="RightBlock" />
</div>
<div class="center">
<jdoc:include type="component" style="CenterBlock" />
</div>
<div class="left">
<jdoc:include type="modules" name="left" style="LeftBlock" />
</div>
کد آخر 2 تا موقعیت با نام left ایجاد میکند که اصلا خوب نیست 2 موقعیت با یک name داشته باشیم . این باعث میشود که هر ماژولی که فعال میکنید 2 با نمایش داده شود.

بله میدونم اون موقعیت رو همینطوری نوشتم
بعد من اون کدهای رو تو فولدر html و فایل modules.php نوشتم
که تو توضیحات بالا گفتم

safajuy
02-13-2012, 11:53 AM
سلام مجدد

توجه داشته باشيد كه توي موقعيت componenting هيچ ماژولي قرار نمي گيره. اين موقعيت رو فقط تعيين مي كنيد براي نمايش مطالب و كامپوننت هاتون(در واقع مطالب هم خودش كامپوننته)
شما نبايد از دستور ماژول براي ايجاد موقعيت مطالب استفاده كنيد
استايل component رو حذف كنيد(style="CenterBlock")

بعد من اون کدهای رو تو فولدر html و فایل modules.php نوشتم

نبايد به يك نام بنويسيد. اين نامي كه شما انتخاب مي كنيد در واقع توي مديريت ماژول ها مياد. شما توي ماژولها موقعيتي داريد به نام left.

موفق باشيد

alasht
02-13-2012, 05:21 PM
با تشکر فراوان
من الان باز متوجه نشدم چطور کد html مطالب رو تغییر بدم و کد دلخواه خودمو بزارم
وقتی من این کد رو میزارم

<jdoc:include type="component" />
مطالب سایت نمایش داده میشه و به صورت پیشفرض این کدهای html رو داره

<div class="blog-featured">
<div class="items-row cols-1 row-0">
<div class="item column-1">
<h2><a href="#">عنوان مطلب شماره 1</a></h2>
<p style="text-align: justify;">مطلب شماره 1</p>
<p class="readmore"><a href="#">مبتدي ها</a></p>
<div class="item-separator"></div>
</div>
<span class="row-separator"></span>
</div>
</div>

من میخوام این کدهای اچ تی ام ال رو ویرایش کنم و کدهای اچ تی ام ال قالب خودم رو بزارم
همونطور که برای پوزیشن راست و چپ تونستم این کار رو بکنم اما برای وسط نمیدونم باید چیکار کنم ؟

firoozmandan
02-14-2012, 06:16 AM
سلام

در اینصورت باید قالب کامپوننت Content را تغییر بدید
این مسیر را دنبال کنید

components/com_content/views
در هر فولدر، فولدر دیگری با نام tmpl وجود داره که در صورت ویرایش فایلهای مربوطه می توانید فرمت مطالب را تغییر دهید
یا علی

alasht
02-15-2012, 02:53 PM
با سلام مجدد
با تشکر از پاسخ شما مدیر گرامی
اما من نمیخوام به صورت مستقیم کامپوننت رو دستکار کنم
آیا جوملا قابلیت override نداره ؟
یعنی اینکه تو قالب یه فایلی ایجاد کنم و خود وردپرس تشخیص بده و از این فایل استفاده کنه و فایل پیش فرض رو نادیده بگیره ؟

safajuy
02-15-2012, 05:54 PM
سلام

بله. جوملا اين امكان رو داره

كافيه يه پوشه بسازيد به نام html و براي هر كامپوننتي يك پوشهايجادكنيد.

فرضاً براي نمايش صفحه ي اصلي اختصاصي بايد يك پوشه بهاين نام ايجادكنيد:
templates\templatename\html\com_content\frontpage

و مواردي كه در اين صفحه قرار دارند رو توي اين پوشه كپي كنيد و تغييرش بديد:
components\com_content\views\frontpage\tmpl

موفق باشيد