สร้างJoomla Filter ปุ่มค้นหา, ปุ่มค้นหาเรียงตามชื่อ, ปุ่มจำนวนการแสดงผล
- Workspace 1_002.png (32.45 KiB) Viewed 960 times
administrator/components/com_ชื่อคอมโพเน้นท์/views/ชื่อหน้าที่ต้องการเพิ่ม Filter/tmpl/default.php
ใส่ code นี้ลงไปเพื่อแสดงผลแถบ Filter
โค้ด: เลือกทั้งหมด
<?php
// Search tools bar
echo JLayoutHelper::render('joomla.searchtools.default', array('view' => $this));
?>
administrator/components/com_ชื่อคอมพอเน้นท์/views/ชื่อหน้าที่ต้องการเพิ่ม Filter/view.html.php
ใส่ code ในฟังค์ชั่น display เพื่อเรียกใช้งาน FilterForm และ ActiveFilters
โค้ด: เลือกทั้งหมด
$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');
administrator/components/com_ชื่อคอมพอเน้นท์/models/forms/filter_ชื่อที่ฟน้าที่ต้องการเรียก Form Filter.xml
ทำการสร้างฟอร์ม XML เพื่อให้ ส่วนของ view เรียกไปใช้งาน โดยในที่นี้จะระบุไว้ 3 อย่างคือ ปุ่มค้นหา, ปุ่มค้นหาตามตัวอักษร, ปุ่มการแสดงกี่จำนวน
*หมายเหตุ
<option value="a.name asc">name น้อยไปมาก</option>
<option value="a.name desc">name มากไปน้อย</option>
name คือชื่อที่เราเก็บไว้ใน ฐานข้อมูล
asc คือการเรียงจากน้อยไปหามาก
desc คือการเรียงจากมากไปหาน้อย
- Workspace 1_003.png (44.48 KiB) Viewed 960 times
- secdesc.png (42.71 KiB) Viewed 960 times
โค้ด: เลือกทั้งหมด
<?xml version="1.0" encoding="utf-8"?>
<form>
<!--ปุ่มsearch-->
<fields name="filter">
<field
name="search"
type="text"
label="COM_CONTENT_FILTER_SEARCH_LABEL"
description="COM_CONTENT_FILTER_SEARCH_DESC"
hint="JSEARCH_FILTER"
/>
</fields>
<!--ปุ่มค้นหาจากชื่อที่เก็บไว้ในฐานข้อมูล โดยในที่นี้มี name,qty,price โดย asc หมายถึงการเรียงจากน้อยไปหามากและ desc เรียกจากมากไปหาน้อย-->
<fields name="list">
<field
name="fullordering"
type="list"
label="COM_CONTENT_LIST_FULL_ORDERING"
description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
onchange="this.form.submit();"
default="a.id DESC"
>
<option value="a.name asc">name น้อยไปมาก</option>
<option value="a.name desc">name มากไปน้อย</option>
<option value="a.qty asc">qty น้อยไปมาก</option>
<option value="a.qty desc">qty มากไปน้อย></option>
<option value="a.price asc">price น้อยไปมาก</option>
<option value="a.price desc">price >มากไปน้อย</option>
<!--เพิ่มปุ่ม กำหนดว่าแสดงเท่าไหร่ ในที่นี้กำหนดไว้ตอนเริ่มต้นเป็น 20-->
</field>
<field
name="limit"
type="limitbox"
class="input-mini"
default="20"
label="COM_CONTENT_LIST_LIMIT"
description="COM_CONTENT_LIST_LIMIT_DESC"
onchange="this.form.submit();"
/>
</fields>
</form>
[u][b]สร้าง[url=https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B8%84%E0%B8%A7%E0%B8%B2%E0%B8%A1/34-joomla.html]Joomla[/url] Filter ปุ่มค้นหา, ปุ่มค้นหาเรียงตามชื่อ, ปุ่มจำนวนการแสดงผล[/b][/u]
[attachment=2]Workspace 1_002.png[/attachment]
[b]administrator/components/com_ชื่อคอมโพเน้นท์/views/ชื่อหน้าที่ต้องการเพิ่ม Filter/tmpl/default.php[/b]
ใส่ code นี้ลงไปเพื่อแสดงผลแถบ Filter
[code] <?php
// Search tools bar
echo JLayoutHelper::render('joomla.searchtools.default', array('view' => $this));
?>[/code]
[b]administrator/components/com_ชื่อคอมพอเน้นท์/views/ชื่อหน้าที่ต้องการเพิ่ม Filter/view.html.php[/b]
ใส่ code ในฟังค์ชั่น display เพื่อเรียกใช้งาน FilterForm และ ActiveFilters
[code]$this->filterForm = $this->get('FilterForm');
$this->activeFilters = $this->get('ActiveFilters');[/code]
[b]administrator/components/com_ชื่อคอมพอเน้นท์/models/forms/filter_ชื่อที่ฟน้าที่ต้องการเรียก Form Filter.xml[/b]
ทำการสร้างฟอร์ม XML เพื่อให้ ส่วนของ view เรียกไปใช้งาน โดยในที่นี้จะระบุไว้ 3 อย่างคือ ปุ่มค้นหา, ปุ่มค้นหาตามตัวอักษร, ปุ่มการแสดงกี่จำนวน
[color=#FF0000][b]*หมายเหตุ[/b][/color]
<option value="a.name asc">name น้อยไปมาก</option>
<option value="a.name desc">name มากไปน้อย</option>
[b]name[/b] คือชื่อที่เราเก็บไว้ใน ฐานข้อมูล
[b]asc[/b] คือการเรียงจากน้อยไปหามาก
[b]desc[/b] คือการเรียงจากมากไปหาน้อย
[attachment=1]Workspace 1_003.png[/attachment]
[attachment=0]secdesc.png[/attachment]
[code]<?xml version="1.0" encoding="utf-8"?>
<form>
<!--ปุ่มsearch-->
<fields name="filter">
<field
name="search"
type="text"
label="COM_CONTENT_FILTER_SEARCH_LABEL"
description="COM_CONTENT_FILTER_SEARCH_DESC"
hint="JSEARCH_FILTER"
/>
</fields>
<!--ปุ่มค้นหาจากชื่อที่เก็บไว้ในฐานข้อมูล โดยในที่นี้มี name,qty,price โดย asc หมายถึงการเรียงจากน้อยไปหามากและ desc เรียกจากมากไปหาน้อย-->
<fields name="list">
<field
name="fullordering"
type="list"
label="COM_CONTENT_LIST_FULL_ORDERING"
description="COM_CONTENT_LIST_FULL_ORDERING_DESC"
onchange="this.form.submit();"
default="a.id DESC"
>
<option value="a.name asc">name น้อยไปมาก</option>
<option value="a.name desc">name มากไปน้อย</option>
<option value="a.qty asc">qty น้อยไปมาก</option>
<option value="a.qty desc">qty มากไปน้อย></option>
<option value="a.price asc">price น้อยไปมาก</option>
<option value="a.price desc">price >มากไปน้อย</option>
<!--เพิ่มปุ่ม กำหนดว่าแสดงเท่าไหร่ ในที่นี้กำหนดไว้ตอนเริ่มต้นเป็น 20-->
</field>
<field
name="limit"
type="limitbox"
class="input-mini"
default="20"
label="COM_CONTENT_LIST_LIMIT"
description="COM_CONTENT_LIST_LIMIT_DESC"
onchange="this.form.submit();"
/>
</fields>
</form>[/code]