Искать  
 
   
 
Проблема порядком обработки модулей
Отправлено: 27 Май 2011 05:20 P.M.   [ Игнорировать ]
Студент
RankRank
Всего сообщений:  131
Зарегистрирован  2010-12-14

Добрый день.
Создаю папку system/expressionengine/third_party/fast_test
Создаю в папке файл pi.fast_test.php
Указываю содержимое файла

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

$plugin_info = array(
  
'pi_name' => 'Fast_test',
  
'pi_version' =>'1',
  
'pi_author' =>'Maxim',
  
'pi_author_url' => 'http://example.com',
  
'pi_description' => 'Fast_test',
  
'pi_usage' => ''
  
);
  
class 
Fast_test
{
    
    
function test_func()
        
{
            
return "test";
        
}
    
} 

Создаю 2 шаблона
1й

{exp:fast_test:test_func}<br />
{exp:channel:entries channel="some_channel" limit="5"}
        {exp
:fast_test:test_func}<br />
{/exp:channel:entries}
{exp
:fast_test:test_func} 

вывод шаблона

test 
**********09L8X1t49cHY01Z5j4TT91fGfr
**********09L8X1t49cHY01Z5j4TT91fGfr
**********09L8X1t49cHY01Z5j4TT91fGfr
**********09L8X1t49cHY01Z5j4TT91fGfr
**********09L8X1t49cHY01Z5j4TT91fGfr
test 

(36 символов, похоже на какой то хеш. вместо звездочек - также символы хеша)
т.е. по какой то причине (как я понимаю - скорее всего из-за порядка обработки шаблона, и порядка вызова модулей в частности) вместо строки test возвращается 36-символьная последовательность

2й

{exp:channel:entries channel="some_channel" limit="5"}
        {exp
:fast_test:test_func}<br />
{/exp:channel:entries}
{exp
:fast_test:test_func} 

вывод шаблона

test 
test 
test 
test 
test 
test 

Т.е. код обрабатывается так как ожидается.

Я знаю только один способ решить проблему - вынести в первом варианте код в embed шаблон
По какой причине происходит такая исключительная ситуация ?

UPD: и еще удивительно - 36 символов - это немного странно. кажется ни один хеш-алгорит не возвращает 36 байт по умолчанию

Профиль
 
 
Отправлено: 27 Май 2011 07:57 P.M.   [ Игнорировать ]   [ # 1 ]
Sr. Member
RankRankRankRank
Всего сообщений:  987
Зарегистрирован  2008-09-27

Попробуйте к вызову плагина добавить parse=“inward”

Профиль
 
 
Отправлено: 28 Май 2011 01:34 A.M.   [ Игнорировать ]   [ # 2 ]
Студент
RankRank
Всего сообщений:  131
Зарегистрирован  2010-12-14

Да, это помогло.
Спасибо.

Профиль