Разделы

История покупок для зарегистированных пользователей на базе скрипта Shopkeeper

Сделал скрипт для вывода истории покупок для зарегистрированных пользователей с отслеживанием статуса заказа. Кому нужно пользуйтесь

Код сниппета «ShopHistory»:

<?php
$dbname = $modx->db->config['dbase'];
$dbprefix = $modx->db->config['table_prefix'];
$mod_table = $dbprefix."manager_shopkeeper";
$mod_config_table = $dbprefix."manager_shopkeeper_config";
$theme = $modx->config['manager_theme'];
$charset = $modx->config['modx_charset'];
$manager_language = $modx->config['manager_language'];
$text="";
	$user_id=$modx->getLoginUserID();
    $count_query = mysql_query("SELECT COUNT(*) FROM $mod_table WHERE userid='".$user_id."'");
    $total = mysql_result($count_query, 0);
	
global $modx, $langTxt;

$langTxt = array(
  "noOrders" => "Заказов нет",
  "currency" => "Валюта",
  "currencyDefault" => "руб.",
   
  "phase1" => "Новый",
  "phase2" => "В процессе выполнения",
  "phase3" => "Отправлен",
  "phase4" => "Выполнен",
  "phase5" => "Возникли проблемы",
  "phase6" => "Оплата получена"
);

    if($total>0){
		$data_query = $modx->db->select("id, short_txt, content, allowed, addit, price, currency, status, DATE_FORMAT(date,'%d.%m.%Y %k:%i') AS date", $mod_table, "userid='".$user_id."'", "id DESC", "");
		$summa=0;
		$num = 1;
		$text1='';
	
		while ($data = mysql_fetch_array($data_query)){
		
			
			$descr = $data['content'];	 
			$L1 = unserialize($descr);
				$result = count($L1);
												
				$text1.='<tr>';	
				$text1.='<td rowspan="'.$result.'" width="20" align="center">'.$data["id"].'</td>';
				$text1.='<td rowspan="'.$result.'" width="100">'.$data["date"].'</td>';	
				$text1.='<td rowspan="'.$result.'" width="160"  class="status'.$data['status'].'" align="center">'.$langTxt['phase'.$data['status']].'</td>';
				
				foreach ($L1 as $i => $value) {
					$document_tvs=$modx->getTemplateVarOutput(true, $value[0]);
					$pagetitle=$document_tvs['pagetitle'];
					$sum = $value[1] * $value[2];
					$text1.='<td width="50%"><a href="[~'.$value[0].'~]">'.$pagetitle.'</a></td>';
					$text1.='<td align="center">'.$value[1].'</td>';
					$text1.='<td align="center">'.$value[2].''.$data['currency'].'</td>';
					$text1.='<td align="center">';					
					$text1.= $sum;
					$text1.= $data['currency'];
					$text1.='</td>';											
					$text1.='</tr>';
					
					$summa = $summa + $sum;	
					++$num;	
				}			
		}
		//подгружаем чанк
		$txt = $modx->parseChunk('producthistory', array(
			'ShopHistory' => $text1,
			'SummaOrder' => $summa
			),
			'[+',
			'+]'
			);
		echo($txt);
    }
	else{
      echo '<div class="nogood">'.$langTxt['noOrders'].'</div>';
    }
?>


Код чанка «producthistory»:

<table>
	<tr><th>№</th><th>Дата</th><th>Статус</th><th>Состав заказа</th><th>Кол-во</th><th>Цена за 1 ед.</th><th>Общая сумма</th></tr>
	[+ShopHistory+]
	</table>
	Общая стоимость всех заказов: [+SummaOrder+] руб.


На нужной странице просто вызываем сниппет [!ShopHistory!]
  • +5
  • 30 июля 2010, 14:03
  • Tanaev

Комментарии (2)

RSS свернуть / развернуть
0
это здорово.
кстати, если уж вы решили выносить шаблон в чанк, логично и шаблон строки истории также вынести в чанк.
avatar

antonkuzmin

  • 2 августа 2010, 09:24
0
Добавьте пожалуйста кат, информацию, что это для Shopkeeper и желательно еще перенести все в Готовые дополнения.
avatar

Carw

  • 2 августа 2010, 18:05

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.