Wo kann ich die Zeile "[{ $oViewConf->getHiddenSid() }]" ändern?

Ich versuche momentan den oxid-Shop 4.1.2 CE komplett auf XHML umzubauen, leider wird durch den Aufruf “[{ $oViewConf->getHiddenSid() }]” innerhalb der Templates folgende Zeile ausgegeben :
<input type=“hidden” name=“force_sid” value=“abc123”>
nach XHTML muss es aber
<input type=“hidden” name=“force_sid” value=“abc123” />
heissen. Hat jemand eine Ahnung, wo sich das ändern bzw. korrigieren lässt?

Vielen Dank für Eure Tipps

nimm dir einen guten texteditor oder andere software mit der du ordner weit dateien durchsuchen kannst und such nach etwas dieser art “function getHiddenSid” oder such nach “force_sid” usw… oder per linux grep, quick and dirty…

/OXID_ESHOP_CE_4.1.3_19918 slave3$ grep -Rn “function getHiddenSid” .
./views/oxviewconfig.php:278: public function getHiddenSid()

okay, das nützt nicht soviel, dann weiter suchen…

/OXID_ESHOP_CE_4.1.3_19918 slave3$ grep -Rn “force_sid” .
./core/oxsession.php:196: $sForceSidParam = oxConfig::getParameter(‘force_sid’);
./core/oxsession.php:421: $url .= ‘force_sid=’ . $this->getId() . ‘&’;
./core/oxsession.php:489: return “<input type=“hidden” name=“force_sid” value=”". $this->getId() . “”>";

n23

Hi Danke für den Tipp, ich hatte ja die selbe Idee, aber die oxsession.php wurde bei mir nicht durchsucht, da sie verschlüsselt ist … hmpf … wie lässt sich diese denn nun editieren ???

Sorry es handelt sich um die PE Version nicht um die CE, sorry nochmals für die Verwirrung …

wenn dateien mit zend oder ioncube verschlüsselt sind, kannst du sie nicht editieren… never ever, aber wieso denn überhaupt? von welcher version sprichst du denn? in der OXID_ESHOP_CE_4.1.3_19918 ist sie offen.

kann mal einer von den alten hase bitte kurz aufklären, was wann wo verschlüsselt wurde?

da ja die CE und PE angeblich code-gleich ist könnte man ja die betreffenden zu editierenden PE-Dateien einfach durch die von der CE ersetzen, natürlich könnte das dann mit der Lizenz Probleme geben. Wenn es denn überhaupt funktioniert.

Das mit dem XHTML hab ich bei unserm Shop übrigens auch gemacht.

Man muss ausser enigen .tpl Dateien noch die [B]/core/oxsession.php[/B] und die [B] /views/oxviewconfig.php[/B] editieren.

War mir zwar nicht so recht wohl dabei an core-files rumzuschreiben, aber da ich das ja gut dokumentiert hab denk ich kann man das gradso durchgehen lassen.

/core/oxsession.php (&lt;input /&gt; Problem XHTML-Validierung)

Zeile 489: "&gt;" geaend. in " /&gt;"       

/views/oxviewconfig.php (<input /> Problem XHTML-Validierung )

Zeilen 170, 173, 751: "&gt;" geaend. in " /&gt;"

mfg

Ich habe vorerst die oxsession.php von der CE geändert und in die PE eingebaut, der Shop läuft problemlos. Werde es später noch mit der oxviewconfig.php ausprobieren. Ob es aber dabei zu Problemen mit der Lizenz kommt, sollte uns vielleicht jemand von oxid erklären können. Aber das ganze Problem wäre keins, wenn es die Programmierer bei Oxid es endlich in die Reihe bekämen, sauberen und validen Code zu verbauen … nur mal so eine Anregung.

… übrigens vielen Dank für die sehr hilfreichen Tipps …

Na is doch schoen wenns klappt :slight_smile: aber nur nich so straeflich mit die OXID-Programmierer :wink:
die machen doch ein ganz guten Job.

Der Shop is ja von Haus aus HTML 4 valid. Das is ja eigentlich ok. Mit dem XHTML hatte ich nur mal getestet und dann konnte ich nicht mehr aufhören die Fehlerquellen rauszusuchen. Man hat eindeutig noch zu viel Zeit. Wenn das mein Chef liest krieg ich gleich noch par drauf.

mfg

[QUOTE=recDesign;11828]Sorry es handelt sich um die PE Version nicht um die CE, sorry nochmals für die Verwirrung …[/QUOTE]

Für die PE und eine CE, in der man nicht die Quellklassen für XHTML umschreiben möchte kann man folgende Smarty Funktion im Template benutzen:

[{ $oViewConf->getHiddenSid()|replace:"">":"" />" }]

Die Zeile ersetzt das "> gegen " />, was das Template dann XHTML-konform macht.
Nach dem Einsetzen nicht vergessen den Ordner tmp/ zu leeren.

mal ein kompletter Umschwenk:

Warum eigentlich XHTML ? HTML5 ist doch viel cooler, da brauch man sich über die trailing slashes von Einzel-Tags (u.a.) keine Gedanken machen, da is so oder so valid :), und valid ist übrigens auch egal zumindest was SEO angeht, wichtig is nur das das HTML keine Fehler enthält.

Wenn eine Seite im Validator ohne Fehler durchgeht hat man zumindest die Gewissheit das keine versteckten Template-Fehler drin sind.

mfg

Eine sehr gute Lösung zu diesem Problem hab ich mal in der Mailinglistgesehen.

create file: modules/myxhtml.php

<?php
class myXHTML extends myXHTML_parent
{
    public function getHiddenSid()
    {
        if ( ( $sValue = $this->getViewConfigParam( 'hiddensid' ) ) === 
null ) {
            $sValue = str_replace('>',' />',parent::getHiddenSid());
            $this->setViewConfigParam( 'hiddensid', $sValue );
        }
        return $sValue;
    }

    public function getNavFormParams()
    {
        if ( ( $sParams = $this->getViewConfigParam( 'navformparams' ) ) === 
null ) {
            $sParams = str_replace('>',' />',parent::getNavFormParams());
            $this->setViewConfigParam( 'navformparams', $sParams );
        }
        return $sParams;
    }
}
?>

install module: oxviewconfig => myxhtml

Funktioniert super in: 4.1.6, 4.2.0 und 4.3.0

Das funktioniert auch in der aktuellen 4.4.8 astrein. Danke :slight_smile: