Jump to content
php.lv forumi

Smarty config


eT`

Recommended Posts

Sveiki,

Ja man smarty config failā ( \www\lapa\smarty\configs\ ) ir izveidots config fails, kā viņu var uztaisīt,l ia inklūdojas katrā lapā automātiski?

Pašlaik ir sistēma

 

page.tpl -> include header.tpl

header.tpl -> include config.conf

un šādi nestrādā. Gribu conf failā nodefinēt globālos mainīgos, lai nav katru reizi jāpadod smarty objekta izveidošanas laikā.

Link to comment
Share on other sites

Nekādu.

 

Kas vainas pašam php?

Izmantojot alternatīvo sintaksi vispār smuki:

 

<strong><?=$mainigais;?></strong>

<? if($kautkas): ?>
<div> Teksts </div>
<? endif; ?>

<ul>
<? foreach($array as $val): ?>
 <li><?=$val['item'];?></li>
<? endforeach; ?>
</ul>

 

Galvenais nekrīti kārdinājumā darīt sarežģītākas lietas pašos templeitos, bet gan dari tikai tādas triviālas lietas kā izdrukā sarakstus, lieto if'us, utt. Aprēķinus, dažādus citus loģikas darbus veic kontrolierī.

Edited by briedis
Link to comment
Share on other sites

lūk tev būs vienkārša funkcija, kas māk ielādēt php failu kā templeitu:

$_name - faila nosaukums

$_data - masīvs ar mainīgajiem, kurus padot templeitam

function load($_name,$_data=array()){
 extract($_data);
 ob_start();
 require $_name;
 $c = ob_get_contents();
 ob_end_clean();
 return $c;
}

//lietoshana:
load('index.tpl',array(
 'name'=>'john',
 'title'=>'coooollll'
));

//templeitā savukārt:

<div><?php echo $name; ?></div>
<div><?php echo $title; ?></div>

Edited by codez
Link to comment
Share on other sites

Nestrādā man tava f-ja ( bet erroru arī nemet )

 

//initialize.php
defined('TEMPLATE_PATH') ? null : define('TEMPLATE_PATH',SITE_ROOT.DS.'public'.DS.'templates');
require_once(LIB_PATH.DS.'template.php');

//template.php

class Template
{
   public function __construct($_name,$_data=array())
   {
       if(file_exists(TEMPLATE_PATH.DS.$_name)) {
           extract($_data);
           ob_start();
           require(TEMPLATE_PATH.DS.$_name);
           $applied_template = ob_get_contents();
           ob_end_clean();
           return $applied_template;
       } else {
           $session->message("Template {$_name} not found!");
           return false;
       }
   }
}

//index.php ( kontrolieris )

require_once('../includes/initialize.php');
$template = new Template('index.php');

//index.php ( view's )
include_once(TEMPLATE_PATH.DS."header.php");
?>

   <ul id="menu">
       <li><a href="list_photo.php">Skatīt bildes</a></li>
   </ul>
<?php include_once(TEMPLATE_PATH.DS."footer.php"); ?>

Edited by eT`
Link to comment
Share on other sites

Šāda sistēma man strādā.

 

Template klase - http://paste.php.lv/...80aae7?lang=php

Izsaukšana kontrolierī - http://paste.php.lv/...0f85eb?lang=php

 

Bet nesaprotu vienu lietu. Viņš saglabā cache, bet katru reizi to iztīra.

Kāda jēga, tad ir viņā saglabāt, ja pēc katra refresha tāpat iztīra.

 

Vai tur jāizveido metode, kas pārbauda cache faila saturu, un ja sakrīt, tad netīra cache, bet ja nesakrīt, tad iztīra un saglabā jaunu failu.

Edited by eT`
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...