"if" in einem JTL Plugin

mrBurns

Aktives Mitglied
3. April 2012
106
0
was macht diese IF mit dem ganzen Code dahinter

PHP:
 if (( ( $jtlsign->kEigenschaft_layout && isset( $smarty->_tpl_vars['Artikel']->FunktionsAttribute['layout'] ) ) && is_numeric( $smarty->_tpl_vars['Artikel']->FunktionsAttribute['layout'] ) )) {
        $ArtikelConfigId = (int)$smarty->_tpl_vars['Artikel']->FunktionsAttribute['layout'];
.
.
.
.
wie könnt ich das noch erweitern wenn ich jetzt aus den Attriputen nochetwas zu dem Artikel abrufen will?
Ich würd das IF und das in den klammern gern verstehen.

lg bani
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
233
AW: "if" in einem JTL Plugin

Hallo,

es wäre äußerst hilfreich wenn du uns verraten würdest, um welches JTL-Plugin es sich handelt und in welcher Datei dieser Code-Snippet vorkommt.
 

mrBurns

Aktives Mitglied
3. April 2012
106
0
AW: "if" in einem JTL Plugin

Mir gehts vorweg erst mal um den code oben.
PHP:
if (( ( $jtlsign->kEigenschaft_layout && isset( $smarty->_tpl_vars['Artikel']->FunktionsAttribute['layout'] ) ) && is_numeric( $smarty->_tpl_vars['Artikel']->FunktionsAttribute['layout'] ) )) {
        $ArtikelConfigId = (int)$smarty->_tpl_vars['Artikel']->FunktionsAttribute['layout'];
.
.
.

Will das so erweitern

PHP:
if (( ( $jtlsign->kEigenschaft_layout && isset( $smarty->_tpl_vars['Artikel']->FunktionsAttribute['layout'] ) ) && is_numeric( $smarty->_tpl_vars['Artikel']->FunktionsAttribute['layout'] ) )) {
        $ArtikelConID = (int)$smarty->_tpl_vars['Artikel']->FunktionsAttribute['layout'];
        $instand = (int)$smarty->_tpl_vars['Artikel']->FunktionsAttribute['layoutinstand'];
...

oder fehlt mir in den klammern nach dem "if" noch was

Es wird in ein Java wiedergegeben mit "&ArtikelConID"
kommt was aber nicht mit "$instand"
obwohl in der Datenbank vorhanden.
 

ag-websolutions.de

Sehr aktives Mitglied
29. Dezember 2009
14.548
233
AW: "if" in einem JTL Plugin

Hallo,

deine Erweiterung sieht zunächst mal syntaktisch korrekt aus.

Was jetzt aber auf ein mal "Java" für eine Rolle spielt, kann ich nicht nachvollziehen (Java ist eine eigenständige Programmiersprache, die in einem JTL-Shop-Standard und auch in keinem mir bekannten JTL-Plugin verwendet wird).
 

x86

Gut bekanntes Mitglied
20. Januar 2014
179
5
localhost
AW: "if" in einem JTL Plugin

Hallo mrburns,

man müsste sich den gesamten Code einmal ansehen.

Ich rate dir von der Nutzung von $smarty->_template_vars ab.
Ziemlich alles was an Smarty über PHP übergeben wird, ist im globalen oder nicht-globalen scope verfügbar.
Eine Variable über PHP an Smarty zu übergeben um anschließend über PHP auf dass verschachtelte Smarty-Objekt und dessen
wiederum in Arrays & Propertys verschachtelten Werten zu arbeiten, verringert die Skalierbarkeit und verbessert sicherlich nicht die Antwortzeit
deines Servers.

Was möchtest du mit den Variablen erreichen? Möchtest du das in / für dein Javascript ausgeben ?

Gruß Stephan
 

mrBurns

Aktives Mitglied
3. April 2012
106
0
AW: "if" in einem JTL Plugin

Das soll dagestellt werden, mit dem oberen Code geht das auch.
mit meinem Zusatz aber nicht.

es sollte eine 8stellige nummern/buchstaben Kombi kommen,
es kommt aber nur eine "1" also die erste stelle der Kombi.

lg
 

x86

Gut bekanntes Mitglied
20. Januar 2014
179
5
localhost
AW: "if" in einem JTL Plugin

Hallo mrBurns,

wenn es sich nicht um alphanumerische Werte sondern auch um Buchstaben handelt, dann ist es falsch den Warte als integer zu casten.
Also entferne einfach den cast, dann solltest du das gewünschte Ergebnis erhalten.

Grüße Stephan
 

mrBurns

Aktives Mitglied
3. April 2012
106
0
AW: "if" in einem JTL Plugin

Ich hab den Fehler gefunden

PHP:
$instand = (int)$smarty->_tpl_vars['Artikel']->FunktionsAttribute['layoutinstand'];

hab einfach "(int)" vor $smarty entfernt jetzt gehts.

Sorry für die blöde Fragerei und Geheimniskrämerei.
Ich will selbst drauf kommen, des Lernfaktor willen.
Brauch nur ab und an einen Anstoss.

Werde aber das Plugin noch puplizieren wenn es dann Fertig is.

Danke für die Gedankenanstösse.

lg aus Tirol
 

x86

Gut bekanntes Mitglied
20. Januar 2014
179
5
localhost
AW: "if" in einem JTL Plugin

Ich hab den Fehler gefunden

PHP:
$instand = (int)$smarty->_tpl_vars['Artikel']->FunktionsAttribute['layoutinstand'];

hab einfach "(int)" vor $smarty entfernt jetzt gehts.

Sorry für die blöde Fragerei und Geheimniskrämerei.
Ich will selbst drauf kommen, des Lernfaktor willen.
Brauch nur ab und an einen Anstoss.

Werde aber das Plugin noch puplizieren wenn es dann Fertig is.

Danke für die Gedankenanstösse.

lg aus Tirol

Hallo mrBurns,

genau das hatte ich dir im letzten Kommentar doch geschrieben...


Grüße Stephan
 

mrBurns

Aktives Mitglied
3. April 2012
106
0
AW: "if" in einem JTL Plugin

Das gleiche script nur will ich das jetzt erweitern.
PHP:
$instandid = $smarty->_tpl_vars['Artikel']->FunktionsAttribute['layoutinstand'];
            $LayoutDiv = '<form action="" method="post">
                    <div id="layoutbuddy_holder" style="width: 900px; height: 780px; background: url(../loader.gif) center no-repeat;">
                                <a name="layoutbuddy"></a>
                                <div id="layout_container">
                                    <div style="text-align:center; padding: 50px 0 50px 0;">
                                        ' . $langText . ' <br />
                                        <a href="http://www.adobe.com/go/getflashplayer">
                                            <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player"/>
                                        </a>
                                    </div>
                                </div>Einen schon gekauften Artikel nochmal bestellen?<br>
Wir speichern alle Layout´s min. 1 Jahr für sie. Ihre Layout-ID finden sie auf ihrer Rechnung von uns.<br>
Layout-ID: <input type="text" name="layoutid"> <input type="submit"  value="Ihr Design laden"/>                    
</div></form>';
            $layoutScript = '<script type="text/javascript" charset="utf-8">
                                    var layoutbuddy = new LayoutBuddy("' . $PublicKey . '", "' . $ArtikelConfigId . '");
                                    layoutbuddy.language = "' . $langIso . '";
                                    layoutbuddy.initWithId = "' . $instandid . '";
                                    layoutbuddy.hideOnSubmit = true;
                                    layoutbuddy.onSubmitLayout = function(uid) {$("input[name=' . $layout->gibEigenschaft( 'layout' ) . ']").val(uid); $("input[name=' . $layout->gibEigenschaft( 'options' ) . ']").val("options"); $("' . $oPlugin->oPluginEinstellungAssoc_arr['form_selector'] . '").submit();};
                                    layoutbuddy.embed("layout_container", "layoutbuddy");
                                </script>';

Blöde fragen wird warscheinlich ganz leicht sein.
Hab ja schon ein Eingabefeld eingebaut.
Nun soll das eingegebene statt der variable $instandid geladen werden in der zeile mit "layoutbuddy.initWithId = ..."

wie bewerkstellige ich das ? Steh grad an da einiges da auch im vorfeld includet wird oder is das egal.
 

mrBurns

Aktives Mitglied
3. April 2012
106
0
AW: "if" in einem JTL Plugin

Gelöst !!

PHP:
if (isset($layoutid)) {
  $instandidload = $layoutid;
} else {
  $instandidload = $instandid;
}

PHP:
 layoutbuddy.initWithId = "' . $instandidload . '";
 

Ähnliche Themen