Seite 1 von 1

FrontendUser Plugin (direkt einer Gruppe zuordnen)

Verfasst: Mo 1. Mär 2010, 16:04
von _wiewo_
Hallo Community,

habe heute mal was für euch was einem ganz schön Arbeit ersparen kann.

Szenario:
Ihr habt ne Liste von so 100 Leutchen welche in Conti rein müssen,
und die müssen alle irgendwelchen Gruppen zugeordnet werden.

Alleine das Leute reintippen ist ja schon ne schweine Arbeit, aber dann einzeln alle den Gruppen zuweisen, auch nicht schön.

Das Leute eintragen kann ich euch natürlich nicht abnehmen, aber das mit den Gruppen zuweisen.

Unzwar habe ich ein Plugin geschrieben welches euch direkt beim Frontenduser anlegen alle Gruppen mit Checkboxen auflistet.
So kann man gleich beim anlegen der Person die Gruppen festlegen, das spart eine Menge Arbeit.

anbei der benötigte Code
contenido/plugins/frontendusers/gruppenzugehoerigkeit/gruppenzugehoerigkeit.php

Code: Alles auswählen

<?php
function frontendusers_gruppenzugehoerigkeit_getTitle()
{
	return i18n('Gruppenzugehörigkeit', 'frontendusers_gruppenzugehoerigkeit');
}

function frontendusers_gruppenzugehoerigkeit_display()
{
	global $feuser;

	$oFrontendGroupCollection = new FrontendGroupCollection();
	$oFrontendGroupCollection->query();

	$sGruppenzugehoerigkeit = '';
	while ($oFrontendGroup = $oFrontendGroupCollection->next())
	{
		$iFrontendGroup =  $oFrontendGroup->getField('idfrontendgroup');
		$sGroupName = $oFrontendGroup->getField('groupname');

		$bChecked = frontendusers_gruppenzugehoerigkeit_getvalue($iFrontendGroup);

		$oGruppenzugehoerigkeit = new cHTMLCheckbox('gruppenzugehoerigkeit[]', $iFrontendGroup, 'gruppenzugehoerigkeit_' . $iFrontendGroup, $bChecked);
		$oGruppenzugehoerigkeit->setLabelText($sGroupName);
		$sGruppenzugehoerigkeit .= $oGruppenzugehoerigkeit->render();
	}

	return $sGruppenzugehoerigkeit;
}

function frontendusers_gruppenzugehoerigkeit_wantedVariables()
{
	return (array('gruppenzugehoerigkeit'));
}

function frontendusers_gruppenzugehoerigkeit_canonicalVariables()
{
	return array('gruppenzugehoerigkeit' => i18n('Gruppenzugehörigkeit', 'frontendusers_gruppenzugehoerigkeit'));
}

function frontendusers_gruppenzugehoerigkeit_getvalue($idfrontendgroup)
{
	global $feuser;

	$oFrontendGroupMemberCollection = new FrontendGroupMemberCollection();

	$iFrontendsUserID = $feuser->getField('idfrontenduser');
	$aUsersInGroup = $oFrontendGroupMemberCollection->getUsersInGroup($idfrontendgroup, false);

	$bInGroup = (in_array($iFrontendsUserID, $aUsersInGroup) ? true : false);

	return $bInGroup;
}

function frontendusers_gruppenzugehoerigkeit_store($aVariables)
{
	global $feuser;

	if (!array_key_exists('gruppenzugehoerigkeit', $aVariables))
	{
		return false;
	}
	else
	{
		global $feuser;

		$oFrontendGroupCollection = new FrontendGroupCollection();
		$oFrontendGroupCollection->query();
		
		$aFrontendGroups = '';
		while ($oFrontendGroup = $oFrontendGroupCollection->next())
		{
			$aFrontendGroups[] = $oFrontendGroup->getField('idfrontendgroup');
		}

		$iFrontendsUserID = $feuser->getField('idfrontenduser');

		$oFrontendGroupMemberCollection = new FrontendGroupMemberCollection();

		foreach ($aFrontendGroups as $iFrontendGroup)
		{
			if (in_array($iFrontendGroup, $_POST['gruppenzugehoerigkeit']))
			{
				$oFrontendGroupMemberCollection->create($iFrontendGroup, $iFrontendsUserID);
			}
			else
			{
				$oFrontendGroupMemberCollection->remove($iFrontendGroup, $iFrontendsUserID);
			}
		}

		return true;
	}
}
?>

Re: FrontendUser Plugin (direkt einer Gruppe zuordnen)

Verfasst: Di 23. Mär 2010, 11:29
von matt.loker
Geht das auch für die BackEnd-User?
Hab das Problem, nur habe ich zig Backend-User anstatt Frontend-User. Dieses Plugin fürs Backend würde eine Menge Arbeit sparen!

Grüße
matt

Re: FrontendUser Plugin (direkt einer Gruppe zuordnen)

Verfasst: Di 23. Mär 2010, 11:37
von _wiewo_
habe mir das backend system noch nie angeguckt, kann da gerne mal einen blick drauf werfen

Re: FrontendUser Plugin (direkt einer Gruppe zuordnen)

Verfasst: Di 23. Mär 2010, 12:23
von matt.loker
Das wär echt stark Danke! :)