Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Neuer Shop tpl_modified Kategorien mit Unterkat. werden nicht angezeigt

    karsta.de

    • Experte
    • Beiträge: 3.157
    Hast du irgendwas am Template tpl_modified geändert oder hinzugefügt?

    wernherr

    • Neu im Forum
    • Beiträge: 46
    Kann es sein das mit deinen links irgendetwas nicht stimmt. Wenn man auf Startseite  klickt bekommt man nicht die Startseite sondern irgend eine unvollständige Seite

    werner

    ZickZack

    • Neu im Forum
    • Beiträge: 24
    @ kgd - nein das Template ist das Original

    @ werner - ja das stimmt der Kunde ist der Meinung wenn er eine vorgeschaltete Index.html mit Metas hat wird er bei Google besser gelistet darum der Linl zu dieser Seite. Von dieser Seite kommt man immer in den Shop. Ich weiß nicht ob diese "Aktion" für Google notwendig ist oder nicht - vielleicht kannst Du mir was dazu sagen, ob es Sinn macht oder nicht, denn ich denke das ist nicht mehr stand der Dinge.

    Jürgen

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.990
    • Geschlecht:
    Schau mal auf dem Webspace per FTP in den Ordner /log/ nach Dateien namens mod_error_DATUM.log, mod_warning_DATUM.log.
    Dort sollten Fehlermeldungen aufgeführt sein die weiterbringen.

    Gruß,
    noRiddle

    ZickZack

    • Neu im Forum
    • Beiträge: 24
    Hallo noRiddle,

    ich hab mir die Logs angesehen und tatsächlich wenn ich eine Kategorie aufrufe die nicht lädt erscheint ein Log.

    Ich poste die Meldungen denn ich bin nicht so firm das ich das Problem lösen kann.
    Jedoch habe ich die Dateien der Installation mit denen am Server verglichen und sie sind identisch.
    Hier das Log mod_error:

    [01-05-2017 08:46:00] UNDEFINED_ERROR   : LoggingManager: Syntax error in template "/home/fensech1/addons/fetishladen.org/templates/tpl_modified/module/categorie_listing/categorie_listing_neu.html"  on line 14 "{php}" unknown tag "php" in File: /home/fensech1/addons/fetishladen.org/includes/external/smarty/smarty_3/sysplugins/smarty_internal_templatecompilerbase.php on Line: 14

    hier die categorie_listing_neu.html dazu:

    Code: XML  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="categorie_listing"}
    {if $CATEGORIES_HEADING_TITLE}
            <h1>{$CATEGORIES_HEADING_TITLE}</h1>
    {else}
            <h1>{$CATEGORIES_NAME}</h1>
    {/if}
    {if $CATEGORIES_IMAGE}<img src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME}" />{/if}
    {if $CATEGORIES_DESCRIPTION}<p>{$CATEGORIES_DESCRIPTION}</p>{/if}

    {if $module_content !=''} <strong>{#heading_more_categories#}</strong>
          <br />
          <table style="border-top: 2px solid; border-color: #d4d4d4;" width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr> {foreach name=aussen item=module_data from=$module_content}
                    {php}
              $col++;
                    {/php}
              <td class="main"><table  width="100%" border="0" cellpadding="0" cellspacing="4">
                    <tr>
                      <td align="center" >{if $module_data.CATEGORIES_IMAGE}<a href="{$module_data.CATEGORIES_LINK}"><img src="{$module_data.CATEGORIES_IMAGE}" alt="{$module_data.CATEGORIES_NAME}" /></a>{/if}</td>
                    </tr>
                    <tr>
                      <td align="center" ><strong><a href="{$module_data.CATEGORIES_LINK}">{$module_data.CATEGORIES_NAME}</a></strong></td>
                    </tr>
                    <tr>                  
                    </tr>
                  </table>
                </td>
              {php}
                      if ($col>=3) {
                      $col=0;
                      echo '</tr><tr>';
                       }
                      {/php}
                     {/foreach} </tr>
          </table>
           {/if} <br />
    {$MODULE_new_products}

    hier die smarty_internal_templatecompilerbase.php:

    Code: PHP  [Auswählen]
    <?php

    /**
     * Smarty Internal Plugin Smarty Template Compiler Base
     * This file contains the basic classes and methods for compiling Smarty templates with lexer/parser
     *
     * @package    Smarty
     * @subpackage Compiler
     * @author     Uwe Tews
     */


    /**
     * Main abstract compiler class
     *
     * @package    Smarty
     * @subpackage Compiler
     */

    abstract class Smarty_Internal_TemplateCompilerBase
    {
        /**
         * hash for nocache sections
         *
         * @var mixed
         */

        private $nocache_hash = null;

        /**
         * suppress generation of nocache code
         *
         * @var bool
         */

        public $suppressNocacheProcessing = false;

        /**
         * suppress generation of merged template code
         *
         * @var bool
         */

        public $suppressMergedTemplates = false;

        /**
         * compile tag objects
         *
         * @var array
         */

        public static $_tag_objects = array();

        /**
         * tag stack
         *
         * @var array
         */

        public $_tag_stack = array();

        /**
         * current template
         *
         * @var Smarty_Internal_Template
         */

        public $template = null;

        /**
         * merged templates
         *
         * @var array
         */

        public $merged_templates = array();

        /**
         * sources which must be compiled
         *
         * @var array
         */

        public $sources = array();

        /**
         * flag that we are inside {block}
         *
         * @var bool
         */

        public $inheritance = false;

        /**
         * flag when compiling inheritance child template
         *
         * @var bool
         */

        public $inheritance_child = false;

        /**
         * uid of templates called by {extends} for recursion check
         *
         * @var array
         */

        public $extends_uid = array();

        /**
         * source line offset for error messages
         *
         * @var int
         */

        public $trace_line_offset = 0;

        /**
         * trace uid
         *
         * @var string
         */

        public $trace_uid = '';

        /**
         * trace file path
         *
         * @var string
         */

        public $trace_filepath = '';
        /**
         * stack for tracing file and line of nested {block} tags
         *
         * @var array
         */

        public $trace_stack = array();

        /**
         * plugins loaded by default plugin handler
         *
         * @var array
         */

        public $default_handler_plugins = array();

        /**
         * saved preprocessed modifier list
         *
         * @var mixed
         */

        public $default_modifier_list = null;

        /**
         * force compilation of complete template as nocache
         *
         * @var boolean
         */

        public $forceNocache = false;

        /**
         * suppress Smarty header code in compiled template
         *
         * @var bool
         */

        public $suppressHeader = false;

        /**
         * suppress template property header code in compiled template
         *
         * @var bool
         */

        public $suppressTemplatePropertyHeader = false;

        /**
         * suppress pre and post filter
         *
         * @var bool
         */

        public $suppressFilter = false;

        /**
         * flag if compiled template file shall we written
         *
         * @var bool
         */

        public $write_compiled_code = true;

        /**
         * flag if currently a template function is compiled
         *
         * @var bool
         */

        public $compiles_template_function = false;

        /**
         * called subfuntions from template function
         *
         * @var array
         */

        public $called_functions = array();

        /**
         * flags for used modifier plugins
         *
         * @var array
         */

        public $modifier_plugins = array();

        /**
         * type of already compiled modifier
         *
         * @var array
         */

        public $known_modifier_type = array();

        /**
         * method to compile a Smarty template
         *
         * @param  mixed $_content template source
         *
         * @return bool  true if compiling succeeded, false if it failed
         */

        abstract protected function doCompile($_content);

        /**
         * Initialize compiler
         */

        public function __construct()
        {
            $this->nocache_hash = str_replace(array('.', ','), '-', uniqid(rand(), true));
        }

        /**
         * Method to compile a Smarty template
         *
         * @param  Smarty_Internal_Template $template template object to compile
         * @param  bool                     $nocache  true is shall be compiled in nocache mode
         *
         * @return bool             true if compiling succeeded, false if it failed
         */

        public function compileTemplate(Smarty_Internal_Template $template, $nocache = false)
        {
            if (empty($template->properties['nocache_hash'])) {
                $template->properties['nocache_hash'] = $this->nocache_hash;
            } else {
                $this->nocache_hash = $template->properties['nocache_hash'];
            }
            // flag for nochache sections
            $this->nocache = $nocache;
            $this->tag_nocache = false;
            // save template object in compiler class
            $this->template = $template;
            // reset has nocache code flag
            $this->template->has_nocache_code = false;
            $save_source = $this->template->source;
            // template header code
            $template_header = '';
            if (!$this->suppressHeader) {
                $template_header .= "<?php /* Smarty version " . Smarty::SMARTY_VERSION . ", created on " . strftime("%Y-%m-%d %H:%M:%S") . "\n";
                $template_header .= "         compiled from \"" . $this->template->source->filepath . "\" */ ?>\n";
            }

            if (empty($this->template->source->components)) {
                $this->sources = array($template->source);
            } else {
                // we have array of inheritance templates by extends: resource
                $this->sources = array_reverse($template->source->components);
            }
            $loop = 0;
            // the $this->sources array can get additional elements while compiling by the {extends} tag
            while ($this->template->source = array_shift($this->sources)) {
                $this->smarty->_current_file = $this->template->source->filepath;
                if ($this->smarty->debugging) {
                    Smarty_Internal_Debug::start_compile($this->template);
                }
                $no_sources = count($this->sources);
                if ($loop || $no_sources) {
                    $this->template->properties['file_dependency'][$this->template->source->uid] = array($this->template->source->filepath, $this->template->source->timestamp, $this->template->source->type);
                }
                $loop ++;
                if ($no_sources) {
                    $this->inheritance_child = true;
                } else {
                    $this->inheritance_child = false;
                }
                do {
                    $_compiled_code = '';
                    // flag for aborting current and start recompile
                    $this->abort_and_recompile = false;
                    // get template source
                    $_content = $this->template->source->content;
                    if ($_content != '') {
                        // run prefilter if required
                        if ((isset($this->smarty->autoload_filters['pre']) || isset($this->smarty->registered_filters['pre'])) && !$this->suppressFilter) {
                            $_content = Smarty_Internal_Filter_Handler::runFilter('pre', $_content, $template);
                        }
                        // call compiler
                        $_compiled_code = $this->doCompile($_content);
                    }
                } while ($this->abort_and_recompile);
                if ($this->smarty->debugging) {
                    Smarty_Internal_Debug::end_compile($this->template);
                }
            }
            // restore source
            $this->template->source = $save_source;
            unset($save_source);
            $this->smarty->_current_file = $this->template->source->filepath;
            // free memory
            unset($this->parser->root_buffer, $this->parser->current_buffer, $this->parser, $this->lex, $this->template);
            self::$_tag_objects = array();
            // return compiled code to template object
            $merged_code = '';
            if (!$this->suppressMergedTemplates && !empty($this->merged_templates)) {
                foreach ($this->merged_templates as $code) {
                    $merged_code .= $code;
                }
            }
            // run postfilter if required on compiled template code
            if ((isset($this->smarty->autoload_filters['post']) || isset($this->smarty->registered_filters['post'])) && !$this->suppressFilter && $_compiled_code != '') {
                $_compiled_code = Smarty_Internal_Filter_Handler::runFilter('post', $_compiled_code, $template);
            }
            if ($this->suppressTemplatePropertyHeader) {
                $code = $_compiled_code . $merged_code;
            } else {
                $code = $template_header . $template->createTemplateCodeFrame($_compiled_code) . $merged_code;
            }
            // unset content because template inheritance could have replace source with parent code
            unset ($template->source->content);

            return $code;
        }

        /**
         * Compile Tag
         * This is a call back from the lexer/parser
         * It executes the required compile plugin for the Smarty tag
         *
         * @param  string $tag       tag name
         * @param  array  $args      array with tag attributes
         * @param  array  $parameter array with compilation parameter
         *
         * @throws SmartyCompilerException
         * @throws SmartyException
         * @return string compiled code
         */

        public function compileTag($tag, $args, $parameter = array())
        {
            // $args contains the attributes parsed and compiled by the lexer/parser
            // assume that tag does compile into code, but creates no HTML output
            $this->has_code = true;
            $this->has_output = false;
            // log tag/attributes
            if (isset($this->smarty->get_used_tags) && $this->smarty->get_used_tags) {
                $this->template->used_tags[] = array($tag, $args);
            }
            // check nocache option flag
            if (in_array("'nocache'", $args) || in_array(array('nocache' => 'true'), $args)
                || in_array(array('nocache' => '"true"'), $args) || in_array(array('nocache' => "'true'"), $args)
            ) {
                $this->tag_nocache = true;
            }
            // compile the smarty tag (required compile classes to compile the tag are autoloaded)
            if (($_output = $this->callTagCompiler($tag, $args, $parameter)) === false) {
                if (isset($this->smarty->template_functions[$tag])) {
                    // template defined by {template} tag
                    $args['_attr']['name'] = "'" . $tag . "'";
                    $_output = $this->callTagCompiler('call', $args, $parameter);
                }
            }
            if ($_output !== false) {
                if ($_output !== true) {
                    // did we get compiled code
                    if ($this->has_code) {
                        // Does it create output?
                        if ($this->has_output) {
                            $_output .= "\n";
                        }
                        // return compiled code
                        return $_output;
                    }
                }
                // tag did not produce compiled code
                return null;
            } else {
                // map_named attributes
                if (isset($args['_attr'])) {
                    foreach ($args['_attr'] as $key => $attribute) {
                        if (is_array($attribute)) {
                            $args = array_merge($args, $attribute);
                        }
                    }
                }
                // not an internal compiler tag
                if (strlen($tag) < 6 || substr($tag, - 5) != 'close') {
                    // check if tag is a registered object
                    if (isset($this->smarty->registered_objects[$tag]) && isset($parameter['object_method'])) {
                        $method = $parameter['object_method'];
                        if (!in_array($method, $this->smarty->registered_objects[$tag][3]) &&
                            (empty($this->smarty->registered_objects[$tag][1]) || in_array($method, $this->smarty->registered_objects[$tag][1]))
                        ) {
                            return $this->callTagCompiler('private_object_function', $args, $parameter, $tag, $method);
                        } elseif (in_array($method, $this->smarty->registered_objects[$tag][3])) {
                            return $this->callTagCompiler('private_object_block_function', $args, $parameter, $tag, $method);
                        } else {
                            // throw exception
                            $this->trigger_template_error('not allowed method "' . $method . '" in registered object "' . $tag . '"', $this->lex->taglineno);
                        }
                    }
                    // check if tag is registered
                    foreach (array(Smarty::PLUGIN_COMPILER, Smarty::PLUGIN_FUNCTION, Smarty::PLUGIN_BLOCK) as $plugin_type) {
                        if (isset($this->smarty->registered_plugins[$plugin_type][$tag])) {
                            // if compiler function plugin call it now
                            if ($plugin_type == Smarty::PLUGIN_COMPILER) {
                                $new_args = array();
                                foreach ($args as $key => $mixed) {
                                    if (is_array($mixed)) {
                                        $new_args = array_merge($new_args, $mixed);
                                    } else {
                                        $new_args[$key] = $mixed;
                                    }
                                }
                                if (!$this->smarty->registered_plugins[$plugin_type][$tag][1]) {
                                    $this->tag_nocache = true;
                                }
                                $function = $this->smarty->registered_plugins[$plugin_type][$tag][0];
                                if (!is_array($function)) {
                                    return $function($new_args, $this);
                                } elseif (is_object($function[0])) {
                                    return $this->smarty->registered_plugins[$plugin_type][$tag][0][0]->$function[1]($new_args, $this);
                                } else {
                                    return call_user_func_array($function, array($new_args, $this));
                                }
                            }
                            // compile registered function or block function
                            if ($plugin_type == Smarty::PLUGIN_FUNCTION || $plugin_type == Smarty::PLUGIN_BLOCK) {
                                return $this->callTagCompiler('private_registered_' . $plugin_type, $args, $parameter, $tag);
                            }
                        }
                    }
                    // check plugins from plugins folder
                    foreach ($this->smarty->plugin_search_order as $plugin_type) {
                        if ($plugin_type == Smarty::PLUGIN_COMPILER && $this->smarty->loadPlugin('smarty_compiler_' . $tag) && (!isset($this->smarty->security_policy) || $this->smarty->security_policy->isTrustedTag($tag, $this))) {
                            $plugin = 'smarty_compiler_' . $tag;
                            if (is_callable($plugin)) {
                                // convert arguments format for old compiler plugins
                                $new_args = array();
                                foreach ($args as $key => $mixed) {
                                    if (is_array($mixed)) {
                                        $new_args = array_merge($new_args, $mixed);
                                    } else {
                                        $new_args[$key] = $mixed;
                                    }
                                }

                                return $plugin($new_args, $this->smarty);
                            }
                            if (class_exists($plugin, false)) {
                                $plugin_object = new $plugin;
                                if (method_exists($plugin_object, 'compile')) {
                                    return $plugin_object->compile($args, $this);
                                }
                            }
                            throw new SmartyException("Plugin \"{$tag}\" not callable");
                        } else {
                            if ($function = $this->getPlugin($tag, $plugin_type)) {
                                if (!isset($this->smarty->security_policy) || $this->smarty->security_policy->isTrustedTag($tag, $this)) {
                                    return $this->callTagCompiler('private_' . $plugin_type . '_plugin', $args, $parameter, $tag, $function);
                                }
                            }
                        }
                    }
                    if (is_callable($this->smarty->default_plugin_handler_func)) {
                        $found = false;
                        // look for already resolved tags
                        foreach ($this->smarty->plugin_search_order as $plugin_type) {
                            if (isset($this->default_handler_plugins[$plugin_type][$tag])) {
                                $found = true;
                                break;
                            }
                        }
                        if (!$found) {
                            // call default handler
                            foreach ($this->smarty->plugin_search_order as $plugin_type) {
                                if ($this->getPluginFromDefaultHandler($tag, $plugin_type)) {
                                    $found = true;
                                    break;
                                }
                            }
                        }
                        if ($found) {
                            // if compiler function plugin call it now
                            if ($plugin_type == Smarty::PLUGIN_COMPILER) {
                                $new_args = array();
                                foreach ($args as $mixed) {
                                    $new_args = array_merge($new_args, $mixed);
                                }
                                $function = $this->default_handler_plugins[$plugin_type][$tag][0];
                                if (!is_array($function)) {
                                    return $function($new_args, $this);
                                } elseif (is_object($function[0])) {
                                    return $this->default_handler_plugins[$plugin_type][$tag][0][0]->$function[1]($new_args, $this);
                                } else {
                                    return call_user_func_array($function, array($new_args, $this));
                                }
                            } else {
                                return $this->callTagCompiler('private_registered_' . $plugin_type, $args, $parameter, $tag);
                            }
                        }
                    }
                } else {
                    // compile closing tag of block function
                    $base_tag = substr($tag, 0, - 5);
                    // check if closing tag is a registered object
                    if (isset($this->smarty->registered_objects[$base_tag]) && isset($parameter['object_method'])) {
                        $method = $parameter['object_method'];
                        if (in_array($method, $this->smarty->registered_objects[$base_tag][3])) {
                            return $this->callTagCompiler('private_object_block_function', $args, $parameter, $tag, $method);
                        } else {
                            // throw exception
                            $this->trigger_template_error('not allowed closing tag method "' . $method . '" in registered object "' . $base_tag . '"', $this->lex->taglineno);
                        }
                    }
                    // registered block tag ?
                    if (isset($this->smarty->registered_plugins[Smarty::PLUGIN_BLOCK][$base_tag]) || isset($this->default_handler_plugins[Smarty::PLUGIN_BLOCK][$base_tag])) {
                        return $this->callTagCompiler('private_registered_block', $args, $parameter, $tag);
                    }
                    // block plugin?
                    if ($function = $this->getPlugin($base_tag, Smarty::PLUGIN_BLOCK)) {
                        return $this->callTagCompiler('private_block_plugin', $args, $parameter, $tag, $function);
                    }
                    // registered compiler plugin ?
                    if (isset($this->smarty->registered_plugins[Smarty::PLUGIN_COMPILER][$tag])) {
                        // if compiler function plugin call it now
                        $args = array();
                        if (!$this->smarty->registered_plugins[Smarty::PLUGIN_COMPILER][$tag][1]) {
                            $this->tag_nocache = true;
                        }
                        $function = $this->smarty->registered_plugins[Smarty::PLUGIN_COMPILER][$tag][0];
                        if (!is_array($function)) {
                            return $function($args, $this);
                        } elseif (is_object($function[0])) {
                            return $this->smarty->registered_plugins[Smarty::PLUGIN_COMPILER][$tag][0][0]->$function[1]($args, $this);
                        } else {
                            return call_user_func_array($function, array($args, $this));
                        }
                    }
                    if ($this->smarty->loadPlugin('smarty_compiler_' . $tag)) {
                        $plugin = 'smarty_compiler_' . $tag;
                        if (is_callable($plugin)) {
                            return $plugin($args, $this->smarty);
                        }
                        if (class_exists($plugin, false)) {
                            $plugin_object = new $plugin;
                            if (method_exists($plugin_object, 'compile')) {
                                return $plugin_object->compile($args, $this);
                            }
                        }
                        throw new SmartyException("Plugin \"{$tag}\" not callable");
                    }
                }
                $this->trigger_template_error("unknown tag \"" . $tag . "\"", $this->lex->taglineno);
            }
        }

        /**
         * lazy loads internal compile plugin for tag and calls the compile method
         * compile objects cached for reuse.
         * class name format:  Smarty_Internal_Compile_TagName
         * plugin filename format: Smarty_Internal_Tagname.php
         *
         * @param  string $tag    tag name
         * @param  array  $args   list of tag attributes
         * @param  mixed  $param1 optional parameter
         * @param  mixed  $param2 optional parameter
         * @param  mixed  $param3 optional parameter
         *
         * @return string compiled code
         */

        public function callTagCompiler($tag, $args, $param1 = null, $param2 = null, $param3 = null)
        {
            // re-use object if already exists
            if (isset(self::$_tag_objects[$tag])) {
                // compile this tag
                return self::$_tag_objects[$tag]->compile($args, $this, $param1, $param2, $param3);
            }
            // lazy load internal compiler plugin
            $class_name = 'Smarty_Internal_Compile_' . $tag;
            if ($this->smarty->loadPlugin($class_name)) {
                // check if tag allowed by security
                if (!isset($this->smarty->security_policy) || $this->smarty->security_policy->isTrustedTag($tag, $this)) {
                    // use plugin if found
                    self::$_tag_objects[$tag] = new $class_name;
                    // compile this tag
                    return self::$_tag_objects[$tag]->compile($args, $this, $param1, $param2, $param3);
                }
            }
            // no internal compile plugin for this tag
            return false;
        }

        /**
         * Check for plugins and return function name
         *
         * @param         $plugin_name
         * @param  string $plugin_type type of plugin
         *
         * @return string call name of function
         */

        public function getPlugin($plugin_name, $plugin_type)
        {
            $function = null;
            if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {
                if (isset($this->template->required_plugins['nocache'][$plugin_name][$plugin_type])) {
                    $function = $this->template->required_plugins['nocache'][$plugin_name][$plugin_type]['function'];
                } elseif (isset($this->template->required_plugins['compiled'][$plugin_name][$plugin_type])) {
                    $this->template->required_plugins['nocache'][$plugin_name][$plugin_type] = $this->template->required_plugins['compiled'][$plugin_name][$plugin_type];
                    $function = $this->template->required_plugins['nocache'][$plugin_name][$plugin_type]['function'];
                }
            } else {
                if (isset($this->template->required_plugins['compiled'][$plugin_name][$plugin_type])) {
                    $function = $this->template->required_plugins['compiled'][$plugin_name][$plugin_type]['function'];
                } elseif (isset($this->template->required_plugins['nocache'][$plugin_name][$plugin_type])) {
                    $this->template->required_plugins['compiled'][$plugin_name][$plugin_type] = $this->template->required_plugins['nocache'][$plugin_name][$plugin_type];
                    $function = $this->template->required_plugins['compiled'][$plugin_name][$plugin_type]['function'];
                }
            }
            if (isset($function)) {
                if ($plugin_type == 'modifier') {
                    $this->modifier_plugins[$plugin_name] = true;
                }

                return $function;
            }
            // loop through plugin dirs and find the plugin
            $function = 'smarty_' . $plugin_type . '_' . $plugin_name;
            $file = $this->smarty->loadPlugin($function, false);

            if (is_string($file)) {
                if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {
                    $this->template->required_plugins['nocache'][$plugin_name][$plugin_type]['file'] = $file;
                    $this->template->required_plugins['nocache'][$plugin_name][$plugin_type]['function'] = $function;
                } else {
                    $this->template->required_plugins['compiled'][$plugin_name][$plugin_type]['file'] = $file;
                    $this->template->required_plugins['compiled'][$plugin_name][$plugin_type]['function'] = $function;
                }
                if ($plugin_type == 'modifier') {
                    $this->modifier_plugins[$plugin_name] = true;
                }

                return $function;
            }
            if (is_callable($function)) {
                // plugin function is defined in the script
                return $function;
            }

            return false;
        }

        /**
         * Check for plugins by default plugin handler
         *
         * @param  string $tag         name of tag
         * @param  string $plugin_type type of plugin
         *
         * @return boolean true if found
         */

        public function getPluginFromDefaultHandler($tag, $plugin_type)
        {
            $callback = null;
            $script = null;
            $cacheable = true;
            $result = call_user_func_array(
                $this->smarty->default_plugin_handler_func, array($tag, $plugin_type, $this->template, &$callback, &$script, &$cacheable)
            );
            if ($result) {
                $this->tag_nocache = $this->tag_nocache || !$cacheable;
                if ($script !== null) {
                    if (is_file($script)) {
                        if ($this->template->caching && ($this->nocache || $this->tag_nocache)) {
                            $this->template->required_plugins['nocache'][$tag][$plugin_type]['file'] = $script;
                            $this->template->required_plugins['nocache'][$tag][$plugin_type]['function'] = $callback;
                        } else {
                            $this->template->required_plugins['compiled'][$tag][$plugin_type]['file'] = $script;
                            $this->template->required_plugins['compiled'][$tag][$plugin_type]['function'] = $callback;
                        }
                        include_once $script;
                    } else {
                        $this->trigger_template_error("Default plugin handler: Returned script file \"{$script}\" for \"{$tag}\" not found");
                    }
                }
                if (!is_string($callback) && !(is_array($callback) && is_string($callback[0]) && is_string($callback[1]))) {
                    $this->trigger_template_error("Default plugin handler: Returned callback for \"{$tag}\" must be a static function name or array of class and function name");
                }
                if (is_callable($callback)) {
                    $this->default_handler_plugins[$plugin_type][$tag] = array($callback, true, array());

                    return true;
                } else {
                    $this->trigger_template_error("Default plugin handler: Returned callback for \"{$tag}\" not callable");
                }
            }

            return false;
        }

        /**
         * Inject inline code for nocache template sections
         * This method gets the content of each template element from the parser.
         * If the content is compiled code and it should be not cached the code is injected
         * into the rendered output.
         *
         * @param  string  $content content of template element
         * @param  boolean $is_code true if content is compiled code
         *
         * @return string  content
         */

        public function processNocacheCode($content, $is_code)
        {
            // If the template is not evaluated and we have a nocache section and or a nocache tag
            if ($is_code && !empty($content)) {
                // generate replacement code
                if ((!($this->template->source->recompiled) || $this->forceNocache) && $this->template->caching && !$this->suppressNocacheProcessing &&
                    ($this->nocache || $this->tag_nocache)
                ) {
                    $this->template->has_nocache_code = true;
                    $_output = addcslashes($content, '\'\\');
                    $_output = str_replace("^#^", "'", $_output);
                    $_output = "<?php echo '/*%%SmartyNocache:{$this->nocache_hash}%%*/" . $_output . "/*/%%SmartyNocache:{$this->nocache_hash}%%*/';?>\n";
                    // make sure we include modifier plugins for nocache code
                    foreach ($this->modifier_plugins as $plugin_name => $dummy) {
                        if (isset($this->template->required_plugins['compiled'][$plugin_name]['modifier'])) {
                            $this->template->required_plugins['nocache'][$plugin_name]['modifier'] = $this->template->required_plugins['compiled'][$plugin_name]['modifier'];
                        }
                    }
                } else {
                    $_output = $content;
                }
            } else {
                $_output = $content;
            }
            $this->modifier_plugins = array();
            $this->suppressNocacheProcessing = false;
            $this->tag_nocache = false;

            return $_output;
        }

        /**
         *  push current file and line offset on stack for tracing {block} source lines
         *
         * @param string      $file  new filename
         * @param string      $uid   uid of file
         * @param int         $line  line offset to source
         * @param bool $debug false debug end_compile shall not be called
         */

        public function pushTrace($file, $uid, $line, $debug = true)
        {
            if ($this->smarty->debugging && $debug) {
                Smarty_Internal_Debug::end_compile($this->template);
            }
            array_push($this->trace_stack, array($this->smarty->_current_file, $this->trace_filepath, $this->trace_uid, $this->trace_line_offset));
            $this->trace_filepath = $this->smarty->_current_file = $file;
            $this->trace_uid = $uid;
            $this->trace_line_offset = $line;
            if ($this->smarty->debugging) {
                Smarty_Internal_Debug::start_compile($this->template);
            }
        }

        /**
         *  restore file and line offset

         */

        public function popTrace()
        {
            if ($this->smarty->debugging) {
                Smarty_Internal_Debug::end_compile($this->template);
            }
            $r = array_pop($this->trace_stack);
            $this->smarty->_current_file = $r[0];
            $this->trace_filepath = $r[1];
            $this->trace_uid = $r[2];
            $this->trace_line_offset = $r[3];
            if ($this->smarty->debugging) {
                Smarty_Internal_Debug::start_compile($this->template);
            }
        }

        /**
         * display compiler error messages without dying
         * If parameter $args is empty it is a parser detected syntax error.
         * In this case the parser is called to obtain information about expected tokens.
         * If parameter $args contains a string this is used as error message
         *
         * @param  string $args individual error message or null
         * @param  string $line line-number
         *
         * @throws SmartyCompilerException when an unexpected token is found
         */

        public function trigger_template_error($args = null, $line = null)
        {
            // get template source line which has error
            if (!isset($line)) {
                $line = $this->lex->line;
            }
            //        $line += $this->trace_line_offset;
            $match = preg_split("/\n/", $this->lex->data);
            $error_text = 'Syntax error in template "' . (empty($this->trace_filepath) ? $this->template->source->filepath : $this->trace_filepath) . '"  on line ' . ($line + $this->trace_line_offset) . ' "' . trim(preg_replace('![\t\r\n]+!', ' ', $match[$line - 1])) . '" ';
            if (isset($args)) {
                // individual error message
     

    der Code ist nicht komplett denn sonst wird er nicht in der Box angezeigt - ist aber eigentlich der aus der Installation.

    Jürgen

    ZickZack

    • Neu im Forum
    • Beiträge: 24
    Hier noch das mod_warning LOG:

    Code: XML  [Auswählen]
    [01-05-2017 08:45:12] E_WARNING : LoggingManager: file_get_contents(https://www.modified-shop.org/feed/?v=2.0.2.2): failed to open stream: HTTP request failed!  in File: /home/fensech1/addons/fetishladen.org/inc/get_external_content.inc.php on Line: 32
    [01-05-2017 08:45:12] E_WARNING : LoggingManager: Backtrace #0 - /home/fensech1/addons/fetishladen.org/inc/get_newsfeed.inc.php called at Line 20
    [01-05-2017 08:45:12] E_WARNING : LoggingManager: Backtrace #1 - /home/fensech1/addons/fetishladen.org/templates/tpl_modified/source/boxes/admin.php called at Line 24
    [01-05-2017 08:45:12] E_WARNING : LoggingManager: Backtrace #2 - /home/fensech1/addons/fetishladen.org/templates/tpl_modified/source/boxes.php called at Line 104
    [01-05-2017 08:45:12] E_WARNING : LoggingManager: Backtrace #3 - /home/fensech1/addons/fetishladen.org/index.php called at Line 31
    [01-05-2017 08:45:16] E_WARNING : LoggingManager: fopen(https://www.modified-shop.org/feed/?v=2.0.2.2): failed to open stream: HTTP request failed!  in File: /home/fensech1/addons/fetishladen.org/inc/get_external_content.inc.php on Line: 39
    [01-05-2017 08:45:16] E_WARNING : LoggingManager: Backtrace #0 - /home/fensech1/addons/fetishladen.org/inc/get_newsfeed.inc.php called at Line 20
    [01-05-2017 08:45:16] E_WARNING : LoggingManager: Backtrace #1 - /home/fensech1/addons/fetishladen.org/templates/tpl_modified/source/boxes/admin.php called at Line 24
    [01-05-2017 08:45:16] E_WARNING : LoggingManager: Backtrace #2 - /home/fensech1/addons/fetishladen.org/templates/tpl_modified/source/boxes.php called at Line 104
    [01-05-2017 08:45:16] E_WARNING : LoggingManager: Backtrace #3 - /home/fensech1/addons/fetishladen.org/index.php called at Line 31

    karsta.de

    • Experte
    • Beiträge: 3.157
    Also hast du doch was am Template geändert wie man sehen kann.
    Nimm aus deiner categorie_listing_neu.html mal diesen Teil raus:
    Code: PHP  [Auswählen]
    {php}
    $col++;
    {/php}
    und diesen Teil ebenfalls:
    Code: PHP  [Auswählen]
    {php}
    if ($col>=3) {
    $col=0;
    echo '</tr><tr>';
    }
    {/php}
     
    Das wird in smarty3 nicht mehr unterstützt. (Ich gehe davaon aus das in deinem Template/config/config.php define('TEMPLATE_ENGINE', 'smarty_3'); steht.)

    Seite sollte dann so aussehen:

    Code: PHP  [Auswählen]
    {config_load file="$language/lang_$language.conf" section="categorie_listing"}
    {config_load file="lang_`$language`.custom"}
    {config_load file="lang_`$language`.section" section="categorie_listing"}
    {if $CATEGORIES_HEADING_TITLE}
            <h1>{$CATEGORIES_HEADING_TITLE}</h1>
    {else}
            <h1>{$CATEGORIES_NAME}</h1>
    {/if}
    {if $CATEGORIES_IMAGE}<img src="{$CATEGORIES_IMAGE}" alt="{$CATEGORIES_NAME}" />{/if}
    {if $CATEGORIES_DESCRIPTION}<p>{$CATEGORIES_DESCRIPTION}</p>{/if}

    {if $module_content !=''} <strong>{#heading_more_categories#}</strong>
         <br />
          <table style="border-top: 2px solid; border-color: #d4d4d4;" width="100%" border="0" cellspacing="0" cellpadding="0">
            <tr> {foreach name=aussen item=module_data from=$module_content}
              <td class="main"><table  width="100%" border="0" cellpadding="0" cellspacing="4">
                    <tr>
                      <td align="center" >{if $module_data.CATEGORIES_IMAGE}<a href="{$module_data.CATEGORIES_LINK}"><img src="{$module_data.CATEGORIES_IMAGE}" alt="{$module_data.CATEGORIES_NAME}" /></a>{/if}</td>
                    </tr>
                    <tr>
                      <td align="center" ><strong><a href="{$module_data.CATEGORIES_LINK}">{$module_data.CATEGORIES_NAME}</a></strong></td>
                    </tr>
                    <tr>                  
                    </tr>
                  </table>
                </td>
                     {/foreach} </tr>
          </table>
           {/if} <br />
    {$MODULE_new_products}
     

    Dann solltest du deine Seite wieder sehen.
    Oder du nimmst gleich die Original-Datei aus dem aktuellen Template "tpl_modified", denn die läuft korrekt.

    BG kgd

    ZickZack

    • Neu im Forum
    • Beiträge: 24
    Hallo kgd,

    vielen vielen Dank !!!
    Das war die Lösung.
    Das ich da die categorie_listing_neu drin hatte hab ich übersehen.
    Denn schlauerweise hab ich sie auch in das installationsverzeichnis kopiert, und somit den Fehler mitgeschleppt.

    Danke nochmals
    Jürgen

    Rocket3

    • Mitglied
    • Beiträge: 190
    • Geschlecht:
    Hallo Community,

    ich habe, für mich, einen unlösbaren Problem:
    Nach langem hin und her habe ich endlich geschafft meinen Shop auf PHP 8.x umzustellen.
    Da ich kroatische Sprache benutze gab es etliche Probleme bis ich den Shop zum laufen gebracht habe (dachte ich jedenfalls)

    Nun zum Problem:

    Wenn ich ein neues Produkt einstellen möchte:

    1. kann die Datei zwar gespeichert werden, aber beim nächsten öffnen der Datei (Bearbeiten“) ist bis auf die Bilder und Preis, alles weg (Titel, Beschreibung)

    2. Produkt ist auf der Produktseite zu sehen, aber beim anklicken wird „Die Seite wurde nicht gefunden“ angezeigt.

    Bei schon bestehenden Produkten gibt es derartige Probleme nicht.

    Habe schon alles versucht von Dateien-Vergleich (Linux – Meld) bis Neuinstallation, leider alles ohne Erfolg.

    Habe die Log-Dateien zugefügt, da ich mich mit programmieren nicht auskenne, sagen mir die Daten nicht viel, d.h. ich kann damit nichts viel anfangen, außer dass ich die angegebene Dateien mit Originaldateien verglichen habe. Die Dateien sind gleich.

    Vielleicht hat einer von den Experten eine Idee die mir weiterhelfen kann.

    modified eCommerce Shopsoftware v2.0.7.2 rev 14622 mit  Bootstrap4 vom Karl
    PHP  8.1.16

    Danke im Voraus

    Rocket3

    Viol

    • Fördermitglied
    • Beiträge: 2.279
    Der Fehler aus den Log Dateien liegt an der administrator/includes/extra/
    modules/new_product/new_product_isbn.php Datei. Die Datei bzw. das Modul ist noch nicht an php 8 angepasst.
    Poste doch mal die Datei. In Deinem Shop kann ich bei den Büchern allerdings gar keine ISBN Nummer oder Autoren entdecken.

    Rocket3

    • Mitglied
    • Beiträge: 190
    • Geschlecht:
    Hallo Viol,
    danke erstmal für deine Hilfe.
    Die Datei habe ich angehängt, die habe ich vor Jahren hier im Forum geladen.
    Die Datei habe ich aus einem anderem Shop (www.e-shop24.net), wo auch das gleiche Problem seit Update auf PHP 8... besteht, aber dort wird ISBN angezeigt.
    Schöne Grüsse
    Rocket3

    Viol

    • Fördermitglied
    • Beiträge: 2.279
    Statt PDF anzuhängen, solltest Du lieber hier im Editor den Button "php" nutzen und den Code dort hineinkopieren. Das macht dann für viele das Lesen und Helfen leichter, denn den Download von Code in PDF ist auch nicht so prickelnd.

    Rocket3

    • Mitglied
    • Beiträge: 190
    • Geschlecht:
    Sorry
    Code: PHP  [Auswählen]
    <!-- products_extrafield beginn -->
    <table class="tableInput border0">
    <tr>
    <td><span class="main"><?php echo TEXT_PRODUCTS_AUTHOR; ?></span></td>
    <td><span class="main"><?php echo xtc_draw_input_field('products_author', $pInfo-
    >products_author, 'style="width: 155px"'); ?></span></td>
    </tr>
    <tr>
    <td><span class="main"><?php echo TEXT_PRODUCTS_ISBN; ?></span></td>
    <td><span class="main"><?php echo xtc_draw_input_field('products_isbn', $pInfo-
    >products_isbn, 'style="width: 155px"'); ?></span></td>
    </tr>
    </table>
    <!-- products_extrafield end -->
    <script>
    /* Eingabefelder dynamisch verschieben */
    /*$("[name='feldname_des_zu_verschiebenden_feldes']").closest("tr").detach().insertAfter($
    ("[name='feldname_des_feldes_hinter_das_das_andere_soll']").closest("tr"));*/
    $( document ).ready(function() {
    $("[name='products_author']").closest("tr").detach().insertAfter($
    ("[name='products_ean']").closest("tr"));
    $("[name='products_isbn']").closest("tr").detach().insertAfter($
    ("[name='products_author']").closest("tr"));
    });
    </script>

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Du hast geschrieben, du hättest die entsprechende Datei aus dem deutschsprachigen Shop übernommen. Hast du dabei auch alle anderen Abhängigkeiten berücksichtigt? Kontrolliere das bitte, indem du die dazugehörige Anleitung noch einmal mit dem abgleichst, was du im Shop hochgeladen hast.

    Rocket3

    • Mitglied
    • Beiträge: 190
    • Geschlecht:
    Hallo awids,
    habe ich und es lief problemlos bis zum update auf PHP 8...
    LG
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware
    2 Antworten
    3193 Aufrufe
    23. Dezember 2010, 07:04:57 von jannemann
    16 Antworten
    15657 Aufrufe
    07. Oktober 2009, 08:21:44 von Tomcraft
    10 Antworten
    7059 Aufrufe
    07. September 2009, 18:35:52 von ds170477
    2 Antworten
    981 Aufrufe
    02. September 2020, 14:17:53 von peter111
               
    anything