Diskuse

Téma: Skupiny uživatel na dobu určitou

Ahoj,
chci se zeptat, zda by šlo do administrace přidat dočasné přidělení skupiny uživateli. Například registrovanému uživateli nastavit moderátora na z dní nebo do určeného data? (Případně i nastavení od kdy)
Děkuji :)
postZaslat odpověď
Na soubor users-list jsem koukal, no, php asi nejspíš bude problém. Nechytám se v "propojení" souborů mezi sebou, ani mi není jasno, jak "zakomponovat" případně nový soubor, který by tuto funkci (které chci dosáhnout) zobrazil - začlenil - do systému.
Je mi bližší spíše grafika, než programování, bohužel :(
Tak upřesněte požadavky na funkčnost a co vše od modulu očekáváte.
Zkusím se na to zítra podívat.
http://nejenmy.unas.cz/upload/img/dobaurcita.jpg
Jde o možnost přeložit uživatele z určité skupiny do skupiny jiné na určitou dobu (nebo defaultně navždy), ..... případně zadat datum do kdy, ale není to nutnost, pokud by to bylo příšliš složité :-) Rozvržení webu na "skice" je ilustrativní, je mi jasné, že nemusí takto rozvržení jít. :-)
Moc jste to nerozvedl, tak jsem to udělal podle svého.
Váš návrh jsem zavrhl, protože by vyžadoval zásah do zdrojových souborů. To by mohl být problém při aktualizaci CMS.
Zvolil jsem formu rozšíření systému.

Zkuste otestovat tento výtvor.
Ponechávám bez komentáře a návodu. Jde mi také o intuitivnost celkového ovládání a instalace.
Děkuji za plugin. Nastavení na dočasnou pozici funguje dobře, se po uplynutí doby nevrátí na původní úroveň..

Po smazání uživatele v sekci "Zařazení uživatelů" se vrátí do původního stavu.. což při vynuceném "ukončení pozice" je v pořádku.
.-)
Teď jde o to, zda platnost "do" slouží k informačním účelům pro manuální smazání nebo se má automaticky vrátit na původní pozici? :-)
Platnost do je nastavený časový údaj po jehož uplynutí a spuštění cronu dojde k automatickému vrácení do původního stavu, tedy uživateli je vrácena jeho úroveň.
Cron se spouští po 12h, pokud chcete častější spuštění cronu, změňte si jeho hodnotu na Vámi požadovanou.
Změnu provedete v souboru plugins/extend/usergroup/usergroup.php na posledním řádku změnou hodnoty 12h
_extend('reg', 'sys.cron.12h', '_plugin_usergroup_cron');např. na 30 minut_extend('reg', 'sys.cron.30m', '_plugin_usergroup_cron');. Viz. dokumentace cronu sys.cron.x .

Odpoledne do konfigurace pluginu přidám možnost pro nastavení doby spuštění.
Váš návrh jsem zavrhl, protože by vyžadoval zásah do zdrojových souborů. To by mohl být problém při aktualizaci CMS.
Lonanek ono by to šlo i bez zásahu do systému, rozšířením přetížit skript v události admin.mod.x.init, ale takto odděleně je to možná lepší...
Jako hrubý nástřel to není špatné, jen si myslím že by to chtělo ještě trochu dotáhnout (jako třeba výpis zpráv)

pak je tam pár humorných kousků jako třeba
$spojka = "";
while ($item = DB::row($query))
{
$data = array('group' => $item['group_id']);
DB::update(_mysql_prefix ."-users", "id=".$item['user_id'], $data);
$delete .= $spojka . $item['id'];
$spojka = ", ";
}
DB::query("DELETE FROM `". _mysql_prefix ."-usergroup` WHERE id IN (". $delete .")");
coz by slo resit napr.:
$ids = array();
while ($item = DB::row($query))
{
DB::update(_mysql_prefix ."-users", "id=".$item['user_id'], array('group' => $item['group_id']));
$ids[]=$item['id'];
}
DB::query("DELETE FROM `". _mysql_prefix ."-usergroup` WHERE id IN (". DB::arr($ids) .")");
mozna by mohlo fungovat neco takoveho, cimz by nebezeli UPDATY v cyklu a omezil by se pocet SQL... (netestovano)
UPDATE u
SET u.group_id = ug.group_id
FROM `". _mysql_prefix ."-users` u
INNER JOIN `". _mysql_prefix ."-usergroup` ug
ON u.id = ug.user_id
WHERE ug.group_out<=". time()." AND ug.user_id IS NOT NULL

EDIT: pro manipulaci s $_GET/$_POST bych doporucil spis funkce _get() a _post()
Jirko, děkuji Vám za připomínky.
Směšný Update zapracuji, no hotl jsem začínal na phpRS...

Tohle je můj třetí plugin, takže se spíše se SL sžívám a občas i koukám co a jak autor řeší.
Samozřejmě použití funkcí je příjemnější, i když _get() a _post() vše zpracují jako řetězec.

Samozřejmě, že prvořadé bylo vytvořit funkční modul, Výpisy budou dopracovány, u některých nastavení jsem na to nějak v rychlosti pozapomněl. Ono něco udělat za pár hodin a dotáhnout k dokonalosti mi moc nejde. No už taky nejsem nejmladší a paměť už moc neslouží 😁

Ten hromadný update hlásí chybu syntaxe, ale zatím se mi nepodařilo přijít na to kde by mohla být. Někde drhne na FROM ...

Ovšem s ohledem na dobu nastavení CRONu by to zase taková zátěž nemusela být. Samozřejmě čím méně dotazů tím lépe.

EDIT:
Opravená verze je ve stejném odkazu.
Doplněny hlášky, opraven SQL dotaz výmazu dle JD, přidána volba nastavení CRONu -> konfigurace.