Sponsor-Board.de
php $variable mittels java ausgeben in einem Smarty template

+- Sponsor-Board.de (https://www.sponsor-board.de)
+-- Forum: Community (/forumdisplay.php?fid=56)
+--- Forum: Hilfe (/forumdisplay.php?fid=102)
+---- Forum: Scripting (/forumdisplay.php?fid=108)
+---- Thema: php $variable mittels java ausgeben in einem Smarty template (/showthread.php?tid=40991)


php $variable mittels java ausgeben in einem Smarty template - mech - 28.07.2013 17:55

Hallo zusammen,

ich versuche gerade über unseren Produktslider bei einem bestimmten Produkt die Stockanzahl ausgeben zu lassen. (Anzahl verfügbarer Testserver)


PHP-Code:
    Javascript 
$('#tserver').html('HIER DIE PHP VARIABLE zb. $TESTSERVER');
$(
'#tserver').var('HIER DIE PHP VARIABLE zb. $TESTSERVER'); 


ausgegeben wird das dann über einen DIV:

PHP-Code:
        <div class="detail" id="tserver">
                
Inhalt von #tserver
                
</div


Ausgegeben wird in einem Smarty Template dann einfach nur $TESTSERVER

Biete für die Lösung 500 SB Punkte.

Danke für eure Mithilfe.


RE: php $variable mittels java ausgeben in einem Smarty template - Storage-Base.de - 28.07.2013 17:59

Die Variable von PHP nach Smarty hast du schon übergeben?

In JS musst du mit "literal" arbeiten:

Zitat:
uri : "{/literal}{$systemurl}{if $seofriendlyurls}announcements/{$announcement.id}/{$announcement.urlfriendlytitle}.html{else}announcements.php?id={$announcement.id}{/if}{literal}",


Zitat:
{literal}JS Code{/literal}PHP Code{literal}JS Code{/literal}


//EDIT: Siehe auch mein alten Thread: [Link: Registrierung erforderlich]


RE: php $variable mittels java ausgeben in einem Smarty template - Aaron - 28.07.2013 18:08

php code musst du auch mit {php}{/php} angeben


RE: php $variable mittels java ausgeben in einem Smarty template - mech - 28.07.2013 18:20

Danke für die Hinweise, diese habe ich aber schon durch Wink Das führt komischerweise dennoch dazu das einfach nur der Code ausgegeben wird.

PHP-Code:
$('#tserver').html('{literal}{php}$qty_39{/literal}{/php}'); 


Anschauen könnt ihr euch das [Link: Registrierung erforderlich] indem ihr auf nach Links zum Testserver slided.

und ja das Literal hier unnötig Tongue war nur zum testen.


RE: php $variable mittels java ausgeben in einem Smarty template - Storage-Base.de - 28.07.2013 18:33

Bitte auch auf die Reihenfolge achten Wink

Code:
{literal}$('#tserver').html('{/literal}{php}$qty_39{/php}{literal}');{/literal}




RE: php $variable mittels java ausgeben in einem Smarty template - mech - 28.07.2013 18:39

Das gesamte Javascript steckt doch schon in dem {literal}{/literal} Wink

{literal}
<script type="text/javascript">
//<![CDATA[
$(function() {
$( "#sliderContainer" ).slider({
range: "min",
[/code] value:400,
min: 100,
max: 600,
step: 100,
slide: function( event, ui ) {
switch(ui.value)
{
case 100:
$('#product_id').val('23');
$('#memoryDetail').html('1024 MB');
$('#vswap').html('128 MB');
$('#cpuDetail').html('1x vCPU');
$('#cpuDetails').attr('src','_assets/_img/400price.png');
$('#protectedDetail').html('50GB');
$('#monthlyDetail').html('250MB');
$('#price').html('Nur € 4.00');
$('#product').html('OpenVZ VPS 1024');
$('#priceCircle').attr('src','./templates/mvs/_assets/_img/0000price.png');
$('#productCircle').attr('src','./templates/mvs/images/vz1024.png');
$('#serverpower').attr('src','./images/testserver.png');
$("#vcpu").val('cart.php?a=add&pid=3');
$("#hdd").val('50GB');
$("#ram").val('1GB RAM');
$('#tprice').val('4.0');
$('#tproduct').val('OpenVZ VPS 1024');
$('#tserver').html('{php}$qty_39{/php}');
......
{/literal}


RE: php $variable mittels java ausgeben in einem Smarty template - Storage-Base.de - 28.07.2013 18:41

Ja und den Literal musst du unterbrechen um den PHP Code zu implizieren. Dann hat der Code so auszusehen:

Code:
$('#tserver').html('{/literal}{php}$qty_39{/php}{literal}');




RE: php $variable mittels java ausgeben in einem Smarty template - mech - 28.07.2013 19:02

Danke, das war der Denkfehler. Nimm mal die Freunschaftsanfrage an und ich sende dir die 500 Pkt.

Dickes Danke Wink

Dieses Mitglied hat die Kontakt-Liste deaktiviert!
- So gehts nicht Biggrin


RE: php $variable mittels java ausgeben in einem Smarty template - Storage-Base.de - 28.07.2013 19:05

Schön dass es dann doch klappt Smile

Hab das mal wieder aktiviert und dir ne Anfrage gestellt Tongue


RE: php $variable mittels java ausgeben in einem Smarty template - Loster - 28.07.2013 19:26

Wieso wird die Variable nicht einfach dem Template mit assign() hinzugefügt? Anstatt umständlich {php}{/php} zu nutzen.

Grüße.


RE: php $variable mittels java ausgeben in einem Smarty template - Storage-Base.de - 28.07.2013 19:30

Prinzipiell macht es keinen Unterschied.

So schreibt man halt {php}{/php} und anders dann assign und dann {$var}. Der Weg mit dem Literal ist und bleibt der gleiche Wink


RE: php $variable mittels java ausgeben in einem Smarty template - Loster - 30.07.2013 08:26

Dann Frage ich mich, wofür überhaupt Smarty eingesetzt wird. Dann könnte man darauf auch ganz verzichten.


RE: php $variable mittels java ausgeben in einem Smarty template - Storage-Base.de - 30.07.2013 08:55

Dann nenn mal eine andere Methode wie du PHP Code in WHMCS implizierst.


RE: php $variable mittels java ausgeben in einem Smarty template - tkausl - 30.07.2013 08:56

Storage-Base.de schrieb:
Prinzipiell macht es keinen Unterschied.

So schreibt man halt {php}{/php} und anders dann assign und dann {$var}. Der Weg mit dem Literal ist und bleibt der gleiche Wink

Es wird grundsätzlich abgeraten die PHP-Tags von Smarty zu nutzen und genau diese widersprechen auch dem Grundgedanken von einer Templateengine das MVC dem Programmierer zu erleichtern oder einfacher gesagt der Codetrennung zwischen PHP und HTML.


RE: php $variable mittels java ausgeben in einem Smarty template - Loster - 30.07.2013 09:04

Storage-Base.de schrieb:
Dann nenn mal eine andere Methode wie du PHP Code in WHMCS implizierst.


Ohne mir jetzt WHMCS angeschaut zu haben, gibt es da sicherlich andere Wege Wink

Ansonsten wiederspricht das der strikten Codetrennung (wie tklausel schon sagte).

Wenn es wirklich nicht anders möglich sein sollte, dann hat WHMCS was falsch gemacht und nicht an Drittentwickler gedacht und haben dringend Nachholbedarf.


RE: php $variable mittels java ausgeben in einem Smarty template - Storage-Base.de - 30.07.2013 10:44

WHMCS ist verschlüsselt. Das ist kein webSPELL... WHMCS hat Schnittstellen zu vielen Panels und Anbietern, das will geschützt sein, nicht zuletzt auch weil es eine Lizenzsoftware ist.


RE: php $variable mittels java ausgeben in einem Smarty template - tkausl - 30.07.2013 10:46

Das entschuldigt nichts. Auch ein verschlüsseltes System kann eine ordentliche Schnittstelle für Module bereitstellen ohne alles in Templates basteln zu müssen.


RE: php $variable mittels java ausgeben in einem Smarty template - Loster - 30.07.2013 10:50

Das ist totaler Quatsch. Auch verschlüsseltes kann man bei PHP a) wieder entschlüsseln (und hey, das ist, wenn man ein bisschen Ahnung hat, gar nicht mal so schwer) und b) kann man Eventlistener einbauen, worauf Plugins zugreifen können und dazu ne ordentliche Dokumentation schreiben.

De facto ist WHMCS für Drittentwickler schlecht (gar nicht) durchdacht.


RE: php $variable mittels java ausgeben in einem Smarty template - Storage-Base.de - 30.07.2013 11:16

Dann entschlüsselt mal ioncube - Respekt wenn ihr das schafft Wink

WHMCS hat sehr wohl gute Möglichkeiten eigene Dinge zu gestalten, der Bestellprozess wie hier ist allerdings so nur von den Templates editierbar. Die Logik und validierung der Daten führt WHMCS durch, daher es ist es so nicht anpassbar.

Ich bitte einfach mal darum, gerade wenn man keine Ahnung davon hat, Software nicht schlecht zu machen. Bevor ihr euch solche aussagen über WHMCS erlaubt, solltet ihr es erst mal nutzen und damit arbeiten - dann könnt ihr euch sowas erlauben.


RE: php $variable mittels java ausgeben in einem Smarty template - tkausl - 30.07.2013 11:24

Zum Absatz 2: Die Logik im Bestellprozess gehört nicht in Templates.

Zum Absatz 3: Ich bin bereit zuzugeben dass ich keine Ahnung von WHMCS habe. Allerdings kenne ich genügend PHP-Software welche Modular ist und dem Programmierer endlos Möglichkeiten offen hält ohne ihn zu nötigen, wichtigen Programmcode in Templates auszulagern. Da ioncube keine Methoden-, Klassen-, Funktions- oder Variablennamen ändert (keine Obfuscation) ist die Verschlüsselung keine Ausrede, sofern eine gute PHPDoc mitgeliefert wird.


RE: php $variable mittels java ausgeben in einem Smarty template - Storage-Base.de - 30.07.2013 12:08

Auch WHMCS ist Modular aufgebaut, es ist möglich eigene Payment Gateways, Provisioning Module, Registrare, AddOn zu entwickeln / einzubinden. Auch eigene Seiten können erstellt werden, eigene Templates entwickelt werden und auch eigene Orderforms gebaut werden.

Prinzipiell sind alle erforderlichen Daten für den Bestellprozess in Form von Variablen an Smarty übergeben und vorhanden - Auch Qty gehört dazu. Eine Möglichkeit wäre hier, einen Hook zu schreiben, der nach der Bestellung ausgeführt wird oder wenn der Server eingerichtet wird die Qty entsprechend zu ändern.

Sollten Felder beim Produkt nicht vorhanden sein, so lässt sich dies auch über "Product Custom Field" regeln. Es ist daher nicht zwingend erforderlich PHP Code in Smarty einzubauen - manchmal aber einfacher oder nicht anders möglich.

Auch kann ich mich über die Dokumentation von WHMCS nicht beschweren - es handelt sich hierbei um eine sehr umfangreiche Software, bei der wir mit 2 Leuten ca. 40h gebraucht haben um sämtliche Einstellungen zu verstehen und auf unsere Bedürfnisse anzupassen. Gekauft haben wir WHMCS ende Dezember 2012 und bis heute finde ich immer noch gewisse Dinge von denen ich nicht wüsste dass sie vorhanden sind und das obwohl ich tagtäglich mit WHMCS arbeite.


RE: php $variable mittels java ausgeben in einem Smarty template - Loster - 30.07.2013 15:31

Zur Sache mit Ioncube entschlüsseln, ich denke mal nicht, dass das Alex hier gerne sieht, wenn ich hier auf Links verweise. Aber du kannst ja mal mit entsprechenden Stichworten Googeln, da findest du sogar Software zu und dort wird ebendfalls erklärt, wie das funktioniert.

Grüße.