Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 19. Februar 2017 12:39
- pWorker
- probiert CMS/ms aus
- Registriert: 20. Oktober 2016
- Beiträge: 78
[GELÖST] Smarty Variable in php-Dokument aus Template verwenden
Moin,
sicher eine einfach zu lösende Frage, aber wie kann ich eine Smarty Variable in einem .php Dokument verwenden?
line 3 : $savpth = $smarty->get_template_vars('savenewspath');
gibt mir
Call to a member function get_template_vars() on null in line 3. Muss ich irgendwo den Pfad zum Template angeben?
Das Script wird via Ajax ausgeführt.
Ajax.php:
<?php
$savpth = $smarty->get_template_vars('savenewspath');
$encodedData=explode(',', $_POST["img"]);
$data = base64_decode($encodedData[1]);
$urlUploadImages = $_SERVER['DOCUMENT_ROOT'].'/uploads/'.$savpth;
$nameImage = "testcrop.png";
$img = imagecreatefromstring($data);
if($img) {
imagepng($img, $urlUploadImages.$nameImage, 0);
imagedestroy($img);
echo "OK";
}
else {
echo 'ERROR';
}
?>
Den $savenewspath hab ich im Template via {capture assign="savenewspath"}news/id{$articleid}/{/capture} festgelegt.
Offline
#2 25. Februar 2017 21:04
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [GELÖST] Smarty Variable in php-Dokument aus Template verwenden
Hm, warum nimmst du keine Session-Variable? Beim btAdminer übernehme ich die Variabeln per Session:
// Adminer Session
// Need to have cookie visible from parent directory
session_set_cookie_params(0, '/', '', 0);
// Create signon session
$session_name = 'btAdminer';
session_name($session_name);
//session_start();
$host = $config['db_hostname'];
if (isset($config["db_port"]) and $config['db_port'] != '') $host.=':'.$config['db_port'];
// Store there credentials in the session
$_SESSION['ADM_driver'] = 'server';
$_SESSION['ADM_user'] = $config['db_username'];
$_SESSION['pwds'][$_SESSION['ADM_driver']][$host][$config['db_username']] = $config['db_password'];
$_SESSION['ADM_password'] = $config['db_password'];
$_SESSION['ADM_server'] = $host;
$_SESSION['ADM_db'] = $config['db_name'];
$_SESSION['ADM_hideOtherDBs'] = '';
// Get signon uri for redirect
$_SESSION['ADM_SignonURL'] = $config['root_url'].'/modules/btAdminer/btAdminer.php';
$_SESSION['ADM_LogoutURL'] = $config['root_url'].'/'.$config['admin_dir'].'/logout.php';
$_SESSION['ADM_uploadDir'] = $config['uploads_path'];
// Plugins
$_SESSION['ADM_plugin_zipexport'] = $this->GetPreference('zipexport');
$_SESSION['ADM_plugin_xmlexport'] = $this->GetPreference('xmlexport');
$_SESSION['ADM_plugin_foreign'] = $this->GetPreference('foreign');
$_SESSION['ADM_plugin_textarea'] = $this->GetPreference('textarea');
$_SESSION['ADM_plugin_enum'] = $this->GetPreference('enum');
// root_url
$_SESSION['ADM_root_url'] = $config['root_url'];
$sid = session_id();
// Force to set the cookie
setcookie($session_name, $sid, 0, '/', '');
// Close that session
session_write_close();
Für das schreiben der Session-Variable
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#3 26. Februar 2017 23:31
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Smarty Variable in php-Dokument aus Template verwenden
wie kann ich eine Smarty Variable in einem .php Dokument verwenden?
line 3 : $savpth = $smarty->get_template_vars('savenewspath');
Punkt 1 - wenn möglich solltest du die native API von Smarty 3 verwenden, und da heisst die Methode getTemplateVars()
http://www.smarty.net/docs/en/api.get.template.vars.tpl
anstatt der Funktion get_template_vars() aus der BC-Klasse.
Punkt 2 - Du musst dir erst Zugriff auf Smarty verschaffen, ist bei CMSMS etwas ungewöhnlich eingebunden.
$smarty = $template->smarty;
oder
$savpth = $template->smarty->getTemplateVars('savenewspath');
Offline
#4 26. Februar 2017 10:47
- pWorker
- probiert CMS/ms aus
- Registriert: 20. Oktober 2016
- Beiträge: 78
Re: [GELÖST] Smarty Variable in php-Dokument aus Template verwenden
Hey moin ihr Beiden und danke für Eure Hilfe.
Ich hatte jetzt einfach den savepath mitgepostet und den als $_POST["savepath"] verwendet. Eines verstehe ich nicht, kann ich in jedem php Dokument auf ALLE Variablen aller Templates zugreifen? Unabhängig ob die lokal oder global, in foreach-Schleifen ind voneinenader verschiedenen Dokumenten oder sonstwo generiert werden?
Zur Session Variable, was ist das genau?
Schönen Sonntag noch
Offline
#5 26. Februar 2017 12:53
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.018
- Webseite
Re: [GELÖST] Smarty Variable in php-Dokument aus Template verwenden
den als $_POST["savepath"] verwendet.
... was du nicht tun solltest, da auch die $_POST Variablen manipulierbar sind. Immer filtern .
Eines verstehe ich nicht, kann ich in jedem php Dokument auf ALLE Variablen aller Templates zugreifen? Unabhängig ob die lokal oder global
Du musst Variablen als global deklarieren, dann kannst du es
http://www.smarty.net/docs/en/language. … scopes.tpl
Also z.Bsp
{assign var=foo value="bar" scope="global"}
http://www.smarty.net/docs/en/language. … assign.tpl
Zur Session Variable, was ist das genau?
https://secure.php.net/manual/de/reserv … ession.php
Smarty kennt einen Großteil der Server-Variablen und kann dadurch auch relativ einfach darauf zugreifen via
{$smarty.server.post.savepath}
oder
{$smarty.server.session.savepath}
Offline
Seiten: 1