یکی از قابلیت های فوق العاده ای که در سیستم مدیریت محتوای جوملا نهفته است. قابلیت اورراید کردن یا بازنویسی مجدد کلیه المان های موجود در جوملا اعم از کامپوننت ها؛ ماژول ها و حتی پلاگین ها برای استایل دهی اختصاصی و فراخونی از یک استایل خاص در قالب مورد نظر ما میتوان نام برد.
در این مثال قصد داریم به شما نشان دهیم که چگونه میتوانیم حتی در پلاگین های جوملا از خاصیت override کردن بهره بگیریم و اختصاصی سازی قالب خود را حتی تا حد کاستومایز کردن پلاگین های کوچک هم انجام دهیم.
برای اینکار ما یکی از پلاگین های پیشفرض جوملا را انتخاب میکنیم که دارای عملکردی کاملا واضیح و مشخص در بخش کاربری سایت می باشد و میتوانید با تغییرات ظاهری آن ؛ اصلاحات انجام شده را در بخش کاربری مشاهده نمایید.
ما پلاگین صفحه بندی جوملا یا همان Page Navigation را برای کار انتخاب میکنیم. حال برای دسترسی به این پلاگین به مسیر زیر میرویم.
JoomlaSite or Public_html > plugins > content > pagenavigtion > tmpl > default.php
در مسیر بالا با تصویری مشابه زیر روبرو میشویم که در اینجا میبایست فایل default.php را کپی و در مسیری که قالب شما قرار دارد جایگذاری کنید.
برای اینکار به مسیری که قالب ما در آن وجود دارد میرویم.
مسیر:
public_html >templates > MyTemplateName > html
در پوشه html یک فولدر با نام plg_content_pagenavigation ایجاد و فایل default.php را مطابق تصویر زیر در آن قرار میدهیم.
نکته:
ساختار نام plg_content_pagenavigation بر اساس استاندارد” plg_PluginType_PluginName “در نظر گرفته می شود.
- PluginType = content – نوع پلاگین
- PluginName = pagenavigation – نام پلاگین
[quote]
این مسئله بدان معنی است که اگر قصد اورراید کردن پلاگین دیگری را دارید. این نام بر اساس استاندارد بالا با ساختار پلاگین شما تعریف میشود.
[/quote]
فایل default.php را باز میکنیم و با کدهایی مشابه کدهای زیر روبرو خواهیم شد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<?php /** * @package Joomla.Plugin * @subpackage Content.pagenavigation * * @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE.txt */ defined('_JEXEC') or die; $lang = JFactory::getLanguage(); ?> <ul class="pager pagenav"> <?php if ($row->prev) : $direction = $lang->isRtl() ? 'right' : 'left'; ?> <li class="previous"> <a class="hasTooltip" title="<?php echo htmlspecialchars($rows[$location-1]->title); ?>" aria-label="<?php echo JText::sprintf('JPREVIOUS_TITLE', htmlspecialchars($rows[$location-1]->title)); ?>" href="<?php echo $row->prev; ?>" rel="prev"> <?php echo '<span class="icon-chevron-' . $direction . '" aria-hidden="true"></span> <span aria-hidden="true">' . $row->prev_label . '</span>'; ?> </a> </li> <?php endif; ?> <?php if ($row->next) : $direction = $lang->isRtl() ? 'left' : 'right'; ?> <li class="next"> <a class="hasTooltip" title="<?php echo htmlspecialchars($rows[$location+1]->title); ?>" aria-label="<?php echo JText::sprintf('JNEXT_TITLE', htmlspecialchars($rows[$location+1]->title)); ?>" href="<?php echo $row->next; ?>" rel="next"> <?php echo '<span aria-hidden="true">' . $row->next_label . '</span> <span class="icon-chevron-' . $direction . '" aria-hidden="true"></span>'; ?> </a> </li> <?php endif; ?> </ul> |
کد بالا با ظاهر پیشفرض زیر نمایش داده می شوند.
حالا ما قصد داریم یک کلاس دکمه با عنوان btn btn-primary به دکمه های قبلی و بعدی اضافی کنیم.در این حالت ساختار کدهای ما به صورت زیر خواهد بود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
defined('_JEXEC') or die; $lang = JFactory::getLanguage(); ?> <ul class="pager pagenav"> <?php if ($row->prev) : $direction = $lang->isRtl() ? 'right' : 'left'; ?> <li class="previous"> <a class="hasTooltip btn btn-primary" title="<?php echo htmlspecialchars($rows[$location-1]->title); ?>" aria-label="<?php echo JText::sprintf('JPREVIOUS_TITLE', htmlspecialchars($rows[$location-1]->title)); ?>" href="<?php echo $row->prev; ?>" rel="prev"> <?php echo '<span class="icon-chevron-' . $direction . '" aria-hidden="true"></span> <span aria-hidden="true">' . $row->prev_label . '</span>'; ?> </a> </li> <?php endif; ?> <?php if ($row->next) : $direction = $lang->isRtl() ? 'left' : 'right'; ?> <li class="next"> <a class="hasTooltip" title="<?php echo htmlspecialchars($rows[$location+1]->title); ?>" aria-label="<?php echo JText::sprintf('JNEXT_TITLE', htmlspecialchars($rows[$location+1]->title)); ?>" href="<?php echo $row->next; ?>" rel="next"> <?php echo '<span aria-hidden="true">' . $row->next_label . '</span> <span class="icon-chevron-' . $direction . '" aria-hidden="true"></span>'; ?> </a> </li> <?php endif; ?> </ul> |
با انجام این اصلاح حالت نمایشی دکمه ها با استایل زیر به نمایش در خواهد آمد.
خوشحال خواهیم شد که سوالات خود را در ادامه نظرات این پست ارسال فرمایید.
با سلام و خسته نباشید. تشکر از اطلاعات به اشتراک گذاشته شما
با سلام خدمت شما دوست گرامی.
خوشحالیم که این پست مورد استفاده و پسند شما قرار گرفته.
با تشکر از حُسن انتخاب شما