Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 329

Přidáno uživatelem Michal Kliment před asi 15 roky(ů)

Opraveny mensi chyby, smazan nepotrebny kontroler welcome, mirne upraveny prace...

Zobrazit rozdíly:

freenetis/trunk/kohana/application/models/device.php
class Device_Model extends ORM {
protected $has_many = array('ifaces','ports');
protected $belongs_to = array('user');
protected $belongs_to = array('user');
public $arr_sql = array('id' => 'd.id', 'name' => 'd.name', 'user' => 'concat(users.name,\' \',users.surname)', 'device_type'=>'d.type', 'member_id' => 'users.member_id');
public function count_all_devices($filter_values = array())
{
$where = '';
$where = '';
if (count($filter_values) > 0)
$where .= 'WHERE ';
$where .= 'WHERE ';
foreach($filter_values as $key => $value)
{
if($key!='submit')
{
foreach($filter_values as $key => $value)
{
if($key!='submit')
{
if($where!='WHERE ')
$where .= ' AND ';
$where .= ($key!='device_type' AND $key!='member_id') ? $this->arr_sql[$key].' LIKE \'%'.$value.'%\' COLLATE utf8_general_ci' : $this->arr_sql[$key].' = '.$value;
}
}
return self::$db->query('SELECT
$where .= ' AND ';
$where .= ($key!='device_type' AND $key!='member_id') ? $this->arr_sql[$key].' LIKE \'%'.$value.'%\' COLLATE utf8_general_ci' : $this->arr_sql[$key].' = '.$value;
}
}
$devices = self::$db->query('SELECT
d.id, IFNULL(f.translated_term, e.value) as type, d.name,
CONCAT(u.name, \' \', u.surname) AS u_name,
i.mac, s.name AS segment_name, ip.ip_address
......
LEFT JOIN ifaces i ON d.id = i.device_id
LEFT JOIN segments s ON s.id = i.segment_id
LEFT JOIN ip_addresses ip ON i.id = ip.iface_id
'.$where.'
ORDER BY '.$order_by.' '.$order_by_direction.'
LIMIT '.$limit_from.','.$limit_results
);
'.$where
);
return count($devices);
} // end of count_all_devices
......
public function get_all_devices($limit_from = 0, $limit_results = 50, $order_by = 'devices.id', $order_by_direction = 'ASC', $user_id = null, $filters = array())
{
if (in_array($order_by, $this->arr_sql))
$order_by = $this->arr_sql[$order_by];
$where = '';
$order_by = $this->arr_sql[$order_by];
$where = '';
if(count($filters) > 0)
$where .= 'WHERE ';
foreach($filters as $key => $value)
{
if($key!='submit')
{
$where .= 'WHERE ';
foreach($filters as $key => $value)
{
if($key!='submit')
{
if($where!='WHERE ')
$where .= ' AND ';
$where .= ($key!='device_type' AND $key!='member_id') ? $this->arr_sql[$key].' LIKE \'%'.$value.'%\' COLLATE utf8_general_ci' : $this->arr_sql[$key].' = '.$value;
}
}
if (isset($user_id))
{
if($where=='') $where .= 'WHERE d.user_id='.$user_id.'';
else $where .= ' AND d.user_id'.$user_id.'';
}
$where .= ' AND ';
$where .= ($key!='device_type' AND $key!='member_id') ? $this->arr_sql[$key].' LIKE \'%'.$value.'%\' COLLATE utf8_general_ci' : $this->arr_sql[$key].' = '.$value;
}
}
if (isset($user_id))
{
if($where=='') $where .= 'WHERE d.user_id='.$user_id.'';
else $where .= ' AND d.user_id'.$user_id.'';
}
return self::$db->query('SELECT
d.id, IFNULL(f.translated_term, e.value) as type, d.name,
CONCAT(u.name, \' \', u.surname) AS u_name,
i.mac, s.name AS segment_name, ip.ip_address
FROM devices d
JOIN users u ON d.user_id = u.id
LEFT JOIN enum_types e on d.type = e.id
LEFT JOIN enum_types e on d.type = e.id
LEFT JOIN (SELECT * FROM translations WHERE lang = "'.Config::item('locale.lang').'") f on e.value = f.original_term
LEFT JOIN ifaces i ON d.id = i.device_id
LEFT JOIN segments s ON s.id = i.segment_id
freenetis/trunk/kohana/application/models/member.php
'members.town', 'members.ZIP_code',
'members.type as typem', 'members.qos_ceil', 'members.qos_rate',
'members.entrance_fee', 'members.debt_payment_rate', 'members.entrance_fee_left',
'members.must_pay_regular_fee', 'members.current_credit',
'members.entrance_date', 'members.comment',
'enum_types.value as member_type',
'users.id', 'member_id',
freenetis/trunk/kohana/application/models/job.php
);
}
public function get_all_works($limit_from = 0, $limit_results = 50, $order_by = 'id', $order_by_direction = 'ASC')
{
return self::$db->query('SELECT j.id, concat(u.name,\' \',u.surname) as user_name, j.description, j.date, j.hours, j.km FROM jobs j
LEFT JOIN users u ON j.user_id = u.id ORDER BY '.$order_by.' '.$order_by_direction);
}
}
?>
freenetis/trunk/kohana/application/controllers/welcome.php
<?php defined('SYSPATH') or die('No direct script access.');
/**
* Default Kohana controller.
*/
class Welcome_Controller extends Controller {
public function index()
{
$welcome = new View('welcome');
$welcome->message = 'This is the default Kohana index page. You can edit <tt>application/controllers/welcome.php</tt> now.';
$welcome->render(TRUE);
}
}
freenetis/trunk/kohana/application/controllers/works.php
function index()
{
url::redirect(url_lang::base().'works/uncorfirmed');
url::redirect(url_lang::base().'works/show_all');
}
function show_all($limit_results = 200, $order_by = 'id', $order_by_direction = 'ASC', $page_word = null, $page = 1)
{
// gets new selector
if (is_numeric($this->input->get('record_per_page')))
$limit_results = (int) $this->input->get('record_per_page');
// parameters control
$allowed_order_type = array('id','user_name','description','date','hours','km');
if (!in_array(strtolower($order_by), $allowed_order_type)) $order_by = 'id';
if (strtolower($order_by_direction) != 'asc' && strtolower($order_by_direction) != 'desc') $order_by_direction = 'asc';
$work_model = new Job_Model();
$total_works = count($work_model->find_all());
if (($sql_offset = ($page - 1) * $limit_results) > $total_works)
$sql_offset = 0;
$works = $work_model->get_all_works($sql_offset, (int)$limit_results, $order_by, $order_by_direction);
// create grid
$grid = new Grid(url_lang::base().'works/show_all', '', array(
//'separator' => '',
'use_paginator' => true,
'use_selector' => true,
'current' => $limit_results, //current selected 'records_per_page' value
'selector_increace' => 200, // increace
'selector_min' => 200, // minimum where selector start
'selector_max_multiplier' => 10,
'uri_segment' => 'page', // pass a string as uri_segment to trigger former 'label' functionality
'total_items' => $total_works, // use db count query here of course
'items_per_page' => $limit_results, // it may be handy to set defaults for stuff like this in config/pagination.php
'style' => 'classic',
'order_by' => $order_by,
'order_by_direction' => $order_by_direction,
'limit_results' => $limit_results
));
$grid->order_field('id')->label(url_lang::lang('texts.Id'));
$grid->order_field('user_name')->label(url_lang::lang('texts.User'));
$grid->order_field('description')->label(url_lang::lang('texts.Description'));
$grid->order_field('date')->label(url_lang::lang('texts.Date'));
$grid->order_field('hours')->label(url_lang::lang('texts.Hours'));
$grid->order_field('km')->label(url_lang::lang('texts.km'));
$grid->datasource($works);
$view = new View('template');
$view->header = new View('base/header');
$view->header->title = url_lang::lang('texts.List of all works');
$view->header->menu = Controller::render_menu();
$view->content = new View('show_all');
$view->content->headline = url_lang::lang('texts.List of all works');
$view->content->table = $grid;
$view->footer = new View('base/footer');
$view->render(TRUE);
}
function uncorfirmed()
{
if (!$this->acl_check_new('Users_Controller', 'work')) Controller::error(1);
freenetis/trunk/kohana/application/libraries/MY_Controller.php
$acc_menu = '';
if ($this->acl_check_2D('menu', 'unconfirmed_works'))
$acc_menu = '<li>'.html::anchor(url_lang::base().'works/uncorfirmed/', url_lang::lang('texts.Unconfirmed works')).'</li>';
$acc_menu = '<li>'.html::anchor(url_lang::base().'works/show_all', url_lang::lang('texts.Works')).'</li>';
if ($this->acl_check_2D('menu', 'unidentified_transfers'))
$acc_menu .= '<li>'.html::anchor(url_lang::base().'bank_transfers/unidentified_transfers/', url_lang::lang('texts.Unidentified transfers')).'</li>';

Také k dispozici: Unified diff