Neu smarty variable in php script mit einfügen

mnause

Aktives Mitglied
19. Juli 2016
86
15
Essen
Firma
NAAM Distribution GmbH
Hallo

Ich versuche eine Smarty Variable in einem php Script einfügen zu lassen

PHP:
<?php declare(strict_types=1);


use JTL\Alert\Alert;
use JTL\Catalog\Category\Kategorie;
use JTL\Catalog\Category\KategorieListe;
use JTL\Catalog\Product\Artikel;
use JTL\Catalog\Product\Preise;
use JTL\Catalog\Product\Preisverlauf;
use JTL\Extensions\Upload\Upload;
use JTL\Helpers\Form;
use JTL\Helpers\Product;
use JTL\Helpers\Request;
use JTL\Helpers\Tax;
use JTL\Helpers\Text;
use JTL\Pagination\Pagination;
use JTL\Session\Frontend;
use JTL\Shop;
use JTL\Shopsetting;
use Smarty;

require __DIR__ . '/includes/globalinclude.php';


// $download sei der Bezeichner für die zu ladende Datei
$download = $_GET['download'];
$kdnr = $smarty->getTemplateVars('{$Kunde->cKundenNr}');
// Dieses Verzeichnis liegt außerhalb des Document Root und ist nicht per URL erreichbar.
$basedir = "/www/htdocs/w0123d7d/contract";

$Masterdir = sprintf("%s/%s", $basedir, $kdnr);

// Vertrauenswürdigen Dateinamen erzeugen.
$ftype = "pdf";
$contract = sprintf("%s.%s", $download, $ftype);

$datei = sprintf("%s/%s-%s",  $Masterdir, $contract);

// Passenden Datentyp erzeugen.
header('Content-Type: application/pdf');

// Passenden Dateinamen im Download-Requester vorgeben z.B. den Original-Dateinamen
$speicher_name = basename($download);
header("Content-Disposition: attachment; filename=\"$speicher_name\"");

// Datei ausgeben.
readfile($datei);

?>

Es geht darum das die Kundennummer $Kunde->cKundenNr in einen datei pfad mit eingefügt wird .
 
Zuletzt bearbeitet:

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.367
343
Halle (Saale)
Warum? Und was ist dein Kontext?
Der Kunde steht in der Session - man kann nicht einfach magisch irgendwelche Smarty-Variablen laden, die niemals initialisiert wurden.
 

mnause

Aktives Mitglied
19. Juli 2016
86
15
Essen
Firma
NAAM Distribution GmbH
Die Kunden sollen Kundenspezifische Pdf Dateien aus einem Verzeichnis außer halb des WWW Roots Downloaden.
im Template kann ich die Variable laden und anzeigen lassen.
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.367
343
Halle (Saale)
Aber das scheint doch ein alleinstehendes Script zu sein, oder warum bindest du die globalinclude ein?
Da wird das Kundenobjekt doch niemals assignt. Und das
Code:
$smarty->getTemplateVars('{$Kunde->cKundenNr}');
wird auch nie ein Ergebnis erzeugen. Eher
Code:
$smarty->getTemplateVars('Kunde')->cKundenNr;
Wenn du aber einfach nur den Kunden haben willst: \JTL\Session\Frontend::getCustomer()
 

mnause

Aktives Mitglied
19. Juli 2016
86
15
Essen
Firma
NAAM Distribution GmbH
Aber das scheint doch ein alleinstehendes Script zu sein, oder warum bindest du die globalinclude ein?
Da wird das Kundenobjekt doch niemals assignt. Und das
Code:
$smarty->getTemplateVars('{$Kunde->cKundenNr}');
wird auch nie ein Ergebnis erzeugen. Eher
Code:
$smarty->getTemplateVars('Kunde')->cKundenNr;
Wenn du aber einfach nur den Kunden haben willst: \JTL\Session\Frontend::getCustomer()
Ohne die globalinclude bekomme ich einen error

"Fatal error: Uncaught Error: Call to a member function getTemplateVars() on null in /www/htdocs/w0123d7d/ezbiz.dampf-company.com/invoice.php:9 Stack trace: #0 {main} thrown in /www/htdocs/w0123d7d/ezbiz.dampf-company.com/invoice.php on line 9"
Code:
$smarty->getTemplateVars('Kunde')->cKundenNr;

Liest gar nichts aus

hole sie mir nun aus der Session
Code:
$kdnr = $_SESSION[ 'Kunde' ]->cKundenNr;
 
Zuletzt bearbeitet: