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,027

HOME > PHP > PHP Forum > ขอแนวทางการศึกษา หรือ E book เกี่ยวกับ Smarty Template Engine ด้วยครับ



 

ขอแนวทางการศึกษา หรือ E book เกี่ยวกับ Smarty Template Engine ด้วยครับ

 



Topic : 067446



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



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



ขอแนวทางการศึกษา หรือ E book เกี่ยวกับ Smarty Template Engine ด้วยครับ

พอดี ศึกษา Smarty Template Engine แต่ยัง คง งง กับการเขียนอยู่ครับ

ในการติดต่อฐานข้อมูล การจัดการเขียน template ต้องแยกส่วน header footer ด้วยไหม


รบกวนด้วยนะครับ

มือใหม่มากๆๆ



Tag : PHP, HTML/CSS, Ajax







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-10-01 17:47:46 By : icman View : 1419 Reply : 8
 

 

No. 1



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



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

doc http://www.smarty.net/documentation
App http://www.smarty.net/sampleapp1

เทมเพลตก็ออกแบบปกติเหมือนตอนออกแบบหน้า html หรือจะใช้แท็กของ smarty หมดก็ได้ หรือจะใช้แท็ก html เดิมก็ได้ แล้วเซพเป็น .tpl
หรือหาก มีการ include ก็เขียน {include file="header.tpl"} เป็นต้น


การติดต่อฐานข้อมูลใช้ pdo เขียนคลาสเพิ่มเติมเพื่อให้ใช้ง่ายเช่น หรือจะใช้ pdo เลยก็ได้

index.php
define('WEB_BASE', str_replace('\\','/',str_replace('//','/',dirname(__FILE__))."/"));
define('THEME', "http://".$_SERVER['SERVER_NAME']."/templates");
define('THEME_DIR', WEB_BASE."/templates");

class MyDB extends Smarty{
        var $dbtype = 'mysql';
  	// PDO database name
  	var $dbname = 'test';
  	// PDO database host
  	var $dbhost = 'localhost';
  	// PDO database username
 	var $dbuser = 'root';
 	// PDO database password
  	var $dbpass = '12345';
	// PDO database charset
	var $charset = 'utf8';
     
      function __construct() {
		parent::__construct();
		$this->template_dir = WEB_BASE . 'templates';
		$this->compile_dir = WEB_BASE . 'templates_c';
		$this->config_dir = WEB_BASE . 'configs';
		$this->cache_dir = WEB_BASE . 'cache';
     }
      public function openConnect(){
		// instantiate the pdo object
    	try {
      		$dsn = "{$this->dbtype}:host={$this->dbhost};dbname={$this->dbname};charset={$this->charset}";
      		$this->pdo =  new PDO($dsn,$this->dbuser,$this->dbpass);
			$this->pdo->query("SET NAMES '{$this->charset}'");
			$this->pdo->query("SET character_set_results={$this->charset}");
  			$this->pdo->query("SET character_set_client={$this->charset}");
  			$this->pdo->query("SET character_set_connection={$this->charset}");
			return  $this->pdo;
    	} catch (PDOException $e) {
     		 print "Error!: " . $e->getMessage();
      		die();
    	}	
	}
	public function closeConnect($conn=""){
		$conn=null;
		$this->pdo=null;
	}
       //Add edit delete 
	public function queryData(){
		try {
			$rs=$this->pdo->exec($this->sql);
			if($rs>0){return true;}else{return false;}
			$rs=null;
		}catch (PDOException $e) {return $e->getMessage();}
	}
        //List
	public function executeData(){
		try {
			$rs = $this->pdo->prepare($this->sql); 
  			$rs->execute(); 
			$rs->setFetchMode(PDO::FETCH_ASSOC);
			return $rs;
		}catch (PDOException $e) {return $e->getMessage();}
	}
	public function numrowData($select_table){
		try {
			$rs = $this->pdo->prepare("select count(*) as total from $select_table"); 
  			$rs->execute(); 
			$rs->setFetchMode(PDO::FETCH_ASSOC);
			foreach($rs as $key=>$rec){$total_rs=$rec["total"];} 
			return (int)$total_rs;
			$rs=null;$select_table=null;$key=null;$rec=null;$total_rs=null;
		}catch (PDOException $e) {echo $e->getMessage();}
	}
}

//Ex
$app=new MyDB;
$app->openConnect();
$mId=1;
//Add
//$app->sql="insert  into member() values()";
if($app->queryData()==true){
   // add success
  // app->assign("addSuccess",true);
}else{
  //add failed
  // app->assign("addSuccess",false);
}

//list member
$app->sql="select * from member where mem_id=".$mId;
$objRs=$app->executeData();

app->assign("objRs",$objRs);
// เขียนเงื่อนไขเพิ่มเติมเอาเพื่อที่จะให้แสดงหน้าไหน เช่น รับค่าจาก url เป็น page=list-member ก็ให้แสดง $app->display("list-member.tpl");
// หรือ รับค่า เป็น page=list-admin  ก็ให้แสดง $app->display("list-admin.tpl"); เป็นต้น
$app->display("list-member.tpl");


หน้า list-member.tpl

