Author Topic: unerklärbarer fehler  (Read 3418 times)

0 Members and 1 Guest are viewing this topic.

Offline anderitor

  • Newbie
  • *
  • Posts: 18
    • View Profile
unerklärbarer fehler
« on: June 21, 2006, 03:09:24 PM »
Hallo!

Ich brauche unbedingt eine Hilfe!!

Nachdem ich mich entschlossen hatte eine komplett neue Gallerie zu erstellen, habe ich gleich auf 1.7.2  geupdated und ein neues Template eingebunden!! Ich scheiter jedoch schon bei der Einrichtung meiner neuer Gallerie!

Leider erscheint jetzt dieser Fehler: schaut selbst

hat sich erledigt

in Zeile 26 in der template.php steht aber nur das:

Code: [Select]
}
hier die gesamte template.php:

Code: [Select]
<?php
/**************************************************************************
 *                                                                        *
 *    4images - A Web Based Image Gallery Management System               *
 *    ----------------------------------------------------------------    *
 *                                                                        *
 *             File: template.php                                         *
 *        Copyright: (C) 2002 Jan Sorgalla                                *
 *            Email: jan@4homepages.de                                    *
 *              Web: http://www.4homepages.de                             *
 *    Scriptversion: 1.7.2                                                *
 *                                                                        *
 *    Never released without support from: Nicky (http://www.nicky.net)   *
 *                                                                        *
 **************************************************************************
 *                                                                        *
 *    Dieses Script ist KEINE Freeware. Bitte lesen Sie die Lizenz-       *
 *    bedingungen (Lizenz.txt) für weitere Informationen.                 *
 *    ---------------------------------------------------------------     *
 *    This script is NOT freeware! Please read the Copyright Notice       *
 *    (Licence.txt) for further information.                              *
 *                                                                        *
 *************************************************************************/
if (!defined('ROOT_PATH')) {
  die("Security violation");
}

