Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 2056

Přidáno uživatelem David Raška před asi 11 roky(ů)

Nove:
- closes #678 - Pridan spravce oblibenych stranek

Opravy:
- fixes #679 - Zmena atributu whitelist_ignore pri preruseni clenstvi

Zobrazit rozdíly:

freenetis/branches/1.1/application/controllers/members.php
->url('members/show')
->label('Show member');
}
if (Settings::get('finance_enabled') && $this->acl_check_edit(get_class($this), 'members'))
{
$actions->add_action('aid')
......
);
}
$member_links[] = html::anchor(
'user_favourite_pages/show_all', __('Favourites')
);
if (Settings::get('finance_enabled'))
{
// members's transfers link
freenetis/branches/1.1/application/controllers/user_favourite_pages.php
// stop if not set
if (!$title || !$page)
{
Controller::warning(PARAMETER);
self::warning(PARAMETER);
}
// create model
......
// edit or delete
if ($favourite->is_users_favourite($this->user_id, $page))
{
$fav = $favourite->get_favourite_page_details($this->user_id, $page);
$form->checkbox('remove')
->label('Remove from favourites');
$fav = $favourite->get_favourite_page($this->user_id, $page);
$form->hidden('id')
->value($fav->id);
$input->value($fav->title);
$checkbox->checked($fav->default_page);
......
$default = !empty($form_data['default']);
$title = $form_data['name'];
$remove = !empty($form_data['remove']);
$id = @$form_data['id'];
// remove or edit
if ($favourite->is_users_favourite($this->user_id, $page))
{
if ($remove) // remove from favourites
{
if ($favourite->remove_page_from_favourites($this->user_id, $page))
if ($favourite->remove_page_from_favourites($id))
{
status::success('Page has been removed from favourites.');
}
......
}
else // edit favourites
{
if ($favourite->edit_favourites($this->user_id, $page, $title, $default))
if ($favourite->edit_favourites($this->user_id, $id, $title, $default))
{
status::success('Favourite page has been saved.');
}
......
$view->content->form = $form;
$view->render(TRUE);
}
/**
* Function redirects to show_by_user function.
*
* @return unknown_type
*/
public function index()
{
url::redirect('user_favourite_pages/show_all'.server::query_string());
}
/**
* Function shows users favourite pages.
*
* @param integer $limit_results
* @param string $order_by
* @param string $order_by_direction
* @param integer $page_word
* @param integer $page
*/
public function show_all(
$limit_results = 40, $order_by = 'id',
$order_by_direction = 'asc',
$page_word = 'page', $page = 1)
{
$uf_model = new User_favourite_pages_Model();
// gets new selector
if (is_numeric($this->input->post('record_per_page')))
$limit_results = (int) $this->input->post('record_per_page');
$total_fp = $uf_model->get_users_favourites($this->user_id)->count();
// limit check
if (($sql_offset = ($page - 1) * $limit_results) > $total_fp)
$sql_offset = 0;
$favourites = $uf_model->get_users_favourites($this->user_id,
$sql_offset, $limit_results, $order_by, $order_by_direction);
// path to form
$path = Config::get('lang') . '/user_favourite_pages/show_all/' . $limit_results . '/'
. $order_by . '/' . $order_by_direction.'/'.$page_word.'/'
. $page;
$grid = new Grid('user_favourite_pages', NULL, array
(
'current' => $limit_results,
'selector_increace' => 40,
'selector_min' => 40,
'total_items' => $favourites->count(),
'base_url' => $path,
'uri_segment' => 'page',
'style' => 'classic',
'order_by' => $order_by,
'order_by_direction' => $order_by_direction,
'items_per_page' => $limit_results,
'limit_results' => $limit_results,
));
$grid->order_field('id')
->label('ID');
$grid->order_field('title')
->label('Name');
$grid->order_field('page')
->label('Path');
$grid->order_callback_field('default_page')
->label('Default page')
->callback('callback::enabled_field', 'user_favourite_pages/set_default/')
->class('center');
$actions = $grid->grouped_action_field();
$actions->add_action('id')
->icon_action('edit')
->url('user_favourite_pages/edit')
->class('edit_link');
$actions->add_action('id')
->icon_action('delete')
->url('user_favourite_pages/delete')
->class('delete_link');
$grid->datasource($favourites);
$user = new User_Model($this->user_id);
// breadcrumbs navigation
$breadcrumbs = breadcrumbs::add()
->link('users/show_all', 'Users',
$this->acl_check_view('Users_Controller','users'))
->disable_translation()
->link('users/show/' . $user->id,
$user->name . ' ' . $user->surname . ' (' . $user->login . ')',
$this->acl_check_view('Users_Controller', 'users', $user->member_id))
->enable_translation()
->text('Favourites');
$title = __('Favourites');
// show form
$view = new View('main');
$view->title = $title;
$view->breadcrumbs = $breadcrumbs;
$view->content = new View('show_all');
$view->content->headline = $title;
$view->content->table = $grid;
$view->render(TRUE);
}
/**
* Sets favourite page as default
*
* @param int $id Favourite page ID
*/
public function set_default($id)
{
// stop if not set
if (!$id)
{
self::warning(PARAMETER);
}
// create model
$uf = new User_favourite_pages_Model($id);
if ($uf->user_id != $this->user_id)
{
self::error(RECORD);
}
// remove default page
$uf->remove_user_default_page($uf->user_id);
// set default page
$uf->set_user_default_page_by_id($id);
$this->redirect('user_favourite_pages/show_all');
}
/**
* Delete user favourite page
*
* @param int $id Favourite page ID
*/
public function delete($id)
{
// stop if not set
if (!$id)
{
self::warning(PARAMETER);
}
// create model
$uf = new User_favourite_pages_Model($id);
if ($uf->user_id != $this->user_id)
{
self::error(RECORD);
}
// remove faourite page
$uf->remove_page_from_favourites($id);
$this->redirect('user_favourite_pages/show_all');
}
/**
* Edit user favourite page
*
* @param int $id Favourite page ID
*/
public function edit($id)
{
// stop if not set
if (!$id)
{
self::warning(PARAMETER);
}
// create model
$uf = new User_favourite_pages_Model($id);
if ($uf->user_id != $this->user_id)
{
self::error(RECORD);
}
$this->redirect('user_favourite_pages/toggle?title='.$uf->title.'&page='.$uf->page);
}
}
freenetis/branches/1.1/application/models/user_favourite_pages.php
*
* @package Model
*/
class User_favourite_pages_Model extends Model
class User_favourite_pages_Model extends ORM
{
protected $table_names_plural = FALSE;
/**
* Checks if user have given page in his favourites
*
......
}
/**
* Removes page from users favourites
* Removes page from users favourites by ID
*
* @param int $user_id User ID
* @param string $page Page address
* @param int $id Favourite page ID
* @return ORM object
*/
public function remove_page_from_favourites($user_id, $page)
public function remove_page_from_favourites($id)
{
$result = $this->db->query("
DELETE FROM user_favourite_pages
WHERE user_id = ? AND
page = ?
", $user_id, $page);
WHERE id = ?
", $id);
return $result;
}
......
* @param int $user_id User ID
* @return ORM object
*/
public function get_users_favourites($user_id)
public function get_users_favourites($user_id,
$limit_from = 0, $limit_results = 50,
$order_by = 'title', $order_by_direction = 'asc')
{
return $this->db->query("
SELECT * FROM user_favourite_pages
WHERE user_id = ?
ORDER BY title ASC
ORDER BY " . $this->db->escape_column($order_by) . " $order_by_direction
LIMIT " . intval($limit_from) . ", " . intval($limit_results) . "
", $user_id);
}
......
* Updates user favourite page details
*
* @param int $user_id User ID
* @param int $id Favourite page ID
* @param string $page Page address
* @param string $title Favourite page title
* @param boolean $default Is default page
* @return boolean
*/
public function edit_favourites($user_id, $page, $title, $default)
public function edit_favourites($user_id, $id, $title, $default)
{
// remove default tag from other favourites
if ($default)
......
UPDATE user_favourite_pages
SET title=?,
default_page=?
WHERE user_id = ? AND
page = ?
", $title, $default, $user_id, $page);
WHERE id = ?
", $title, $default, $id);
return $result != NULL;
}
......
}
/**
* Sets default page tag
*
* @param int $id Favourite page ID
* @return ORM object
*/
public function set_user_default_page_by_id($id)
{
return $this->db->query("
UPDATE user_favourite_pages
SET default_page=1
WHERE id = ?
", $id);
}
/**
* Get favourite page details
*
* @param int $user_id User Id
* @param string $page Page URL
* @return ORM object
*/
public function get_favourite_page($user_id, $page)
public function get_favourite_page_details($user_id, $page)
{
$result = $this->db->query("
SELECT *
freenetis/branches/1.1/application/views/users/show.php
if ($this->acl_check_edit(get_class($this),'users',$user_data->member_id))
$links[] = html::anchor('users/edit/'.$user_data->id,__('Edit user'));
if ($this->user_id == $user_data->id)
$links[] = html::anchor('user_favourite_pages/show_all', __('Favourites'));
if (Settings::get('networks_enabled') && $this->acl_check_view('Devices_Controller', 'devices', $user_data->member_id))
$links[] = html::anchor('devices/show_by_user/'.$user_data->id,__('Show devices'));
if (Settings::get('works_enabled') && $user_data->id <> Member_Model::ASSOCIATION && $this->acl_check_view('Works_Controller', 'work', $user_data->member_id))
freenetis/branches/1.1/db_upgrades/upgrade_1.1.0~alpha42.php
<?php defined('SYSPATH') or die('No direct script access.');
/*
* This file is part of open source system FreenetIS
* and it is released under GPLv3 licence.
*
* More info about licence can be found:
* http://www.gnu.org/licenses/gpl-3.0.html
*
* More info about project can be found:
* http://www.freenetis.org/
*
*/
/**
* This upgrade is not equal to any of previos upgrades
*
* @author David Raska <jeffraska@gmail.com>
*/
$upgrade_equal_to['1.1.0~alpha42'] = array();
/**
* Add ID column to user_favourite_pages
*
* Issue #679 - change whitelist_ignore to TRUE
*
* @author Michal Kliment
*/
$upgrade_sql['1.1.0~alpha42'] = array
(
"ALTER TABLE `user_favourite_pages` ADD `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST",
"UPDATE messages SET ignore_whitelist = 1 WHERE type = ".Message_Model::INTERRUPTED_MEMBERSHIP_MESSAGE
);
freenetis/branches/1.1/version.php
* The current version of FreenetIS.
* This value must be changed by developers in a new release of FreenetIS.
*/
define('FREENETIS_VERSION', '1.1.0~alpha41');
define('FREENETIS_VERSION', '1.1.0~alpha42');

Také k dispozici: Unified diff