Beispiel #1
0
/**
 * Display all blogs results table
 *
 * @param array Params
 */
function blogs_all_results_block($params = array())
{
    // Make sure we are not missing any param:
    $params = array_merge(array('results_param_prefix' => 'blog_', 'results_title' => T_('List of Collections configured on this system') . get_manual_link('site-collection-list'), 'results_no_text' => T_('No blog has been created yet!'), 'results_no_perm_text' => T_('Sorry, you have no permission to edit/view any blog\'s properties.')), $params);
    if (!is_logged_in()) {
        // Only logged in users can access to this function
        return;
    }
    global $current_User;
    if (is_ajax_content()) {
        $order_action = param('order_action', 'string');
        if ($order_action == 'update') {
            // Update an order to new value
            $new_value = (int) param('new_value', 'string', 0);
            $order_data = param('order_data', 'string');
            $order_obj_ID = (int) str_replace('order-blog-', '', $order_data);
            if ($order_obj_ID > 0) {
                // Update blog order
                $BlogCache =& get_BlogCache();
                if ($updated_Blog =& $BlogCache->get_by_ID($order_obj_ID, false)) {
                    if ($current_User->check_perm('blog_properties', 'edit', false, $updated_Blog->ID)) {
                        // Check permission to edit this Blog
                        $updated_Blog->set('order', $new_value);
                        $updated_Blog->dbupdate();
                        $BlogCache->clear();
                    }
                }
            }
        }
    }
    $SQL = new SQL();
    $SQL->SELECT('T_blogs.*, user_login');
    $SQL->FROM('T_blogs INNER JOIN T_users ON blog_owner_user_ID = user_ID');
    if (!$current_User->check_perm('blogs', 'view')) {
        // We do not have perm to view all blogs... we need to restrict to those we're a member of:
        $SQL->FROM_add('LEFT JOIN T_coll_user_perms ON (blog_advanced_perms <> 0' . ' AND blog_ID = bloguser_blog_ID' . ' AND bloguser_user_ID = ' . $current_User->ID . ' )' . ' LEFT JOIN T_coll_group_perms ON (blog_advanced_perms <> 0' . ' AND blog_ID = bloggroup_blog_ID' . ' AND bloggroup_group_ID = ' . $current_User->grp_ID . ' )');
        $SQL->WHERE('blog_owner_user_ID = ' . $current_User->ID . ' OR bloguser_ismember <> 0' . ' OR bloggroup_ismember <> 0');
        $no_results = $params['results_no_perm_text'];
    } else {
        $no_results = $params['results_no_text'];
    }
    // Create result set:
    $blogs_Results = new Results($SQL->get(), $params['results_param_prefix'], '---------A');
    $blogs_Results->Cache =& get_BlogCache();
    $blogs_Results->title = $params['results_title'];
    $blogs_Results->no_results_text = $no_results;
    if ($current_User->check_perm('blogs', 'create')) {
        global $admin_url;
        $blogs_Results->global_icon(T_('New Collection') . '...', 'new', url_add_param($admin_url, 'ctrl=collections&amp;action=new'), T_('New Collection') . '...', 3, 4, array('class' => 'action_icon btn-primary'));
    }
    // Initialize Results object
    blogs_results($blogs_Results);
    if (is_ajax_content()) {
        // init results param by template name
        if (!isset($params['skin_type']) || !isset($params['skin_name'])) {
            debug_die('Invalid ajax results request!');
        }
        $blogs_Results->init_params_by_skin($params['skin_type'], $params['skin_name']);
    }
    $blogs_Results->display(NULL, 'session');
    if (!is_ajax_content()) {
        // Create this hidden div to get a function name for AJAX request
        echo '<div id="' . $params['results_param_prefix'] . 'ajax_callback" style="display:none">' . __FUNCTION__ . '</div>';
    }
}
Beispiel #2
0
/**
 * Display blogs results table
 *
 * @param array Params
 */
