پنجشنبه 02 آذر 1396

تعاریف بکار رفته در view.html (نمایش کلی رکوردها) : آموزش کامپوننت نویسی جوملا : پیشرفته

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

بخش اول : منوی لیست نمایه های کامپوننت

دستورات زیر با هدف تولید لیست نمایه های تعریف شده در فایل compname.php شاخه helpers فراخوانی می شوند.

    $this->sidebar = JHtmlSidebar::render(); فراخوانی تابع addSubmenu در فایل بالا

    <?php echo $this->sidebar; ?> نمایش نتیجه مطابق با شماره 1 در تصویر ضمیمه


بخش دوم : لیست امکانات فیلتر جستجو

در این قسمت لیست کلیه فیلدهای مورد نیاز که در فایل filter_viewnames.xml که در شاخه models/forms وجود دارد فراخوانی و نمایش داده می شود .

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

در فایل view.html.php

    $this->filterForm = $this->get('FilterForm');
    $this->activeFilters = $this->get('ActiveFilters');

در فایل default.php برای نمایش بر اساس تصویر قسمت شماره 2

    <?php
    echo JLayoutHelper::render('joomla.searchtools.default', array('view' => $this));
    ?>


بخش سوم : کلیدهای طراحی شده برای کنترلهای مورد نظر

در فایل view.html.php برای نمایش بر اساس تصویر قسمت شماره 3

    $this->addToolbar();
    .
    .
    .
    protected function addToolbar(){
    JToolBarHelper::addNew('xxxxxxxx.add');
    JToolBarHelper::editList('xxxxxxxx.edit');
    JToolBarHelper::publish('xxxxxxxxs.publish', 'JTOOLBAR_PUBLISH', true);
    JToolBarHelper::unpublish('xxxxxxxxs.unpublish', 'JTOOLBAR_UNPUBLISH', true);
    .
    .
این دستورات در جوملا تعریف شده بوده و نیاز به فراخوانی در فایل default.php نمی باشد


بخش چهارم : نمایش صفحه بندی داده های جدول مورد نظر

در فایل view.html.php

    $this->pagination = $this->get('pagination');

در فایل default.php برای نمایش بر اساس تصویر قسمت شماره 4

    <?php echo $this->pagination->getListFooter(); ?>


بخش پنجم : مرتب سازی بر اساس فیلد ordering جدول داده ها

در فایل default.php برای نمایش بر اساس تصویر قسمت شماره 5

در این بخش فایل viewnames.php موجود در شاخه controllers تابع saveOrderAjax بصورت Ajax برای جابجائی ها فراخوانی می شود


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

در فایل default.php برای نمایش بر اساس تصویر قسمت شماره 6

هر ستون که با ساختار زیر تعریف شود نمایه توانایی مرتب سازی بر اساس آن ستون را دارد

<?php echo JHtml::_('searchtools.sort','عنوان ترجمه ای فیلد', 'نام فیلد', $listDirn, $listOrder); ?>

پارامترها و متغیرهای مورد نیاز برای این کنترل ها در فایل viewnames.php در شاخه models قرار دارد که به شرح زیر می باشد

    public function __construct($config = array()){
    if (empty($config['filter_fields'])) {
        $config['filter_fields'] = array(
        'a.id',
        'alias',
        'نام فیلد',
        'published',
        'a.ordering'
        );
        }
        parent::__construct($config);
    }

		file : view.html.php
items		= $this->get('Items');
	$this->pagination	= $this->get('pagination');
	$this->state	= $this->get('State');
        $this->filterForm    = $this->get('FilterForm');
        $this->activeFilters = $this->get('ActiveFilters');
	.
	.
	.

	$this->addToolbar();
	$this->sidebar = JHtmlSidebar::render();
	.
	.
	.
	protected function addToolbar(){
		JToolBarHelper::addNew('xxxxxxxx.add');
		JToolBarHelper::editList('xxxxxxxx.edit');
		JToolBarHelper::publish('xxxxxxxxs.publish', 'JTOOLBAR_PUBLISH', true);
		JToolBarHelper::unpublish('xxxxxxxxs.unpublish', 'JTOOLBAR_UNPUBLISH', true);
	.
	.
	.
	.
?>
file : default.php
escape($this->state->get('list.ordering'));
	$listDirn	= $this->escape($this->state->get('list.direction'));
	$saveOrder	= $listOrder == 'a.ordering';
	if ($saveOrder)
	{
		$saveOrderingUrl = "index.php?option=$option&task=xxxxxxxxs.saveOrderAjax&tmpl=component";
		JHtml::_('sortablelist.sortable', 'articleList', 'adminForm', strtolower($listDirn), $saveOrderingUrl);
	}
?>

	
sidebar; ?>
$this)); ?> . . . pagination->getListFooter(); ?>

عمومی

علیرضا بلوردی (برنامه نویس PHP)
سیرجان, کرمان
علیرضا بلوردی
ولی عصر, سیرجان, کرمان 7817645939
+989131789658
نمونه کارها و کامپوننتهای نوشته شده توسط علیرضا بلوردی برنامه نویس جوملا و PHP