Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > ปรึกษาเรื่องแนวทางของระบบ Joomla เกี่ยวกับระบบเสิทอีกครั้งครับ รบกวนด้วยครับ



 

ปรึกษาเรื่องแนวทางของระบบ Joomla เกี่ยวกับระบบเสิทอีกครั้งครับ รบกวนด้วยครับ

 



Topic : 112838



โพสกระทู้ ( 174 )
บทความ ( 0 )



สถานะออฟไลน์




คือว่า ผมได้หัดลองทำไฟล์เสิทใน คอมโพเน้นขึ้นมาของ จูมลา แต่ติดตรงที่ว่า ทำไมผมสร้างไฟล php ขึ้นมาเองแล้ว
ยกตัวอย่าง ผมสร้าง Search.php ผมเขียนการติดต่อฐานข้อมูลแบบเบสิค รวมทั้งเขียนคำสั่งค้นหาไป
มันกลับไม่สารมารถค้นหาได้ ไม่ก็เออเร่อครับ

แต่กลับกัน ผมดันต้องไปเขียน ฟังชั่นในคราส ที่ไฟล์ คอลโทรเลอร์แทน มันถึงใช้ได้ แต่ข้อที่ผมไม่สามารถไปต่อได้เลย
คือ ผมไม่ถนัดการเขียนโค๊ด ลงในฟังชั่นแล้วดึงขึ้นมาใช้อีกรอบอ่ะครับ ชอบแบบตรงๆในหน้านั้นเลย ผมจะทำยังไงได้บ้างครับ
จูมล่าเขียนโค๊ดตรงๆได้อย่างไรอ่ะครับ ไม่เอาแบบคราส มีโค๊ดให้ดูครับ

อันนี้คือย่อ Html Input ที่เรียกมาไฟล์ค้นหา ย่อๆๆนะครับ กลัวยาว
<form action="index.php?option=com_km&view=km&layout=result" method="post">
<input name="keyword" type="text" class="form-control" placeholder="ค้นหา">


แบบแรกสมมุติว่าผมเขียนโค๊ดค้นหาแบบเบสิคตรงๆแบบนี้ ในไฟ result.php มันใช้งานไม่ได้ครับ

Code (PHP)
<?php
/**
 * @package		Joomla.Site
 * @subpackage	com_users
 * @copyright	Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
 * @license		GNU General Public License version 2 or later; see LICENSE.txt
 * @since		1.6
 */

defined('_JEXEC') or die;
JHtml::_('behavior.tooltip');

$lang =& JFactory::getLanguage();
if ($lang->getName() == 'English (United Kingdom)') { $swtlang = 'en' ; } else if ($lang->getName() == 'Thai (ภาษาไทย)') { $swtlang = 'th' ; };

$keyword = JRequest::getVar('keyword');
//$text_search = JRequest::getVar('keyword'); ?>

<?php 


$kw = JRequest::getVar('keyword');
		$db = JFactory::getDbo();
		$sql = "SELECT 
					  tb_k2_categories.name
					, tb_k2_categories.description
					, tb_k2_items.title
					, tb_k2_items.introtext
				FROM tb_k2_items
						LEFT JOIN tb_k2_categories ON tb_k2_items.catid = tb_k2_categories.id
				WHERE tb_k2_items.title LIKE '%".$kw."%'
						OR tb_k2_categories.description LIKE '%".$kw."%' 
						OR tb_k2_items.introtext LIKE '%".$kw."%' 
						OR tb_k2_categories.name LIKE '%".$kw."%'
				ORDER BY tb_k2_categories.id";
				
				$db->setQuery($sql);		
		$rs = $db->LoadObjectList();
		return $rs;
		

?>

<p>คำที่ใช้ค้นหา : <?php echo $keyword; ?>
  <br><br>
  <table border="1" cellpadding="2" cellspacing="2">
