Перейти к содержимому


Фото
- - - - -

Внедрить свой php код в Simpla 2

php интеграция simpla 2 валюта

  • Чтобы отвечать, сперва войдите на форум
20 ответов в теме

#1 katrukhin

katrukhin
  • Пользователь
  • 13 сообщений

Опубликовано 26.04.2012 - 08:54

Добрый день, я не мастер написания скриптов, но прочитав пару уроков написал свой парсер валют

function currency(){
	
$q = date("d.m.Y");

$q = str_replace(" ","+",$q);
$h = curlFunc('http://www.cbr.ru/currency_base/D_print.aspx?date_req='.$q);

 $ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_URL, $h);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($ch);
 curl_close($ch);

preg_match_all('
/<td align="right">(.*?)<\/td>/is
', $h, $matches);

$usd = $matches[1][29];
$eur = $matches[1][32];
$cyn = $matches[1][47];

}


Плохой, не плохой, дело не в этом. Факт в том что работает.

Стала проблема внедрить данный код в симплу.

На SMARTY написано что я могу и в шаблоне кусочек вставить PHP используя вот такой синтаксис {php}.
Но как только его видит Simpla 2, то сразу Fatal Error.

Могу я прописать не кую функцию в код сайта и вызвать ее, как это возможно, есть ли некая документация?



#2 iluwka

iluwka
  • Пользователь
  • 220 сообщений

Опубликовано 26.04.2012 - 09:48

в конфиге включи возможность вставки пхп



#3 subLane

subLane
  • Пользователь
  • 79 сообщений

Опубликовано 09.06.2012 - 21:21

как именно и где это сделать подскажите плз тоже очень интересует данный вопрос



#4 phpmaster

phpmaster
  • Пользователь
  • 32 сообщений

Опубликовано 10.06.2012 - 05:34

php-код вставляется между {php} и {/php}



#5 strannik22

strannik22
  • Пользователь
  • 76 сообщений

Опубликовано 15.06.2012 - 03:38

заменил на true.
вставил в шаблоне {php} <?php include("left.php")?> {/php}
выводит - Parse error: syntax error, unexpected '
<' in ......... hosting.ru/public_html/Smarty/libs/plugins/block.php.php(23) : eval()'d code on line 1

*случаем в Smarty/libs/Smarty.class.php не нужно поменять public $allow_php_templates = false; на public $allow_php_templates = true; ?



#6 strannik22

strannik22
  • Пользователь
  • 76 сообщений

Опубликовано 15.06.2012 - 13:14

теперь вместо одной ошибки - стало 3.

Warning: include(left.php) [function.include]: failed to open stream: No such file or directory in /home/u23961/domains/....hosting.ru/public_html/Smarty/libs/plugins/block.php.php(23) : eval()'d code on line 1

Warning: include(left.php) [function.include]: failed to open stream: No such file or directory in /home/u23961/domains/...hosting.ru/public_html/Smarty/libs/plugins/block.php.php(23) : eval()'d code on line 1

Warning: include() [function.include]: Failed opening 'left.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/u23961/domains/...hosting.ru/public_html/Smarty/libs/plugins/block.php.php(23) : eval()'d code on line 1



#7 strannik22

strannik22
  • Пользователь
  • 76 сообщений

Опубликовано 19.06.2012 - 03:10

сделал полный путь, вывод:
Warning: include() [function.include]: URL file-access is disabled in the server configuration in /home/u23961/domains/...hosting.ru/public_html/Smarty/libs/plugins/block.php.php(23) : eval()'d code on line 1

Warning: include(http://...hosting.ru...1/html/left.php) [function.include]: failed to open stream: no suitable wrapper could be found in /home/u23961/domains/...hosting.ru/public_html/Smarty/libs/plugins/block.php.php(23) : eval()'d code on line 1

Warning: include() [function.include]: Failed opening 'http://...hosting.ru/design/default_1/html/left.php' for inclusion (include_path='.:/usr/local/lib/php') in /home/u23961/domains/...hosting.ru/public_html/Smarty/libs/plugins/block.php.php(23) : eval()'d code on line 1



#8 Kosjak76

Kosjak76
  • Модератор
  • 3 854 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 19.06.2012 - 03:21

Вообще-то в Симпле по-моему запрещена обработка РНР из папки дизайн, посмотрите .htacsses



#9 Чудилла

Чудилла
  • Фрилансер
  • 125 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x

Опубликовано 19.06.2012 - 03:43

там же шаблонизатор смарти, функцию можно написать на смарти, а сейчас получается говно код, ребятки



#10 Чудилла

Чудилла
  • Фрилансер
  • 125 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x

Опубликовано 19.06.2012 - 03:59

Как раз наоборот. Шаблонизатор автоматом делает из шаблона код PHP, который по качеству обычно много хуже кода, написанного вручную.


Шаблонизатор смарти, по мне вообще говно, если использовать то уже фремворк.



#11 AndryFroggy

AndryFroggy
  • Пользователь
  • 119 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Краснодар

Опубликовано 20.06.2012 - 16:17

Все прекрасно реализуется и в классах. Не надо лезть в смарти-настройки.



#12 osben

osben
  • Фрилансер
  • 802 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:UA, RU

Опубликовано 20.06.2012 - 16:54

передай через view.php результат своего парсера, и не делай кашу в смарти ;)



#13 osben

osben
  • Фрилансер
  • 802 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:UA, RU

Опубликовано 20.06.2012 - 16:56

П.С. forloo - после твоего комента, заинтересовало что в твоём понимании фремворк и шаблонизатор, видать для тебя нет разницы? ))))



#14 xavior

xavior
  • Фрилансер
  • 290 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:1.x, 2.x
  • Откуда:Bombay

Опубликовано 06.06.2014 - 15:53

Обновлю тему.

 

В версии 2.3.5 в смарти больше нет "public $allow_php_tag".



#15 xavior

xavior
  • Фрилансер
  • 290 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:1.x, 2.x
  • Откуда:Bombay

Опубликовано 05.07.2014 - 00:35

Чтобы включить старый добрый {php} ... {/php} идем в api/Design.php

 

4я строка меняем на 

require_once(dirname(dirname(__FILE__)).'/Smarty/libs/SmartyBC.class.php');

15я строка меняем на

$this->smarty = new SmartyBC()


#16 strannik22

strannik22
  • Пользователь
  • 76 сообщений

Опубликовано 15.07.2014 - 07:47

Чтобы включить старый добрый {php} ... {/php} идем в api/Design.php

 

4я строка меняем на 

require_once(dirname(dirname(__FILE__)).'/Smarty/libs/SmartyBC.class.php');

15я строка меняем на

$this->smarty = new SmartyBC()

 поменял. вообще отключился сайт.



#17 xavior

xavior
  • Фрилансер
  • 290 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:1.x, 2.x
  • Откуда:Bombay

Опубликовано 15.07.2014 - 09:32

 поменял. вообще отключился сайт.

Это для версий от 2.3.5 и выше информация. для старых версий как включать - написано выше



#18 gl63amg

gl63amg
  • Пользователь
  • 2 сообщений
  • Дизайн, Программирование, Верстка, Заказчик
  • Версия CMS:2.x

Опубликовано 06.03.2015 - 02:25

Это для версий от 2.3.5 и выше информация. для старых версий как включать - написано выше

спасибо помогло

 

 



#19 Яша

Яша
  • Пользователь
  • 6 сообщений
  • Программирование, Верстка, Пользователь
  • Версия CMS:2.x
  • Откуда:Украина

Опубликовано 25.01.2020 - 22:19

Всем доброго времени суток! Подскажите, пожалуйста. Мне нужно, чтобы на странице отзывов в меню выводился этот файл

{include file='x_included_comments.tpl'}

Я добавляю в админке на странице меню в текст страницы такой код 

{php}{include file='x_included_comments.tpl'}{/php}

и в файле  api/Design.php

 

4я строка меняем на 

  1. require_once(dirname(dirname(__FILE__)).'/Smarty/libs/SmartyBC.class.php');

15я строка меняем на

  1. $this->smarty = new SmartyBC()

все это сделал, но на странице сайта появляется просто этот код 

{php}{include file='x_included_comments.tpl'}{/php}

подскажите, как реализовать задуманное?



#20 Kasha

Kasha

    Поддержка пользователей

  • Тех. поддержка
  • 1 695 сообщений
  • Дизайн, Программирование, Верстка, SEO
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 25.01.2020 - 23:27

Всем доброго времени суток! Подскажите, пожалуйста. Мне нужно, чтобы на странице отзывов в меню выводился этот файл

{include file='x_included_comments.tpl'}

Я добавляю в админке на странице меню в текст страницы такой код

{php}{include file='x_included_comments.tpl'}{/php}

и в файле  api/Design.php

 

4я строка меняем на 

  1. require_once(dirname(dirname(__FILE__)).'/Smarty/libs/SmartyBC.class.php');

15я строка меняем на

  1. $this->smarty = new SmartyBC()

все это сделал, но на странице сайта появляется просто этот код 

{php}{include file='x_included_comments.tpl'}{/php}

подскажите, как реализовать задуманное?

для того чтобы подтянуть .tpl не нужно прибегать к php, пользуйтесь просто {include file="x_included_comments.tpl"} без каких-либо других изменений и будет счастье







Также с меткой «php, интеграция, simpla, 2, валюта»

0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых