m3hdi

سوال درباره دستورات و صفحات مختلف یک قالب جوملا

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

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

داخل این قالب چندین صفحه و داخل صفحات چندین دستور مختلف بودش که قصد دارم در این تاپیک این صفحات و دستورات عنوان کنم ، تا دوستانی که در این امر حرفه ای هستند راهنمایی کنند .

با تشکر از همه دوستانی که در این امر بنده را یاری می کنند .

------------------------------------------------------------------------------

سوال اول :

داخل این قالب شامل صفحاتی از جمله :

index.php

component.php

offline.php

error.php

می باشد . خوب با صفحه index.php همه آشنا هستند و دستورات مختلف یک صفحه وب سایت در اصل در اینجا قرار داده می شود . داخل این صفحه دستوراتی وجود داره که تا حدودی گنگ هستش برای بنده و شاید برای خیلی از دوستان :

دستور شماره یک :

$app = JFactory::getApplication();
$doc = JFactory::getDocument(); 
$menu = $app->getMenu();
$active = $app->getMenu()->getActive();
$params = $app->getParams();
$pageclass = $params->get('pageclass_sfx');
$tpath = $this->baseurl.'/templates/'.$this->template;

سوالات مربوط به این دستورات :

1 - 1 : متغیر $app اصلا چی هستش و در دستورات بالا چه کاری انجام می دهد ؟

1 - 2 : دستور JFactory::getApplication(); دقیقا اشاره به چه چیزی داره ؟

1 - 3 : دستورات زیر به ترتیب چه کاری انجام می دهند :

شماره یک :

$menu = $app->getMenu();

شماره دو :

$active = $app->getMenu()->getActive();

دستور سه :

$params = $app->getParams();

دستور چهار :

$pageclass = $params->get('pageclass_sfx');

دستور پنج :

$tpath = $this->baseurl.'/templates/'.$this->template;

دستور شش :

// generator tag
$this->setGenerator(null);

در خط مربوط به دستور Body دقیقا میاد و به body این دستور کلاسی رو میده :

<body class="<?php echo (($menu->getActive() == $menu->getDefault()) ? ('front') : ('site')).' '.$active->alias.' '.$pageclass; ?>">

این نوع کلاس دهی به چه دردی میخوره و شرح کلی این کلاس به زبان فارسی به چه صورت هستش و به چه چیزی اشاره داره ؟

دوستان ممنون میشم جواب دهی به این سوالات با تفکیک موضوع سوال و مشخص کردن سوال باشه . با تشکر

ویرایش شده در توسط m3hdi

Share this post


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

قسمت دوم سوالات مربوط به صفحات موجود دز قالب :

صفحه مربوط به component.php :

اصلا اصل و ماهیت این صفحه برای چی هستش ؟ در اکثر قالبها وجود داره . یکی از دوستان یه بار توضیح کوتاهی راجبش داد که متوجه نشدم . ممکنه کامل توضیح بیان بشود :13:

دو تا دستور مهم داخل این صفحه هستش که با یه دستورش همه آشنا هستند

<jdoc:include type="message" />
<jdoc:include type="component" />

دستور دوم که مربوط به component هستش رو همه می دونیم که برای آوردن محتوا و مطالب مربوط به سایت هستش . اما دستور اول که مربوط به message می باشد دقیقا برای چه کاری استفاده می شود ؟

دوستان ممنون میشم جواب دهی به این سوالات با تفکیک موضوع سوال و مشخص کردن سوال باشه . با تشکر

Share this post


Link to post
Share on other sites

<jdoc:include type="message" />

اما دستور اول که مربوط به message می باشد دقیقا برای چه کاری استفاده می شود ؟

نمایش پیغام های هسته جوملا شامل ارور ها و خطا ها

برادر با توجه به شناختی که ازت دارم رو سر و کله زدن با جوملا و کد هاش فکر کنم سرچ کنی همشون رو پیدا کنی . ولی از این سیستمت که میخوای ته توی همه کد هارو در بیاری خوشم میاد :)

فعلا این یکی تا ببینیم بقیه چی میشه

این لینک رو نگاه بنداز

http://docs.joomla.org/Jdoc_statements

ویرایش شده در توسط Masood Ashoori

Share this post


Link to post
Share on other sites
نمایش پیغام های هسته جوملا شامل ارور ها و خطا ها

برادر با توجه به شناختی که ازت دارم رو سر و کله زدن با جوملا و کد هاش فکر کنم سرچ کنی همشون رو پیدا کنی . ولی از این سیستمت که میخوای ته توی همه کد هارو در بیاری خوشم میاد :)

فعلا این یکی تا ببینیم بقیه چی میشه

این لینک رو نگاه بنداز

Jdoc statements - Joomla! Documentation

ممنون آقا مسعود . در کل ما سه جور آدم داریم تو جوملا ::

1 - کسانی که قالب آماده استفاده میکنن و کاری ندارن تو قالب چی چی نوشته فقط یه فارسی سازی میکنند یا فارسی سازی رو می خرند .{ که این عده مطمئنا بعدا به مشکل میخورن ، کاری به خرید فارسی سازی شده ندارم اما اگر قالب اورجینال دانلود کنن و کدهاش آشناییت نداشته باشن بعدا در آنالیز کدها به مشکل می خورن } .

