[ Príspevkov: 17 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
NapísalOffline : 08.02.2009 10:08 | [VYRIESENE] template class

ahojte chcel som použiť z phpbb triedu template ale mam problém
includol som to ale aj tak mi píše chybu

Citácia:
Fatal error: Call to a member function set_filenames() on a non-object in /home/ftpsite/subfox.deg.cz/news.php on line 174


tu je ten template.php
Kód:
<?php
/***************************************************************************
 *                              template.php
 *                            -------------------
 *   begin                : Saturday, Feb 13, 2001
 *   copyright            : (C) 2001 The phpBB Group
 *   email                : support@phpbb.com
 *
 *   $Id: template.php 5142 2005-05-06 20:50:13Z acydburn $
 *
 *
 ***************************************************************************/

/***************************************************************************
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation; either version 2 of the License, or
 *   (at your option) any later version.
 *
 ***************************************************************************/

/**
 * Template class. By Nathan Codding of the phpBB group.
 * The interface was originally inspired by PHPLib templates,
 * and the template file formats are quite similar.
 *
 */

class template {
   var $classname = "template";

   // variable that holds all the data we'll be substituting into
   // the compiled templates.
   // ...
   // This will end up being a multi-dimensional array like this:
   // $this->_tpldata[block.][iteration#][child.][iteration#][child2.][iteration#][variablename] == value
   // if it's a root-level variable, it'll be like this:
   // $this->_tpldata[.][0][varname] == value
   var $_tpldata = array();

   // Hash of filenames for each template handle.
   var $files = array();

   // Root template directory.
   var $root = "";

   // this will hash handle names to the compiled code for that handle.
   var $compiled_code = array();

   // This will hold the uncompiled code for that handle.
   var $uncompiled_code = array();

   /**
    * Constructor. Simply sets the root dir.
    *
    */
   function template($root = ".")
   {
      $this->set_rootdir($root);
   }

   /**
    * Destroys this template object. Should be called when you're done with it, in order
    * to clear out the template data so you can load/parse a new template set.
    */
   function destroy()
   {
      $this->_tpldata = array();
   }

   /**
    * Sets the template root directory for this Template object.
    */
   function set_rootdir($dir)
   {
      if (!is_dir($dir))
      {
         return false;
      }

      $this->root = $dir;
      return true;
   }

   /**
    * Sets the template filenames for handles. $filename_array
    * should be a hash of handle => filename pairs.
    */
   function set_filenames($filename_array)

   {
      if (!is_array($filename_array))
      {
         return false;
      }

      reset($filename_array);
      while(list($handle, $filename) = each($filename_array))
      {
         $this->files[$handle] = $this->make_filename($filename);
      }

      return true;
   }


   /**
    * Load the file for the handle, compile the file,
    * and run the compiled code. This will print out
    * the results of executing the template.
    */
   function pparse($handle)
   {
      if (!$this->loadfile($handle))
      {
         die("Template->pparse(): Couldn't load template file for handle $handle");
      }

      // actually compile the template now.
      if (!isset($this->compiled_code[$handle]) || empty($this->compiled_code[$handle]))
      {
         // Actually compile the code now.
         $this->compiled_code[$handle] = $this->compile($this->uncompiled_code[$handle]);
      }

      // Run the compiled code.
      eval($this->compiled_code[$handle]);
      return true;
   }

   /**
    * Inserts the uncompiled code for $handle as the
    * value of $varname in the root-level. This can be used
    * to effectively include a template in the middle of another
    * template.
    * Note that all desired assignments to the variables in $handle should be done
    * BEFORE calling this function.
    */
   function assign_var_from_handle($varname, $handle)
   {
      if (!$this->loadfile($handle))
      {
         die("Template->assign_var_from_handle(): Couldn't load template file for handle $handle");
      }

      // Compile it, with the "no echo statements" option on.
      $_str = "";
      $code = $this->compile($this->uncompiled_code[$handle], true, '_str');

      // evaluate the variable assignment.
      eval($code);
      // assign the value of the generated variable to the given varname.
      $this->assign_var($varname, $_str);

      return true;
   }

   /**
    * Block-level variable assignment. Adds a new block iteration with the given
    * variable assignments. Note that this should only be called once per block
    * iteration.
    */
   function assign_block_vars($blockname, $vararray)
   {
      if (strstr($blockname, '.'))
      {
         // Nested block.
         $blocks = explode('.', $blockname);
         $blockcount = sizeof($blocks) - 1;
         $str = '$this->_tpldata';
         for ($i = 0; $i < $blockcount; $i++)
         {
            $str .= '[\'' . $blocks[$i] . '.\']';
            eval('$lastiteration = sizeof(' . $str . ') - 1;');
            $str .= '[' . $lastiteration . ']';
         }
         // Now we add the block that we're actually assigning to.
         // We're adding a new iteration to this block with the given
         // variable assignments.
         $str .= '[\'' . $blocks[$blockcount] . '.\'][] = $vararray;';

         // Now we evaluate this assignment we've built up.
         eval($str);
      }
      else
      {
         // Top-level block.
         // Add a new iteration to this block with the variable assignments
         // we were given.
         $this->_tpldata[$blockname . '.'][] = $vararray;
      }

      return true;
   }

   /**
    * Root-level variable assignment. Adds to current assignments, overriding
    * any existing variable assignment with the same name.
    */
   function assign_vars($vararray)
   {
      reset ($vararray);
      while (list($key, $val) = each($vararray))
      {
         $this->_tpldata['.'][0][$key] = $val;
      }

      return true;
   }

   /**
    * Root-level variable assignment. Adds to current assignments, overriding
    * any existing variable assignment with the same name.
    */
   function assign_var($varname, $varval)
   {
      $this->_tpldata['.'][0][$varname] = $varval;

      return true;
   }


   /**
    * Generates a full path+filename for the given filename, which can either
    * be an absolute name, or a name relative to the rootdir for this Template
    * object.
    */
   function make_filename($filename)
   {
      // Check if it's an absolute or relative path.
      if (substr($filename, 0, 1) != '/')
      {
             $filename = ($rp_filename = phpbb_realpath($this->root . '/' . $filename)) ? $rp_filename : $filename;
      }

      if (!file_exists($filename))
      {
         die("Template->make_filename(): Error - file $filename does not exist");
      }

      return $filename;
   }


   /**
    * If not already done, load the file for the given handle and populate
    * the uncompiled_code[] hash with its code. Do not compile.
    */
   function loadfile($handle)
   {
      // If the file for this handle is already loaded and compiled, do nothing.
      if (isset($this->uncompiled_code[$handle]) && !empty($this->uncompiled_code[$handle]))
      {
         return true;
      }

      // If we don't have a file assigned to this handle, die.
      if (!isset($this->files[$handle]))
      {
         die("Template->loadfile(): No file specified for handle $handle");
      }

      $filename = $this->files[$handle];

      $str = implode("", @file($filename));
      if (empty($str))
      {
         die("Template->loadfile(): File $filename for handle $handle is empty");
      }

      $this->uncompiled_code[$handle] = $str;

      return true;
   }



   /**
    * Compiles the given string of code, and returns
    * the result in a string.
    * If "do_not_echo" is true, the returned code will not be directly
    * executable, but can be used as part of a variable assignment
    * for use in assign_code_from_handle().
    */
   function compile($code, $do_not_echo = false, $retvar = '')
   {
      // replace \ with \\ and then ' with \'.
      $code = str_replace('\\', '\\\\', $code);
      $code = str_replace('\'', '\\\'', $code);

      // change template varrefs into PHP varrefs

      // This one will handle varrefs WITH namespaces
      $varrefs = array();
      preg_match_all('#\{(([a-z0-9\-_]+?\.)+?)([a-z0-9\-_]+?)\}#is', $code, $varrefs);
      $varcount = sizeof($varrefs[1]);
      for ($i = 0; $i < $varcount; $i++)
      {
         $namespace = $varrefs[1][$i];
         $varname = $varrefs[3][$i];
         $new = $this->generate_block_varref($namespace, $varname);

         $code = str_replace($varrefs[0][$i], $new, $code);
      }

      // This will handle the remaining root-level varrefs
      $code = preg_replace('#\{([a-z0-9\-_]*?)\}#is', '\' . ( ( isset($this->_tpldata[\'.\'][0][\'\1\']) ) ? $this->_tpldata[\'.\'][0][\'\1\'] : \'\' ) . \'', $code);

      // Break it up into lines.
      $code_lines = explode("\n", $code);

      $block_nesting_level = 0;
      $block_names = array();
      $block_names[0] = ".";

      // Second: prepend echo ', append ' . "\n"; to each line.
      $line_count = sizeof($code_lines);
      for ($i = 0; $i < $line_count; $i++)
      {
         $code_lines[$i] = chop($code_lines[$i]);
         if (preg_match('#<!-- BEGIN (.*?) -->#', $code_lines[$i], $m))
         {
            $n[0] = $m[0];
            $n[1] = $m[1];

            // Added: dougk_ff7-Keeps templates from bombing if begin is on the same line as end.. I think. :)
            if ( preg_match('#<!-- END (.*?) -->#', $code_lines[$i], $n) )
            {
               $block_nesting_level++;
               $block_names[$block_nesting_level] = $m[1];
               if ($block_nesting_level < 2)
               {
                  // Block is not nested.
                  $code_lines[$i] = '$_' . $n[1] . '_count = ( isset($this->_tpldata[\'' . $n[1] . '.\']) ) ?  sizeof($this->_tpldata[\'' . $n[1] . '.\']) : 0;';
                  $code_lines[$i] .= "\n" . 'for ($_' . $n[1] . '_i = 0; $_' . $n[1] . '_i < $_' . $n[1] . '_count; $_' . $n[1] . '_i++)';
                  $code_lines[$i] .= "\n" . '{';
               }
               else
               {
                  // This block is nested.

                  // Generate a namespace string for this block.
                  $namespace = implode('.', $block_names);
                  // strip leading period from root level..
                  $namespace = substr($namespace, 2);
                  // Get a reference to the data array for this block that depends on the
                  // current indices of all parent blocks.
                  $varref = $this->generate_block_data_ref($namespace, false);
                  // Create the for loop code to iterate over this block.
                  $code_lines[$i] = '$_' . $n[1] . '_count = ( isset(' . $varref . ') ) ? sizeof(' . $varref . ') : 0;';
                  $code_lines[$i] .= "\n" . 'for ($_' . $n[1] . '_i = 0; $_' . $n[1] . '_i < $_' . $n[1] . '_count; $_' . $n[1] . '_i++)';
                  $code_lines[$i] .= "\n" . '{';
               }

               // We have the end of a block.
               unset($block_names[$block_nesting_level]);
               $block_nesting_level--;
               $code_lines[$i] .= '} // END ' . $n[1];
               $m[0] = $n[0];
               $m[1] = $n[1];
            }
            else
            {
               // We have the start of a block.
               $block_nesting_level++;
               $block_names[$block_nesting_level] = $m[1];
               if ($block_nesting_level < 2)
               {
                  // Block is not nested.
                  $code_lines[$i] = '$_' . $m[1] . '_count = ( isset($this->_tpldata[\'' . $m[1] . '.\']) ) ? sizeof($this->_tpldata[\'' . $m[1] . '.\']) : 0;';
                  $code_lines[$i] .= "\n" . 'for ($_' . $m[1] . '_i = 0; $_' . $m[1] . '_i < $_' . $m[1] . '_count; $_' . $m[1] . '_i++)';
                  $code_lines[$i] .= "\n" . '{';
               }
               else
               {
                  // This block is nested.

                  // Generate a namespace string for this block.
                  $namespace = implode('.', $block_names);
                  // strip leading period from root level..
                  $namespace = substr($namespace, 2);
                  // Get a reference to the data array for this block that depends on the
                  // current indices of all parent blocks.
                  $varref = $this->generate_block_data_ref($namespace, false);
                  // Create the for loop code to iterate over this block.
                  $code_lines[$i] = '$_' . $m[1] . '_count = ( isset(' . $varref . ') ) ? sizeof(' . $varref . ') : 0;';
                  $code_lines[$i] .= "\n" . 'for ($_' . $m[1] . '_i = 0; $_' . $m[1] . '_i < $_' . $m[1] . '_count; $_' . $m[1] . '_i++)';
                  $code_lines[$i] .= "\n" . '{';
               }
            }
         }
         else if (preg_match('#<!-- END (.*?) -->#', $code_lines[$i], $m))
         {
            // We have the end of a block.
            unset($block_names[$block_nesting_level]);
            $block_nesting_level--;
            $code_lines[$i] = '} // END ' . $m[1];
         }
         else
         {
            // We have an ordinary line of code.
            if (!$do_not_echo)
            {
               $code_lines[$i] = 'echo \'' . $code_lines[$i] . '\' . "\\n";';
            }
            else
            {
               $code_lines[$i] = '$' . $retvar . '.= \'' . $code_lines[$i] . '\' . "\\n";';
            }
         }
      }

      // Bring it back into a single string of lines of code.
      $code = implode("\n", $code_lines);
      return $code   ;

   }


   /**
    * Generates a reference to the given variable inside the given (possibly nested)
    * block namespace. This is a string of the form:
    * ' . $this->_tpldata['parent'][$_parent_i]['$child1'][$_child1_i]['$child2'][$_child2_i]...['varname'] . '
    * It's ready to be inserted into an "echo" line in one of the templates.
    * NOTE: expects a trailing "." on the namespace.
    */
   function generate_block_varref($namespace, $varname)
   {
      // Strip the trailing period.
      $namespace = substr($namespace, 0, strlen($namespace) - 1);

      // Get a reference to the data block for this namespace.
      $varref = $this->generate_block_data_ref($namespace, true);
      // Prepend the necessary code to stick this in an echo line.

      // Append the variable reference.
      $varref .= '[\'' . $varname . '\']';

      $varref = '\' . ( ( isset(' . $varref . ') ) ? ' . $varref . ' : \'\' ) . \'';

      return $varref;

   }


   /**
    * Generates a reference to the array of data values for the given
    * (possibly nested) block namespace. This is a string of the form:
    * $this->_tpldata['parent'][$_parent_i]['$child1'][$_child1_i]['$child2'][$_child2_i]...['$childN']
    *
    * If $include_last_iterator is true, then [$_childN_i] will be appended to the form shown above.
    * NOTE: does not expect a trailing "." on the blockname.
    */
   function generate_block_data_ref($blockname, $include_last_iterator)
   {
      // Get an array of the blocks involved.
      $blocks = explode(".", $blockname);
      $blockcount = sizeof($blocks) - 1;
      $varref = '$this->_tpldata';
      // Build up the string with everything but the last child.
      for ($i = 0; $i < $blockcount; $i++)
      {
         $varref .= '[\'' . $blocks[$i] . '.\'][$_' . $blocks[$i] . '_i]';
      }
      // Add the block reference for the last child.
      $varref .= '[\'' . $blocks[$blockcount] . '.\']';
      // Add the iterator for the last child if requried.
      if ($include_last_iterator)
      {
         $varref .= '[$_' . $blocks[$blockcount] . '_i]';
      }

      return $varref;
   }

}

?>


a takto to používam
Kód:
$template->set_filenames(array(
       'body' => 'news_body.tpl')
        );
      
      $template->assign_vars(array(
       'PREMENNA' => $hodnota)
        );


a dole mam
Kód:
$template->pparse('body');


Offline

Skúsený užívateľ
Skúsený užívateľ
[VYRIESENE] template class

Registrovaný: 09.07.08
Prihlásený: 17.01.15
Príspevky: 1586
Témy: 96 | 96
NapísalOffline : 08.02.2009 11:46 | [VYRIESENE] template class

na začiatku ti chýba $template = new template();


_________________
neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to!
Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 08.02.2009 12:39 | [VYRIESENE] template class

a preco to robis takto komplikovane ? Podla mna na to netrebe triedu na 400 riadkov :D

ja mam na to funkciu na 10 riadkov a funguje rovnako dobre :)


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 08.02.2009 12:42 | [VYRIESENE] template class

