Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 20. Januar 2011 01:55
- Wolfhardt
- Gast
[GELÖST] Optimierter Tag {get_template_vars}
Drüben auf der .org habe ich ein Script gefunden, dass praktisch {get_template_vars} auf Speed ist.
Es gibt wie das ursprüngliche {get_template_vars} alle Variablen aus, aber dröselt dabei automatisch alle darin enthaltenen Arrays und Objekte auf.
<?php
#CMS - CMS Made Simple
#(c)2004 by Ted Kulp (wishy@users.sf.net)
#This project's homepage is: [url]http://cmsmadesimple.sf.net[/url]
#
#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
function ___my_print_r($value, $level = 0)
{
if ($level > 9)
{ // Being paranoid
return 'Too big level of nesting';
}
# added by NaN (backwards compatibility):
if(version_compare(CMS_VERSION, '1.11') < 0)
$cms_obj_name = 'CmsObject';
else
$cms_obj_name = 'CmsApp';
#---
if (!is_array($value) && !is_object($value))
{
if ($value === true)
{
return 'true';
}
else if ($value === false)
{
return 'false';
}
return $value;
}
$br = "\n"; // line break with tabs
for($i = 0; $i < $level; $i++)
{
$br .= "\t";
}
if (is_object($value))
{
// Skip huge CMSMS core objects
$class = get_class($value);
do
{
if(in_array($class, array($cms_obj_name, 'Smarty', 'CMSModule')))
{
return get_class($value)." Object (skipped as a descendant of $class)";
}
}
while ($class = get_parent_class($class));
$str = get_class($value).' Object'.$br.'{';
}
else
{
$str = 'Array'.$br.'(';
}
foreach($value as $key => $val)
{
$str .= $br."\t".$key.' => '.___my_print_r($val, $level + 1);
}
$str .= is_array($value) ? $br.')' : $br.'}';
return $str;
}
function smarty_function_get_template_vars($params, &$obj)
{
# added by NaN (backwards compatibility):
if(version_compare(CMS_VERSION, '1.11') < 0)
$smarty = &$obj; # backward compatibility
else
$smarty = &$obj->smarty;
#---
$tpl_vars = $smarty->get_template_vars();
$str = '<div style="overflow: auto; width: 500px; height: 400px;"><pre>'."\n\n";
$str .= ___my_print_r($tpl_vars);
$str .= "\n\n</pre></div>";
return $str;
}
?>
Zur Installation sichert man die ursprüngliche Script-Datei plugins/function.get_template_vars.php unter einem anderen Namen weg und ersetzt sie durch eine neue, gleichnamige Datei mit dem obigen Script.
Danach kann man sie genauso verwenden wie das bisherige {get_template_vars} und hat alle Daten zur Verfügung, die man braucht, man muß dann nur noch die richtigen Variablen/Werte finden
Beitrag geändert von NaN (08. Februar 2013 12:30)
#2 19. März 2011 20:25
- owr_web
- Server-Pate
- Registriert: 16. Dezember 2010
- Beiträge: 543
Re: [GELÖST] Optimierter Tag {get_template_vars}
Wenn ich die Zeile ändere:
function smarty_cms_function_get_template_vars($params, &$smarty)
auf
function smarty_cms_function_get_template_vars_detail($params, &$smarty)
kann ichs unter dem geänderten Namen plugins/function.get_template_vars_detail.php speichern. Dann muss ich die alte nicht umbenennen und könnte beide nutzen, diese halt als {get_template_vars_detail}
Die Frage ist nur ob ich diese Zeile auch ändern müsste:
$tpl_vars = $gCms->smarty->get_template_vars();
auf
$tpl_vars = $gCms->smarty->get_template_vars_detail();
Offline
#3 20. März 2011 10:21
- uniqu3
- Server-Pate
- Ort: Feldkirchen in Kärnten
- Registriert: 20. November 2010
- Beiträge: 305
- Webseite
Re: [GELÖST] Optimierter Tag {get_template_vars}
@Wolfhardt
Danke! Spitze!
Wo genau hast Du es gefunden, ich würde es gern auch auf meinem Blog veröffentlichen aber ohne Autor credits wird das wohl nix?
Offline
#4 21. März 2011 10:11
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] Optimierter Tag {get_template_vars}
Die Frage ist nur ob ich diese Zeile auch ändern müsste:
$tpl_vars = $gCms->smarty->get_template_vars();
auf
$tpl_vars = $gCms->smarty->get_template_vars_detail();
Nein - das ist eine Systemfunktion von Smarty.
Offline
#5 21. März 2011 10:12
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] Optimierter Tag {get_template_vars}
Wo genau hast Du es gefunden, ich würde es gern auch auf meinem Blog veröffentlichen aber ohne Autor credits wird das wohl nix?
Wenn ich mir den Header des Tags ansehe, hat der Autor bereits auf die Credits verzichtet ... oder Ted geschenkt .
Offline
#6 21. März 2011 10:54
- piratos
- Gast
Re: [GELÖST] Optimierter Tag {get_template_vars}
Das ist keine Speed-Version sondern eine Bescheissversion da mit
// Skip huge CMSMS core objects
verhindert werden soll das man Fehler in der Core erkennt, die da genau wären rekursive Mehrfachverknüpfungen von Objekten und Smarty selbst, das wird mit dem Codeteil nach // Skip huge CMSMS core objects unterbunden.
Nur daraus folgert eine Geschwindigkeitserhöhung, dient aber in Wirklichkeit der Verschleierung von massiven Fehlern, die zu erheblicher RAM-Belastung ohne Nutzen führen.
#7 08. März 2012 17:22
- leerraum
- kennt CMS/ms
- Ort: Baden-Baden
- Registriert: 15. Dezember 2010
- Beiträge: 479
- Webseite
Re: [GELÖST] Optimierter Tag {get_template_vars}
kann das sein, dass das mit der 10.3 nicht mehr geht?
<b>Fatal error</b>: Call to a member function get_template_vars() on a non-object in <b>/home/www/web168/html/cmsms/plugins/function.get_template_vars.php</b> on line <b>76</b><br />
Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.
Offline
#8 08. März 2012 17:58
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.433
Re: [GELÖST] Optimierter Tag {get_template_vars}
Ändere mal diese Zeien:
global $gCms;
$tpl_vars = $gCms->smarty->get_template_vars();
In diese:
$tpl_vars = cmsms()->GetSmarty()->get_template_vars();
wobei das auch wieder quatsch ist, weil smarty bereits im Funktionskopf übergeben wird.
Also das hier sollte reichen:
$tpl_vars = $smarty->get_template_vars();
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#9 08. März 2012 18:01
- leerraum
- kennt CMS/ms
- Ort: Baden-Baden
- Registriert: 15. Dezember 2010
- Beiträge: 479
- Webseite
Re: [GELÖST] Optimierter Tag {get_template_vars}
Danke, jetzt geht's wieder! Vielleicht sollten wir das im ersten Posting ändern?
Designer benötigt? Einfach eine Mail an info at lrrm dot de schicken.
Offline
#10 08. März 2012 19:50
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] Optimierter Tag {get_template_vars}
Ist erledigt!
Offline
#11 07. Februar 2013 17:06
- Janl
- Server-Pate
- Ort: Freistadt, Österreich
- Registriert: 13. Dezember 2010
- Beiträge: 1.225
- Webseite
Re: [GELÖST] Optimierter Tag {get_template_vars}
Hallo in 1.11.4 erstickt CMSMS / Smarty wieder in diese Tag.
Man bekommt mit diese function.get_template_vars_detail.php und anklicken der Seite Tags im Backend eine schöne leere weisse Seite.
Fehlermeldungen sind wohl eine zu grosse Luxus.
Nur wenn diese Datei gelöscht ist funktioniert es wieder.
mfg
Jan
Ubuntu 16.04 KDE - Kubuntu 18.04 / win10 (1 duo-boot laptop)- LAMP
Raspi 4b mit Ubuntu 20.04 (64bit) und Mate.
Offline
#12 07. Februar 2013 17:19
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.433
Re: [GELÖST] Optimierter Tag {get_template_vars}
Ändere mal den Namen der Funktion
function smarty_cms_function_get_template_vars($params, &$smarty)
in
function smarty_function_get_template_vars($params, &$smarty)
(das _cms soll da weg)
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#13 07. Februar 2013 18:46
- Janl
- Server-Pate
- Ort: Freistadt, Österreich
- Registriert: 13. Dezember 2010
- Beiträge: 1.225
- Webseite
Re: [GELÖST] Optimierter Tag {get_template_vars}
Verstehe ich es richtig?
muss ich das komplette Kodeblock nochmal kopieren an Stelle von "echo 'Hello world!';"
und das wieder kopieren in /lib/smarty/plugins
<?php
function smarty_function_hello_world($params, &$smarty) {
echo 'Hello world!';
}
?>
das wird dann
<?php
function smarty_function_get_template_vars_details($params, &$smarty){
[das komplette kodeblock]
}
?>
So verstehe ich es aus diese Beschreibung
http://www.cmsmadesimple.de/dokumentati … ndeln.html
mfg
Jan
Ubuntu 16.04 KDE - Kubuntu 18.04 / win10 (1 duo-boot laptop)- LAMP
Raspi 4b mit Ubuntu 20.04 (64bit) und Mate.
Offline
#14 08. Februar 2013 07:09
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] Optimierter Tag {get_template_vars}
Ändere mal den Namen der Funktion
Ursprungsposting geändert!
Offline
#15 08. Februar 2013 07:10
- Andynium
- Moderator
- Ort: Dohna / SN / Deutschland
- Registriert: 13. September 2010
- Beiträge: 7.017
- Webseite
Re: [GELÖST] Optimierter Tag {get_template_vars}
So verstehe ich es aus diese Beschreibung
http://www.cmsmadesimple.de/dokumentati … ndeln.html
Upps, ist noch nicht up-to-date ...
Offline
#16 08. Februar 2013 12:13
- Janl
- Server-Pate
- Ort: Freistadt, Österreich
- Registriert: 13. Dezember 2010
- Beiträge: 1.225
- Webseite
Re: [GELÖST] Optimierter Tag {get_template_vars}
Hallo laut org installiert man so neue Pluguns
How to install
To install a new tag, put the function.tagname.php file into your /plugins directory. When you refresh the Tags page in the CMS admin, the new tag will be shown.
Nur funktioniert es in 1.11.4 nicht, Datei ist da, Permissions kontrolliert, Zwischenspeicher gelöscht und trotzdem tagt er nicht auf.
Hat jemandem ein Idee?
mfg
Jan
Ubuntu 16.04 KDE - Kubuntu 18.04 / win10 (1 duo-boot laptop)- LAMP
Raspi 4b mit Ubuntu 20.04 (64bit) und Mate.
Offline
#17 08. Februar 2013 12:31
- NaN
- Moderator
- Ort: Halle (Saale)
- Registriert: 09. November 2010
- Beiträge: 4.433
Re: [GELÖST] Optimierter Tag {get_template_vars}
Aha... warte mal, das Plugin hier ist noch für Smarty 2.6.
Inzwischen wird doch Smarty 3.irgendwas verwendet.
Da wird den Plugins nicht mehr das Smarty-Objekt übergeben, sondern ein Template-Objekt.
D.h. diese Zeile:
$tpl_vars = $smarty->get_template_vars();
Wird nicht mehr funktionieren.
Es müsste so lauten:
$tpl_vars = $smarty->smarty->get_template_vars();
Außerdem ist der Klassenname des CMS nicht mehr CmsObject sondern CmsApp.
Ich habe den Ursprungspost mal geändert, sodass er für beide Smarty-Versionen funktionieren müsste. Habs noch nicht getestet.
Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)
Offline
#18 04. November 2013 15:12
- dlen
- probiert CMS/ms aus
- Registriert: 05. Februar 2011
- Beiträge: 57
Re: [GELÖST] Optimierter Tag {get_template_vars}
Habe es mit CMSMS v1.11.9 getestet wie es im Ursprungsposting steht - leider zerschießt es die Anzeige. Kein CSS mehr und keine Ausgabe.
--- wunderbarerweise läuft es nun doch durch und liefert brav alle Variablen einer Seite und deren Werte, soweit ich das einschätzen kann..
Danke.
Beitrag geändert von dlen (05. November 2013 12:50)
Offline
Seiten: 1