コード例 #1
0
 /**
  * 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;
 }
コード例 #2
0
/**
 * 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);
        }
    }
}
コード例 #3
0
/**
 * 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);
        }
    }
}