Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 101

Přidáno uživatelem Tomáš Dulík před asi 16 roky(ů)

Opravena spousta chyb v logice Members_Controller.
Přidána nová tabulka enum_types, která obsahuje typy pro zobrazování v dropdown boxech.
Zatím je použita pouze v Members_Controller

Zobrazit rozdíly:

freenetis/trunk/kohana/application/i18n/cs_CZ/texts.php
'member successfully added.'=> 'Člen úspěšně přidán.',
'member successfully updated.'=> 'Člen úspěšně upraven.',
'members account'=> 'Účet člena',
'members name'=> 'Organizace',
'members name'=> 'Jméno člena (organizace)',
'members' => 'Členové',
'middle name' => 'Prostřední jméno',
'must be logged in' => 'Musíte se přihlásit.',
......
'user successfully deleted.'=> 'Uživatel úspěšně smazán',
'user' => 'Uživatel',
'username or password do not match' => 'Uživatelské jméno nebo heslo nesouhlasí',
'username' => 'Uživatelské jméno',
'username' => 'Login',
'users' => 'Uživatelé',
'variable symbol'=> 'variabilní symbol',
'vlan detail' => 'Detail VLANu',
......
'network address does not match the mask' => 'Síťová adresa neodpovídá zadané masce !',
'invalid network address'=>'Neplatná adresa sítě !',
'zip code' => 'PSČ',
'honorary member'=>'Čestný člen',
'former member'=>'Bývalý člen',
'non-statutory member'=>'Člen bez statusu',
'vacating member'=>'Přerušené členství'
);
freenetis/trunk/kohana/application/models/enum_type.php
<?php
class Enum_type_Model extends ORM{
}
?>
freenetis/trunk/kohana/application/models/member.php
public function get_all_members($limit_from = 0, $limit_results = 50, $order_by = 'users.id', $order_by_direction = 'ASC')
{
return self::$db->select(array('members.name as namem', 'members.street', 'members.street_number', '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', 'users.*'))->from('members')->join('users', 'users.member_id = members.id')->where('users.type!=', 'user')->orderby($order_by, $order_by_direction)->limit($limit_results,$limit_from)->get();
return self::$db->select(
array('members.name as namem', 'members.street', 'members.street_number',
'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', 'users.*'))
->from('members')
->join('users', 'users.member_id = members.id')
->orderby($order_by, $order_by_direction)
->groupby('members.id')
->limit($limit_results,$limit_from)->get();
}
public function count_all_members()
......
'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',
'members.entrance_date', 'members.comment',
'enum_types.value as member_type',
'users.id', 'member_id',
'users.name', 'middle_name', 'surname',
'pre_title', 'post_title',
'login', 'email', 'users.type', 'phone', 'birthday')
)->from('members')->join('users', 'users.member_id = members.id')->where(array('members.id' => (int)$id, 'users.type!=' => 'user'))->limit(1)->get();
)->from('members')
->join('enum_types', 'members.type=enum_types.id', NULL, "LEFT")
->join('users', 'users.member_id = members.id', NULL, "LEFT")
->where("members.id=$id AND users.id IS NOT NULL")->limit(1)->get();
}
/* array('id' => 5, 'title' => 'Demo')
public function get_one_user($)
freenetis/trunk/kohana/application/controllers/members.php
class Members_Controller extends Controller {
protected $member_id= false;
protected $user_id= false;
function get_member_types() {
return array(
'regular'=>url_lang::lang('texts.Regular member'),
'applicant'=>url_lang::lang('texts.applicant')
);
$enum=new Enum_type_Model();
$types = $enum->find_all_by_type_id(Controller::member_types);
$arr_types=array();
foreach ($types as $type)
$arr_types[$type->id]=url_lang::lang('texts.'.$type->value);
return $arr_types;
}
function get_member_type($id) {
$enum=new Enum_type_Model();
return $enum->find_by_type_id(Controller::member_types)->where("id=$id")->name;
}
function index()
{
url::redirect(url_lang::base().'members/show_all');
......
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
$form->group('')->label(url_lang::lang('texts.Basic informations'));
$form->input('membername')->label(url_lang::lang('texts.Members name').':')->rules('required|length[3,60]');
$form->input('login')->label(url_lang::lang('texts.username').':')
->rules('required|length[3,50]')
->callback(array($this, 'valid_username'));
......
$form->input('surname')->label(url_lang::lang('texts.surname').':')->rules('required|length[3,60]');
$form->input('post_title')->label(url_lang::lang('texts.post title').':')->rules('length[3,30]');
$form->dropdown('type')->label(url_lang::lang('texts.Type').':')
->options(array('member'=>url_lang::lang('texts.Honest member'),'wannabe'=>url_lang::lang('texts.Wanna be a member')));
$form->input('membername')->label(url_lang::lang('texts.Members name').':')->rules('required|length[3,60]');
->options($this->get_member_types());
$form->group('')->label(url_lang::lang('texts.Password'));
$form->password('password')->label(url_lang::lang('texts.password').':')->rules('required|length[3,50]')->class('required');
$form->password('confirm_password')->label(url_lang::lang('texts.confirm password').':')->rules('required|length[3,50]')->matches($form->password);
$form->password('passwd')->label(url_lang::lang('texts.password').':')->rules('required|length[3,50]')->class('required');
$form->password('confirm_password')->label(url_lang::lang('texts.confirm password').':')->rules('required|length[3,50]')->matches($form->passwd);
$form->group('')->label(url_lang::lang('texts.Contact informations'));
$form->input('street')->label(url_lang::lang('texts.street').':')->rules('required|length[1,200]');
$form->input('street_number')->label(url_lang::lang('texts.street number').':')->rules('required|length[1,50]');
......
$user_data->birthday = date("Y-m-d",$form_data['birthday']);
$user_data->phone = $form_data['phone'];
$user_data->email = $form_data['email'];
$user_data->type = $form_data['type'];
$user_data->password = sha1($form_data['password']);
$user_data->password = sha1($form_data['passwd']);
$member_data->type = $form_data['type'];
$member_data->comment = $form_data['comment'];
$member_data->entrance_date = date("Y-m-d",$form_data['entrance_date']);
$member_data->name = $form_data['membername'];;
......
if ($this->gacl_class->acl_check('freenetis', 'new_all', 'all', $_SESSION['username'],get_class($this),'add_current_credit')) $member_data->current_credit = $form_data['current_credit'];
if ($this->gacl_class->acl_check('freenetis', 'new_all', 'all', $_SESSION['username'],get_class($this),'add_must_pay')) $member_data->must_pay_regular_fee = $form_data['must_pay_regular_fee'];
$member_saved = $member_data->save();
$user_data->member_id = $member_data->id;
......
if ($member_saved && $user_saved && $account_data->save())
{
$this->session->set_flash('message', url_lang::lang('texts.Member successfully added.'));
url::redirect(url_lang::base().'members/show/'.(int)$member_data->id);
}
else
{
$this->session->set_flash('message', url_lang::lang('texts.Error - cant add new member.'));
}
url::redirect(url_lang::base().'members/show/'.(int)$member_data->id);
}
else
{
......
$model_members = new Member_Model();
$member_data = $model_members->get_member($member_id)->current();
$form = new Forge(url_lang::base().'members/edit/'.$member_id, '', 'POST', array('id' => 'article_form'));
$form->set_attr('class', 'form_class')->set_attr('method', 'post');
......
$form->input('post_title')->label(url_lang::lang('texts.post title').':')->rules('length[3,30]')->value($member_data->post_title);
if ($this->gacl_class->acl_check('freenetis', 'edit_own', 'all', $_SESSION['username'],get_class($this),'edit_type'))
$form->dropdown('type')->label(url_lang::lang('texts.Type').':')
->options(MEMBER_TYPES)
->selected($member_data->type);
->options($this->get_member_types())
->selected($member_data->typem);
if ($this->gacl_class->acl_check('freenetis', 'edit_own', 'all', $_SESSION['username'],get_class($this),'edit_membersname'))$form->input('membername')->label(url_lang::lang('texts.Members name').':')->rules('required|length[3,60]')->value($member_data->namem);
$form->group('')->label(url_lang::lang('texts.Contact informations'));
......
$user_data->birthday = date("Y-m-d",$form_data['birthday']);
if ($this->gacl_class->acl_check('freenetis', 'edit_own', 'all', $_SESSION['username'],get_class($this),'edit_phone')) $user_data->phone = $form_data['phone'];
if ($this->gacl_class->acl_check('freenetis', 'edit_own', 'all', $_SESSION['username'],get_class($this),'edit_email')) $user_data->email = $form_data['email'];
if ($this->gacl_class->acl_check('freenetis', 'edit_own', 'all', $_SESSION['username'],get_class($this),'edit_type')) $user_data->type = $form_data['type'];
if ($this->gacl_class->acl_check('freenetis', 'edit_own', 'all', $_SESSION['username'],get_class($this),'edit_type'))
$member_data->type = $form_data['type'];
if ($this->gacl_class->acl_check('freenetis', 'edit_own', 'all', $_SESSION['username'],get_class($this),'edit_comment')) $member_data->comment = $form_data['comment'];
if ($this->gacl_class->acl_check('freenetis', 'edit_own', 'all', $_SESSION['username'],get_class($this),'edit_entrance_date')) $member_data->entrance_date = date("Y-m-d",$form_data['entrance_date']);
freenetis/trunk/kohana/application/libraries/MY_Controller.php
public $gacl_class;
private $myMenu;
public $arr;
const member_types=1,
device_types=2;
public function __construct(){
parent::__construct();
......
$view->render(TRUE);
exit;
}
public function insert_phpgacl($user_id,$username,$value,$group, $is_edit = false)
{
// $aro_data = new Aro_Model();
freenetis/trunk/kohana/application/views/members_show.php
</tr>
<tr>
<th>ID</th>
<td><?php echo $member_data->id ?></td>
<td><?php echo $member_data->member_id ?></td>
</tr>
<tr>
<th><?php echo url_lang::lang('texts.Username') ?></th>
......
</tr>
<tr>
<th><?php echo url_lang::lang('texts.Type') ?></th>
<td><?php echo $member_data->type ?></td>
<td><?php echo url_lang::lang("texts.$member_data->member_type") ?></td>
</tr>
<tr>
<th colspan="2"><?php echo url_lang::lang('texts.Contact informations') ?></th>

Také k dispozici: Unified diff