AIzaSyCfDuZRNiq6lSTh8022igTV4wiTuXj1TcU PHP Programming/smarty/tutorials/simple Resource Page | Learn About, Share and Discuss PHP Programming/smarty/tutorials/simple At Defaultlogic.com




PHP Programming/smarty/tutorials/simple
  1. Create a directory called Website, in your webserver.
  2. Copy Smarty's libs directory into it installation.
  3. Create a directory called compile.
  4. Create a directory called templates.
  5. In the Website directory, create a file called index.php and Web.class.php. Make sure that they are blank.
  6. Web.class.php should look like this:
     <?php
     class Web {
      function db_connect($db_host,$db_user,$db_pass,$db_db) {
       $this->link=@mysql_connect($db_host,$db_user,$db_pass) or die("Can't connect to database");
       @mysql_select_db($this->link,$db_db) or die("Connected, but can't select the database");
      }
      function db_query($sql) {
       return @mysql_query($this->link,$sql);
      }
      function db_close {
       mysql_close($this->link);
      }
     }
     ?>
    
  7. index.php should be this:
     <?php
     error_reporting(E_ALL);
     $db=array("host"=>"localhost","user"=>"root","pass"=>"","db"=>"database");
     $tables['content']="test_content";
     require_once("Web.class.php");
     $web=new Web;
     $web->db_connect($db['host'],$db['user'],$db['pass'],$db['db']);
     require_once("libs/Smarty.inc.php");
     $smarty=new Smarty;
     $smarty->template_dir="template";
     $smarty->compile_dir="compile";
     if ( isset($_GET['content_id']) && is_numeric($_GET['content_id']) ) {
      $sql="SELECT * FROM {$tables['content']} WHERE content_id = '{$_GET['content_id']}' LIMIT 1";
      $result=$web->db_query($sql);
      $rows=array;
      while ( $row=mysql_fetch_assoc($result) ) {
       $rows[]=$row;
      }
      if ( count($rows) == 1 ) {
       $smarty->assign("content_found",true);
       $smarty->assign("content_content",$rows['0']);
      } else {
       $smarty->assign("content_found",false);
      }
     $smarty->assign("section","content");
     }
     else {
      $sql="SELECT content_title,content_date,content_position,content_id FROM {$tables['content']} ORDER by content_position asc";
      $result=$web->db_query($sql);
      $rows=array;
      while ( $row=mysql_fetch_assoc($result) ) {
       $rows[]=$row;
      }
      $smarty->assign("section","home");
      $smarty->assign("content_content",$rows);
     }
     $smarty->display("index.tpl");
     $web->db_close;
     ?>
    
  8. Go to the templates directory
  9. Create a new file called index.tpl, make sure it's empty
  10. Create your own html design or anything and in the middle ( where you want the content to be ), write this:
     {if $section == "home"}
     <nowiki> <ul></nowiki>
      {foreach from="content_content" item="content_item"}
     <nowiki><li><a href="./?content_id={$content_item.content_id}">{$content_item.content_title}</a></li></nowiki>
      {/foreach}
     <nowiki> </ul></nowiki>
     {elseif $section == "content"}
     <nowiki>  <div><h1>{$content_content.content_title}</h1></div></nowiki>
       <nowiki><div>{$content_content.content_content}</div></nowiki>
     {else}
      Sorry, there is no such page here!
     {/if}
    
  11. Create new MySQL table, with the following information:
     TABLE NAME: test_content
     PRIMARY KEY: content_id
     content_id: INTEGER, EXTRA - AUTO_INCREASE
     content_title: VARCHAR(255)
     content_date: DATETIME
     content_content: TEXT
     content_position: INTEGER
    
  12. Modify your index.php and index.tpl as necessary ( notice the $db in index.php, change it to your settings!
  13. Now, using your MySQL Client (phpMyAdmin[1]/MySQL[2] or other tools), add new rows in your table, with content and it's title. Try it with three at the start.
  14. Now, go to your directory Website through your Web Browser (you might need to upload it to your web server or set one up on your computer) ;)

If you have any problems, go to ask on IRC irc://irc.freenode.org/php or contact me. I haven't tested this script yet so you might find some small mistakes.

  1. For the later versions of MySQL use the following code:
     CREATE TABLE `test_content` (
      `content_id` INT(11) NOT NULL AUTO_INCREMENT, 
      `content_title` VARCHAR(255) NOT NULL, 
      `content_date` DATETIME NOT NULL, 
      `content_content` TEXT NOT NULL, 
      `content_position` INT(11) NOT NULL,
      PRIMARY KEY (`content_id`)
     )
     TYPE = myisam;
    

References


  This article uses material from the Wikipedia page available here. It is released under the Creative Commons Attribution-Share-Alike License 3.0.

PHP_Programming/smarty/tutorials/simple
 



 

Connect with defaultLogic
What We've Done
Led Digital Marketing Efforts of Top 500 e-Retailers.
Worked with Top Brands at Leading Agencies.
Successfully Managed Over $50 million in Digital Ad Spend.
Developed Strategies and Processes that Enabled Brands to Grow During an Economic Downturn.
Taught Advanced Internet Marketing Strategies at the graduate level.


Manage research, learning and skills at defaultLogic. Create an account using LinkedIn or facebook to manage and organize your Digital Marketing and Technology knowledge. defaultLogic works like a shopping cart for information -- helping you to save, discuss and share.

Visit defaultLogic's partner sites below:
PopFlock.com : Music Genres | Musicians | Musical Instruments | Music Industry
NCR Works : Retail Banking | Restaurant Industry | Retail Industry | Hospitality Industry

  Contact Us