Плагин для вывода статистики пользователей и проектов биржы

Автор Сообщение

lanry

Андрей
#1/28.05.2014 18:33
0

Пользователи

Карма: +3

Добрый день, Всем!

Нужна помощь в доработке плагина.

Это мой первый плагин, написанный по мануалам на форумах. И сам по себе работает - выводит статистику в теле страницы. Но не получается вывести информацию в футер. 

freelancestatist.php:

<?php 

/* ==================== 
[BEGIN_COT_EXT]
Code=freelancestatist  
Part=main
File=freelancestatist 
Hooks=standalone 
Tags= Order=10 
[END_COT_EXT]
==================== */  

defined('COT_CODE') or die("Wrong URL."); 


$users_count = $db->query("SELECT COUNT(*) FROM $db_users WHERE user_maingrp>=4")->fetchColumn();
$users_freelancer = $db->query("SELECT COUNT(*) FROM $db_users WHERE user_maingrp=4")->fetchColumn();
$users_costomer = $db->query("SELECT COUNT(*) FROM $db_users WHERE user_maingrp=7")->fetchColumn();
$projects_count = $db->query("SELECT COUNT(*) FROM $db_projects WHERE item_state=0")->fetchColumn();
$t->assign(array(
"TOTAL_USERS" => $users_count,
"TOTAL_PROJECTS" => $projects_count,
"TOTAL_FREELANCERS" => $users_freelancer,
"TOTAL_CUSTOMER" => $users_costomer
));

?>

freelancestatist.setup.php:

<?php
/* ====================
[BEGIN_COT_EXT]
Code=freelancestatist 
Name=Freelancestatist
Description=Statistics
Version=0.0.1
Date=2014-05-26
Author=Yakovenko A.
Copyright= Yakovenko&Co 2014
Notes=BSD License
SQL=
Auth_guests=R
Lock_guests=W12345A
Auth_members=R
Lock_members=W12345A
[END_COT_EXT]

[BEGIN_COT_EXT_CONFIG]
cache_ttl=01:select:0,60,180,300,600,1800,3600:0:Cache lifetime in seconds, 0 disables cache
[END_COT_EXT_CONFIG]
==================== */

defined('COT_CODE') or die('Wrong URL');

  ?>

Для вывода в в футер использовал Хук freelancestatist.footer.php:

<?php 

/* ==================== 
[BEGIN_COT_EXT]
Hooks=footer.tags
Tags=footer.tpl:{FREE_STAT}
[END_COT_EXT]
==================== */  

defined('COT_CODE') or die("Wrong URL."); 


$users_count = $db->query("SELECT COUNT(*) FROM $db_users WHERE user_maingrp>=4")->fetchColumn();
$users_freelancer = $db->query("SELECT COUNT(*) FROM $db_users WHERE user_maingrp=4")->fetchColumn();
$users_costomer = $db->query("SELECT COUNT(*) FROM $db_users WHERE user_maingrp=7")->fetchColumn();
$projects_count = $db->query("SELECT COUNT(*) FROM $db_projects WHERE item_state=0")->fetchColumn();
$t->assign(array(
"TOTAL_USERS" => $users_count,
"TOTAL_PROJECTS" => $projects_count,
"TOTAL_FREELANCERS" => $users_freelancer,
"TOTAL_CUSTOMER" => $users_costomer
));

?>

Файл шаблона freelancestatist.tpl:

<!-- BEGIN: MAIN --> 

<div class="statist"> 

	<div class="block">{PHP.L.registered}: <span class="num">{TOTAL_USERS}</span></div>   
	<div class="block">{PHP.L.freelancers}: <span class="num">{TOTAL_FREELANCERS}</span></div>
	<div class="block">{PHP.L.customer}: <span class="num">{TOTAL_CUSTOMER}</span></div>
	<div class="block">{PHP.L.projects}: <span class="num">{TOTAL_PROJECTS}</span></div>

</div> 

<!-- END: MAIN -->

 

Может можно как-то по другому выводить информацию сразу в футер?

Сообщения: 36

Lion

Суровый модератор
#2/28.05.2014 21:10
0

Модераторы

Карма: +50

Какие тэги указываете в footer.tpl?

Сообщения: 497

lanry

Андрей
#3/28.05.2014 22:17
0

Пользователи

Карма: +3

{FREE_STAT}

Так же пробовал так:

<!-- IF {FREE_STAT} -->
      {FREE_STAT}
<!-- ENDIF -->

Сообщения: 36

Lion

Суровый модератор
#4/29.05.2014 07:29
0

Модераторы

Карма: +50

Судя по коду, у вас нет декларирования тэга  {FREE_STAT} в footer.tpl, поэтому так отображаться не будет. В footer у вас нужно использовать тэги:

TOTAL_USERS
TOTAL_PROJECTS
TOTAL_FREELANCERS
TOTAL_CUSTOMER
Сообщения: 497

lanry

Андрей
#5/29.05.2014 11:36
0

Пользователи

Карма: +3

Да, так выводится информация, но минуя шаблон. Можно сделать вывод через шаблон?

Не смог найти информацию о декларировании тегов. В freelancestatist.footer.php это не то ?

[BEGIN_COT_EXT]
Hooks=footer.tags
Tags=footer.tpl:{FREE_STAT}
[END_COT_EXT]

Сообщения: 36

Bond

Артур
#6/29.05.2014 17:13
0

Пользователи

Карма: +18

Просто продекларировать тэги вовсе не означает, что они будут работать. В коде же тоже их надо указывать и присваивать им что-то.

Пример: 

$t1 = new XTemplate(cot_tplfile('freelancestatist', 'plug'));

$t1->assign(array(
      "TOTAL_USERS" => $users_count,
      "TOTAL_PROJECTS" => $projects_count,
      "TOTAL_FREELANCERS" => $users_freelancer,
      "TOTAL_CUSTOMER" => $users_costomer
));

$t1->parse('MAIN');

$t->assign('FREE_STAT', $t1->text('MAIN'));

Здесь мы сначала указываем какой шаблон использовать, дальше присваиваем значения тэгам этого шаблона, и уже присваиваем сгенерированный шаблон нашему отдельному тэгу.

Сообщения: 62

lanry

Андрей
#7/29.05.2014 19:31
0

Пользователи

Карма: +3

Спасибо!

Теперь всё отлично работает.

Сообщения: 36