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

Статус
В этой теме нельзя размещать новые ответы.

HellDoc

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

Количество зарегистрированных пользователей: 1262
Количество групп пользователей: 2
Количество подписчиков на новости: 398

Партнерская программа: включена

Или

Статистика заказов:Сегодня: 5 заказ(ов) ($71.47)
Вчера: 7 заказ(ов) ($166.50)
Этот месяц: 189 заказ(ов) ($5,465.90)
За все время: 1383 заказ(ов) ($35,486.62)

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

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

Я уже об этом писала.
 
Создаем файл в /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 минуту
Только минус в том, что этот модуль теперь будет подгружаться на всех страницах магазина, а это значит, что увеличится нагрузка...
 
Спасиб дорогой.) Есть еще хорошие люди на нулле которым не вскружили голову хайды по 100 постов... )

По поводу нагрузги : можно оккуратненько прикрутить его не в индекс а в хоме тпл например - тот который только на главной вызывается...
 
Если подскажешь как - буду благодарен.
Я не нашел способа иклюдить сторонние файлы в шаблонах Smarty :(
 
А если содержимое файла /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
 
Бах - ничего не работает //// выдает ошибку на пол страницы при заходе в каталог....

P/S
Гоню )) Пхп интерпретатор упущен в первом посте )
 
Все нормально работает - просто надо не тупу делать а с мазгами. Ну а для тех у кого их нет Вот решение

Вроде популярно описала:)
 
Ага очень - особенно с хайдом )) Ты хот расскажи что ты там описала примерно- захайдить , если уж желание такое сильное, можно часть кода но не весь же пост )

Ты кстати если хотел(а) помоч мне (а тему я стартовал для помощи) то хоть бы на мое кол-во постов глянул(а)
 
Ага очень - особенно с хайдом )) Ты хот расскажи что ты там описала примерно- захайдить , если уж желание такое сильное, можно часть кода но не весь же пост )

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


Вот <font color="#000000" size=2>{if $totals}Новости получают - {$totals.newsletter_subscribers} человек{/if}</font>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху