Jump to content

[Решено] Интересный PHP-код в модуле


Recommended Posts


{if !$priceDisplay}

    {displayWtPrice p=$special.price}

{else}

     {displayWtPrice p=$special.price_tax_exc}

{/if}

Здесь мне непонятен вызов функции displayWtPrice, которая в Product.php описана как


  public static function displayWtPrice($params, &$smarty)
  {
        return Tools::displayPrice($params['p'], Context::getContext()->currency);
  }

Я не гуру в PHP, поверхностно поискал, но не нашёл такого способа передачи параметров в функцию - через пробел, с указанием имени переменной.

 

А нужно мне это для того, чтобы обработать результат этой функции - строку с ценой - другими строковыми функциями.

Edited by carcous (see edit history)

Share this post


Link to post
Share on other sites

Поясните, пожалуйста!

Я понял, что в displayPrice вызывается элемент массива 'p', но вопрос остаётся прежним:

что это за вызов функции с параметром через пробел?

displayWtPrice p=$special.price

 

что-то не видел в мануалах по PHP описания вызова вроде

sin a=90, обычно sin(90)

Share this post


Link to post
Share on other sites

ну так и ответ остается прежним, я привел вам ссылку на документацию где 

 

 

All attributes passed to template functions from the template are contained in the $params as an associative array.

вопросы по теме гуглятся в 3 минуты. И функция вызывается из смарти.

Share this post


Link to post
Share on other sites

ну так и ответ остается прежним, я привел вам ссылку на документацию где 

вопросы по теме гуглятся в 3 минуты. И функция вызывается из смарти.

Если пишу, значит не нагуглил.

Как мне применять строковые функции к результату кода: displayWtPrice p=$special.price ?

Пробовал func(displayWtPrice p=$special.price) - выдаёт ошибку

Надо попробовать func(displayWtPrice) p=$special.price, может, заработает

 

И всё таки, что означает запись displayWtPrice p=$special.price? Вызов функции, а затем присвоение значения переменной?

Но тогда, по синтаксису PHP должны стоять точки с запятой, вот так: displayWtPrice; p=$special.price;

Share this post


Link to post
Share on other sites

Если пишу, значит не нагуглил.

Как мне применять строковые функции к результату кода: displayWtPrice p=$special.price ?

Пробовал func(displayWtPrice p=$special.price) - выдаёт ошибку

Надо попробовать func(displayWtPrice) p=$special.price, может, заработает

 

И всё таки, что означает запись displayWtPrice p=$special.price? Вызов функции, а затем присвоение значения переменной?

Но тогда, по синтаксису PHP должны стоять точки с запятой, вот так: displayWtPrice; p=$special.price;

 

Мля да причем тут синтекс PHP, если там идет синтекс Smarty шаблонизатора, ты код где смотришь в php файле что ли? ты его смотришь в tpl файле и там идет синтекс Smarty, хватит тут тролить людей.

Share this post


Link to post
Share on other sites

Мля да причем тут синтекс PHP, если там идет синтекс Smarty шаблонизатора, ты код где смотришь в php файле что ли? ты его смотришь в tpl файле и там идет синтекс Smarty, хватит тут тролить людей.

Спасибо, вот с этого и надо было начинать. Только прилично, без оскорблений.

Мы здесь для решения вопросов, а не для ссор.

Полезная ссылка: Smarty, Функции, Базовый синтаксис.

 

А функции можно применять так:

 

{displayWtPrice|replace('a','b') p=$special.price_tax_exc}

Edited by carcous (see edit history)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More