a nedáš mi ju sem pls?
bo mi hento aj tak nejde :-D


Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 08.02.2009 12:45 | [VYRIESENE] template class

Kód:
function parse($template,$tagy=array())
{
  if(file_exists($template)) {
    $content = file_get_contents($template);
   
    if(count($tagy)>0) {
      foreach($tagy as $tag=>$data){
        $content = str_replace('{'.$tag.'}',$data,$content);
      }
    }
   
    return $content;
   
  } else {
    return 'Šablóna '.$template.' nenájdená';
  }
}

pouzitie:
Kód:
$tagy = array('premenna'=>'hodnota','premenna2'=>$hodnota2);
$vysledok = parse('template.tpl',$tagy);
// alebo rovno: echo parse(....


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 08.02.2009 12:48 | [VYRIESENE] template class

ok ale ja potrebujem aj $template->assign_block_vars funkciu


Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 08.02.2009 12:50 | [VYRIESENE] template class

a co akoze take robi ??

ved ked mas v sablone {premenna} tak potom si ju nastavis:
$tagy = array('premenna'=>$textNaNahradu);

co robi ta tvoja funkcia naviac ?


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 08.02.2009 12:54 | [VYRIESENE] template class

no myslím takto
poznámky tpl súbore
chcem takto
Názov kategórie clánkov
<!-- BEGIN clanky -->
vypisanie clankov
<!-- END clanky -->
stránkovanie

proste že to čo mam v while čo sa mi vypisuje z DB sa mi bude v tom tpl súbore opakovať a to preto aby som mal len jeden a nie 3

a ta class je s phpbb2 to preto je tak dlhá a sú tam aj nepotrebné veci


Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 08.02.2009 16:52 | [VYRIESENE] template class

tak to robim tak, ze do templatu dam napr:

Kód:
Tu je vypis clankov:
{clanky}


a potom mam template s jednym clankom:

Kód:
<h2>{nazov}</h2>
{popis}<br>


a potom v PHP:
vyber clankov:
Kód:
while($r=mysql_fetch_assoc($sql)) {
  $tagy = array('nazov'=>$r['nazov'],'popis'=>$popis);
  $clanky .= parse('sablonaClanku.tpl',$tagy);
}

a potom to hodim do hlavnej sablony:
Kód:
$tagy = array('clanky'=>$clanky);
$celok = parse('celaSablona.tpl',$tagy);


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 08.02.2009 17:40 | [VYRIESENE] template class

ok skusim ale nevieš prečo mi hento nejde?
proste nevypíše články
nemôžeš sa na to pls pozrieť?

lebo to je template z phpbb2 a s tým viem trošku robiť a celkom sa mi ten systém hodí ale nefunguje mi to tak ako by malo


Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 08.02.2009 17:45 | [VYRIESENE] template class

