Merhabalar,
Bir arkadaşım için az önce yaptığım, ürünün kalan gün sayısını gösteren kodu paylaşıyorum sizler ile.
Özellikler
- Aktif ürünlerde, eğer ürünün fiyatlandırması yinelenen şeklindeyse (1 aylık, 3aylık, 6aylık,12 aylık, 24 aylık ve 36 aylık) ürünün kalan gün sayısını bir bar içerisinde gösterir. Gün sayısı azaldıkça bar kısalır.
- Kodda G-Invoices modülü desteği bulunmakta. Modüle Buradan ulaşabilirsiniz. Ürünün süresi eğer 1/3 kalmışsa (aylık üründe 10 gün gibi) altında yenile butonu çıkar, bu da G-Invoices modülünün arayüzüne gönderir. - Ürünün süresi 1/3 kalmışsa (aylık üründe 10 gün gibi) barın rengi kırmızıya dönmekte. - Hook gerekliliği bulunmamakta. Tüm kodlar .tpl dosyasının içerisinde bulunmaktadır.
Kodu, templates/temaklasorunuz/clientareaproducts.tpl içindeki kod ile değişmelisiniz. (Temadan temaya çeşitli düzenlemeler olabileceğinden ötürü, yedek alınması ve verdiğim kodun muadili kod ile değişmesi gerekiyor.)
Kod:
{include file="$template/includes/tablelist.tpl" tableName="ServicesList" filterColumn="4" noSortColumns="0"}
<script type="text/javascript">
jQuery(document).ready( function ()
{
var table = jQuery('#tableServicesList').removeClass('hidden').DataTable();
{if $orderby == 'product'}
table.order([1, '{$sort}'], [4, 'asc']);
{elseif $orderby == 'amount' || $orderby == 'billingcycle'}
table.order(2, '{$sort}');
{elseif $orderby == 'nextduedate'}
table.order(3, '{$sort}');
{elseif $orderby == 'domainstatus'}
table.order(4, '{$sort}');
{/if}
table.draw();
jQuery('#tableLoading').addClass('hidden');
});
</script>
{literal}
<style>
.progress {
position:relative;
}
.progress span {
position:absolute;
left:0;
width:100%;
text-align:center;
z-index:2;
color:black;
}
</style>
{/literal}
<div class="table-container clearfix">
<table id="tableServicesList" class="table table-list hidden">
<thead>
<tr>
<th></th>
<th>{$LANG.orderproduct}</th>
<th>{$LANG.clientareaaddonpricing}</th>
<th>{$LANG.clientareahostingnextduedate}</th>
<th>Kalan Gün</th>
<th>{$LANG.clientareastatus}</th>
<th class="responsive-edit-button" style="display: none;"></th>
</tr>
</thead>
<tbody>
{foreach key=num item=service from=$services}
{assign var="tarih3" value= $smarty.now|date_format:"%D"}
{assign var="tarih1" value= $tarih3|strtotime}
{assign var="tarih2" value= $service.normalisedNextDueDate|strtotime}
{if $service.billingcycle eq $LANG.orderpaymenttermmonthly}
{assign var="tarih5" value="-1 month"|strtotime:$tarih2}
{elseif $service.billingcycle eq $LANG.orderpaymenttermquarterly}
{assign var="tarih5" value="-3 month"|strtotime:$tarih2}
{elseif $service.billingcycle eq $LANG.orderpaymenttermsemiannually}
{assign var="tarih5" value="-6 month"|strtotime:$tarih2}
{elseif $service.billingcycle eq $LANG.orderpaymenttermannually}
{assign var="tarih5" value="-1 year"|strtotime:$tarih2}
{elseif $service.billingcycle eq $LANG.orderpaymenttermbiennially}
{assign var="tarih5" value="-2 year"|strtotime:$tarih2}
{elseif $service.billingcycle eq $LANG.orderpaymenttermtriennially}
{assign var="tarih5" value="-3 year"|strtotime:$tarih2}
{/if}
{assign var="tarih4" value=($tarih2 - $tarih5)/86400}
{assign var="kalantarih" value=($tarih2 - $tarih1)/86400}
{assign var="servisdurumu" value=$service.status|strtolower}
{math assign="percentage" equation="(x / y) * 100" x=$kalantarih y=$tarih4 format="%d"}
<tr onclick="clickableSafeRedirect(event, 'clientarea.php?action=productdetails&id={$service.id}', false)">
<td class="text-center{if $service.sslStatus} ssl-info{/if}" data-element-id="{$service.id}" data-type="service"{if $service.domain} data-domain="{$service.domain}"{/if}>
{if $service.sslStatus}
<img src="{$service.sslStatus->getImagePath()}" data-toggle="tooltip" title="{$service.sslStatus->getTooltipContent()}" class="{$service.sslStatus->getClass()}"/>
{elseif !$service.isActive}
<img src="{$BASE_PATH_IMG}/ssl/ssl-inactive-domain.png" data-toggle="tooltip" title="{lang key='sslState.sslInactiveService'}">
{/if}
</td>
<td><strong>{$service.product}</strong>{if $service.domain}<br /><a href="http://{$service.domain}" target="_blank">{$service.domain}</a>{/if}</td>
<td class="text-center" data-order="{$service.amountnum}">{$service.amount}<br />{$service.billingcycle}</td>
<td class="text-center"><span class="hidden">{$service.normalisedNextDueDate}</span>{$service.nextduedate} <br></td>
<td class="text-center">
{if $service.billingcycle eq $LANG.orderpaymenttermonetime}
{$LANG.orderpaymenttermonetime}
{elseif $service.billingcycle eq $LANG.orderpaymenttermfreeaccount}
{$LANG.orderpaymenttermfreeaccount}
{elseif $servisdurumu neq 'active'}
{$service.statustext}
{elseif $servisdurumu eq 'active'}
<div style="margin-bottom:0px !important; text-align:center !important;" class="progress">
<div class="progress-bar" role="progressbar" style="width: {$percentage}%; display: inline-block; {if $percentage lt '34'} background-color: #d9534f !important;{/if}" aria-valuenow="{$percentage}" aria-valuemin="0" aria-valuemax="100"></div><span>{$kalantarih} gün</span>
</div>
{if $percentage lt '34'}<br>
<a style="font-size:11px; margin-top: -13px;" href="clientarea.php?action=productdetails&id={$service.id}#extendTime" type="button" class="button btn btn-primary btn-default"><i class="fa fa-sync" aria-hidden="true"></i> Yenile</a>
{/if}
{/if}
</td>
<td class="text-center"><span class="label status status-{$service.status|strtolower}">{$service.statustext}</span></td>
<td class="responsive-edit-button" style="display: none;">
<a href="clientarea.php?action=productdetails&id={$service.id}" class="btn btn-block btn-info">
{$LANG.manageproduct}
</a>
</td>
</tr>
{/foreach}
</tbody>
</table>
<div class="text-center" id="tableLoading">
<p><i class="fas fa-spinner fa-spin"></i> {$LANG.loading}</p>
</div>
</div>Not: WHMCS 8.1 ve 7.10.2 de denenmiştir.
Saygılarımla,
Uğur Burak ARITAŞ.