/** * sVerifierLevel function returns the current verification level of member * @IdMember (optional) the Id of the member to obtaon verification level, if not provided current member in session will be use * returns : a string with the member level * a member can be a "Normal" member (one who was not veridied) * "VerifiedByNormal" member (if he was verified by a normal member) * "VerifiedByVerified" member (if he was verified by an approved verifier) * "VerifiedByApproved" member (if he has right to be a verifier) * */ public function sVerifierLevel($member_id = -1) { $member_id = (int) $member_id; $sRet = "Normal"; if ($member_id > 0) { // everything is cool } else { if (isset($_SESSION["IdMember"])) { // use the member who is currently logged in. $member_id = $_SESSION["IdMember"]; } else { // can't help it, so we return false. return false; } } $rr = $this->SingleLookup("\nSELECT max(Type) AS Type\nFROM verifiedmembers\nWHERE IdVerified = {$member_id}\n "); if ($rr) { if ("Buggy" == $rr->Type) { // problem throw new PException('Buggy Value in verifiedmembers for IdMember=".$IdMember." !'); } else { if (!empty($rr->Type)) { $sRet = $rr->Type; } } } // if the member is a verifier and has ApprovedVerifier scope, this information will supersed all others // comment by lemon-head: Better do this in the controller? if (MOD_right::get()->hasRight("Verifier", "ApprovedVerifier")) { // TODO: HasRight does only check the currently logged-in user, not the given argument! $sRet = "VerifiedByApproved"; } return $sRet; }
/** * Returns the number of people due to be checked to problems or what. * The number depends on the scope of the person logged on. * * $_GroupScope="" is an optional value for group Scope which can be used for performance if it was already fetched from database * @return integer indicating the number of people wiche need to be accepted * in a Group if the current member has right to accept them */ public function getNumberPersonsToAcceptInGroup($_GroupScope = "") { $R = MOD_right::get(); if ($_GroupScope != "") { $GroupScope = $_GroupScope; } else { $GroupScope = $R->RightScope('Group'); } if ($GroupScope == "") { return 0; } if ($R->hasRight('Group', 'All')) { $where = ""; } else { $tt = explode(",", $GroupScope); $where = "("; foreach ($tt as $Scope) { if ($where != "(") { $where .= ","; } $where = $where . $Scope; } $where = " and `groups`.`Name` in " . $where . ")"; } $query = 'SELECT SQL_CACHE COUNT(*) AS cnt FROM `membersgroups`,`groups` where `membersgroups`.`Status`="WantToBeIn" and `groups`.`id`=`membersgroups`.`IdGroup`' . $where; // die($query) ; $result = $this->dao->query($query); $record = $result->fetch(PDB::FETCH_OBJ); if (isset($record->cnt)) { return $record->cnt; } else { return 0; } }
public function render() { $this->_init(); $this->_model = new VolunteerbarModel(); if (empty($_SESSION['IdMember'])) { return; // Do nothing if user is not identified (thi cannot be a volunteer) } $R = MOD_right::get(); $mayViewBar = $R->hasRightAny(); if ($mayViewBar) { $numberPersonsToBeAccepted = 0; $numberPersonsToBeChecked = 0; if ($R->hasRight("Accepter")) { $numberPersonsToBeAccepted = $this->_model->getNumberPersonsToBeAccepted(); $AccepterScope = $R->rightScope('Accepter'); $numberPersonsToBeChecked = $this->_model->getNumberPersonsToBeChecked($AccepterScope); } $numberPersonsToAcceptInGroup = 0; if ($R->hasRight("Group")) { $numberPersonsToAcceptInGroup = $this->_model->getNumberPersonsToAcceptInGroup($R->rightScope('Group')); } $numberMessagesToBeChecked = 0; $numberSpamToBeChecked = 0; if ($R->hasRight("Checker")) { $numberMessagesToBeChecked = $this->_model->getNumberMessagesToBeChecked(); $numberSpamToBeChecked = $this->_model->getNumberSpamToBeChecked(); } require $this->getTemplatePath(); } }
function index($args = false) { $request = $args->request; if (!MOD_right::get()->hasRight('Debug')) { return new PublicStartpage(); } else { switch (isset($request[0]) ? $request[0] : false) { case 'sqltest': $page = new SqltestPage(); $page->model = new SqltestModel(); return $page; case 'debug': default: switch (isset($request[1]) ? $request[1] : false) { case 'inicache': return new DebugInicachePage(); case 'sqltest': $page = new SqltestPage(); $page->model = new SqltestModel(); return $page; case 'dbsummary': $page = new DatabaseSummaryPage(); $page->model = new DatabaseSummaryModel(); foreach (@$args->get as $key => $value) { // set filters $page->{$key} = $value; } return $page; default: return new DebugPage(); } } } }
/** * Get donations (max. 25, all if user has Treasurer rights) * * @param recent Get only the results since the start of the current campaign * @return array List of donations as objects with string properties * * TODO: Add parameter for limit and do permission check elsewhere */ public function getDonations($recent = false) { $rights = MOD_right::get(); $where = ""; list($dummy, $campaignStart) = $this->getCampaignValues(); if ($rights->hasRight('Treasurer')) { $limitClause = ""; if ($recent) { $where = "WHERE created >= '" . $campaignStart . "'"; } } else { $limitClause = "LIMIT 25"; } $query = "\r\n SELECT\r\n *\r\n FROM\r\n donations\r\n " . $where . "\r\n ORDER BY\r\n created DESC\r\n {$limitClause}\r\n "; $result = $this->dao->query($query); $donations = array(); while ($row = $result->fetch(PDB::FETCH_OBJ)) { if ($row->IdCountry == 0) { $countryName = "Unknown country"; } else { $idCountry = intval($row->IdCountry); $resultcountry = $this->dao->query("\r\n SELECT\r\n name\r\n FROM\r\n geonames_cache\r\n WHERE\r\n geonameId = {$idCountry}\r\n "); $country = $resultcountry->fetch(PDB::FETCH_OBJ); $countryName = $country->name; } $row->CountryName = $countryName; array_push($donations, $row); } return $donations; }
public function index() { $request = PRequest::get()->request; if (!isset($request[1])) { $this->_redirect(''); } switch ($request[1]) { case 'admin': $BW_Rights = new MOD_right(); if (!$BW_Rights->hasRight('Admin') || !$BW_Rights->hasRight('Notify')) { $this->_redirect(''); } $page = new NotifyAdminPage(); $page->setModel($this->_model); if (isset($_GET['sort'])) { $page->sortorder = $_GET['sort']; } $page->active_page = $this->getPageNumber($request, 2); return $page; break; case 'search': $terms = isset($_GET['GroupsSearchInput']) ? $_GET['GroupsSearchInput'] : ''; $resultpage = isset($_GET['Page']) ? $_GET['Page'] : 0; $order = isset($_GET['Order']) ? $_GET['Order'] : 'nameasc'; $page = new GroupsSearchPage(); $page->search_result = $this->_model->findGroups($terms, $resultpage, $order); $page->result_page = $resultpage; $page->result_order = $order; $page->search_terms = $terms; break; default: // check wether there's a note with id = $request[1] if ($note = $this->_model->findNote($request[1])) { switch ($request[2]) { case 'check': // Ajax function $this->checkNote($note); PPHP::PExit(); default: break; } } } $page->member = $this->_model->getLoggedInMember(); $page->model = $this->_model; return $page; }
/** * configure the page title (what appears in your browser's title bar) * @return string the page title */ protected function getPageTitle() { $words = new MOD_words(); if (MOD_right::get()->hasRight("Verifier", "ApprovedVerifier")) { echo $words->getFormatted("verifymembers_approvedverifier"); } else { echo $words->getFormatted("verifymembers_teaser"); } }
/** * configure the teaser (the content of the orange bar) */ protected function teaserHeadline() { $words = $this->getWords(); if (MOD_right::get()->hasRight("Verifier", "ApprovedVerifier")) { echo $words->getFormatted("verifymembers_approvedverifier"); } else { echo $words->getFormatted("verifymembers_teaser"); } }
public function __construct() { parent::__construct(); $this->_model = new Forums(); $this->_view = new ForumsView($this->_model); // $this->_view->page=new RoxGenericPage(); $this->BW_Right = MOD_right::get(); $this->BW_Flag = MOD_flag::get(); $this->request = PRequest::get()->request; $this->forums_uri = $this->get_forums_uri(); $this->_model->forums_uri = $this->forums_uri; }
function getShowCondition($com, $login) { // show comment when marked as display in public (default situation) if ($com->DisplayInPublic == 1) { return 1; } // show comment to Safety team if (MOD_right::get()->HasRight('Comments')) { return 2; } // show comment to writer if ($com->UsernameFromMember == $login) { return 3; } // do not show comment return false; }
public function GetGuests() { global $_SYSHCVOL; $Rights = MOD_right::get(); $TGuest = array(); // Case of members who can see additional information about members last activity if ($Rights->hasRight("Debug", "ShowLastActivity")) { $query = "select appearance,lastactivity,now()-updated as NbSec from guestsonline where guestsonline.updated>DATE_SUB(now(),interval " . $_SYSHCVOL['WhoIsOnlineDelayInMinutes'] . " minute) order by guestsonline.updated desc"; $s = $this->dao->query($query); if (!$s) { throw new PException('Failed to get online guests!'); } while ($row = $s->fetch(PDB::FETCH_OBJ)) { array_push($TGuest, $row); } } return $TGuest; }
protected function topmenu() { $words = $this->getWords(); $menu_items = $this->getTopmenuItems(); $active_menu_item = $this->getTopmenuActiveItem(); $logged_in = APP_User::isBWLoggedIn('NeedMore,Pending'); if (!$logged_in) { $request = PRequest::get()->request; if (!isset($request[0])) { $login_url = 'login'; } else { switch ($request[0]) { case 'login': case 'main': case 'start': $login_url = 'login'; break; default: $login_url = 'login/' . htmlspecialchars(implode('/', $request), ENT_QUOTES); } } } else { $username = isset($_SESSION['Username']) ? $_SESSION['Username'] : ''; } $rights = new MOD_right(); $volunteer = $rights->hasRightAny(); if (isset($_SESSION["IdMember"])) { $IdMember = intval($_SESSION["IdMember"]); $roxmodel = new Rox(); $numberOfNewMessagees = $roxmodel->getNewMessagesNumber($IdMember); } require TEMPLATE_DIR . 'shared/roxpage/topmenu.php'; }
/** * configure the sidebar */ protected function leftSidebar() { $words = $this->getWords(); echo '<ul class="linklist">'; echo '<li><a href="http://www.bevolunteer.org/wiki/How_pollsworks">Wiki Doc</a></li>'; echo '<li><a href="polls/listall">', $words->getFormatted("polls_listlink"), '</a></li>'; if (MOD_right::get()->HasRight("Poll", "create")) { echo '<li><a href="polls/create">', $words->getFormatted("polls_createlink"), '</a></li>'; } echo "</ul>"; }
/** * Update Member's Profile * * @param unknown_type $vars * @return unknown */ public function updateProfile(&$vars) { $IdMember = (int) $vars['memberid']; $words = new MOD_words(); $rights = new MOD_right(); $m = $vars['member']; // fantastic ... love the implementation. Fake $CanTranslate = false; // $CanTranslate = CanTranslate($vars["memberid"], $_SESSION['IdMember']); $ReadCrypted = "MemberReadCrypted"; // This might be changed in the future if ($rights->hasRight('Admin') || $rights->hasRight('SafetyTeam')) { // admin or CanTranslate can alter other profiles $ReadCrypted = "AdminReadCrypted"; // In this case the AdminReadCrypted will be used } $m->removeLanguages(); foreach ($vars['languages_selected'] as $lang) { if ($language = $this->createEntity('Language')->findById($lang->IdLanguage)) { $ml = $this->createEntity('MemberLanguage'); $ml->setSpokenLanguage($m, $language, $lang->Level); } } // Set the language that ReplaceinMTrad uses for writing $words->setlangWrite($vars['profile_language']); // refactoring to use member entity // $m->LastLogin = '******' ? 'Never' : $layoutbits->ago(strtotime($TM->LastLogin)); // Members lastlogin is no to be updated here if (isset($vars['Status']) && !empty($vars['Status'])) { // this can only happen when an admin or the safety team edits a profile $m->Status = $vars['Status']; } $m->Gender = $vars['gender']; $m->HideGender = $vars['HideGender']; $m->BirthDate = $vars['BirthYear'] . '-' . $vars['BirthMonth'] . '-' . $vars['BirthDay']; $m->bday = $vars['BirthDay']; $m->bmonth = $vars['BirthMonth']; $m->byear = $vars['BirthYear']; $m->HideBirthDate = $vars['HideBirthDate']; $m->HideGender = $vars['HideGender']; $m->ProfileSummary = $words->ReplaceInMTrad($vars['ProfileSummary'], "members.ProfileSummary", $IdMember, $m->ProfileSummary, $IdMember); $m->WebSite = strip_tags($vars['WebSite']); $m->Accomodation = $vars['Accomodation']; $m->Organizations = $words->ReplaceInMTrad($vars['Organizations'], "members.Organizations", $IdMember, $m->Organizations, $IdMember); $m->Occupation = $words->ReplaceInMTrad(strip_tags($vars['Occupation']), "members.Occupation", $IdMember, $m->Occupation, $IdMember); $m->ILiveWith = $words->ReplaceInMTrad($vars['ILiveWith'], "members.ILiveWith", $IdMember, $m->ILiveWith, $IdMember); $m->MaxGuest = strip_tags($vars['MaxGuest']); $m->MaxLenghtOfStay = $words->ReplaceInMTrad($vars['MaxLenghtOfStay'], "members.MaxLenghtOfStay", $IdMember, $m->MaxLenghtOfStay, $IdMember); $m->AdditionalAccomodationInfo = $words->ReplaceInMTrad($vars['AdditionalAccomodationInfo'], "members.AdditionalAccomodationInfo", $IdMember, $m->AdditionalAccomodationInfo, $IdMember); $m->TypicOffer = strip_tags($vars['TypicOffer']); $m->Restrictions = strip_tags($vars['Restrictions']); $m->OtherRestrictions = $words->ReplaceInMTrad($vars['OtherRestrictions'], "members.OtherRestrictions", $IdMember, $m->OtherRestrictions, $IdMember); $m->Hobbies = $words->ReplaceInMTrad($vars['Hobbies'], "members.Hobbies", $IdMember, $m->Hobbies, $IdMember); $m->Books = $words->ReplaceInMTrad($vars['Books'], "members.Books", $IdMember, $m->Books, $IdMember); $m->Music = $words->ReplaceInMTrad($vars['Music'], "members.Music", $IdMember, $m->Music, $IdMember); $m->Movies = $words->ReplaceInMTrad($vars['Movies'], "members.Movies", $IdMember, $m->Movies, $IdMember); $m->PastTrips = $words->ReplaceInMTrad($vars['PastTrips'], "members.PastTrips", $IdMember, $m->PastTrips, $IdMember); $m->PlannedTrips = $words->ReplaceInMTrad($vars['PlannedTrips'], "members.PlannedTrips", $IdMember, $m->PlannedTrips, $IdMember); $m->PleaseBring = $words->ReplaceInMTrad($vars['PleaseBring'], "members.PleaseBring", $IdMember, $m->PleaseBring, $IdMember); $m->OfferGuests = $words->ReplaceInMTrad($vars['OfferGuests'], "members.OfferGuests", $IdMember, $m->OfferGuests, $IdMember); $m->OfferHosts = $words->ReplaceInMTrad($vars['OfferHosts'], "members.OfferHosts", $IdMember, $m->OfferHosts, $IdMember); $m->PublicTransport = $words->ReplaceInMTrad($vars['PublicTransport'], "members.PublicTransport", $IdMember, $m->PublicTransport, $IdMember); // as $CanTranslate is set explicitly above, this is disabled // if (!$CanTranslate) { // a volunteer translator will not be allowed to update crypted data if ($vars["HouseNumber"] != $m->get_housenumber()) { $this->logWrite("Housenumber updated", "Address Update"); } if ($vars["Street"] != $m->get_street()) { $this->logWrite("Street updated", "Address Update"); } if ($vars["Zip"] != $m->get_zip()) { $this->logWrite("Zip updated", "Address Update"); } if ($vars["Email"] == "cryptedhidden") { $this->logWrite("members.model updateprofile email keeps previous value (cryptedhidden detected)", "Debug"); } else { if ($vars["Email"] != $m->email) { $this->logWrite("Email updated (previous was " . $m->email . ")", "Email Update"); // Sticking to old BW, the previous email is stored in logs, // this might be discussed, but if the member fills a bad email, // there is no more way to retrieve him // Todo : get rid with this, but implement a confimmation mail $m->Email = MOD_crypt::NewReplaceInCrypted(strip_tags($vars['Email']), "members.Email", $IdMember, $m->Email, $IdMember, $this->ShallICrypt($vars, "Email")); } } if ($vars["HomePhoneNumber"] != "cryptedhidden") { $m->HomePhoneNumber = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['HomePhoneNumber'])), "members.HomePhoneNumber", $IdMember, $m->HomePhoneNumber, $IdMember, $this->ShallICrypt($vars, "HomePhoneNumber")); } if ($vars["CellPhoneNumber"] != "cryptedhidden") { $m->CellPhoneNumber = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['CellPhoneNumber'])), "members.CellPhoneNumber", $IdMember, $m->CellPhoneNumber, $IdMember, $this->ShallICrypt($vars, "CellPhoneNumber")); } if ($vars["WorkPhoneNumber"] != "cryptedhidden") { $m->WorkPhoneNumber = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['WorkPhoneNumber'])), "members.WorkPhoneNumber", $IdMember, $m->WorkPhoneNumber, $IdMember, $this->ShallICrypt($vars, "WorkPhoneNumber")); } if ($vars["chat_SKYPE"] != "cryptedhidden") { $m->chat_SKYPE = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['chat_SKYPE'])), "members.chat_SKYPE", $IdMember, $m->chat_SKYPE, $IdMember, $this->ShallICrypt($vars, "chat_SKYPE")); } if ($vars["chat_AOL"] != "cryptedhidden") { $m->chat_AOL = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['chat_AOL'])), "members.chat_AOL", $IdMember, $m->chat_AOL, $IdMember, $this->ShallICrypt($vars, "chat_AOL")); } if ($vars["chat_YAHOO"] != "cryptedhidden") { $m->chat_YAHOO = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['chat_YAHOO'])), "members.chat_YAHOO", $IdMember, $m->chat_YAHOO, $IdMember, $this->ShallICrypt($vars, "chat_YAHOO")); } if ($vars["chat_ICQ"] != "cryptedhidden") { $m->chat_ICQ = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['chat_ICQ'])), "members.chat_ICQ", $IdMember, $m->chat_ICQ, $IdMember, $this->ShallICrypt($vars, "chat_ICQ")); } if ($vars["chat_Others"] != "cryptedhidden") { $m->chat_Others = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['chat_Others'])), "members.chat_Others", $IdMember, $m->chat_Others, $IdMember, $this->ShallICrypt($vars, "chat_Others")); } if ($vars["chat_GOOGLE"] != "cryptedhidden") { $m->chat_GOOGLE = MOD_crypt::NewReplaceInCrypted(addslashes(strip_tags($vars['chat_GOOGLE'])), "members.chat_GOOGLE", $IdMember, $m->chat_GOOGLE, $IdMember, $this->ShallICrypt($vars, "chat_GOOGLE")); } $firstname = MOD_crypt::AdminReadCrypted($m->FirstName); $secondname = MOD_crypt::AdminReadCrypted($m->SecondName); $lastname = MOD_crypt::AdminReadCrypted($m->LastName); if ($firstname != strip_tags($vars['FirstName']) || $secondname != strip_tags($vars['SecondName']) || $lastname != strip_tags($vars['LastName'])) { $this->logWrite("{$m->Username} changed name. Firstname: {$firstname} -> " . strip_tags($vars['FirstName']) . ", second name: {$secondname} -> " . strip_tags($vars['SecondName']) . ", second name: {$lastname} -> " . strip_tags($vars['LastName']), 'Profile update'); } if ($vars["FirstName"] != "cryptedhidden") { MOD_crypt::NewReplaceInCrypted($this->dao->escape(strip_tags($vars['FirstName'])), "members.FirstName", $IdMember, $m->FirstName, $IdMember, $this->ShallICrypt($vars, "FirstName")); } if ($vars["SecondName"] != "cryptedhidden") { $cryptId = MOD_crypt::NewReplaceInCrypted($this->dao->escape(strip_tags($vars['SecondName'])), "members.SecondName", $IdMember, $m->SecondName, $IdMember, $this->ShallICrypt($vars, "SecondName")); // Update member if a new crypted SecondName value was added if ($cryptId != $m->SecondName) { $m->SecondName = $cryptId; } } if ($vars["LastName"] != "cryptedhidden") { MOD_crypt::NewReplaceInCrypted($this->dao->escape(strip_tags($vars['LastName'])), "members.LastName", $IdMember, $m->LastName, $IdMember, $this->ShallICrypt($vars, "LastName")); } if ($vars["Zip"] != "cryptedhidden") { $this->logWrite("in members.model updateprofile() Before Zip update addresss.Zip=" . $m->address->Zip, "Debug"); $cryptId = MOD_crypt::NewReplaceInCrypted($this->dao->escape(strip_tags($vars['Zip'])), "addresses.Zip", $m->IdAddress, $m->address->Zip, $IdMember, $this->ShallICrypt($vars, "Zip")); // Update addresses table if a new crypted zip value was added if ($cryptId != $m->address->Zip) { $m->setCryptedZip($cryptId); } $this->logWrite("in members.model updateprofile() After Zip update addresss.Zip=" . $m->address->Zip . " \$cryptId=" . $cryptId, "Debug"); } if ($vars["HouseNumber"] != "cryptedhidden") { $cryptId = MOD_crypt::NewReplaceInCrypted($this->dao->escape(strip_tags($vars['HouseNumber'])), "addresses.HouseNumber", $m->IdAddress, $m->address->HouseNumber, $IdMember, $this->ShallICrypt($vars, "Address")); // Update addresses table if a new crypted HouseNumber value was added if ($cryptId != $m->address->HouseNumber) { $m->setCryptedHouseNumber($cryptId); } } if ($vars["Street"] != "cryptedhidden") { $cryptId = MOD_crypt::NewReplaceInCrypted($this->dao->escape(strip_tags($vars['Street'])), "addresses.StreetName", $m->IdAddress, $m->address->StreetName, $IdMember, $this->ShallICrypt($vars, "Address")); // Update addresses table if a new crypted StreetName value was added if ($cryptId != $m->address->StreetName) { $m->setCryptedStreetName($cryptId); } } // Check relations, and update them if they have changed $Relations = $m->get_all_relations(); foreach ($Relations as $Relation) { if ($words->mInTrad($Relation->Comment, $vars['profile_language']) != $vars["RelationComment_" . $Relation->id] and !empty($vars["RelationComment_" . $Relation->id])) { // echo "Relation #".$Relation->id,"<br />", $words->mInTrad($Relation->Comment,$vars['profile_language']),"<br />",$vars['RelationComment_'.$Relation->id],"<br />" ; $IdTrad = $words->ReplaceInMTrad(strip_tags($vars["RelationComment_" . $Relation->id]), "specialrelations.Comment", $Relation->id, $Relation->Comment, $IdMember); // Empty comments have trad id 0. Causing ReplaceInMTrad to create // a new trad id and returning the new number. if ($IdTrad != $Relation->id) { $m->update_relation($Relation->id, $IdTrad); } $this->logWrite("updating relation #" . $Relation->id . " Relation Confirmed=" . $Relation->Confirmed, "Profile update"); } } // Check groups membership description, and update them if they have changed // Tod od with Peter: check if there is other feature to update a group membership (a groupmembership model for example, or entity) /* group membership should not be present here, disabled for now $Groups=$m->getGroups() ; for ($i = 0; $i < count($Groups) ; $i++) { $group=$Groups[$i] ; $group_id = $group->getPKValue() ; $group_name_translated = $words->get("Group_".$group->Name); $group_comment_translated = htmlspecialchars($words->mInTrad($m->getGroupMembership($group)->Comment,$vars['profile_language']), ENT_QUOTES); $IdMemberShip=$m->getGroupMembership($group)->id ; if (($words->mInTrad($m->getGroupMembership($group)->Comment,$vars['profile_language'])!=$vars["GroupMembership_".$IdMemberShip]) and (!empty($vars["GroupMembership_".$IdMemberShip]))) { echo "Group #".$group_id,"<br />",$words->mInTrad($m->getGroupMembership($group)->Comment,$vars['profile_language']),"<br />",$vars["GroupMembership_".$IdMemberShip],"<br />" ; $words->ReplaceInMTrad(strip_tags($vars["GroupMembership_".$IdMemberShip]),"membersgroups.Comment", $IdMemberShip, $m->getGroupMembership($group)->Comment, $IdMember); $this->logWrite("updating membership description in group #".$group_id." Group name=".$group->name, "Profil update"); } } */ // if a member with status NeedMore updates her/his profile, moving them back to pending if ($m->Status == 'NeedMore') { $m->Status = 'Pending'; } $status = $m->update(); if (!empty($_FILES['profile_picture']) && !empty($_FILES['profile_picture']['tmp_name'])) { if (isset($_FILES['profile_picture']) && $_FILES['profile_picture']['error'] == 0) { $this->avatarMake($vars['memberid'], $_FILES['profile_picture']['tmp_name']); } } if ($IdMember == $_SESSION['IdMember']) { $this->logWrite("Profile update by member himself [Status={$m->Status}]", "Profile update"); } else { $this->logWrite("update of another profile <b>" . $m->Username . "</b>", "Profile update"); // It can be an admin update or a delegated translation update } return $status; }
/** * Index function * * Currently the index consists of following possible requests: * register - registration form to page content * confirm - confirmation redirect to signup * * @param void */ public function index($args = false) { // In case Signup is closed if (isset($_SESSION['Param']->FeatureSignupClose) && $_SESSION['Param']->FeatureSignupClose == "Yes") { return new SignupClosedPage(); } /* * Enable to check against DNS Blocklists if (MOD_dnsblock::get()->checkRemoteIp()) { return new SignupDNSBlockPage(); } */ $request = $args->request; $model = new SignupModel(); if (isset($_SESSION['IdMember']) && !MOD_right::get()->hasRight('words')) { if (!isset($_SESSION['Username'])) { unset($_SESSION['IdMember']); $page = new SignupProblemPage(); } else { $this->redirect('members/' . $_SESSION['Username']); } } else { switch (isset($request[1]) ? $request[1] : '') { // copied from TB: // checks e-mail address for validity and availability case 'checkemail': // ignore current request, so we can use the last request PRequest::ignoreCurrentRequest(); if (!isset($_GET['email'])) { echo '0'; PPHP::PExit(); } if (!PFunctions::isEmailAddress($_GET['email'])) { echo '0'; PPHP::PExit(); } $users = $model->takeCareForNonUniqueEmailAddress($_GET['email']); if ($users == '') { echo "1"; } else { echo "0"; } PPHP::PExit(); break; // copied from TB: rewiewed by JeanYves // checks Username for validity and availability // copied from TB: rewiewed by JeanYves // checks Username for validity and availability case 'checkhandle': // ignore current request, so we can use the last request PRequest::ignoreCurrentRequest(); if (!isset($request[2])) { echo '0'; PPHP::PExit(); } if (!preg_match(User::HANDLE_PREGEXP, $request[2])) { echo '0'; PPHP::PExit(); } if (strpos($request[2], 'xn--') !== false) { // Don't allow IDN-Prefixes echo '0'; PPHP::PExit(); } echo (bool) (!$model->UsernameInUse($request[2])); PPHP::PExit(); break; case 'getRegions': // ignore current request, so we can use the last request PRequest::ignoreCurrentRequest(); if (!isset($request[2])) { PPHP::PExit(); } case 'terms': MOD_log::get()->write("Viewing terms", "Signup"); // the termsandconditions popup $page = new SignupTermsPopup(); break; case 'privacy': MOD_log::get()->write("Viewing privacy", "Signup"); $page = new SignupPrivacyPopup(); break; case 'confirm': // or give it a different name? // this happens when you click the link in the confirmation email if (!isset($request[2]) || !isset($request[3]) || !preg_match(User::HANDLE_PREGEXP, $request[2]) || !$model->UsernameInUse($request[2]) || !preg_match('/^[a-f0-9]{16}$/', $request[3])) { $error = 'InvalidLink'; } else { $error = $model->confirmSignup($request[2], $request[3]); } $page = new SignupMailConfirmPage(); $page->error = $error; break; case 'resendmail': // shown when clicking on the link in the MailToConfirm error message $error = ''; if (!isset($request[2])) { $error = 'InvalidLink'; } else { $resent = $model->resendConfirmationMail($request[2]); if ($resent !== true) { $error = $resent; } } $page = new SignupResentMailPage(); $page->error = $error; break; case 'finish': $page = new SignupFinishPage(); break; default: $page = new SignupPage(); $page->step = isset($request[1]) && $request[1] ? $request[1] : '1'; $StrLog = "Entering Signup step: #" . $page->step; MOD_log::get()->write($StrLog, "Signup"); $page->model = $model; } } return $page; }
/** * this function load the list of the polls with a certain status * @PollStatus is the statuis which allow to filter for the status of some poll **/ function LoadList($PollStatus = "") { $words = new MOD_words(); if (empty($PollStatus)) { $where = ""; } else { $where = " where polls.Status='" . $PollStatus . "'"; } $sQuery = "select polls.*,members.Username as 'CreatorUsername' from (polls) "; $sQuery .= " left join members on members.id=polls.IdCreator "; $sQuery .= " left join groups on groups.id=polls.IdGroupCreator "; $sQuery = $sQuery . $where . " order by polls.created desc"; $tt = array(); $qry = $this->dao->query($sQuery); if (!$qry) { throw new PException('polls::LLoadList Could not retrieve the polls!'); } if (isset($_SESSION["IdMember"])) { $IdMember = $_SESSION["IdMember"]; } else { $IdMember = 0; } // for all the records while ($rr = $qry->fetch(PDB::FETCH_OBJ)) { // If there is a group list, test if the current member is in the group list if (!$this->IsMemberAllowed($rr)) { continue; // Skip this record } if (!empty($rr->IdGroupCreator)) { // In case the polls is created by a group find back the name of this group $rGroup = $this->singleLookup("select * from groups where id=" . $rr->IdGroupCreator); $rr->GroupCreatorName = $words->getFormatted("Group_" . $rGroup->Name); } $rContrib = $this->singleLookup("select count(*) as cnt from polls_contributions where IdPoll=" . $rr->id); $rr->NbContributors = $rContrib->cnt; // This is the logic for the possible action (may be this could be better in the controller) $rr->PossibleActions = "<ul>"; // Only owner of admin with proper right can update the poll if (isset($_SESSION["IdMember"]) and $rr->IdCreator == $_SESSION["IdMember"] and $rr->Status == "Projet" or MOD_right::get()->HasRight("Poll", "update")) { $rr->PossibleActions = $rr->PossibleActions . "<li><a href=\"polls/update/" . $rr->id . "\">" . $words->getFormatted("polls_adminlink") . "</a></li>"; } if ($this->HasAlreadyContributed($rr->id, "", $_SESSION["IdMember"])) { $rr->PossibleActions = $words->getFormatted("polls_youhavealreadyvoted"); if ($rr->CanChangeVote == "Yes" and $rr->Status == "Open") { $rr->PossibleActions .= "<li<a href=\"polls/cancelvote/" . $rr->id . "\">" . $words->getFormatted("polls_remove_vote") . "</a></li>"; } if ($rr->ResultsVisibility == "VisibleAfterVisit" and $rr->Status != "Closed") { $rr->PossibleActions = $rr->PossibleActions . "<li><a href=\"polls/seeresults/" . $rr->id . "\">" . $words->getFormatted("polls_seeresults") . "</li>"; } } if ($this->CanUserContribute($rr->id, "", $_SESSION["IdMember"])) { $rr->PossibleActions = $rr->PossibleActions . "<li><a href=\"polls/contribute/" . $rr->id . "\">" . $words->getFormatted("polls_contribute") . "</li>"; } if ($rr->Status == "Closed") { $rr->PossibleActions .= "<li><a href=\"polls/results/" . $rr->id . "\">" . $words->getFormatted("polls_seeresults") . "</li>"; } $rr->PossibleActions .= "</ul>"; array_push($tt, $rr); } return $tt; }
/** * Delete several selfuploaded pictures as loggedin owner or with gallery rights * * @access public * @param Object $image Image to be deleted * @return boolean */ public function deleteMultiple($images) { if (!($member = $this->getLoggedInMember())) { return false; } $R = MOD_right::get(); $GalleryRight = $R->hasRight('Gallery'); foreach ($images as $image) { if (!$image) { return false; } if ($member->get_userid() == $this->imageGalleryOwner('image', $image) || $GalleryRight > 1) { $image = $this->imageData($image); // Log the deletion to prevent admin abuse MOD_log::get()->write("Deleting multiple gallery items #" . $image->id . " filename: " . $image->file . " belonging to user: "******"Gallery"); $this->deleteThisImage($image); } else { return false; } } }
/** * This method is called when a translator says "rox/trmode/.." * TODO: Better do this in a model class * * @param string $tr_mode */ private function _switchTrMode($tr_mode) { if (!MOD_right::get()->hasRight('Words')) { $_SESSION['tr_mode'] = 'browse'; return; } switch ($tr_mode) { case 'browse': case 'translate': case 'edit': $_SESSION['tr_mode'] = $tr_mode; break; default: // don't change tr mode } }
<a style="display:inline" href="http://trac.bewelcome.org/">BW Rox</a> rev. <a href="http://github.com/BeWelcome/rox/commit/<?php echo $versionInfo; ?> "><?php echo $versionInfo; ?> </a> (<span title="<?php echo $deploymentDateTime; ?> "><?php echo $deploymentDate; ?> </span>)</em></p> <?php // List of DB queries with execution time if (PVars::get()->debug) { $R = MOD_right::get(); if ($R->HasRight("Debug", "DB_QUERY")) { ?> <p> <a style="cursor:pointer;" onclick="$('query_list').toggle();">DB queries</a> </p> <div id='query_list' style="display:none;"> <?php foreach ($query_list as $key => $query) { echo $key + 1 . ": {$query}<br />\n"; } } }
/** * configure the sidebar */ protected function leftSidebar() { if (MOD_right::get()->hasRight('Debug')) { require 'templates/adminbar.php'; } }
/** * handles edit profile form post - profile updating * * @param object $args * @param object $action * @param object $mem_redirect * @param object $mem_resend * @access public * @return string */ public function editMyProfileCallback($args, $action, $mem_redirect, $mem_resend) { if (isset($args->post)) { $vars = $this->cleanVars($args->post); $request = $args->request; $errors = $this->model->checkProfileForm($vars); $uploadFailed = false; if (in_array('UploadedProfileImageTooBig', $errors) === false || in_array('ProfileImageUploadFailed', $errors) === false) { $uploadFailed = true; } else { // check if uploaded file is image $img = new MOD_images_Image($_FILES['profile_picture']['tmp_name']); if (!$img->isImage()) { $errors[] = 'ProfileUploadNotImage'; $uploadFailed = true; } } $vars['errors'] = array(); if (count($errors) > 0) { $vars['errors'] = $errors; // Activate fieldset tab "Contact Info" if needed. if (in_array('SignupErrorInvalidBirthDate', $vars['errors']) === false && $uploadFailed === false) { $vars['activeFieldset'] = 'contactinfo'; } // show form again $mem_redirect->post = $vars; return false; } $rights = new MOD_right(); if (!($rights->hasRight('Admin') || $rights->hasRight('SafetyTeam'))) { $vars['memberid'] = $this->model->getLoggedInMember()->getPKValue(); } $vars['member'] = $this->getMember($vars['memberid']); $vars = $this->model->polishProfileFormValues($vars); $success = $this->model->updateProfile($vars); if (!$success) { $mem_redirect->problems = array('Could not update profile'); } // Redirect to a nice location like editmyprofile/finish $str = implode('/', $request); if (in_array('finish', $request)) { return $str; } return $str . '/finish'; } }
public function editCodeFormCheck($form) { $errors = array(); $rights = MOD_right::get(); $wordLevel = $rights->hasRight('Words'); switch ($form['DOACTION']) { case 'Submit': if ($wordLevel >= 10) { $errors = $this->createCodeFormCheck($form); } if (empty($form['changetype'])) { $errors[] = 'AdminWordErrorChangeTypeEmpty'; } break; case 'Back': break; } return $errors; }
the Free Software Foundation; either version 2 of the License, or (at your option) any later version. BW Rox is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, see <http://www.gnu.org/licenses/> or write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /** * @author Matthias Heß <globetrotter_tt> */ $words = new MOD_words(); $userRights = MOD_right::get(); $scope = $userRights->RightScope('Comments'); ?> <h3><?php echo $words->get('Action'); ?> </h3> <ul class="linklist"> <li><a href="<?php echo $this->router->url('admin_comments_list_subset', array('subset' => 'negative')); ?> ">Negative comments</a></li> <?php if ($scope == "AdminAbuser" || $scope == '"All"') { ?>
/** * singleton getter * * @param void * @return PApps */ public static function get() { if (!isset(self::$_instance_right)) { $c = __CLASS__; self::$_instance_right = new $c(); } return self::$_instance_right; }
/** */ public function index() { $vw = new ViewWrap($this->_view); $P = PVars::getObj('page'); // First check if the feature is closed if ($_SESSION["Param"]->FeatureSearchPageIsClosed != 'No') { $P->content = $this->_view->showFeatureIsClosed(); return; } // end of test "if feature is closed" if (PPostHandler::isHandling()) { return; } $request = PRequest::get()->request; if (!isset($request[1])) { $request[1] = ''; } // Route quicksearch if ($request[0] == 'quicksearch') { $error = false; // static pages switch ($request[1]) { case '': $searchtext = isset($_GET["vars"]) ? $_GET['vars'] : ''; // Because of old way to use the QuickSearch with a get break; default: $searchtext = $request[1]; break; } $TReturn = $this->_model->quicksearch($searchtext); if (count($TReturn->TMembers) == 1 and count($TReturn->TPlaces) == 0 and count($TReturn->TForumTags) == 0) { $loc = "members/" . $TReturn->TMembers[0]->Username; header('Location: ' . $loc); PPHP::PExit(); } else { if (count($TReturn->TMembers) == 0 and count($TReturn->TPlaces) == 1 and count($TReturn->TForumTags) == 0) { $loc = $TReturn->TPlaces[0]->link; header('Location: ' . $loc); PPHP::PExit(); } else { if (count($TReturn->TMembers) == 0 and count($TReturn->TPlaces) == 0 and count($TReturn->TForumTags) == 1) { $loc = "forums/t" . $TReturn->TForumTags[0]->IdTag; header('Location: ' . $loc); PPHP::PExit(); } } } $P->content .= $vw->quicksearch_results($TReturn); return $P; } if ($request[0] != 'searchmembers') { header('Location: searchmembers'); PPHP::PExit(); } // fix a problem with Opera javascript, which sends a 'searchmembers/searchmembers/ajax' request if ($request[1] === 'searchmembers') { $request = array_slice($request, 1); } // default mapstyle: $mapstyle = 'mapon'; $queries = ''; $varsOnLoad = ''; $varsGet = ''; if (isset($request[1])) { switch ($request[1]) { case 'mapoff': $mapstyle = "mapoff"; $_SESSION['SearchMembersTList'] = array(); break; case 'mapon': $mapstyle = "mapon"; $_SESSION['SearchMembersTList'] = array(); break; case 'queries': if (PVars::get()->debug) { $R = MOD_right::get(); if ($R->HasRight("Debug", "DB_QUERY")) { $queries = true; $mapstyle = "mapoff"; } } break; default: if (isset($_SESSION['SearchMapStyle']) and $_SESSION['SearchMapStyle']) { $mapstyle = $_SESSION['SearchMapStyle']; } break; } } // Store the MapStyle in session $_SESSION['SearchMapStyle'] = $mapstyle; // Check wether there are latest search results and variables from the session if (!$queries && isset($_SESSION['SearchMembersTList'])) { if ($_SESSION['SearchMembersTList'] && $_SESSION['SearchMembersVars']) { $varsOnLoad = $_SESSION['SearchMembersVars']; } } switch ($request[1]) { case 'ajax': if (isset($request[2]) and $request[2] == "varsonload") { $vars['varsOnLoad'] = true; // Read the latest search results and variables from the session if (!empty($_SESSION['SearchMembersTList'])) { $TList = $_SESSION['SearchMembersTList']; } if (!empty($_SESSION['SearchMembersVars'])) { $vars = $_SESSION['SearchMembersVars']; } if (isset($request[3])) { $vars['OrderBy'] = $request[3]; $TList = $this->_model->search($vars); } } else { $vars = isset($_GET) ? $_GET : array(); if (isset($request[2]) && $request[2] == "queries") { $vars['queries'] = true; } if (!isset($TList)) { $TList = $this->_model->search($vars); } } $this->_view->searchmembers_ajax($TList, $vars, $mapstyle); // Store latest search results and variables in session $_SESSION['SearchMembersTList'] = $TList; $_SESSION['SearchMembersVars'] = $vars; PPHP::PExit(); break; /* quicksearch shouldn't go through this route case 'quicksearch': $mapstyle = "mapoff"; // First check if the QuickSearch feature is closed if ($_SESSION["Param"]->FeatureQuickSearchIsClosed!='No') { $this->_view->showFeatureIsClosed(); PPHP::PExit(); break ; } // end of test "if QuickSearch feature is closed" if (isset($request[2])) { // The parameter to search for can be for the form searchmember/quicksearch/ value $searchtext=$request[2] ; } if (isset($_GET['searchtext'])) { // The parameter can come from the main menu $searchtext = $_GET['searchtext']; } if (isset($_POST['searchtext'])) { // The parameter can come from the quicksearch form $searchtext = $_POST['searchtext']; } // die('here searchtext={'.$searchtext.'}') ; if (!empty($searchtext)) { $TReturn=$this->_model->quicksearch($searchtext) ; if ((count($TReturn->TMembers)==1) and (count($TReturn->TPlaces)==0) and (count($TReturn->TForumTags)==0)) { $loc="members/".$TReturn->TMembers[0]->Username ; header('Location: '.$loc); PPHP::PExit(); } else if ((count($TReturn->TMembers)==0) and (count($TReturn->TPlaces)==1) and (count($TReturn->TForumTags)==0)) { $loc=$TReturn->TPlaces[0]->link ; header('Location: '.$loc); PPHP::PExit(); } else if ((count($TReturn->TMembers)==0) and (count($TReturn->TPlaces)==0) and (count($TReturn->TForumTags)==1)) { $loc="forums/t".$TReturn->TForumTags[0]->IdTag ; header('Location: '.$loc); PPHP::PExit(); } $P->content .= $vw->quicksearch_results($TReturn); } else { $vars = PPostHandler::getVars('quicksearch_callbackId'); PPostHandler::clearVars('quicksearch_callbackId'); // first include the col2-stylesheet $P->addStyles .= $this->_view->customStyles($mapstyle,$quicksearch=1); // now the teaser content $P->teaserBar .= $vw->teaserquicksearch($mapstyle); $P->content .= $vw->quicksearch_form(); } break; // Backwards compatibility case 'index': $loc = PVars::getObj('env')->baseuri; $loc .= 'searchmembers'; if(isset($request[2])) {$loc .= '/'.$request[2];} elseif(isset($request[3])) {$loc .= '/'.$request[3];} header('Location: '.$loc); PPHP::PExit(); break; */ /* quicksearch shouldn't go through this route case 'quicksearch': $mapstyle = "mapoff"; // First check if the QuickSearch feature is closed if ($_SESSION["Param"]->FeatureQuickSearchIsClosed!='No') { $this->_view->showFeatureIsClosed(); PPHP::PExit(); break ; } // end of test "if QuickSearch feature is closed" if (isset($request[2])) { // The parameter to search for can be for the form searchmember/quicksearch/ value $searchtext=$request[2] ; } if (isset($_GET['searchtext'])) { // The parameter can come from the main menu $searchtext = $_GET['searchtext']; } if (isset($_POST['searchtext'])) { // The parameter can come from the quicksearch form $searchtext = $_POST['searchtext']; } // die('here searchtext={'.$searchtext.'}') ; if (!empty($searchtext)) { $TReturn=$this->_model->quicksearch($searchtext) ; if ((count($TReturn->TMembers)==1) and (count($TReturn->TPlaces)==0) and (count($TReturn->TForumTags)==0)) { $loc="members/".$TReturn->TMembers[0]->Username ; header('Location: '.$loc); PPHP::PExit(); } else if ((count($TReturn->TMembers)==0) and (count($TReturn->TPlaces)==1) and (count($TReturn->TForumTags)==0)) { $loc=$TReturn->TPlaces[0]->link ; header('Location: '.$loc); PPHP::PExit(); } else if ((count($TReturn->TMembers)==0) and (count($TReturn->TPlaces)==0) and (count($TReturn->TForumTags)==1)) { $loc="forums/t".$TReturn->TForumTags[0]->IdTag ; header('Location: '.$loc); PPHP::PExit(); } $P->content .= $vw->quicksearch_results($TReturn); } else { $vars = PPostHandler::getVars('quicksearch_callbackId'); PPostHandler::clearVars('quicksearch_callbackId'); // first include the col2-stylesheet $P->addStyles .= $this->_view->customStyles($mapstyle,$quicksearch=1); // now the teaser content $P->teaserBar .= $vw->teaserquicksearch($mapstyle); $P->content .= $vw->quicksearch_form(); } break; // Backwards compatibility case 'index': $loc = PVars::getObj('env')->baseuri; $loc .= 'searchmembers'; if(isset($request[2])) {$loc .= '/'.$request[2];} elseif(isset($request[3])) {$loc .= '/'.$request[3];} header('Location: '.$loc); PPHP::PExit(); break; */ default: $words = new MOD_words(); $P->addStyles = $this->_view->customStyles($mapstyle); $google_conf = PVars::getObj('config_google'); $P->title = $words->getBuffered('searchmembersTitle') . " - BeWelcome"; $P->currentTab = 'searchmembers'; $P->currentSubTab = 'searchmembers'; $subTab = 'index'; // prepare sort order for both the filters and the userbar $sortorder = $this->_model->get_sort_order(); $P->teaserBar = $vw->teaser($mapstyle, $sortorder, $varsOnLoad); $P->teaserBar .= $vw->searchmembersFilters($this->_model->sql_get_groups(), $this->_model->sql_get_set("members", "Accomodation"), $this->_model->sql_get_set("members", "TypicOffer"), $sortorder); $P->content = $vw->search_column_col3($sortorder, $queries, $mapstyle, $varsOnLoad, $varsGet, $this->_model->sql_get_set("members", "Accomodation")); /*$P->content = $vw->memberlist($mapstyle,$sortorder); $P->content .= $vw->searchmembers( $queries, $mapstyle, $varsOnLoad, $varsGet, $this->_model->sql_get_set("members", "Accomodation") ); */ $P->show_volunteerbar = false; break; } }
/** * Returns an array with the mist of X latest donations (all donation in case the current user has Treasurer rights) * */ public function getDonations() { $TDonations = array(); $R = MOD_right::get(); $hasRight = $R->hasRight('Treasurer'); if ($hasRight) { $query = "SELECT * FROM donations ORDER BY created DESC"; } else { $query = "SELECT * FROM donations ORDER BY created DESC LIMIT 10"; } $result = $this->dao->query($query); while ($row = $result->fetch(PDB::FETCH_OBJ)) { array_push($TDonations, $row); } return $TDonations; }
public function getWiki($page, $title = true) { global $ewiki_db, $ewiki_links, $ewiki_plugins, $ewiki_ring, $ewiki_t, $ewiki_errmsg, $ewiki_data, $ewiki_title, $ewiki_id, $ewiki_action, $ewiki_config, $ewiki_author; // Some settings define("EWIKI_NAME", "BeWelcome Wiki"); define('EWIKI_SCRIPT', 'wiki/'); define("EWIKI_SPLIT_TITLE", 1); define("EWIKI_SCRIPT_URL", PVars::getObj("env")->baseuri . 'wiki/'); # absolute URL define("EWIKI_SCRIPT_BINARY", 0); define("EWIKI_PROTECTED_MODE", 1); define("EWIKI_RESCUE_HTML", 1); define("EWIKI_URLENCODE", 0); define("EWIKI_URLDECODE", 0); define("EWIKI_ALLOW_HTML", 1); define("EWIKI_DESC", "Document and share content about hospitality exchange and travel on bewelcome.org"); # site description define("EWIKI_COPY", "PrimarilyPublicDomain"); # site copyright define("EWIKI_CATEGORY", "Hospitality Exchange"); # site subject define("EWIKI_LOGO_URL", "http://www.bewelcome.org/images/logo_index_top.png"); if (!$title) { define("EWIKI_PRINT_TITLE", 0); } # <h2>WikiPageName</h2> on top // Authentification require_once "erfurtwiki/plugins/auth/auth_perm_ring.php"; $ewiki_perm_rings['rss'] = 3; $model = new MembersModel(); $member = $model->getLoggedInMember(); $Right = new MOD_right(); if ($member && $Right->hasRight('Admin', 'Wiki')) { $ewiki_author = $member->Username; define("EWIKI_AUTH_DEFAULT_RING", 0); // 0 = admin } elseif ($member) { $ewiki_author = $member->Username; define("EWIKI_AUTH_DEFAULT_RING", 2); // 2 = edit allowed } else { $ewiki_author = 'guest'; define("EWIKI_AUTH_DEFAULT_RING", 3); // 3 = read/view/browse-only } $this->defineMarkup($ewiki_config); // More plugins require_once "erfurtwiki/plugins/aview/toc.php"; // Table of contents $ewiki_plugins["view_final"][] = "ewiki_add_title"; require_once "erfurtwiki/plugins/markup/mediawiki.php"; // load our own mediawiki plugin require_once "erfurtwiki/plugins/aview/fpage_copyright.php"; // Copyleft Info require_once "erfurtwiki/plugins/markup/bbcode.php"; // BBcode plugin require_once "erfurtwiki/plugins/markup/smilies.php"; // smilies ;) require_once "erfurtwiki/plugins/markup/rescuehtml.php"; // safe html tags ;) require_once "erfurtwiki/plugins/admin/control.php"; // load some plugins require_once "erfurtwiki/plugins/action/diff.php"; // stupid diff ;) require_once "erfurtwiki/plugins/action/info_qdiff.php"; // quick diff require_once "erfurtwiki/plugins/linking/titlefix.php"; // quick diff // require_once("erfurtwiki/plugins/markup/htmltable.php"); // quick diff // require_once("erfurtwiki/plugins/action/verdiff.php"); // version diff - not needed right now!? // RSS support require_once "erfurtwiki/plugins/lib/feed.php"; // load our own mediawiki plugin require_once "erfurtwiki/plugins/action/rss.php"; // load our own mediawiki plugin // Static pages require_once "erfurtwiki/plugins/page/wikinews.php"; // load some plugins require_once "erfurtwiki/plugins/page/recentchanges.php"; // load some plugins require_once "erfurtwiki/plugins/page/powersearch.php"; // load some plugins require_once "erfurtwiki/plugins/page/wantedpages.php"; // load some plugins require_once "erfurtwiki/plugins/page/orphanedpages.php"; // load some plugins require_once "erfurtwiki/plugins/page/recentchanges.php"; // load some plugins // require_once("erfurtwiki/plugins/aview/control2.php"); // quick diff require_once 'erfurtwiki/ewiki.php'; $ewiki_config["smilies"] = array(":)" => "emoticon_happy.png", ";)" => "emoticon_grin.png", ":D" => "emoticon_smile.png"); $wiki = ewiki_page($page); echo $wiki; }
protected function editMyProfileFormPrepare($member) { $member->setEditMode(true); $Rights = MOD_right::get(); $lang = $this->model->get_profile_language(); $profile_language = $lang->id; $profile_language_code = $lang->ShortCode; $profile_language_name = $lang->Name; $all_spoken_languages = $this->sortLanguages($member->get_all_spoken_languages()); $all_signed_languages = $this->sortLanguages($member->get_all_signed_languages()); $layoutkit = $this->layoutkit; $formkit = $layoutkit->formkit; $ReadCrypted = 'MemberReadCrypted'; if ($this->adminedit) { $ReadCrypted = 'AdminReadCrypted'; } $vars = array(); // Prepare $vars $vars['ProfileSummary'] = $member->ProfileSummary > 0 ? $member->get_trad('ProfileSummary', $profile_language) : ''; $vars['BirthDate'] = $member->BirthDate; list($vars['BirthYear'], $vars['BirthMonth'], $vars['BirthDay']) = explode('-', $member->BirthDate); $vars['HideBirthDate'] = $member->HideBirthDate; $vars['Occupation'] = $member->Occupation > 0 ? $member->get_trad('Occupation', $profile_language) : ''; $vars['Gender'] = $member->Gender; $vars['HideGender'] = $member->HideGender; if ($vars['Gender'] == 'IDontTell') { $vars['Gender'] = 'other'; $vars['HideGender'] = true; } $vars['language_levels'] = $member->language_levels; $vars['languages_all_spoken'] = $all_spoken_languages; $vars['languages_all_signed'] = $all_signed_languages; $vars['languages_selected'] = $member->languages_spoken; $vars['FirstName'] = $member->get_firstname(); $vars['SecondName'] = $member->get_secondname(); $vars['LastName'] = $member->get_lastname(); $vars['HouseNumber'] = $member->get_housenumber(); $vars['Street'] = $member->get_street(); $vars['Zip'] = $member->get_zip(); $vars['IsHidden_FirstName'] = MOD_crypt::IsCrypted($member->FirstName); $vars['IsHidden_SecondName'] = MOD_crypt::IsCrypted($member->SecondName); $vars['IsHidden_LastName'] = MOD_crypt::IsCrypted($member->LastName); $vars['IsHidden_Address'] = MOD_crypt::IsCrypted($member->address->StreetName); $vars['IsHidden_Zip'] = MOD_crypt::IsCrypted($member->address->Zip); $vars['IsHidden_HomePhoneNumber'] = MOD_crypt::IsCrypted($member->HomePhoneNumber); $vars['IsHidden_CellPhoneNumber'] = MOD_crypt::IsCrypted($member->CellPhoneNumber); $vars['IsHidden_WorkPhoneNumber'] = MOD_crypt::IsCrypted($member->WorkPhoneNumber); $vars['HomePhoneNumber'] = $member->HomePhoneNumber > 0 ? MOD_crypt::$ReadCrypted($member->HomePhoneNumber) : ''; $vars['CellPhoneNumber'] = $member->CellPhoneNumber > 0 ? MOD_crypt::$ReadCrypted($member->CellPhoneNumber) : ''; $vars['WorkPhoneNumber'] = $member->WorkPhoneNumber > 0 ? MOD_crypt::$ReadCrypted($member->WorkPhoneNumber) : ''; $vars['Email'] = $member->Email > 0 ? MOD_crypt::$ReadCrypted($member->Email) : ''; $vars['WebSite'] = $member->WebSite; $vars['messengers'] = $member->messengers(); $vars['Accomodation'] = $member->Accomodation; $vars['MaxGuest'] = $member->MaxGuest; $vars['MaxLenghtOfStay'] = $member->get_trad("MaxLenghtOfStay", $profile_language); $vars['ILiveWith'] = $member->get_trad("ILiveWith", $profile_language); $vars['PleaseBring'] = $member->get_trad("PleaseBring", $profile_language); $vars['OfferGuests'] = $member->get_trad("OfferGuests", $profile_language); $vars['OfferHosts'] = $member->get_trad("OfferHosts", $profile_language); $vars['TabTypicOffer'] = $member->TabTypicOffer; $vars['PublicTransport'] = $member->get_trad("PublicTransport", $profile_language); $vars['TabRestrictions'] = $member->TabRestrictions; $vars['OtherRestrictions'] = $member->get_trad("OtherRestrictions", $profile_language); $vars['AdditionalAccomodationInfo'] = $member->get_trad("AdditionalAccomodationInfo", $profile_language); $vars['OfferHosts'] = $member->get_trad("OfferHosts", $profile_language); $vars['Hobbies'] = $member->get_trad("Hobbies", $profile_language); $vars['Books'] = $member->get_trad("Books", $profile_language); $vars['Music'] = $member->get_trad("Music", $profile_language); $vars['Movies'] = $member->get_trad("Movies", $profile_language); $vars['Organizations'] = $member->get_trad("Organizations", $profile_language); $vars['PastTrips'] = $member->get_trad("PastTrips", $profile_language); $vars['PlannedTrips'] = $member->get_trad("PlannedTrips", $profile_language); $vars['Relations'] = $member->get_all_relations(); $vars['Groups'] = $member->getGroups(); if (!($memory = $formkit->getMemFromRedirect())) { // no memory // echo 'no memory'; } else { // from previous form if ($memory->post) { $post = $memory->post; foreach ($post as $key => $value) { $vars[$key] = $value; } // update $vars for messengers if (isset($vars['messengers'])) { $ii = 0; foreach ($vars['messengers'] as $me) { $val = 'chat_' . $me['network_raw']; $vars['messengers'][$ii++]['address'] = $vars[$val]; } } // update $vars for $languages if (!isset($vars['languages_selected'])) { $vars['languages_selected'] = array(); } $ii = 0; $ii2 = 0; $lang_used = array(); foreach ($vars['memberslanguages'] as $lang) { if (ctype_digit($lang) and !in_array($lang, $lang_used)) { // check $lang is numeric, hence a legal IdLanguage $vars['languages_selected'][$ii]->IdLanguage = $lang; $vars['languages_selected'][$ii]->Level = $vars['memberslanguageslevel'][$ii2]; array_push($lang_used, $vars['languages_selected'][$ii]->IdLanguage); $ii++; } $ii2++; } } // problems from previous form if (is_array($memory->problems)) { require_once 'edit_warning.php'; } } // var_dump($vars); return $vars; }
/** * checks if a member has a certain old-type right * if member has one of the asked for rights returns true * * @param array $rights - array of right/scope pairs to check for * * @access public * @return bool */ public function hasOldRight(array $rights) { if (!$this->isLoaded()) { return false; } $mod_right = new MOD_right(); foreach ($rights as $right => $scope) { if ($mod_right->hasRight($right, $scope, $this->getPKValue())) { return true; } } return false; }
protected function column_col3() { $page_url = PVars::getObj('env')->baseuri . implode('/', PRequest::get()->request); $from = $_SESSION['Username']; $degree = 1; $limit = 50; if ($mem_redirect = $this->layoutkit->formkit->getMemFromRedirect()) { if ($mem_redirect->strerror != "") { echo "<p><font color=red><b>" . $mem_redirect->strerror . "</b></font></p>"; } if ($mem_redirect->from != "") { $from = $mem_redirect->from; } if ($mem_redirect->degree != "") { $degree = $mem_redirect->degree; } if ($mem_redirect->limit != "") { $limit = $mem_redirect->limit; } } echo ' <p> First rough draft for a friends system<br> show friends: list friends for a given username / id and a given distance<br> show links: show one or more links between two given members<br> update links: flush the link database and create new entries <p> <p> So far data from comments and special relations is taken into consideration. <p> <p> Stuff like Preference setting to hide/disable oneself from the link system and more is still needed <p> '; echo ' <p> <form method="POST" action="' . $page_url . '"> ' . $this->layoutkit->formkit->setPostCallback('LinkController', 'LinkShowFriendsCallback') . ' From: <input name="from" value="' . $from . '"/> Degree: <input name="degree" value="' . $degree . '"/> Max Number : <input name="limit" value="' . $limit . '"/> <input type="submit" value="send"/> </form> </p> '; if ($mem_redirect) { // result from calculation echo ' <p> Your Query: Show ' . $mem_redirect->limit . ' Friends of:' . $mem_redirect->from . ' with a distance of: ' . $mem_redirect->degree . ' </p> '; $model = new LinkModel(); if (MOD_right::get()->hasRight('Debug')) { echo "<p>(Debug Right) The IDs for the Friends (retrieved by getFriends): "; foreach ($mem_redirect->friendsIDs as $value) { echo $value . " / "; } echo "</p>"; } // ENd if debug right $friendsData = $mem_redirect->friendsFull; //var_dump($friendsData); require 'templates/linkshowfriendspage_people.php'; } }