neviem, fakt by som si nad to musel sadnut..
podla mna je to ale pouzivat zbytocne.. Zbytocne vela veci tam mas, co nevyuzijes..


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 08.02.2009 17:49 | [VYRIESENE] template class

ale mne tu ide o Názov kategórie clánkov
<!-- BEGIN clanky -->
vypisanie clankov
<!-- END clanky -->
stránkovanie

tie poznámky v html


Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 09.09.07
Prihlásený: 07.11.16
Príspevky: 3128
Témy: 233 | 233
Bydlisko: Nové Zámky
NapísalOffline : 08.02.2009 17:58 | [VYRIESENE] template class

o poznamky ? Ved tie pises do sablony, nie ??

alebo si tu funkciu zduplikuj (alebo uprav cez podmienku) kde to bude nebude nahradzovat { a } ale <!-- BEGIN {volaco} -->

ale as nechapem, co presne chces..


_________________
"It took a lot of work, but this latest Linux patch enables support for machines with 4096 CPUs, up from the old limit of 1024." "Do you have support for smooth full-screen flash video yet?" "No, but who uses that?"
- ak dlho neodpisujem do témy, zabudol som na ňu, takže ma upozornite SS, ak chcete moju odpoveď
Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 08.02.2009 18:00 | [VYRIESENE] template class

takto
ja pomocou toho templatu keď ho dám do php tak pomocou
assign_block_vars
spravím to že to čo je v poznámke povolím alebo môžem viac krát zopakovať
teda k tomu tvojmu prirobiť tuto funkciu
Kód:
function assign_block_vars($blockname, $vararray)
   {
      if (strstr($blockname, '.'))
      {
         // Nested block.
         $blocks = explode('.', $blockname);
         $blockcount = sizeof($blocks) - 1;
         $str = '$this->_tpldata';
         for ($i = 0; $i < $blockcount; $i++)
         {
            $str .= '[\'' . $blocks[$i] . '.\']';
            eval('$lastiteration = sizeof(' . $str . ') - 1;');
            $str .= '[' . $lastiteration . ']';
         }
         // Now we add the block that we're actually assigning to.
         // We're adding a new iteration to this block with the given
         // variable assignments.
         $str .= '[\'' . $blocks[$blockcount] . '.\'][] = $vararray;';

         // Now we evaluate this assignment we've built up.
         eval($str);
      }
      else
      {
         // Top-level block.
         // Add a new iteration to this block with the variable assignments
         // we were given.
         $this->_tpldata[$blockname . '.'][] = $vararray;
      }

      return true;
   }


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.02.07
Prihlásený: 21.02.10
Príspevky: 3991
Témy: 96 | 96
NapísalOffline : 08.02.2009 18:25 | [VYRIESENE] template class

BB používa takéto kusy pre zobrazenie jednotlivým cieľovým skupinám, alebo kusom. A on to chce rovnako. Jednoducho to už nie sú HTML poznámky.


Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 07.08.06
Prihlásený: 05.12.17
Príspevky: 919
Témy: 259 | 259
Bydlisko: Levice
NapísalOffline : 08.02.2009 18:37 | [VYRIESENE] template class

miso250593 píše:
ale mne tu ide o Názov kategórie clánkov
<!-- BEGIN clanky -->
vypisanie clankov
<!-- END clanky -->
stránkovanie

tie poznámky v html



predpokladam ze mas zvlast html template subor a php. Tak v tom php subore definujes

Kód:
$tpl_sub->newBlock("clanky");
$tpl_sub->assign("vypis",$clanok[$x]);
      


samozrejme to das do cyklu while, kde premennu x budes zvysovat stale o 1 a clanky bude citat z dtb.

Potom v template /tpl.htm/ subore das presne tam, kde chces clanky vypisat

Kód:
<!-- START BLOCK : clanky-->
{vypis}
<!-- END BLOCK : clanky-->


toto je vsak sposob s TemplatePower, ktory pouzivam ja, neskumal som presne ty aky pouzivas, ale princip by mal byt rovnaky.


Offline

Užívateľ
Užívateľ
[VYRIESENE] template class

Registrovaný: 20.03.08
Prihlásený: 08.03.17
Príspevky: 596
Témy: 149 | 149
Bydlisko: Houston, Texas
Vek: 24
Napísal autor témyOffline : 08.02.2009 18:54 | [VYRIESENE] template class

jj to je asi presne to čo chcem


 [ Príspevkov: 17 ] 


[VYRIESENE] template class



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

[VYRIESENE] PHP template class

v PHP, ASP

23

852

24.02.2009 23:09

Flety

V tomto fóre nie sú ďalšie neprečítané témy.

[VYRIESENE] PHP unzip class

v PHP, ASP

6

327

26.02.2009 13:01

Flety

V tomto fóre nie sú ďalšie neprečítané témy.

MicroSDHC class 2 alebo class 4 mám vrátiť ?

v Pamäte

3

491

16.12.2010 20:09

majky358

V tomto fóre nie sú ďalšie neprečítané témy.

Template

v Ponuka práce

5

1296

23.08.2006 8:58

wix

V tomto fóre nie sú ďalšie neprečítané témy.

Template Power

v PHP, ASP

1

351

19.09.2008 16:53

neopagan

V tomto fóre nie sú ďalšie neprečítané témy.

template prestashop

v Ponuka práce

0

811

22.12.2009 8:42

frenkacik

V tomto fóre nie sú ďalšie neprečítané témy.

Ukradnuty template

v Ostatné

15

827

17.07.2008 15:09

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

PSD Template

v Webdesign

4

415

14.07.2012 11:53

samson3333

V tomto fóre nie sú ďalšie neprečítané témy.

Rock template

v Webdesign

5

626

03.10.2009 21:46

jefitto

V tomto fóre nie sú ďalšie neprečítané témy.

Hľadám template

v Webdesign

0

124

26.01.2014 14:10

Mego

V tomto fóre nie sú ďalšie neprečítané témy.

Joomla a template

v Redakčné systémy

1

453

28.05.2011 12:02

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

Vlastny css template

v Webdesign

10

686

03.11.2010 16:24

vputin

V tomto fóre nie sú ďalšie neprečítané témy.

Template pre joomlu

v Redakčné systémy

2

350

01.03.2010 22:53

snow23

V tomto fóre nie sú ďalšie neprečítané témy.

Import Bootstrap template

v Ostatné

0

102

13.04.2016 15:44

martinius96

V tomto fóre nie sú ďalšie neprečítané témy.

Template v Joomle

v Ponuka práce

1

780

05.02.2010 9:50

fanshop2

V tomto fóre nie sú ďalšie neprečítané témy.

Ako upravit template?

v Redakčné systémy

2

475

16.04.2007 15:58

MiroCO



© 2005 - 2017 PCforum, edited by JanoF