function blogs_results_block($params = array())
{
    // Make sure we are not missing any param:
    $params = array_merge(array('edited_User' => NULL, 'results_param_prefix' => 'actv_blog_', 'results_title' => T_('Blogs owned by the user'), 'results_no_text' => T_('User does not own any blogs')), $params);
    if (!is_logged_in()) {
        // Only logged in users can access to this function
        return;
    }
    global $current_User;
    if (!$current_User->check_perm('users', 'edit') || !$current_User->check_perm('blogs', 'view')) {
        // Check minimum permission:
        return;
    }
    $edited_User = $params['edited_User'];
    if (!$edited_User) {
        // No defined User, probably the function is calling from AJAX request
        $user_ID = param('user_ID', 'integer', 0);
        if (empty($user_ID)) {
            // Bad request, Exit here
            return;
        }
        $UserCache =& get_UserCache();
        if (($edited_User =& $UserCache->get_by_ID($user_ID, false)) === false) {
            // Bad request, Exit here
            return;
        }
    }
    global $DB;
    param('user_tab', 'string', '', true);
    param('user_ID', 'integer', 0, true);
    $SQL = new SQL();
    $SQL->SELECT('*');
    $SQL->FROM('T_blogs');
    $SQL->WHERE('blog_owner_user_ID = ' . $DB->quote($edited_User->ID));
    // Create result set:
    $blogs_Results = new Results($SQL->get(), $params['results_param_prefix']);
    $blogs_Results->Cache =& get_BlogCache();
    $blogs_Results->title = $params['results_title'];
    $blogs_Results->no_results_text = $params['results_no_text'];
    // Get a count of the blogs which current user can delete
    $deleted_blogs_count = count($edited_User->get_deleted_blogs());
    if ($blogs_Results->total_rows > 0 && $deleted_blogs_count > 0) {
        // Display action icon to delete all records if at least one record exists & user can delete at least one blog
        $blogs_Results->global_icon(sprintf(T_('Delete all blogs owned by %s'), $edited_User->login), 'delete', '?ctrl=user&amp;user_tab=activity&amp;action=delete_all_blogs&amp;user_ID=' . $edited_User->ID . '&amp;' . url_crumb('user'), ' ' . T_('Delete all'), 3, 4);
    }
    // Initialize Results object
    blogs_results($blogs_Results, array('display_owner' => false));
    if (is_ajax_content()) {
        // init results param by template name
        if (!isset($params['skin_type']) || !isset($params['skin_name'])) {
            debug_die('Invalid ajax results request!');
        }
        $blogs_Results->init_params_by_skin($params['skin_type'], $params['skin_name']);
    }
    $display_params = array('before' => '<div class="results" style="margin-top:25px" id="owned_blogs_result">');
    $blogs_Results->display($display_params);
    if (!is_ajax_content()) {
        // Create this hidden div to get a function name for AJAX request
        echo '<div id="' . $params['results_param_prefix'] . 'ajax_callback" style="display:none">' . __FUNCTION__ . '</div>';
    }
}
Beispiel #3
0
/**
 * @var User
 */
global $current_User;
/**
 * @var GeneralSettings
 */
global $Settings;
global $dispatcher;
$SQL = new SQL();
$SQL->SELECT('T_blogs.*, user_login');
$SQL->FROM('T_blogs INNER JOIN T_users ON blog_owner_user_ID = user_ID');
if (!$current_User->check_perm('blogs', 'view')) {
    // We do not have perm to view all blogs... we need to restrict to those we're a member of:
    $SQL->FROM_add('LEFT JOIN T_coll_user_perms ON (blog_advanced_perms <> 0' . ' AND blog_ID = bloguser_blog_ID' . ' AND bloguser_user_ID = ' . $current_User->ID . ' )' . ' LEFT JOIN T_coll_group_perms ON (blog_advanced_perms <> 0' . ' AND blog_ID = bloggroup_blog_ID' . ' AND bloggroup_group_ID = ' . $current_User->grp_ID . ' )');
    $SQL->WHERE('blog_owner_user_ID = ' . $current_User->ID . ' OR bloguser_ismember <> 0' . ' OR bloggroup_ismember <> 0');
    $no_results = T_('Sorry, you have no permission to edit/view any blog\'s properties.');
} else {
    $no_results = T_('No blog has been created yet!');
}
// Create result set:
$Results = new Results($SQL->get(), 'blog_');
$Results->Cache =& get_BlogCache();
$Results->title = T_('Blog list');
$Results->no_results_text = $no_results;
if ($current_User->check_perm('blogs', 'create')) {
    $Results->global_icon(T_('New blog...'), 'new', url_add_param($dispatcher, 'ctrl=collections&amp;action=new'), T_('New blog...'), 3, 4);
}
// Initialize Results object
blogs_results($Results);
$Results->display(NULL, 'session');