2 - مورد دوم کسانی هستند که زیاد حال طراحی قالب ندارند از قالب آماده استفاده میکنن اما چون سواد بالایی در این زمینه دارند شروع به کاستوم کردن قالب میکنن .

3 - کسانی هستند که با قالب آماده و فریم ورک حال نمیکنن میخوان از بیس خودشون طراحی کنن تا پس فردا به مشکل یا تغییرات رسیدن بدونن مشکل از کجاست ، تغییرش بدن که این جور افراد باید آشنایت کامل به کدهای مختلف جوملا داشته باشند که از شانس بد یا خوب من ، من تو این گروه گیر کردم .

{ همیشه استفاده از قالب آماده و رایگان مفید نیستش ! چند وقت پیش یکی از دوستان قالب آماده یکی از شرکتهای معروف که کار فارسی سازی انجام میدن داده بود بهم و ازم فقط میخواست یه چند تا کد و موقعیت بهش اضافه کنه ، وقتی کدهاش آنالیز کردم متوجه شدم در انتهای کدهاش داره از یک Iframe استفاده میکنه به صورت Display:none که این Iframe یکی از صفحات سایت مربوط به اون شرکت داره فراخوانی میکنه . شاید کاربر این Iframe نبینه اما مطمئنن موتورهای جستجو این کد رو متوجه خواهند شد و نمره منفی به این سایت میدن . پس همیشه از قالبی که میزارید مطمئن باشید . }

Share this post


Link to post
Share on other sites

$menu = $app->getMenu();  

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

$app یک متغییر هست ککه با استفاده از کد JFactory::getApplication(); به فریم ورک جوملا دسترسی پیدا میکنه

$active = $app->getMenu()->getActive();  

این دستور هم به همین صورت فقط منوی فعال جوملا را میگیره

$pageclass = $params->get('pageclass_sfx');

این دستور کلاس صفحه را فراخونی میکنه

$tpath = $this->baseurl.'/templates/'.$this->template;  

این دستور مسیر قالب پیش فرض را فراخونی میکنه

// Remove the generator meta tag
$this->setGenerator(null);
?>

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

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

Share this post


Link to post
Share on other sites

مرسی . آموزشت رو دیدم . خوب بود اما خیلی کم و امکان قرار دادن نظرات و پاسخ هم بسته شده بود . سوالم اینجا می پرسم .

در خط مربوط به تک کد زیر :

$active = $app->getMenu()->getActive();

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

حالا ما چطور میتونیم بگیم که مثلا اگر یک صفحه با عنوان " درباره ما " داریم بیاد و این آیتم ها رو فقط در اون صفحه نشون بده ؟؟؟؟

سوال بعدیم ::

در خط مربوط به تکه کد زیر اومدی و گفتی کلاس رو نشون میده :

$pageclass = $params->get('pageclass_sfx');

این کلاس منظورت چی هستش دقیقا ؟؟

و سوال آخر :

کد تگ چنرتور جوملا یعنی چی ؟؟

Share this post


Link to post
Share on other sites

$otherMenuItem = $menu->getItem( $menuID );

از این کد استفاده کن و با آیدی فراخونی کن.

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

$otherMenuItem = $menu->getItems('link', 'index.php?option=com_content&view=article&id=1', true);

  <meta name="generator" content="Joomla! - Open Source Content Management" />

generator هم تگ بالا را از سورس سایت برمیداره

اون آموزش در حال تکمیل شدن هست. امروز نمیرسم ولی فردا تکمیل می کنمش منابع هم می زارم که بشه دقیق بررسی کرد.

ویرایش شده در توسط mmfallah

Share this post


Link to post
Share on other sites
قسمت دوم سوالات مربوط به صفحات موجود دز قالب :

صفحه مربوط به component.php :

اصلا اصل و ماهیت این صفحه برای چی هستش ؟ در اکثر قالبها وجود داره . یکی از دوستان یه بار توضیح کوتاهی راجبش داد که متوجه نشدم . ممکنه کامل توضیح بیان بشود :13:

دو تا دستور مهم داخل این صفحه هستش که با یه دستورش همه آشنا هستند

<jdoc:include type="message" />
<jdoc:include type="component" />

دستور دوم که مربوط به component هستش رو همه می دونیم که برای آوردن محتوا و مطالب مربوط به سایت هستش . اما دستور اول که مربوط به message می باشد دقیقا برای چه کاری استفاده می شود ؟

دوستان ممنون میشم جواب دهی به این سوالات با تفکیک موضوع سوال و مشخص کردن سوال باشه . با تشکر

1 -چه دلیلی داره که ما یک صفحه با عنوان component.php داشته باشیم ؟؟

2 - ایا می شود که به جای این صفحه فقط ما از کدهای مربوطه در داخل صفحه index.php استفاده کنیم ؟

3- در قالب دیفالت Joomla3 که داشتم بررسی می کردم هم از صفحه Component.php استفاده کرده و هم یک بار دستورات در صفحه index.php قرار داده ؟ دلیل اینکار و دوباره کاری چیست ؟؟

Share this post


Link to post
Share on other sites

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

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

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

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


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

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

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


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