как вывести статы с админки на главную?

Тема в разделе "Shop-script", создана пользователем HellDoc, 27 авг 2008.

Статус темы:
Закрыта.
  1. HellDoc

    HellDoc Постоялец

    Регистр.:
    28 май 2007
    Сообщения:
    89
    Симпатии:
    11
    Гуру- подскажите - вот например в админке есть статы :

    Или

    Но естессно на главной просто так они выводиться не хотят ) Поскольку мой уровень пхп недалек от простого редактирования - подскажите где искать и как заставить их там показываться (всмысле каким кодом они вызываются я то нашел - но работают они только в админке )
     
  2. Hmelex

    Hmelex

    Регистр.:
    15 апр 2008
    Сообщения:
    515
    Симпатии:
    119
    Только когда гуру подскажут что вставить - обрати внимание на статистику по покупкам.

    Там Цена в валюте 1 и в валюте 2 не приводится к общему знаменателю, а расчитывается по какойто супер формуле.

    Я уже об этом писала.
     
  3. fbeyond

    fbeyond Создатель

    Регистр.:
    11 июн 2008
    Сообщения:
    31
    Симпатии:
    28
    Создаем файл в /includes/totals.php/:
    Код:
    	//get total number of customers, orders, etc.
    
    	$total = array();
    
    	// --- ORDERS ---
    	//excluding CANCELLED status
    
    	$q = db_query("select count(*) from ".ORDERS_TABLE." where statusID > 1");
    	$r = db_fetch_row($q);
    	$total["orders"] = $r[0];
    	//get total revenue
    	$q = db_query("select order_amount, currency_value from ".ORDERS_TABLE." where statusID > 1");
    	$revenue = 0;
    	while($r = db_fetch_row($q))
    	{
    		$revenue += $r[0];
    	}
    	$total["revenue"] = show_price( $revenue, CONF_DEFAULT_CURRENCY );
    
    	//pending orders
    	if ((int)CONF_NEW_ORDER_STATUS)
    	{
    		$q = db_query("select count(*) from ".ORDERS_TABLE." where statusID = ".(int)CONF_NEW_ORDER_STATUS);
    		$r = db_fetch_row($q);
    		$total["orders_pending"] = $r[0];
    	}
    
    	//orders today
    	$curr_time = time();
    	$y = strftime("%Y", $curr_time);
    	$m = strftime("%m", $curr_time);
    	$d = strftime("%d", $curr_time);
    
    	$TODAY = "$y-$m-$d 00:00:00";
    	$q = db_query("select order_amount, currency_value from ".ORDERS_TABLE." where statusID > 1 and order_time > '".$TODAY."'");
    	$n = 0;
    	$a = 0;
    	while($r = db_fetch_row($q))
    	{
    		$a += $r[0];
    		$n++;
    	}
    	$total["orders_today"] = $n;
    	$total["revenue_today"] = show_price($a);
    
    	$YESTERDAY = strftime( "%Y-%m-%d 00:00:00", time()-24*3600 );
    	$q = db_query("select order_amount, currency_value from ".ORDERS_TABLE." where statusID > 1 and order_time > '".$YESTERDAY."' and order_time < '".$TODAY."'");
    	$n = 0;
    	$a = 0;
    	while($r = db_fetch_row($q))
    	{
    		$a += $r[0];
    		$n++;
    	}
    	$total["orders_yesterday"] = $n;
    	$total["revenue_yesterday"] = show_price($a);
    
    	$THISMONTH = "$y-$m-01 00:00:00";
    	$q = db_query("select order_amount, currency_value from ".ORDERS_TABLE." where statusID > 1 and order_time > '".$THISMONTH."'");
    	$n = 0;
    	$a = 0;
    	while($r = db_fetch_row($q))
    	{
    		$a += $r[0];
    		$n++;
    	}
    	$total["orders_thismonth"] = $n;
    	$total["revenue_thismonth"] = show_price($a);
    
    
    	// --- PRODUCTS ---
    	$q = db_query("select count(*) from ".PRODUCTS_TABLE);
    	$r = db_fetch_row($q);
    	$total["products"] = $r[0];
    	$q = db_query("select count(*) from ".PRODUCTS_TABLE." where Enabled=1");
    	$r = db_fetch_row($q);
    	$total["products_enabled"] = $r[0];
    	/*if (CONF_CHECKSTOCK)
    	{
    		$q = db_query("select count(*) from ".PRODUCTS_TABLE." where Enabled=1 and in_stock <= 0");
    		$r = db_fetch_row($q);
    		$total["products_outofstock"] = $r[0];
    	}*/
    
    	// --- CATEGORIES ---
    	$q = db_query("select count(*) from ".CATEGORIES_TABLE);
    	$r = db_fetch_row($q);
    	$total["categories"] = $r[0];
    
    	// --- CUSTOMERS ---
    	$q = db_query("select count(*) from ".CUSTOMERS_TABLE);
    	$r = db_fetch_row($q);
    	$total["customers"] = $r[0];
    
    	//cust groups
    	$q = db_query("select count(*) from ".CUSTGROUPS_TABLE);
    	$r = db_fetch_row($q);
    	$total["customer_groups"] = $r[0];
    
    	//newsletter subscribers
    	subscrGetAllSubscriber(null, $r);
    	$total["newsletter_subscribers"] = $r;
    
    	//ETC
    	$q = db_query("select count(*) from ".CURRENCY_TYPES_TABLE);
    	$r = db_fetch_row($q);
    	$total["currency_types"] = $r[0];
    	$q = db_query("select count(*) from ".PAYMENT_TYPES_TABLE." where Enabled=1");
    	$r = db_fetch_row($q);
    	if (defined('CONF_PPEXPRESSCHECKOUT_ENABLED')) { $smarty->assign("ppec_enabled",1); }
    	if (defined('CONF_GOOGLECHECKOUT2_ENABLED')) { $smarty->assign("gc_enabled",1); }
    	$total["payment_types"] = $r[0];
    	$q = db_query("select count(*) from ".SHIPPING_METHODS_TABLE." where Enabled=1");
    	$r = db_fetch_row($q);
    	$total["shipping_types"] = $r[0];
    	$q = db_query("select count(*) from ".AUX_PAGES_TABLE);
    	$r = db_fetch_row($q);
    	$total["aux_pages"] = $r[0];
    	$q = db_query("select count(*) from ".COUNTRIES_TABLE);
    	$r = db_fetch_row($q);
    	$total["countries"] = $r[0];
    	$q = db_query("select count(*) from ".ZONES_TABLE);
    	$r = db_fetch_row($q);
    	$total["zones"] = $r[0];
    
    	$q = db_query("select count(*) from ".DISCUSSIONS_TABLE);
    	$r = db_fetch_row($q);
    	$total["discussion_posts"] = $r[0];
    
    	$smarty->assign("totals", $total);
    
    А дальше стандартно:
    {$totals.products}
    {$totals.categories}
    {$totals.orders}
    {$totals.customers}
    {$totals.revenue}

    Код:
    
    			<b>Статистика заказов:</b><br />
    			<table style="margin-left: 5px;" cellpadding="0">
    			<tr><td>Сегодня:</td><td>{$totals.orders_today} заказ(ов) ({$totals.revenue_today})</td></tr>
    			<tr><td>Вчера:</td><td>{$totals.orders_yesterday} заказ(ов) ({$totals.revenue_yesterday})</td></tr>
    			<tr><td>Этот месяц:</td><td>{$totals.orders_thismonth} заказ(ов) ({$totals.revenue_thismonth})</td></tr>
    			<tr><td>За все время:</td><td>{$totals.orders} заказ(ов) ({$totals.revenue})</td></tr>
    			</table>
    


    Добавлено через 1 минуту
    Только минус в том, что этот модуль теперь будет подгружаться на всех страницах магазина, а это значит, что увеличится нагрузка...
     
    Hadalamdabad, mariohs и HellDoc нравится это.
  4. HellDoc

    HellDoc Постоялец

    Регистр.:
    28 май 2007
    Сообщения:
    89
    Симпатии:
    11
    Спасиб дорогой.) Есть еще хорошие люди на нулле которым не вскружили голову хайды по 100 постов... )

    По поводу нагрузги : можно оккуратненько прикрутить его не в индекс а в хоме тпл например - тот который только на главной вызывается...
     
  5. fbeyond

    fbeyond Создатель

    Регистр.:
    11 июн 2008
    Сообщения:
    31
    Симпатии:
    28
    Если подскажешь как - буду благодарен.
    Я не нашел способа иклюдить сторонние файлы в шаблонах Smarty :(
     
  6. mariohs

    mariohs Постоялец

    Регистр.:
    1 май 2008
    Сообщения:
    115
    Симпатии:
    94
    А если содержимое файла /includes/totals.php/ закинуть в /includes/home.php/ и это
    Код:
    <b>Статистика заказов:</b><br />
    <table style="margin-left: 5px;" cellpadding="0">
    <tr><td>Сегодня:</td><td>{$totals.orders_today} заказ(ов) ({$totals.revenue_today})</td></tr>
    <tr><td>Вчера:</td><td>{$totals.orders_yesterday} заказ(ов) ({$totals.revenue_yesterday})</td></tr>
    <tr><td>Этот месяц:</td><td>{$totals.orders_thismonth} заказ(ов) ({$totals.revenue_thismonth})</td></tr>
    <tr><td>За все время:</td><td>{$totals.orders} заказ(ов) ({$totals.revenue})</td></tr>
    </table>
    разместить в файле templates/tmpl/home.php.html
     
  7. HellDoc

    HellDoc Постоялец

    Регистр.:
    28 май 2007
    Сообщения:
    89
    Симпатии:
    11
    Бах - ничего не работает //// выдает ошибку на пол страницы при заходе в каталог....

    P/S
    Гоню )) Пхп интерпретатор упущен в первом посте )
     
  8. Hmelex

    Hmelex

    Регистр.:
    15 апр 2008
    Сообщения:
    515
    Симпатии:
    119
    Все нормально работает - просто надо не тупу делать а с мазгами. Ну а для тех у кого их нет Вот решение <font color="#000000" size=2>{if $totals}Новости получают - {$totals.newsletter_subscribers} человек{/if}</font>

    Вроде популярно описала:)
     
  9. HellDoc

    HellDoc Постоялец

    Регистр.:
    28 май 2007
    Сообщения:
    89
    Симпатии:
    11
    Ага очень - особенно с хайдом )) Ты хот расскажи что ты там описала примерно- захайдить , если уж желание такое сильное, можно часть кода но не весь же пост )

    Ты кстати если хотел(а) помоч мне (а тему я стартовал для помощи) то хоть бы на мое кол-во постов глянул(а)
     
  10. Hmelex

    Hmelex

    Регистр.:
    15 апр 2008
    Сообщения:
    515
    Симпатии:
    119

    Вот <font color="#000000" size=2>{if $totals}Новости получают - {$totals.newsletter_subscribers} человек{/if}</font>
     
Статус темы:
Закрыта.