Location: PHPKode > scripts > Admidio > admidio-2.2.9/adm_program/modules/lists/members.php
<?php
/******************************************************************************
 * Mitglieder einer Rolle zuordnen
 *
 * Copyright    : (c) 2004 - 2011 The Admidio Team
 * Homepage     : http://www.admidio.org
 * License      : GNU Public License 2 http://www.gnu.org/licenses/gpl-2.0.result
 *
 * Uebergaben:
 *
 * rol_id   : Rolle der Mitglieder hinzugefuegt oder entfernt werden sollen
 * restrict : Begrenzte Userzahl:
 *            m - (Default) nur Mitglieder
 *            u - alle in der Datenbank gespeicherten user
 *
 *****************************************************************************/

require_once('../../system/common.php');
require_once('../../system/login_valid.php');
require_once('../../system/classes/table_roles.php');

// Uebergabevariablen pruefen

if(isset($_GET['rol_id']) && is_numeric($_GET['rol_id']) == false)
{
    $g_message->show($g_l10n->get('SYS_INVALID_PAGE_VIEW'));
}
else
{
    $role_id = $_GET['rol_id'];
}
$_SESSION['set_rol_id'] = $role_id;

//URL auf Navigationstack ablegen, wenn werder selbstaufruf der Seite, noch interner Ankeraufruf
if(!isset($_GET['restrict']))
{
    $_SESSION['navigation']->addUrl(CURRENT_URL);
}

$restrict = 'm';
if(isset($_GET['restrict']) && $_GET['restrict'] == 'u')
{
    $restrict = 'u';
}

// Objekt der uebergeben Rollen-ID erstellen
$role = new TableRoles($g_db, $role_id);

// nur Moderatoren duerfen Rollen zuweisen
// nur Webmaster duerfen die Rolle Webmaster zuweisen
// beide muessen Mitglied der richtigen Gliedgemeinschaft sein
if(  (!$g_current_user->assignRoles()
   && !isGroupLeader($g_current_user->getValue('usr_id'), $role_id))
|| (  !$g_current_user->isWebmaster()
   && $role->getValue('rol_name') == $g_l10n->get('SYS_WEBMASTER'))
|| ($role->getValue('cat_org_id') != $g_current_organization->getValue('org_id') && $role->getValue('cat_org_id') > 0 ))
{
    $g_message->show($g_l10n->get('SYS_NO_RIGHTS'));
}

// result-Kopf ausgeben
$g_layout['title']  = $g_l10n->get('LST_MEMBER_ASSIGNMENT').' - '. $role->getValue('rol_name');

$g_layout['header'] ='
<script type="text/javascript"><!--
    //Erstmal warten bis Dokument fertig geladen ist
    $(document).ready(function(){       
        //Bei Seitenaufruf Daten laden
        $.post("'.$g_root_path.'/adm_program/modules/lists/members_get.php?rol_id='.$role_id.'", $("#memserach_form").serialize(), function(result){
            $("form#memlist_form").append(result).show();
            $("#list_load_animation").hide();
            return false;
        });
        
        //Checkbox alle Benutzer anzeigen
        $("input[type=checkbox]#mem_show_all").live("click", function(){
            $("#list_load_animation").show();
            $("form#memlist_form").hide().empty();
            $.post("'.$g_root_path.'/adm_program/modules/lists/members_get.php?rol_id='.$role_id.'", $("#memsearch_form").serialize(), function(result){
                $("form#memlist_form").append(result).show();               
                $("#list_load_animation").hide();
                return false;
            });
            //Link zum Benutzer hinzufügen anzeigen oder verstecken
            if($(this).is(":checked")){
                $("#add_user_link").show();
            }
            else{
                $("#add_user_link").hide();
            }
        });
        
        //Suchfeldeingabe
        $("input[type=text]#mem_search").keyup(function(){
            $("#list_load_animation").show();
            $("form#memlist_form").hide().empty();
            $.post("'.$g_root_path.'/adm_program/modules/lists/members_get.php?rol_id='.$role_id.'", $("#memsearch_form").serialize(), function(result){
                $("form#memlist_form").append(result).show();
                $("#list_load_animation").hide();               
                return false;
            });
        });
    
        //Enter abfangen
        $("input[type=text]#mem_search").keydown(function(e) {
            if(e.keyCode === 13) {
                e.preventDefault();
                e.stopPropagation();
                e.stopImmediatePropagation();
                return;
            }
        });
        
        //Buchstabennavigation
        $(".pageNavigationLink").live("click", function(){
            var letter = $(this).attr("letter");            
            //Alle anzeigen
            if(letter == "all"){
                $(".letterBlockBody").show();
                $(".letterBlockHead").show();
            }
            else{
	            $(".letterBlockBody[block_body_id!="+letter+"]").hide();
	            $(".letterBlockHead[block_head_id!="+letter+"]").hide();
	            $(".letterBlockBody[block_body_id="+letter+"]").show();
	            $(".letterBlockHead[block_head_id="+letter+"]").show();
	        }
	        return false;
        });
        
        //beim anklicken einer Checkbox
        $("input[type=checkbox].memlist_checkbox").live("click", function(){
                 
            //Checkbox ID
            var checkboxtype = $(this).attr("checkboxtype");            
            var checkbox_id = $(this).attr("id");
            var userid = $(this).parent().parent().attr("user_id");

            var member_checked = $("input[type=checkbox]#member_"+userid).attr("checked");
            var leader_checked = $("input[type=checkbox]#leader_"+userid).attr("checked");
              
            //Bei Leiter Checkbox setzten, muss Member mit gesetzt werden
            if(checkboxtype=="leader" && leader_checked){                
                $("input[type=checkbox]#member_"+userid).attr("checked", "checked");
                member_checked = true;
            }
            
            //Bei entfernen der Mitgliedschaft endet auch das Leiterdasein
            if(checkboxtype=="member" && member_checked==false){                
                $("input[type=checkbox]#leader_"+userid).removeAttr("checked");
                leader_checked = false;
            }';
            
            //Bei der Rolle Webmaster muss konrolliert werden ob noch mindestend ein User Mitglied bleibt
            if($role->getValue('rol_name') == $g_l10n->get('SYS_WEBMASTER'))
            {
            	$g_layout['header'] .='
            	if($("input[name^=\'member_\'].memlist_checkbox:checked").size()<1){
                   //Checkbox wieder setzen. 
            	   $("input[type=checkbox]#member_"+userid).attr("checked", "checked");
            	   //Alarm schlagen
				   jQueryAlert("LST_MUST_HAVE_WEBMASTER");
            	   return false;
                }';
            }                
            
            $g_layout['header'] .='                     
            //Ladebalken an checkbox
            $("#loadindicator_" + checkbox_id).append(\'<img src="'.THEME_PATH.'/icons/loader_inline.gif" alt="loadindicator" />\').show();
                                 
            //Datenbank schreiben
            $.ajax({
                    url: "'.$g_root_path.'/adm_program/modules/lists/members_save.php?rol_id='.$role_id.'&uid="+userid,
                    type: "POST",
                    data: "member_"+userid+"="+member_checked+"&leader_"+userid+"="+leader_checked,
                    async: false,
                    success: function(result){                    
                       $("#loadindicator_" + checkbox_id).hide().empty();

                       //Fehler Maximale Mitgliederzahl überschritten
                       if(result=="max_mem_reached")
                       {
                            //Bei Leiter Checkbox deaktiviert, muss Member und Leiter wieder gesetzt werden                            
                            if(checkboxtype=="leader" && $("input[type=checkbox]#leader_"+userid).attr("checked")==false){                
                                $("input[type=checkbox]#leader_"+userid).attr("checked", "checked");
                            }
                            else{
                                $("input[type=checkbox]#member_"+userid).removeAttr("checked");
                            }                           
						   jQueryAlert("SYS_ROLE_MAX_MEMBERS", "'.$role->getValue('rol_name').'");
                       }
                       if(result=="SYS_NO_RIGHTS")
                       {
						   jQueryAlert("SYS_NO_RIGHTS");
                       }
                       if(result=="SYS_INVALID_PAGE_VIEW")
                       {
						   jQueryAlert("SYS_INVALID_PAGE_VIEW");
                       }
                       if(result=="success")
                       {}                    
                       return false;
                    }
            });
        });

        $("a[rel=\'lnkNewUser\']").colorbox({rel:\'nofollow\',onComplete:function(){$("#lastname").focus();}});
     });            
//--></script>';
        
require(SERVER_PATH. '/adm_program/system/overall_header.php');
echo '<h1>'. $g_layout['title']. '</h1>';

//Suchleiste
echo '
<form id="memsearch_form">
    <ul class="iconTextLinkList">
        <li>'.$g_l10n->get('SYS_SEARCH').': <input type="text" name="mem_search" id="mem_search" /></li>
        <li><input type="checkbox" name="mem_show_all" id="mem_show_all" /><label for="mem_show_all">'.$g_l10n->get('MEM_SHOW_ALL_USERS').'</label></li>
        <li>
	        <span class="iconTextLink" id="add_user_link" style="display: none;">
		        <a rel="lnkNewUser" href="'.$g_root_path.'/adm_program/administration/members/members_new.php"><img src="'. THEME_PATH. '/icons/add.png" alt="'.$g_l10n->get('MEM_CREATE_USER').'" /></a>
		        <a rel="lnkNewUser" href="'.$g_root_path.'/adm_program/administration/members/members_new.php">'.$g_l10n->get('MEM_CREATE_USER').'</a>
	        </span>
        </li>
    </ul>
</form>';

//ladebalken
echo '<img src="'.THEME_PATH.'/images/loading_animation.gif" alt="'.$g_l10n->get('SYS_PROGRESS_BAR').'" id="list_load_animation"/>';

//Liste mit Namen zu abhaken
echo '<form id="memlist_form"></form>';

// Zurueck-Button nur anzeigen, wenn MyList nicht direkt aufgerufen wurde
if($_SESSION['navigation']->count() > 1)
{
    echo '
    <ul class="iconTextLinkList">
        <li>
            <span class="iconTextLink">
                <a href="'.$g_root_path.'/adm_program/system/back.php"><img
                src="'. THEME_PATH. '/icons/back.png" alt="'.$g_l10n->get('SYS_BACK').'" /></a>
                <a href="'.$g_root_path.'/adm_program/system/back.php">'.$g_l10n->get('SYS_BACK').'</a>
            </span>
        </li>
    </ul>';
}


require(SERVER_PATH. '/adm_program/system/overall_footer.php');

?>
Return current item: Admidio