Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
- Links zu: Aktiven | Unbeantworteten
- Übersicht
- »
- »
1
#1 19. Februar 2017 12:39
- pWorker
- probiert CMSMS aus
- Registriert: 20. Oktober 2016
- Beiträge: 80
Re:
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: Lenzburg, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.807
- Webseite
Re:
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, Revisions
Offline
#3 26. Februar 2017 23:31
- cyberman
- Moderator

- Ort: Dohna / Sachsen
- Registriert: 13. September 2010
- Beiträge: 6.741
- Webseite
Re:
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');1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi
Offline
#4 26. Februar 2017 10:47
- pWorker
- probiert CMSMS aus
- Registriert: 20. Oktober 2016
- Beiträge: 80
Re:
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
- cyberman
- Moderator

- Ort: Dohna / Sachsen
- Registriert: 13. September 2010
- Beiträge: 6.741
- Webseite
Re:
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}1. Wie bekomme ich hier schnelle Hilfe?
2. HowTo: Fehlersuche bei CMSMS
---
„First they ignore you, then they laugh at you, then they fight you, then you win.“ Mahatma Ghandi
Offline
1
- Übersicht
- »
- »