für die rechte Seitenleiste habe ich ein kleines Plugin geschrieben, damit ich stets die aktuelle Mitgliederzahl sehe.
Auch dies ist nur ein "lösungsorientierter" Hack. Funktioniert bei mir mit Admidio V2.2.6.
Der Nachbau geht wie folgt:
Schritt 1:
unter adm_plugins einneues Verzeichnis "anzahl" anlegen
Schritt 2:
die korrekten Id's für
adm_user_data.usd_usf_id und adm_members.mem_rol_id herausfinden. Sind bei mir 10 und 2. Kann bei anderen Installationen abweichen.
Schritt 3:
die Datei adm_plugins/anzahl/anzahl.php mit folgendem Inhalt anlegen
--- cut ---
Code: Alles auswählen
<?php
// Pfad des Plugins ermitteln
$plugin_folder_pos = strpos(__FILE__, 'adm_plugins') + 11;
$plugin_file_pos = strpos(__FILE__, 'anzahl.php');
$plugin_folder = substr(__FILE__, $plugin_folder_pos+1, $plugin_file_pos-$plugin_folder_pos-2);
if(!defined('PLUGIN_PATH'))
{
define('PLUGIN_PATH', substr(__FILE__, 0, $plugin_folder_pos));
}
require_once(PLUGIN_PATH. '/../adm_program/system/common.php');
require_once(PLUGIN_PATH. '/'.$plugin_folder.'/config.php');
// Ausgabe nur, wenn gueltiger Login, Schleife endet erst am Ende dieses Scriptes.
if($g_valid_login == 1)
{
$g_db->setCurrentDB();
echo '<div id="plugin_'. $plugin_folder. '" class="admPluginContent">
<div class="admPluginHeader"><a href="/admidio/adm_program/modules/statistics/statistic.php" ><h3>Statistik</h3></a></div>
<div class="admPluginBody">';
//Anzahl alle Mitglieder
$sql ="select adm_user_data.usd_usr_id, adm_user_data.usd_value, adm_members.mem_usr_id, adm_members.mem_end, adm_members.mem_rol_id
from adm_user_data
left join adm_members on adm_user_data.usd_usr_id = adm_members.mem_usr_id
where adm_user_data.usd_usf_id = 1 and adm_members.mem_rol_id = 2 and adm_members.mem_end > curdate()
;";
$result = $g_db->query($sql);
$mitglieder_gesamt = mysql_num_rows($result);
//Anzahl Jugendliche unter 18
$sql ="select adm_user_data.usd_usr_id, adm_members.mem_usr_id, adm_members.mem_end, adm_members.mem_rol_id,
(year(curdate())-year(adm_user_data.usd_value)) - (right(curdate(),5)<right(adm_user_data.usd_value,5))
as lebensalter
from adm_user_data
left join adm_members on adm_user_data.usd_usr_id = adm_members.mem_usr_id
where adm_user_data.usd_usf_id = 10 and adm_members.mem_rol_id = 2 and adm_members.mem_end > curdate() and (year(curdate())-year(adm_user_data.usd_value)) - (right(curdate(),5)<right(adm_user_data.usd_value,5))<18;;";
$result = $g_db->query($sql);
$jugendliche_gesamt = mysql_num_rows($result);
//Anzahl Erwachsene
$sql ="select adm_user_data.usd_usr_id, adm_members.mem_usr_id, adm_members.mem_end, adm_members.mem_rol_id,
(year(curdate())-year(adm_user_data.usd_value)) - (right(curdate(),5)<right(adm_user_data.usd_value,5))
as lebensalter
from adm_user_data
left join adm_members on adm_user_data.usd_usr_id = adm_members.mem_usr_id
where adm_user_data.usd_usf_id = 10 and adm_members.mem_rol_id = 2 and adm_members.mem_end > curdate() and (year(curdate())-year(adm_user_data.usd_value)) - (right(curdate(),5)<right(adm_user_data.usd_value,5))>=18;;";
$result = $g_db->query($sql);
$erwachsene_gesamt = mysql_num_rows($result);
echo "<p><strong>Aktueller Mitgliederstand: $mitglieder_gesamt</strong></p>";
echo "Erwachsene: $erwachsene_gesamt<br>";
echo "Jugendliche: $jugendliche_gesamt<br>";
echo '</div></div>';
// Ende der Schleife, gueltiger Login !
}
?>
Schritt 4:
in die rechte Seitenleiste einbinden:
adm_themes/modern/my_body_bottom.php editieren und unterhalb der existierenden Zeile
include(SERVER_PATH. '/adm_plugins/login_form/login_form.php');
eine neue Zeile einfügen (ist dann ungefähr Zeile 14):
include(SERVER_PATH. '/adm_plugins/anzahl/anzahl.php');
Viel Spaß damit.
Arthur.