<table width="100%" border="0" cellspacing="0" cellpadding="5">
<thead>
  <tr>
    <td align="center" bgcolor="#ebebeb">No.</td>
    <td align="center" bgcolor="#ebebeb">Username</td>
    <td align="center" bgcolor="#ebebeb">Password</td>
    <td align="center" bgcolor="#ebebeb">Name</td>
    <td align="center" bgcolor="#ebebeb">Email</td>
    <td align="center" bgcolor="#ebebeb">Phone</td>
    <td align="center" bgcolor="#ebebeb">Last online</td>
    <td align="center" bgcolor="#ebebeb">Edit</td>
    <td align="center" bgcolor="#ebebeb">Delete</td>
  </tr>
  </thead>
  <tbody>
  {foreach $objRs as $rs}
  <tr class="tableline">
    <td align="center" class="intableline">{$rs@index+$no+1}</td>
    <td align="center" class="intableline">{$rs.username}</td>
    <td align="center" class="intableline">***</td>
    <td align="center" class="intableline">{$rs.name}</td>
    <td align="center" class="intableline">{$rs.email}</td>
    <td align="center" class="intableline">{$rs.tel}</td>
    <td align="center" class="intableline">{$rs.banner_update}</td>
    <td align="center" class="intableline"><img src="{$theme}/admin/icon/icon-edit.gif" width="49" height="19" alt="Edit" /></td>
    <td align="center" class="intableline"><img src="{$theme}/admin/icon/icon-delete.gif" width="49" height="19" alt="Delete" /></td>
  </tr>
  {foreachelse}
  <tr class="tableline">
  	<td align="center" class="intableline" colspan="9">no results</td>
  </tr>
  {/foreach}
  </tbody>
</table>


ตัวอย่างก็น่าจะพอได้ ลองไปอ่าน doc เล่นๆไปเดี๋ยวก็ได้ (smarty v.2)






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-10-02 17:04:03 By : chineji
 


 

No. 2

Guest


ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-10-04 21:26:11 By : icman
 

 

No. 3



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



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

มัน error ช่วงนี้ครับ Code (PHP)
$app->sql="select * from member where mem_id=".$mId;
$objRs=$app->executeData();

app->assign("objRs",$objRs);

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in D:\AppServ\www\1\t.php on line 92
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-10-04 21:39:22 By : icman
 


 

No. 4



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



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

อยากทราบว่า ถ้าเขา เปลื่ยน .tpl เป็น html จะมีผลเสียอะไรไหมครับ

โหลด e book มา อ่านแล้วยังใช้มันได้ 100% เลยครับ อิอิ มันเป็น อิง หมด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-10-23 03:20:59 By : icman
 


 

No. 5

Guest


https://www.thaicreate.com/community/php-adodb-smarty.html
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-10-23 08:05:22 By : peterXP
 


 

No. 6



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



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

อันนั้น ยังใช้ $smarty->display('employee.tpl'); tpl อยู่เลยครับ

ถ้า เปลื่ยน $smarty->display('employee.html') html อ่าครับ มีผลเสียไหมครับ
ผมลองเปลื่ยนดูแล้วได้ แต่กลัวมันจะมีปัญหาที่หลังครับ

รบกวนด้วยนะครับ

ขอบคุณครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-10-23 12:58:13 By : icman
 


 

No. 7



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



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

ลืมไปเลยพิมพ์ผิดไปนิดตัวอย่าง เป็น smarty 3 ใช้ pdo แต่ smarty 2 จะใช้ adodb
ที่ใช้ เป็น .html แทน .tpl ผมก็ไม่เคยลองเหมือนกัน

ตอนนี้น่าจะใช้ smarty ได้แก่งแล้วล่ะมั้ง หรือเปล่า ถ้าตัวอย่างที่เคยให้ไว้ ยังไม่เคลียร์พอไว้เดี๋ยวกลับห้องจะ เอา demo มาให้ดูสักระบบ ลองเอาไปศึกษาดู หรือถ้าเป็นอยู่แล้วก็คงไม่ต้อง ตัวอย่างก็ไม่ได้มีอะไรมาก ผมออกแบบไว้ให้มันรองรับเว็บหลายภาษา แล้วก็เปลี่ยนเทมเพลตได้
ตัวระบบแยกเป็นโมดูลๆ แต่โค๊ดที่ผมเขียนก็ยังคงคอนเซพไม่ค่อยคงที่เท่าไรผมเองก็ยังใช้มาได้ไม่นาน คอนเซพในการเขียนยังอยู่ระหว่างการปรับปรุงอยู่ แต่โดยรวมแล้วมันก็ทำงานได้ดี เพียงแต่ว่าอยากให้มันดูดีกว่านี้

ไงถ้าอยากจะดูก็ เม้นตอบมาบอกแล้วกันนะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-11-24 10:36:06 By : chineji
 


 

No. 8



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



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

อันนี้เป็นเว็บที่เขียนไว้ครับ แต่ยังไม่เสร็จ พึ่งเขียนไปได้ไม่นาน
http://122.155.18.22/~zp6790/

อยากๆดูครับ ขอบคุณครับ ^^
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2012-10-21 15:34:20 By : icman
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ขอแนวทางการศึกษา หรือ E book เกี่ยวกับ Smarty Template Engine ด้วยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 05
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 อัตราราคา คลิกที่นี่