Jump to content
php.lv forumi

Recommended Posts

Posted

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ā.

Posted

Sāc ar to, ka nelieto smarty :D

 

Otrkārt, ja tev ir normāla mvc struktūra, tad tu vari kaut kādā base kontrolierī katru reizi automātiski padot to konfigu kaut kādam globālam smarty objektam.

Posted (edited)

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
Posted (edited)

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
Posted (edited)

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`
Posted (edited)

Šā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`

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...