Avatar billede dcheng Novice
09. februar 2004 - 15:08 Der er 4 kommentarer og
1 løsning

Newbie spørgsmål

Jeg har en functions.php fil hvor der bliver defineret sådan nogle ting:

    $Template->Assign(array(
                        'ID'                => $MovieData->movie_id,
                        'NAME'                => $MovieData->movie_name,
                        'NAME2'                => $MovieData->movie_name2,
                        'GENRE'                => $MovieData->movie_genre,


Der næste har jeg nogle TPL filer som bruger det for oven... altså hvis "{GENRE}" indgår i tpl filen så bliver værdien i "movie_genre" i databasen taget ud...

Det jeg vil er at jeg vil i TPL filen have trukket datoen ud med denne:
<?php
echo date("d-m-Y");
?>

Hvad skal jeg skrive i min functions.php for at få trukket datoen ud når der indgår "{DATE}" i TPL filen.

Jeg har forsøgt at skrive det direkte i TPL filen men så spytter den bare scriptet ud uden at omregne datoen...
Avatar billede danino Nybegynder
09. februar 2004 - 15:14 #1
$fd = fopen("fil.tpl", "r");
$fstring = fread($fd, filesize("fil.tpl"));
$date = date("d-m-Y");
str_replace("{DATE}", $date, $fstring);
echo $fstring;
sådan f. eks.
Avatar billede danino Nybegynder
09. februar 2004 - 15:14 #2
Skulle have været et svar...
Avatar billede dcheng Novice
09. februar 2004 - 20:52 #3
Jeg tror du misforstår hvad jeg vil jeg har prøvet det du skriver virker nada i mit tilfælde. Iøvrigt kom jeg til at skrive functions.php istedet for index.php men det gør ingen forskæl..
Men se på det her:
##############
edit_movie.tpl
##############
<td width="34%" align="right">
<p class="Movie">
<font face="Verdana" size="2" color="#FFFFFF">Udlånt til</font></td>
<td width="2%"></td>
<td width="63%" align="left">
<font color="#FFFFFF" face="Verdana"><input type="text" name="movie[loan]" value="{LOAN}" onClick="if (this.value=='Ingen') this.value='';" size="10" ><font size="2"> den </font>
<SELECT NAME='movie[loandate]' input type="text" CLASS='movie'>
<OPTION VALUE='{LOANDATE}'>{LOANDATE}
<OPTION VALUE=''>
<OPTION VALUE='{TIME}'>{TIME}
</SELECT></font></td>

#########
INDEX.PHP
#########
<?php

require('../mdb/library/libtempl.php');
require('../mdb/library/libmysql.php');
require('../mdb/library/libsaved.php');
require('../mdb/config.php');
require('../mdb/functions.php');

# ======== Set object from custom classes ========
$Template = new PVTemplate;
$DB          = new Database;
$Save      = new Data_Save;
# ================================================

# Get vars from globals
extract($_POST);
extract($_GET);
extract($_COOKIE);

$p = isset($p) ? $p : 'home'; // Include the page we wanna see

# Add all files we are going to use to the object
$Template->Set_Root('../mdb/templates/' . $Style . '/admin');
$Template->Define_File('login', 'login.tpl');
$Template->Define_File('header', 'header.tpl');
$Template->Define_File('menu', 'menu.tpl');
$Template->Define_File('body', $p . '.tpl');
$Template->Define_File('footer', 'footer.tpl');
# ================================================

# Assign data to vars in templates
$Template->Assign(array(
                    'SITE_TITLE'    => ' Movie Database Administrator Control Pannel',
                    'SITE_STYLE'    => '../templates/' . $Style . '/admin/style.css'
                    ));

# ======== Set database from config data =========
$DB->Server  = $DB_Server;
$DB->Port      = $DB_Port;
$DB->Database = $DB_Database;
$DB->Prefix  = $DB_Prefix;
$DB->DB_User  = $DB_Username;
$DB->DB_Pass  = $DB_Password;
$DB->Option  = array(
                    'pconnect'      => false,
                    'mysql_error'  => false,
                    'show_query'  => false
                    );
# ================================================


# ================================================

# = These are function for special dynamic pages =
switch($p)
{
  case 'edit_movie':
    # ================ Get movie info ================
    if (isset($id))
    {
      # ================ Get movie data ================
      $DB->connect(); // Conenct to the database
      $MovieData = $DB->query_object('
                                SELECT        *
                                FROM        {prefix}movie
                                WHERE        movie_id = ' . $id
                                );
      $DB->close(); // Close connection
      # ================================================
      $Template->Assign(array(
                        'LOANDATE'                => $MovieData->movie_loandate,
                        ));
    }
    else
    {
      die ('No movie ID');
    }
    break;
    # ================================================
### PLUS EN MASSE ANDRE CASE
  case 'logout':
    $Save->Destroy_all_Data ();
    echo $Template->Parse_File('login');
    exit;
    break;
}
# ================================================

# ============== Parse the templates =============
echo $Template->Parse_File('header');
echo $Template->Parse_File('menu');
echo $Template->Parse_File('body');
if (isset($Template->Files['body_end']))
{
  echo $List;
  echo $Template->Parse_File('body_end');
}
echo $Template->Parse_File('footer');
# ================================================
?>
Avatar billede dcheng Novice
09. februar 2004 - 20:55 #4
i edit_movie.php har jeg jo {TIME} som skal erstattes med dagens dato... men hvordan får jeg defineret den i min index.php til at den skal erstatte det?
Avatar billede dcheng Novice
10. februar 2004 - 16:33 #5
Jeg skulle bare tilføje dette:

    $today = date('d-m-Y');
          $Template->Assign(array(
                        'TIME'                => $today));
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester