Умный оператор if с датой и датой = месяц › для отображения результатов

Я получил таблицу из массива и много сумм $$$ на разные даты.

Пример:

-10.08.2015 | Сумма: 2500$
-19.10.2015 | Сумма: 1000$
-20.11.2015 | Сумма: 500$
-27.11.2015 | Сумма: 720$
-30.12.2015 | Сумма: 100$
-31.12.2015 | Сумма: 250$

Мой текущий код в умном шаблоне:

                {foreach from=$referrals item=referral}
                    {if $referral.date eq "08/10/2015"}
                            {assign var="sum" value="`$sum+$referral.amount`"}
                    {/if}
                {/foreach}
                    <td>{$sum|number_format:2:",":"."} ден.</td>
                {assign var="sum" value=0}

И я получаю только общую сумму только на дату: 10.08.2015

Мой вопрос: как получить общую сумму за весь месяц (10) октября или за весь месяц (11) ноября и за весь год, разделенные по месяцам, и только для сумм, которые не равны 0 (ноль ), потому что у меня тоже есть такие суммы?

И это мой массив (содержащий более 136 массивов):

Smarty_Variable Object (3)
->value = Array (137)
  0 => Array (11)
    id => "1514"
    date => "05/01/2016"
    service => "Рамка со податоци"
    package => "Рамка со податоци"
    userid => "500"
    amount => "0.00"
    billingcycle => "One Time"
    amountdesc => "0,00 ден. One Time"
    commission => "0,00 ден."
    lastpaid => "Never"
    status => "Active"
  1 => Array (11)
    id => "1515"
    date => "05/01/2016"
    service => "Лого со податоци"
    package => "Лого со податоци"
    userid => "500"
    amount => "0.00"
    billingcycle => "One Time"
    amountdesc => "0,00 ден. One Time"
    commission => "0,00 ден."
    lastpaid => "Never"
    status => "Active"
  2 => Array (11)
    id => "1496"
    date => "29/12/2015"
    service => "Рамка со податоци"
    package => "Рамка со податоци"
    userid => "493"
    amount => "0.00"
    billingcycle => "One Time"
    amountdesc => "0,00 ден. One Time"
    commission => "0,00 ден."
    lastpaid => "Never"
    status => "Active"
  3 => Array (11)
    id => "1497"
    date => "29/12/2015"
    service => "Лого со податоци"
    package => "Лого со податоци"
    userid => "493"
    amount => "0.00"
    billingcycle => "One Time"
    amountdesc => "0,00 ден. One Time"
    commission => "0,00 ден."
    lastpaid => "Never"
    status => "Active"
  4 => Array (11)
    id => "1498"
    date => "29/12/2015"
    service => "Реклама во црно-бела техника на 1/6 -..."
    package => "Реклама во црно-бела техника на 1/6 -..."
    userid => "493"
    amount => "0.00"
    billingcycle => "One Time"
    amountdesc => "0,00 ден. One Time"
    commission => "0,00 ден."
    lastpaid => "Never"
    status => "Active"
  5 => Array (11)
    id => "1500"
    date => "29/12/2015"
    service => "Лого и мапа на www.abv.mk"
    package => "Лого и мапа на www.abv.mk"
    userid => "493"
    amount => "0.00"
    billingcycle => "One Time"
    amountdesc => "0,00 ден. One Time"
    commission => "0,00 ден."
    lastpaid => "Never"
    status => "Active"

person ViktorG    schedule 11.01.2016    source источник
comment
Просто сделайте это в обычном php и отправьте результат в Smarty с помощью переменной. Smarty — это шаблонная система, ее нельзя использовать для таких сложных операций.   -  person Borgtex    schedule 13.01.2016
comment
Я согласен с Borgtex — обязательно включите теги Smarty PHP, если вы используете WHMCS v6 (WHMCS › Настройка › Общие настройки › вкладка «Безопасность»). Затем вы можете использовать {php} {/php} в шаблоне, чтобы делать то, что вы хотите сделать. Конечно, в идеале вы должны добавить хук в папку hooks, чтобы сделать это, но я отвлекся.   -  person muely2k1    schedule 22.01.2016
comment
Я могу попробовать обе вещи, которые вы упомянули, но проблема в том, что я на самом деле не php-программист, поэтому я прошу о помощи :) @muely2k1   -  person ViktorG    schedule 24.01.2016


Ответы (1)


person    schedule
comment
Было бы неплохо, если бы вы добавили какое-то описание в свой код, чтобы указать, как это решает проблему ОП. - person Nima; 24.08.2017