/** * get master data * @see CTModuleInterface::getMasterData() * * @return array */ public function getMasterData() { global $user, $base_url, $files_dir, $config; $res = churchdb_getMasterDataTables(); $res["feldtyp"] = churchcore_getTableData("cdb_feldtyp"); $res["fields"] = getAllFields(); $res["groups"] = getAllGroups(); $res["tags"] = getAllTags(); $res["FUNachfolgeDomains"] = array("0" => array("id" => "0", "bezeichnung" => "Kein"), "1" => array("id" => "1", "bezeichnung" => $res["fields"]["f_group"]["fields"]["gruppentyp_id"]["text"]), "2" => array("id" => "2", "bezeichnung" => $res["fields"]["f_group"]["fields"]["distrikt_id"]["text"]), "3" => array("id" => "3", "bezeichnung" => t("group"))); $res["groupMemberTypes"] = getGroupMemberTypes(); $res["groupFilterTypes"] = churchdb_getGroupFilterTypes(); // master data information for maintain masterdata and statistics if (user_access("edit masterdata", "churchdb") || user_access("view statistics", "churchdb")) { $res["masterDataTables"] = churchdb_getMasterDataTablenames(); } $res["user_pid"] = $user->id; $res["userid"] = $user->vorname . " " . $user->cmsuserid . " [" . $user->id . "]"; $res["auth"] = churchdb_getAuthForAjax(); $res["site_name"] = getConf('site_name'); $res["modulespath"] = churchdb_getModulesPath(); $res["files_url"] = $base_url . $files_dir; $res["modulename"] = "churchdb"; $res["max_uploadfile_size_kb"] = getConf('max_uploadfile_size_kb'); $res["adminemail"] = getConf('site_mail', ''); $res["max_exporter"] = getConf('churchdb_maxexporter', '150'); $res["groupnotchoosable"] = getConf('churchdb_groupnotchoosable', 30); $res["home_lat"] = getConf('churchdb_home_lat', '53.568537'); $res["home_lng"] = getConf('churchdb_home_lng', '10.03656'); $res["settings"] = churchdb_getUserSettings($user->id); $res["last_log_id"] = churchdb_getLastLogId(); $res["mailchimp"] = getConf('churchdb_mailchimp_apikey') != ""; $res["views"] = array("ArchiveView" => array("filename" => "cdb_archiveview"), "MapView" => array("filename" => "cdb_mapview"), "StatisticView" => array("filename" => "cdb_statisticview"), "SettingsView" => array("filename" => "cdb_settingsview"), "MaintainView" => array("filename" => "cdb_maintainview"), "WeekView" => array("filename" => "../churchresource/cr_weekview")); if (user_access("administer persons", "churchcore")) { $res["auth_table"] = churchdb_getAuthTable(); } if (isset($res["auth"]["edit newsletter"])) { $nl = churchdb_getTableData("cdb_newsletter"); $newsletter = array(); foreach ($res["auth"]["edit newsletter"] as $n) { $newsletter = $nl[$n]; } $res["newsletter"] = $newsletter; } return $res; }
/** * inform leader about deleted group member and sends an additional text if available */ function informLeaderAboutDeletedGroupMember($group_id, $gp_id) { global $base_url, $user; $personen = _churchdb_getMembersOfGroup($group_id); foreach ($personen as $val) { // Wenn es Leiter (1), CoLeiter (2) oder SuperVisor (3) sind und ich nicht selber der bin, der es ge�ndert hat // und ich nicht der bin, der gerade gel�scht wurde! if ($val->lastlogin != null && $val->status_no >= 1 && $val->status_no <= 3 && $val->email != null && $val->email != "" && $gp_id != $val->id && ($val->cmsuserid == null || $val->cmsuserid != $user->cmsuserid)) { $mt = getGroupMemberTypes(); $content = "<h3>Hallo " . $mt[$val->status_no]["bezeichnung"] . "!</h3>"; if ($val->status_no < 3) { $content .= "<p>In Deiner "; } else { $content .= "<p>In der "; } $content .= "Gruppe \"" . $val->bezeichnung . "\" wurde von " . $user->cmsuserid . " ein " . $mt[$personen[$gp_id]->status_no]["bezeichnung"] . " entfernt:"; $content .= "<p>Name: " . $personen[$gp_id]->vorname . " " . $personen[$gp_id]->name; $content .= '<p><p><a class="btn btn-royal" href="' . $base_url . '?q=churchdb#PersonView/searchEntry:' . $personen[$gp_id]->p_id . '">Person ansehen</a>'; churchdb_send_mail("[" . readConf('site_name', 'ChurchTools') . "] Teilnehmer in der Gruppe " . $val->bezeichnung . " entfernt", $content, $val->email); } } }
/** * inform leader about new or changed group member and sends an additional text if available * * @param int $group_id, group ID * @param int $p_id, person ID * @param string $add_text, additional text */ function informLeaderAboutMembershipChange($groupId, $pId, $changeType, $additionalText = false) { global $base_url, $user; $mt = getGroupMemberTypes(); // Get involved person (pId) and all Leaders in Group $res = db_query("\n SELECT p.name, p.vorname, p.spitzname, p.email, p.id p_id, p.lastlogin, gp.id gp_id, gpg.status_no, g.bezeichnung,\n DATE_FORMAT(gpg.letzteaenderung, '%d.%m.%Y') letzteaenderung, cmsuserid, gpg.comment\n FROM {cdb_person} p, {cdb_gemeindeperson} gp, {cdb_gemeindeperson_gruppe} gpg, {cdb_gruppe} g\n WHERE p.id=gp.person_id AND gp.id=gpg.gemeindeperson_id AND g.id=gpg.gruppe_id\n AND gpg.gruppe_id=:groupId AND\n (p.id = :pId OR (NOT ISNULL(p.lastlogin) AND gpg.status_no BETWEEN 1 AND 3 AND p.email > ''))", array(':pId' => $pId, ':groupId' => $groupId)); foreach ($res as $p) { $persons[$p->p_id] = $p; } foreach ($persons as $p) { // if person had logged in in the past and is one of leader(1), coleader(2) or supervisor(3) // and it was not changed by current user // and if delete a person, the person himselves should not be informed about his deletion! if (!empty($p->lastlogin) && $p->status_no >= 1 && $p->status_no <= 3 && $p->p_id != $user->id && ($changeType != "delete" || $p->p_id != $pId)) { $data = array('title' => $mt[$p->status_no]["bezeichnung"], 'userIsSupervisor' => $p->status_no == 3, 'groupName' => $p->bezeichnung, 'memberType' => $mt[$persons[$pId]->status_no]["bezeichnung"], 'member' => $persons[$pId], 'changeType' => $changeType, 'additionalText' => $additionalText, 'gotoMemberUrl' => $base_url . '?q=churchdb#PersonView/searchEntry:' . $pId); $lang = getUserLanguage($pId); $content = getTemplateContent('email/groupMemberChange', 'churchdb', $data, null, $lang); churchdb_send_mail("[" . getConf('site_name') . "] " . t2($lang, 'change.in.group.x', $p->bezeichnung), $content, $p->email); } } }