Revize 2056
Přidáno uživatelem David Raška před asi 11 roky(ů)
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
Nove:
- closes #678 - Pridan spravce oblibenych stranek
Opravy:
- fixes #679 - Zmena atributu whitelist_ignore pri preruseni clenstvi