1. Dashboard
  2. Articles
  3. Forum
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • More Options
  1. webEdition Forum
  2. Forum
  3. Deutschsprachiges Support Forum
  4. webEdition Installation & Update

Call to protected method we_base_mainmodel::getElement() from global scope

  • TomyN
  • December 15, 2023 at 11:17 PM
1st Official Post
  • TomyN
    Beginner
    Posts
    6
    • December 15, 2023 at 11:17 PM
    • #1

    Hallo,

    Nachdem ich auf die Aktuelle Version 9.2.2. upgedatet habe, bekomme ich unter Chrome und Edge die folgende Fehlermeldung:

    Code
    URI: /index.php
    Host: infong223
    Error type: Exception
    Error message: Call to protected method we_base_mainmodel::getElement() from global scope
    Script name: SECURITY_REPL_DOC_ROOT/webEdition/generated/templates/LKG/forward.php
    Line number: 6
    Caller: -
    Backtrace: #0 /homepages/34/d258454961/htdocs/LKGBT/webEdition/generated/templates/LKG/forward.php(6): #0 /homepages/34/d258454961/htdocs/LKGBT/webEdition/we/include/we_showDocument.inc.php(104): include()
    #1 /homepages/34/d258454961/htdocs/LKGBT/index.php(4): require('/homepages/34/d...')
    #2 {main}

    Interessanterweise funktioniert das ganze unter Firefox.

    Was mich verwundet, da diese Datei ja von webEdition selbst generiert wird.
    Wo könnte ich da ansetzen?
    Sollte ich evtl. SECURITY_REPL_DOC_ROOT ändern? Wenn ja, in was (und wo)?
    PHP ist 8.3

  • NilSole
    Beginner
    Reactions Received
    8
    Posts
    41
    • December 16, 2023 at 12:26 AM
    • #2

    Hallo,

    Was steht denn in deiner forward.tmpl? Hast du PHP genutzt oder nur WE-Tags?

    Ich würde von der Meldung vermuten, dass da irgendwo am Anfang folgender Code steht

    Code
    we_base_mainmodel::getElement();

    Warum es im Firefox vielleicht geht… eventuell hast du den FF irgendwo gesondert behandelt??

  • TomyN
    Beginner
    Posts
    6
    • December 16, 2023 at 8:14 AM
    • #3
    PHP
    <?php /* Generated template (ID: 640) by WE 9.2.2.0, REV 14877, 2023-12-15, 09:40 */
    we_contents_template::frontEndInit(false);
    we_contents_template::frontEndHead(true);
    if(!we_weTag_util::tag('ifEditmode')){
    
    
    $a_forward = unserialize($we_doc->getElement('forward'));
    header( "HTTP/1.1 301 Moved Permanently" );
    header ("Location: ".( we_tag("a", array("id"=>$a_forward['id'],"hrefonly"=>"true"), "")) );
    we_contents_template::frontEndExit();
    
    
    }
    if(we_weTag_util::tag('ifEditmode')){ ?>
    Diese Vorlage erzeugt einen >Forward (HTTP/1.1 301 Moved Permanently)< auf die folgende Seite:
    <?= we_weTag_util::tag('link',['name'=>'forward']);
    }
    we_contents_template::frontEndPostContent(false,true);we_contents_template::frontEndPost();?>
    Display More

    Diese Datei wird ja von WE selbst erzeugt, d. h. ich habe da erstmal keinen direkten Einfluss drauf. Und mit den alten WE Versionen gab es da keine Probleme. Daher bin eben verwirrt...

  • TomyN
    Beginner
    Posts
    6
    • December 16, 2023 at 8:49 AM
    • #4

    Das Problem ist wirklich nur die dynamisch erzeugte Weiterleitung.
    Wenn ich den erzeugten Link in Chrome / Edge direkt eingebe, funktioniert alles wunderbar.

  • mokraemer
    Senior Member
    Reactions Received
    9
    Posts
    112
    • December 16, 2023 at 11:12 AM
    • Official Post
    • #5

    Also entweder hast du hier noch selbstgeschriebenen alten Kode, oder du hast keinen Rebuild der Vorlagen gemacht. Mit WE 9 gibt es kein öffentliches getElement mehr!

  • NilSole
    Beginner
    Reactions Received
    8
    Posts
    41
    • December 16, 2023 at 12:16 PM
    • #6
    Quote from TomyN

    Diese Datei wird ja von WE selbst erzeugt, d. h. ich habe da erstmal keinen direkten Einfluss drauf. Und mit den alten WE Versionen gab es da keine Probleme. Daher bin eben verwirrt...

    Na klar hast du das Einfluss drauf, die Datei wird ja aus dem Template mit der ID 640 generiert. Schau da mal rein.

  • TomyN
    Beginner
    Posts
    6
    • December 16, 2023 at 12:42 PM
    • #7

    Das ist 'Altcode' um den ich mich kümmern darf. PHP + WE sind nun nicht meine 'Muttersprachen'. Wahrscheinlich muss ich im Template

    PHP
    <we:ifNotEditmode><?php
    $a_forward = unserialize($we_doc->getElement('forward'));
      header( "HTTP/1.1 301 Moved Permanently" );
      header ("Location: ".( we_tag("a", array("id"=>$a_forward['id'],"hrefonly"=>"true"), "")) );
      exit;
    ?>
    </we:ifNotEditmode>
    <we:ifEditmode>
    Diese Vorlage erzeugt einen >Forward (HTTP/1.1 301 Moved Permanently)< auf die folgende Seite:
    <we:link name="forward" />
    </we:ifEditmode>
    Display More

    das $we_doc->getElement('forward') ersetzen. Allerdings sind meine Versuche mit

    $a_forward = we:var name="forward"; etc. gescheitert :( oder
    $a_forward = we:link name="forward";

    gescheitert....

  • TomyN
    Beginner
    Posts
    6
    • December 16, 2023 at 3:21 PM
    • #8

    So, hab mal die Umleitung 'Hardgecoded' in der tmpl. Jetzt läuft es schon mal wieder, ich würde aber doch gerne verstehen wie man das mit we Variablen lösen kann.

  • NilSole
    Beginner
    Reactions Received
    8
    Posts
    41
    • December 16, 2023 at 3:51 PM
    • #9

    Für den header sollte das gehen. Die WE-Tags kannst du so in PHP aufrufen oder ggfs mit dem Attribut to einer Variable zuweisen.

    Code
    header ("Location: " . we_tag("link",["name" => "forward","only"=>"href"])) ;
  • TomyN
    Beginner
    Posts
    6
    • December 17, 2023 at 2:27 PM
    • #10

    Danke. Das Thema konnte ich damit lösen, es sind aber noch einige andere 'Problemchen' vorhanden, u.a der lästige Tip/typ-fehler aufgrund eines Rechtschreibfehlers (tpye anstatt type), der über 15 Jahre keine Probleme machte....

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!

Register Yourself Login

Donations

200.00 EUR

Donate now
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™