View previous topic :: View next topic |
Author |
Message |
terri Smarty n00b
Joined: 15 Oct 2010 Posts: 2
|
Posted: Fri Oct 15, 2010 4:53 pm Post subject: |
|
|
Hello, I apologize for not knowing English, so they had to transfer through translate.google.ru
Trying to connect to the new Smarty3.0rc4 Yii Framework (yiiframework .com)
Download the extension (Extensions »smarty-view-renderer)
yiiframework .com/extension/smarty-view-renderer/
When you run the script, an error
Code: | PHP Error
Description
include (Smarty_Internal_Data.php) [<a href='function.include'> function.include </ a>]: failed to open stream: No such file or directory
Source code |
file not found: smarty_internal_data.php
I renamed all 64 files as prescribed classes
===========
Smarty_Internal_Data.php
Smarty_Internal_Cache.php
Smarty_Internal_CacheResource_File.php
Smarty_Internal_Compile_Append.php
Smarty_Internal_Compile_Assign.php
Smarty_Internal_Compile_Block.php
Smarty_Internal_Compile_Break.php
Smarty_Internal_Compile_Call.php
Smarty_Internal_Compile_Capture.php
Smarty_Internal_Compile_Config_Load.php
Smarty_Internal_Compile_Continue.php
Smarty_Internal_Compile_Debug.php
Smarty_Internal_Compile_Eval.php
Smarty_Internal_Compile_Extends.php
Smarty_Internal_Compile_For.php
Smarty_Internal_Compile_Foreach.php
Smarty_Internal_Compile_Function.php
Smarty_Internal_Compile_If.php
Smarty_Internal_Compile_Include.php
Smarty_Internal_Compile_Include_Php.php
Smarty_Internal_Compile_Insert.php
Smarty_Internal_Compile_Ldelim.php
Smarty_Internal_Compile_Nocache.php
Smarty_Internal_Compile_Private_Block_Plugin.php
Smarty_Internal_Compile_Private_Function_Plugin.php
Smarty_Internal_Compile_Private_Modifier.php
Smarty_Internal_Compile_Private_Object_Block_Function.php
Smarty_Internal_Compile_Private_Object_Function.php
Smarty_Internal_Compile_Private_Print_Expression.php
Smarty_Internal_Compile_Private_Registered_Block.php
Smarty_Internal_Compile_Private_Registered_Function.php
Smarty_Internal_Compile_Private_Special_Variable.php
Smarty_Internal_Compile_Rdelim.php
Smarty_Internal_Compile_Section.php
Smarty_Internal_Compile_While.php
Smarty_Internal_CompileBase.php
Smarty_Internal_Config.php
Smarty_Internal_Config_File_Compiler.php
Smarty_Internal_Configfilelexer.php
....
===========
now there is another error:
Code: |
SmartyCompilerException
Описание
Syntax Error in template "//usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/themes/classic/views/layouts/manager.tpl" on line 2 "{$MEMORY}" unknown tag "private_print_expression"
Исходный код
/usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/vendors/Smarty/sysplugins/Smarty_Internal_TemplateCompilerBase.php(404)
00392: $exp_token = $this->parser->yyTokenName[$token];
00393: if (isset($this->lex->smarty_token_names[$exp_token])) {
00394: // token type from lexer
00395: $expect[] = '"' . $this->lex->smarty_token_names[$exp_token] . '"';
00396: } else {
00397: // otherwise internal token name
00398: $expect[] = $this->parser->yyTokenName[$token];
00399: }
00400: }
00401: // output parser error message
00402: $error_text .= ' - Unexpected "' . $this->lex->value . '", expected one of: ' . implode(' , ', $expect);
00403: }
00404: throw new SmartyCompilerException($error_text);
00405: }
00406: }
00407: ?>
Содержимое стека
#0 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/vendors/Smarty/sysplugins/Smarty_Internal_TemplateCompilerBase.php(229): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unknown tag "pr...', 2)
#1 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/vendors/Smarty/sysplugins/Smarty_Internal_Templateparser.php(2176): Smarty_Internal_TemplateCompilerBase->compileTag('private_print_e...', Array)
#2 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/vendors/Smarty/sysplugins/Smarty_Internal_Templateparser.php(2623): Smarty_Internal_Templateparser->yy_r27()
#3 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/vendors/Smarty/sysplugins/Smarty_Internal_Templateparser.php(2723): Smarty_Internal_Templateparser->yy_reduce(28)
#4 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/vendors/Smarty/sysplugins/Smarty_Internal_SmartyTemplateCompiler.php(59): Smarty_Internal_Templateparser->doParse(0, 0)
#5 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/vendors/Smarty/sysplugins/Smarty_Internal_TemplateCompilerBase.php(83): Smarty_Internal_SmartyTemplateCompiler->doCompile('hh?{$MEMORY}')
#6 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/vendors/Smarty/sysplugins/Smarty_Internal_Template.php(271): Smarty_Internal_TemplateCompilerBase->compileTemplate(Object(Smarty_Internal_Template))
#7 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/vendors/Smarty/sysplugins/Smarty_Internal_Template.php(460): Smarty_Internal_Template->compileTemplateSource()
#8 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/vendors/Smarty/sysplugins/Smarty_Internal_Template.php(568): Smarty_Internal_Template->renderTemplate()
#9 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/vendors/Smarty/Smarty.class.php(328): Smarty_Internal_Template->getRenderedTemplate()
#10 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/extensions/Smarty/ESmartyViewRenderer.php(105): Smarty->fetch('/usr/home/admin...')
#11 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/framework/web/CBaseController.php(86): ESmartyViewRenderer->renderFile(Object(ManagerController), '/usr/home/admin...', Array, true)
#12 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/framework/web/CController.php(741): CBaseController->renderFile('/usr/home/admin...', Array, true)
#13 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/protected/controllers/ManagerController.php(21): CController->render('main', Array)
#14 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/framework/web/actions/CInlineAction.php(50): ManagerController->actionIndex()
#15 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/framework/web/CController.php(300): CInlineAction->run()
#16 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/framework/web/CController.php(278): CController->runAction(Object(CInlineAction))
#17 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/framework/web/CController.php(257): CController->runActionWithFilters(Object(CInlineAction), Array)
#18 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/framework/web/CWebApplication.php(324): CController->run('')
#19 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/framework/web/CWebApplication.php(121): CWebApplication->runController('manager')
#20 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/framework/base/CApplication.php(135): CWebApplication->processRequest()
#21 /usr/home/admin/domains/*****.ru/public_html/yii/yii-1.1.4.r2429/demos/new/index.php(17): CApplication->run()
#22 {main}
2010-10-15 00:36:05 Apache/1.3.41 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.7e-p1 PHP/5.2.9 FrontPage/5.0.2.2510 Yii Framework/1.1.4 |
This error appears when the template insert any tag.
The problem occurs only on a Unix system. On Windows, no such problems.
--
yet why the names of *. php files in a directory sysplugins / lower case and not as a class name? |
|
Back to top |
|
U.Tews Administrator
Joined: 22 Nov 2006 Posts: 5068 Location: Hamburg / Germany
|
Posted: Sat Oct 16, 2010 10:15 am Post subject: |
|
|
The Smarty3 loading functions converting all filenames to lowercase. Don't rename the files.
The problem is the include (Smarty_Internal_Data.php). Where does it come from? This file is autoloaded by Smarty. It should never be required to load it manually? |
|
Back to top |
|
terri Smarty n00b
Joined: 15 Oct 2010 Posts: 2
|
Posted: Sat Oct 16, 2010 11:37 am Post subject: |
|
|
I understand very little English ((
lattice question here
yiiframework.ru/forum/viewtopic.php?f=3&t=1579&p=9665 # p9659
but I had to change the code Yii freymforki
changed the code in the function Yii
function autoload($className)
Code: | $find_str = strpos($className, 'Smarty_');
if ($find_str === false) {
include($className.'.php');
} else {
include(strtolower($className).'.php');
} |
to Russia
Проблему я смог решить только изменив код Yii фреймворка, в одном из файлов где происходит подключение классов, я добавил выше приведённый код, который, название класса изменяет в нижний регистр и затем его подключает. |
|
Back to top |
|
ziege Smarty Rookie
Joined: 16 Aug 2005 Posts: 13
|
Posted: Fri Oct 29, 2010 5:27 pm Post subject: Bug with assigning variables |
|
|
Hi,
I have posted a bug regarding this topic before, and this was fixed with the RC4 release, but the following bug also occurs with the current release:
Template:
Code: | ...
{foreach item=tmp from=$myvar}
...
{$tmp}
...
{/foreach}
...
{myfunc ... assign=tmp}
{$tmp}
... |
The myfunc is an own function that (optionally) assigns the result to a variable:
Code: | ...
$smarty->assign($params['assign'], $value);
... |
The second {$tmp} outputs the value of the last $tmp value from the foreach loop and not the result of the function call. |
|
Back to top |
|
U.Tews Administrator
Joined: 22 Nov 2006 Posts: 5068 Location: Hamburg / Germany
|
Posted: Fri Oct 29, 2010 5:54 pm Post subject: |
|
|
Your {foreach} does create the variable $tmp is the local scope of the template. Local variable have higher priority over variables with same name assigned to the Smarty object.
The template object is passed as third parameter to plugins. You should assign the variable in your plugin to the template object.
Code: | function smarty_function_myfunc($params, $smarty, $template) {
....
$template->assign($params['assign'], $value);
....
} |
|
|
Back to top |
|
newbie78 Smarty Rookie
Joined: 11 Oct 2010 Posts: 6
|
Posted: Fri Oct 29, 2010 10:08 pm Post subject: |
|
|
when i write Code: | {if !isSet( $arrSelect[$v.sys_name] )} |
then i take error: unknown function "isSet"
located in: library\Smarty\sysplugins\smarty_internal_templatecompilerbase.php [404 line]
when isSet in lowercase Code: | {if !isset( $arrSelect[$v.sys_name] )} | smarty work fine
maybe this is bug
i use rc4
thanks |
|
Back to top |
|
mohrt Administrator
Joined: 16 Apr 2003 Posts: 7368 Location: Lincoln Nebraska, USA
|
Posted: Sat Oct 30, 2010 1:07 am Post subject: |
|
|
not a bug, isset() is a php function |
|
Back to top |
|
ziege Smarty Rookie
Joined: 16 Aug 2005 Posts: 13
|
Posted: Sat Oct 30, 2010 2:48 pm Post subject: |
|
|
U.Tews wrote: | Your {foreach} does create the variable $tmp is the local scope of the template. Local variable have higher priority over variables with same name assigned to the Smarty object. |
Thanks, that fixed the problem. |
|
Back to top |
|
newbie78 Smarty Rookie
Joined: 11 Oct 2010 Posts: 6
|
Posted: Sun Oct 31, 2010 8:29 pm Post subject: |
|
|
mohrt wrote: | not a bug, isset() is a php function |
why does it work in lowercase, but in CaMeL it doesn't work? |
|
Back to top |
|
U.Tews Administrator
Joined: 22 Nov 2006 Posts: 5068 Location: Hamburg / Germany
|
Posted: Sun Oct 31, 2010 9:07 pm Post subject: |
|
|
The lexer/parser of Smarty needs to treat isset() and empty() in a special way as this are PHP language elements and no real functions. It's smarty currently looking only for lowercase writing. |
|
Back to top |
|
newbie78 Smarty Rookie
Joined: 11 Oct 2010 Posts: 6
|
Posted: Mon Nov 01, 2010 3:03 pm Post subject: |
|
|
U.Tews wrote: | The lexer/parser of Smarty needs to treat isset() and empty() in a special way as this are PHP language elements and no real functions. It's smarty currently looking only for lowercase writing. |
okay, thanks! |
|
Back to top |
|
jaxon Smarty n00b
Joined: 15 Nov 2010 Posts: 1
|
Posted: Mon Nov 15, 2010 8:32 pm Post subject: Problem with (capture) in smarty 3.0.0 - 3.0.4 |
|
|
Hi
I've got problem with {capture} tag in smarty 3.0.0 - 3.0.4. I've tested each.
There is NO error/notice in smarty 3 Beta 4 !
It's trivial php Notice but You know ...
I have file "__head.tpl" :
(...)
{if $smarty.capture.html_header_dodatkowy!=''}{$smarty.capture.html_header_dodatkowy}{/if}
(...)
And file "cPageIndex.tpl" :
{* {capture name="html_header_dodatkowy"}{literal}{/literal}{/capture} *}
{include file="__head.tpl"}
(...)
As You can see capture is in comment.
I get: "Notice: Undefined index: capture in ...__head.tpl.php on line yyy"
And when in file "cPageIndex.tpl" is for example:
{capture name="html_header_dodatkowyXXX"}{literal}{/literal}{/capture}
I get:
"Notice: Undefined index: html_header_dodatkowy in ...__head.tpl.php on line yyy"
I can fix it myself but I'd like You to know the issue.
Best Regards
Jacek |
|
Back to top |
|
|