<tr><td height="28" bgcolor="#FFFF99">ลำดับ</td><td bgcolor="#FFFF99">หมวด</td><td bgcolor="#FFFF99">หัวข้อ</td></tr>
<?php 
$i = 1;
foreach ($this->KMSearchList as $item){//: อันนี้เรียกฟังชั่นมา
	echo <<<HTML
<tr><td>$i</td><td bgcolor="#FFCCFF">{$item->name}</td><td>{$item->title}</td></tr>
<tr><td colspan=3 height="20"></td></tr>
<tr><td colspan=3>{$item->introtext}</td></tr>
HTML;
	$i++;
}



?>
</table>




แต่พอผมมาลองแทรกเขียนไฟลในคราส แล้วลองเรียกฟังชั่นในคราสมาใช้ กลับได้ครับ สมมุติว่า
อยู่ในไฟล์ชื่อ km.php ในไฟล์นี้จะเป็นคราสที่ประกาศใช้

Code (PHP)
<?php
/**
 * @version		2.6.x
 * @package		K2
 * @author		JoomlaWorks http://www.joomlaworks.net
 * @copyright	Copyright (c) 2006 - 2014 JoomlaWorks Ltd. All rights reserved.
 * @license		GNU/GPL license: http://www.gnu.org/copyleft/gpl.html
 */

// no direct access
defined('_JEXEC') or die ;

jimport('joomla.application.component.model');

 // import the Joomla modellist library
jimport('joomla.application.component.modellist');

class KmModelKm extends JModelList {
	
		 /**
	   * Items total
	   * @var integer
	   */
	  var $_total = null;
	 
	  /**
	   * Pagination object
	   * @var object
	   */
	  var $_pagination = null;
	  
	  
	public function getFullSearchListLv1() {
		
		$db = JFactory::getDbo();
		$sql1 = "SELECT
					cate.id,
					cate. NAME,
					cate.parent
				FROM
					tb_k2_categories AS cate
				WHERE	cate.id != 1
				AND cate.id != 2
				AND parent = 0
				order by ordering ASC
				";
		$db->setQuery($sql1);
		$list1 = $db->loadObjectList();
		
		return $list1;
		
	}
	  
	public function getKMSearchList() {
		
		$kw = JRequest::getVar('keyword');
		$db = JFactory::getDbo();
		$sql = "SELECT 
					  tb_k2_categories.name
					, tb_k2_categories.description
					, tb_k2_items.title
					, tb_k2_items.introtext
				FROM tb_k2_items
						LEFT JOIN tb_k2_categories ON tb_k2_items.catid = tb_k2_categories.id
				WHERE tb_k2_items.title LIKE '%".$kw."%'
						OR tb_k2_categories.description LIKE '%".$kw."%' 
						OR tb_k2_items.introtext LIKE '%".$kw."%' 
						OR tb_k2_categories.name LIKE '%".$kw."%'
				ORDER BY tb_k2_categories.id";

	}
	
}
	



ผมไม่เข้าใจครับว่า Joomla ทำไมเขียนโค๊ดแบบปกติไม่ได้ครับ หรือ ผมเขียนอะไรผิดไปไหมครับ
ผมอยากทราบหน่อยครับว่า ผมจะเขียนโค๊ดตรงๆได้อย่างไร คือไปไม่เป็นอะครับ พอดีเวปดันใช้จูมล่า
ผมอยากจะทำเพิ่มเองมันติดตรงนี้อ่ะครับ คือจะทำอะไรก็ต้องใช้คราส



Tag : PHP









ประวัติการแก้ไข
2014-11-26 00:20:22
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-11-26 00:17:26 By : sarut14 View : 813 Reply : 5
 

 

No. 1

Guest


ทำไม่ได้แล้วขี้เกียจศึกษาให้ตัวเองทำได้ก็ยกเลิกงานไปเถอะ

คนที่จ้างนายเค้าจะได้ไปหาคนอื่น อีแบบนี้เสียเวลาเค้าเปล่า ๆ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-26 00:53:33 By : เบิร์ด
 


 

No. 2



โพสกระทู้ ( 174 )
บทความ ( 0 )



สถานะออฟไลน์


เออขอโทษนะครับ ผมแค่สงสัยอยากรู้เลยถามครับว่า เพราะอะไรถึงเขียนตรงๆไปไม่ได้ ผมแค่อยากรู้ว่ามีส่วนไหนผิดไป
แล้วแค่อยากรู้ว่า ทำไมระบบเค้าต้องใช้คราส หรือ ต้องสร้างโมดูลไม่ก็คอมโพเน้นมาถึงเขียนได้ แต่เขียนตรงๆไม่ได้

เรื่องระบบจูมล่ายอมรับว่ามือใหม่ แล้วงานตรงนี้เป็นระบบที่ผมลองทำเป็นเคสดูครับ ว่ามันเป็นไง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-26 01:00:51 By : sarut14
 

 

No. 3



โพสกระทู้ ( 9,586 )
บทความ ( 2 )



สถานะออฟไลน์


joomla มีการ บล็อคคลาสของเขาครับ ถ้าไม่เริ่มเปิด ตั้งแต่ index สำหรับมือใหม่คง ใช้การเขียนตรง อ้่าง คลาสของเขาไม่ได้หรอกครับ

เขาเขียน โค๊ดตรวจสอบ diretory ตรวจสอบค่าเริ่มต้นไว้เยอะมากๆ

ลองทดสอบ ด้วยการ print ตัวแปร ที่ประกาศมาดูครับ

Code (PHP)
$arr = get_defined_vars();
print_r($arr); 


แล้วลองดูซิว่าคุณขาด ตัวแปรอะไรไป คลาสของ joomla ถึงไม่ทำงาน


ปล. function ที่น่าลอง
get_defined_functions() - Returns an array of all defined functions
get_defined_constants() - Returns an associative array with the names of all the constants and their values

ได้ความรู้ตรงนี้ไปแล้ว ก็ขอให้ช่วยเหลือคนอื่นๆ บ้างนะครับ อย่าช่วยแต่ตัวเองอย่างเดียว


ประวัติการแก้ไข
2014-11-26 07:46:43
2014-11-26 07:47:56
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-26 07:44:45 By : Chaidhanan
 


 

No. 4



โพสกระทู้ ( 174 )
บทความ ( 0 )



สถานะออฟไลน์


ลองดูแล้วครับได้ความรู้มากๆเลยครับ เอาไว้เชคตัวแปรในคราสครับ ขอบคุณจริงๆครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-26 11:46:21 By : sarut14
 


 

No. 5



โพสกระทู้ ( 7 )
บทความ ( 0 )



สถานะออฟไลน์


ผมละงงจริง ๆ ปกติ เขียนระบบใหนเขาจะใช้รูปแบบ ของ framework หรือ cms นั้น ๆ เขียน
อย่างเขียน yii ก็ใช้รูปแบบของ yii เขียน เขียน plugin ของ wordpress ก็ใช้รูปแบบของ wordpress เขียน
เข้าทำนอง "เข้าเมื่องตาหลิ่ว ต้องหลิ่วตาตาม" แต่นี้เขียน component ของ Joomla ดันไม่ใช้วิธีเขียน component ในรูปแบบ Joomla
ใครเขาจะไปตอบได้ อยากจะเขียนตามใจตัวเองในรูปแบบที่ตัวเองคิดแบบนี้มันต้องแก้ใขอะไรเองคนเดียวแล้ว

Code (PHP)
<?php
/**
 * @package     Joomla.Administrator
 * @subpackage  com_banners
 *
 * @copyright   Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE.txt
 */

defined('_JEXEC') or die;
JHtml::_('behavior.tabstate');

if (!JFactory::getUser()->authorise('core.manage', 'com_banners'))
{
	return JError::raiseWarning(404, JText::_('JERROR_ALERTNOAUTHOR'));
}

// Execute the task.
$controller = JControllerLegacy::getInstance('Banners');
$controller->execute(JFactory::getApplication()->input->get('task'));
$controller->redirect();




ตรงนี้เป็น code สำหรับการ route เส้นทางไปวิ่งไปหา method ของ controller อยากที่จะเขียนโดยไม่ใช้ class ไม่ใช้ MVC
มันต้องเริ่มจะการเขียน route เองใหม่หมด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-26 12:31:24 By : kamehameha
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ปรึกษาเรื่องแนวทางของระบบ Joomla เกี่ยวกับระบบเสิทอีกครั้งครับ รบกวนด้วยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่