Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 201

Přidáno uživatelem Jiří Sviták před více než 15 roky(ů)

U zobrazeni vsech clenu pridano filtrovani podle telefonniho cisla jejich primarniho uzivatele.

Zobrazit rozdíly:

freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php
'export members to xls file' => 'Exportovat členy do xls souboru',
'fee' => 'Poplatek',
'fee or penalty comment' => 'Komentář k poplatku/pokutě',
'filter' => 'Filtrovat',
'former member' => 'Bývalý člen',
'from/to' => 'Od/komu',
'from' => 'Od',
freenetis/trunk/kohana/application/models/member.php
parent::__construct($id);
}
/**
* Gets list of all members from database.
* @param $limit_from starting row
* @param $limit_results number of rows
* @param $order_by sorting column
* @param $order_by_direction sorting direction
* @param $filter_values used for filtering
* @return unknown_type
*/
public function get_all_members($limit_from = 0, $limit_results = 50, $order_by = 'm.id', $order_by_direction = 'ASC', $filter_values = array())
{
// old version without filtering
//return self::$db->query('select m.id, m.registration, concat(u.surname,\' \',u.name) as name, ifnull(m.street,\'-\') as street,
// ifnull(m.street_number,\'-\') as street_number,ifnull(m.town,\'-\') as town from members m
// left join users u on m.id = u.member_id group by m.id order by name limit '.$min.','.$limit_results);
$where = '';
if(count($filter_values)>0) $where .= 'WHERE ';
$where = '';
$phone = '';
$first = true;
foreach($filter_values as $key => $value)
{
if($key!='submit')
{
if($where!='WHERE ') $where .= ' AND ';
$where .= $key.' LIKE \'%'.trim($value).'%\' COLLATE utf8_general_ci';
{
if ($key != 'submit')
{
// used for creating WHERE clausule
if ($first)
{
$where = 'WHERE ';
$first = false;
}
else
{
$where .= ' AND ';
}
if ($key == 'phone')
{
// joins table users to get phone number from user assigned to this member
$phone = ' JOIN users u ON m.id = u.member_id';
$where .= 'u.phone = \''.$value.'\'';
}
else
{
// may filter name, street and town
$where .= 'm.'.$key.' LIKE \'%'.trim($value).'%\' COLLATE utf8_general_ci';
}
}
}
return self::$db->query('select m.id, m.registration, m.name, m.street, m.street_number, m.town from members m '.$where.' order by '.$order_by.' '.$order_by_direction.' LIMIT '.$limit_from.','.$limit_results);
}
return self::$db->query('SELECT m.id, m.registration, m.name, m.street, m.street_number, m.town FROM members m '.$phone.' '.$where.' ORDER BY '.$order_by.' '.$order_by_direction.' LIMIT '.$limit_from.','.$limit_results);
}
}
/**
* to do - comment
* @param $limit
* @param $limit_results
* @return unknown_type
*/
public function get_all_members_to_registration($limit = 0, $limit_results = 50)
{
return self::$db->query('select m.id, m.registration, concat(u.surname,\' \',u.name) as name, m.street, m.street_number, m.town from members m join users u on m.id = u.member_id order by u.surname limit '.$limit.', '.$limit_results);
}
/**
* Counts all members.
* to do - should be rewritten like get_all_members?
* @param $filter_values
* @return unknown_type
*/
public function count_all_members($filter_values = array())
{
freenetis/trunk/kohana/application/controllers/members.php
// creates fields for filtering members
$filter=new Table_Form(url_lang::base()."members/show_all", "get", array(
new Table_Form_Item('text','name','Name'),
new Table_Form_Item('text','town','Town'),
new Table_Form_Item('text','town','Town'),
"tr",
new Table_Form_Item('text','street','street'),
"td",
new Table_Form_Item('submit','submit','Filter')
new Table_Form_Item('text','street','Street'),
new Table_Form_Item('text','phone','Phone'),
"tr", "td", "td", "td",
new Table_Form_Item('submit','submit','Filter')
)
);

Také k dispozici: Unified diff