class 
Template {

  var $no_error 0;
  var $val_cache = array();
  var $missing_val_cache = array();
  var $template_cache = array();
  var $template_path;
  var $template_extension "html";
  var $start "{";
  var $end "}";

  function Template($template_path "") {
    if (!@is_dir($template_path)) {
      $this->error("Couldn't open Template-Pack ".$template_path1);
    }
    $this->template_path $template_path;
  }

  function register_vars($var_name$value "") {
    if (!is_array($var_name)) {
      $this->val_cache[$var_name] = $value;
    }
    else {
      $this->val_cache array_merge($this->val_cache$var_name);
    }
  }

  function un_register_vars($var_list) {
    $vars explode(","$var_list);
    foreach ($vars as $val) {
      unset($this->val_cache[trim($val)]);
    }
  }

  function cache_templates($template_list) {
    $template_list explode(","$template_list);
    foreach ($template_list as $val) {
      $val trim($val);
      if (!isset($this->template_cache[$val])) {
        $this->get_template($val);
      }
    }
  }

  function get_template($template) {
    if (!isset($this->template_cache[$template])) {
      $path $this->template_path."/".$template.".".$this->template_extension;
      $line = @implode("", @file($path));
      if (empty($line)) {
        $this->error("Couldn't open Template ".$path1);
      }

      if (defined('EXEC_PHP_CODE') && EXEC_PHP_CODE == 0) {
        $line preg_replace("/<[\?|%]+(php|=)?(.*)[\?|%]+>/siU"""$line);
        $line preg_replace("/<script\s+language\s?=\s?[\"|']?php[\"|']?>
(.*)<\/script>/siU", "", $line);
      }

      $line = $this->compile_template($line);

      $this->template_cache[$template] = $line;
    }
    return $this->template_cache[$template];
  }

  function parse_template($template) {
    $template = $this->get_template($template);

    // Don't show error notices
    $old = error_reporting(E_ALL ^ E_NOTICE);

    extract($this->val_cache);
    ob_start();
    //echo $template;
    eval("?>".$template."<?php return 1;");

    
$str = ob_get_contents();
    ob_end_clean();

    // Reset error_reporting
    error_reporting(
$old);

    return 
$str;
  }

  function compile_template(
$template)
  {
    // Compile variables in PHP code
    preg_match_all(
        "
/<[\?|%]+(php|=)?(.*)[\?|%]+>/siU",
        
$template,
        
$regs,
        PREG_SET_ORDER
    );

    for (
$i = 0; isset($regs[$i]); $i++) {
      // Fix single quotes
      
$parsed = preg_replace_callback(
        "
/=\s*'(.*)".preg_quote($this->start)."([A-Z0-9_]+)".preg_quote($this->end)."(.*)';/Usi",
        array(&
$this, '_fix_php_quotes'),
        
$regs[$i][0]
      );

      
$parsed = preg_replace_callback(
        '='.preg_quote(
$this->start).'([A-Z0-9_]+)'.preg_quote($this->end).'=Usi',
        array(&
$this, '_compile_php_var'),
        
$parsed
      );

      
$template = str_replace($regs[$i][0], $parsed$template);
    }

    // Compile variables
    
$template = preg_replace_callback(
        '='.preg_quote(
$this->start).'([A-Z0-9_]+)'.preg_quote($this->end).'=Usi',
        array(&
$this, '_compile_var'),
        
$template
    );

    // Compile condition tags
    
$template = preg_replace_callback(
        '='.preg_quote(
$this->start).'if(not?)?\s+([A-Z0-9_]+)'.preg_quote($this->end).'=Usi',
        array(&
$this, '_compile_condition_start'),
        
$template
    );

    
$template = preg_replace_callback(
        '='.preg_quote(
$this->start).'endif(not?)?\s+([A-Z0-9_]+)'.preg_quote($this->end).'=Usi',
        array(&
$this, '_compile_condition_end'),
        
$template
    );

    return 
$template;
  }

  function _compile_php_var(&
$matches) {
    return '
{$' . trim($matches[1]) . '}';
  }

  function _fix_php_quotes(&
$matches) {
    return '= "' . str_replace('"', '\\"', $matches[1])
           . $this->start.$matches[2].$this->end
           . str_replace('"', '\\"', $matches[3]) . '";';
  }

  function _compile_var(&
$matches) {
    
$name = trim($matches[1]);

    if (!isset(
$this->val_cache[$name])) {
        return 
$matches[0];
    }

    return '<?php echo $' . 
$name . '; ?>
';
  }

  function _compile_condition_start(&$matches) {
    $name = trim($matches[2]);

    if (!isset($this->val_cache[$name])) {
        return $matches[0];
    }

    if ($matches[1] == 'not') {
        return '<?php if (empty($' . $name . ') || $' . $name . ' === REPLACE_EMPTY){ ?>';
    }

    return '<?php if (!empty($' . $name . ') && $' . $name . ' !== REPLACE_EMPTY){ ?>';
  }

  function _compile_condition_end(&$matches) {
    $name = trim($matches[2]);

    if (!isset($this->val_cache[$name])) {
        return $matches[0];
    }

return '<?php ?>';
  }

  function parse_array($array) {
    static $keys;

    foreach ($array as $key => $val) {
      if (is_array($val)) {
        $array[$key] = $this->parse_array($val);
      }
      else {
        if (!isset($keys) || count($keys) != count($this->val_cache)) {
          $keys = array_keys($this->val_cache);
          array_walk($keys, array(&$this, '_prepare_key'));
        }

        $array[$key] = str_replace($keys, $this->val_cache, $val);
      }
    }
    return $array;
  }

  function _prepare_key(&$item)
  {
    $item = $this->start.$item.$this->end;
  }

  function print_template($template) {
    print $this->clean_template($template);
  }

  function clean_template($template) {
    $search_array = array(
      '='.preg_quote($this->start).'([A-Z0-9_]+)'.preg_quote($this->end).'=Usi',
      '='.preg_quote($this->start).'if(not)?\s+([A-Z0-9_]+)'.preg_quote($this->end).'=Usi',
      '='.preg_quote($this->start).'endif(not)?\s+([A-Z0-9_]+)'.preg_quote($this->end).'=Usi',
    );
    $replace_array = array(
      "",
      "",
      ""
    );
    $template = preg_replace($search_array, $replace_array, $template);

    return $template;
  }

  function error($errmsg, $halt = 0) {
    if (!$this->no_error) {
      echo "<br /><font color='#FF0000'><b>Template Error</b></font>: ".$errmsg."<br />";
      if ($halt) {
        exit;
      }
    }
  }
} // end of class
?>

Was kann ich tun?

Bitte helft mir
Vielen Dank
« Last Edit: June 21, 2006, 04:19:08 PM by anderitor »

Offline KurtW

  • 4images Guru
  • *******
  • Posts: 2.778
    • View Profile
    • Malediven-Bilder ~~Dreams~~
Re: unerklärbarer fehler
« Reply #1 on: June 21, 2006, 04:04:19 PM »
Hi,

freu mich, dass dir mein template gefällt.

Zum Fehler:
In jedem Zip ist auch ne readme.txt hinzugefügt.
Da steht unter anderem auch drin, das die gleichfalls im Zip enthaltene menue.php ins root verzeichnis deiner 4image installation gehört.
Dann klappts auch !!!!!

Weiter ist das posting hier an falscher Stelle. Entweder in Templates & Styles oder direkt in das Thread von mir.
Vielleicht kann ein Admin das thread hier verschieben.

Gruß
Kurt

Offline anderitor

  • Newbie
  • *
  • Posts: 18
    • View Profile
Re: unerklärbarer fehler
« Reply #2 on: June 21, 2006, 04:09:18 PM »
Super!!

habs gerade auch nochmal gelesen!
dachte die datei muss ins template verzeichnis!!

vielen Dankl

funzt jetzt super