コード例 #1
0
 private static function getAgendaRecords($confId = "", $categoryId = "", $show_contributions = FALSE, $show_registrants = FALSE, $show_description = FALSE, $show_speaker_institute = FALSE, $show_slides = FALSE, $select_after = "", $select_before = "")
 {
     $reply = array();
     // -------------------------------------
     // -- Construct $args from indata
     // -------------------------------------
     $args = self::getAgendaAPIstring($confId, $categoryId, $show_contributions, $show_registrants, $show_description, $show_speaker_institute, $show_slides, $select_after, $select_before);
     // -------------------------------------
     // -- Obtain data from cache or from self::getAgendaRawData($args)
     // -------------------------------------
     // -- RESTORE if want to fetch from cache
     /*DEBUG*/
     //self::noCache = TRUE;
     //TODO: try use some other cacheing procedure than the 'cache' class as-is
     //RESTORE//    $cache = new cache('agenda_nordita','session');
     //RESTORE//    if (self::$noCache) $cache->reset();
     //RESTORE//    if ($cache->wasSet($args)) {
     //RESTORE//      $parsedrecords = $cache->get();
     //RESTORE//    } else {
     $rawPage = self::getAgendaRawData($args);
     if (empty($rawPage)) {
         return array();
     }
     $agendaEvents = self::parseAgendaRawDataToArray($rawPage);
     if (!is_array($agendaEvents)) {
         return array();
     }
     //RESTORE//    }
     // -------------------------------------
     // --
     // -------------------------------------
     foreach ($agendaEvents as $thisevent) {
         $thisevent = self::postParseAgendaRecord($thisevent);
         // ------------------------------------------
         // -- Restructure $thisevent into $reply
         // ------------------------------------------
         if (!empty($thisevent["title"])) {
             $startindex = $thisevent["starttime"];
             if (isset($reply[$thisevent["startdate"]][$startindex])) {
                 do {
                     $startindex = date("H:i", strtotime($startindex) + 60);
                 } while (isset($reply[$thisevent["startdate"]][$startindex]));
             }
             $reply[$thisevent["startdate"]][$startindex] = $thisevent;
         }
         // end if
         // -- end insert $thisevent into $reply
         // ------------------------------------------
     }
     // end foreach $thisevent
     // -- put new array into cache
     //RESTORE//    $cache->set($reply);
     if (0 && IS_TESTSERVER) {
         echo "<h1>ARGS</h1>";
         var_dump($args);
         echo "<h1>Raw Page</h1>";
         debug::rr($rawPage);
         //echo "<h1>agendaEvents</h1>";debug::rr($agendaEvents);echo "<hr>";
         echo "<h1>agendaEvents</h1>";
         debug::rr($reply);
         echo "<hr>";
     }
     return $reply;
 }
コード例 #2
0
 function getEventsSocialevents($confid)
 {
     $data = array();
     $sql = "SELECT " . " * " . "FROM " . "  zzz_list_members " . "WHERE " . "  (lm_key = 'Lunch at AlbaNova restaurant') " . "";
     //echo $sql;
     $res = $this->query($sql, IS_TESTSERVER);
     // includes a call to connect
     if ($this->num_rows($res)) {
         while ($record = $this->next_record_assoc($res)) {
             if (IS_TESTSERVER) {
                 debug::rr($record);
             }
             /*
                     $data[$record["lm_id"]] = array(
                       "name"    => $record["lm_key"],
                       "price"   => $record["lm_value"],
                       "startup" => "",
                     );
             */
         }
     }
     return $data;
 }
コード例 #3
0
 public static function isValidPamUser($login, $pwd)
 {
     echo "<hr><h3>IN PAM</h3>";
     if (self::$password_ok) {
         return FALSE;
     }
     //    if (!self::_authenticated()) return FALSE;
     echo "b";
     if (empty($login) || empty($pwd)) {
         echo "<p class='bold red'>Invalid login or pwd</p>";
     }
     if (empty($login) || empty($pwd)) {
         return FALSE;
     }
     echo "c";
     debug::rr(posix_getpwnam($login));
     if (function_exists('pam_auth')) {
         echo "<p>AUTHENTICATED? ";
         var_dump(pam_auth($login, $pwd, self::$authMessage));
         self::$authMessage = "";
         if (pam_auth($login, $pwd, self::$authMessage)) {
             echo "e";
             echo "<p class='bold green'>Accepted pam_auth for {$login} from " . $_SERVER["REMOTE_ADDR"] . "</p>";
             if (self::$checkPwdOnly) {
                 return TRUE;
             }
             /*
             		// So far so good... The authentication is OK, now lets find the Avatar.
             		// This might be a problem if the user might belong to multiple realms,
             		// so lets try all of them
             self::$localAccount = posix_getpwnam($login); // array or FALSE
             		if (self::$localAccount) self::$av = bForm_Avatar::hook(array('av_identity'=>$login),'basic');
             		if (is_object(self::$av)){
             		  $dbg_txt = "<br>YES - identity '$login'<br>";
             		} else {
             		  foreach (self::$imapServers as $domain=>$s){
             			foreach(array_merge(array($domain),$s['alias']) as $d) {
             			  if (self::$av = bForm_Avatar::hook($email="$login@$d",'basic')) {
             				$dbg_txt = "<br>YES - $email<br>";
             				break 2;
             			  }
             			}
             		  }
             		}
             		if (is_object(self::$av)){
             		  self::$password_ok = TRUE;
             //self::dbg($dbg_txt);
             		  return $this->_setUser('pam_auth',self::$av->name());
             		}
             echo("<br>$login is authenticated by pam_auth, but Avatar is not found. AUTHENTICATION CANCELED<br>");
             */
         } else {
             echo "<p class='bold red'>Authentication failed<br>MESSAGE: " . self::$authMessage . "</p>";
             return FALSE;
         }
         //self::dbg(False);
     } else {
         echo "<p class='bold red'>WARNING pam_auth is not installed</p>";
     }
 }
コード例 #4
0
 public static function getPeopleArrayData($searchVariant = "multiple", $mUser = FALSE, $mStatus = "active", $mInstitute = "NOR", $stopOnError = IS_TESTSERVER, $sourceDb = PEOPLE_DATA_SOURCE_DB, $startdate = "", $enddate = "")
 {
     $userarray = array();
     if (empty($sourceDb)) {
         $sourceDb = PEOPLE_DATA_SOURCE_DB;
     }
     // --------------------
     // DETERMINE SOURCE OF PEOPLE DATA
     // PEOPLE_DATA_SOURCE_DB = ["maildb"|"ea"], set in 'config.php'
     // Currently maildb, but should be E&A
     // --> $GLOBALS["peopleClass"]
     // --------------------
     //if (!isset($GLOBALS["peopleClass"]))
     self::loadClass($sourceDb);
     //DEBUG:
     // self::loadClass("ea");
     // self::loadClass("maildb");
     // --------------------
     // START TIMER
     // --------------------
     functions::timerStart("peopleSearch");
     // ---------------------------------------------------------------------------
     // SELECT APPROPRIATE SQL QUERY
     // If $searchVariant='user', only the record for user $u is selected.
     // --> $sql
     // ---------------------------------------------------------------------------
     switch ($searchVariant) {
         case "multiple":
             $mUser = FALSE;
             $sql = $GLOBALS["peopleClass"]->getSqlForUserRegexp(FALSE, $mStatus, $mInstitute, $startdate, $enddate);
             break;
         case "user":
             $sql = $GLOBALS["peopleClass"]->getSqlForUserMatch($mUser, $mStatus, $mInstitute);
             break;
         case "search":
             if (!isset($GLOBALS["QUERY"])) {
                 search::initiateQueryParameters();
             }
             if (!count($GLOBALS["QUERY"]["terms"])) {
                 return "";
             }
             $sql = $GLOBALS["peopleClass"]->getSqlForUserSearch($GLOBALS["QUERY"], $mStatus, $mInstitute);
             break;
         case "employment":
             $sql = $GLOBALS["peopleClass"]->getSqlForEmployment($mUser, $startdate, $enddate);
             break;
         default:
             $sql = "";
     }
     // --------------------
     // OBTAIN DATA FROM DATABASE
     // --> $userarray
     // --------------------
     $rawuserarray = $GLOBALS["peopleClass"]->fetchRawUserArray($sql, $stopOnError);
     //DESPERATE BUGFIX--
     if ($searchVariant == "user" && count($rawuserarray) > 1) {
         foreach ($rawuserarray as $key => $data) {
             if (!in_array($mUser, array($key, $data["user"]))) {
                 unset($rawuserarray[$key]);
             }
         }
     }
     //BUGFIX--; remove once maildb phased out
     /*
     include PATH_DATA . "/adhoc_maildb_data.php"; // --> $maildb[]
     foreach ($maildb as $user => $record) {
     if (($record["status"]==$mStatus) && ($record["institution"]==$mInstitute)) {
     switch ($searchVariant) {
     case "all":
     $rawuserarray[$user] = $record;
     break;
     case "user":
     if ($user==$mUser) $rawuserarray[$user] = $record;
     break;
     case "search":
     //TODO
     break;
     }
     }
     }
     */
     //--end BUGFIX
     if (!empty($rawuserarray)) {
         $userarray = $GLOBALS["peopleClass"]->adaptRawUserArray($rawuserarray, $mStatus);
     }
     // --------------------
     // STOP TIMER
     // --------------------
     functions::timerStop("peopleSearch");
     // --------------------
     if (IS_TESTSERVER) {
         echo "<p>In getPeopleArrayData</p>";
         debug::rr($userarray);
     }
     return $userarray;
 }
コード例 #5
0
 public static function Test()
 {
     error_reporting(E_ALL | E_STRICT);
     $stdout = "";
     if (!class_exists("auth", FALSE)) {
         require_once PATH_CLASSES . "/lib/auth.php";
     }
     // --------------------
     echo "<br>OK_TO_CALL_MYPEAR=";
     var_dump(OK_TO_CALL_MYPEAR);
     //    auth::initializeBauth();
     if (!isset($_GET["r"])) {
         $_GET["r"] = "";
     }
     if (!isset($_GET["T"])) {
         $_GET["T"] = "";
     }
     echo "<hr>hvzm -- r";
     var_dump(auth::isValidPamUser("hvzm", $_GET["r"]));
     var_dump(auth::isValidImapUser("hvzm", $_GET["r"]));
     echo "<hr>hvzm -- T";
     var_dump(auth::isValidPamUser("hvzm", $_GET["T"]));
     var_dump(auth::isValidImapUser("hvzm", $_GET["T"]));
     // ---------------------------------------
     // CORRECTIONS:
     //
     // /includes/bForm/Organiztion.inc l.16:
     // 'org_affil' => 'Affil' /* HVZM */
     // ---------------------------------------
     if (!empty($_GET["r"]) && !empty($_GET["T"])) {
         echo "<hr>";
         if (isset($_SESSION["nwAuth"])) {
             echo "SESSION[nwAuth]: ";
             debug::rr($_SESSION["nwAuth"]);
         }
         if (isset($_SESSION["bAuth"]["email"])) {
             debug::rr($_SESSION["bAuth"]["email"]);
         } else {
             echo "<p>0. No 'bAuth-email' defined";
         }
         echo "<pre>";
         echo "0. REQUEST ";
         debug::rr($_REQUEST);
         echo "0. SESSION ";
         print_r(array_keys($_SESSION));
         echo "0. COOKIE ";
         debug::rr(array_keys($_COOKIE));
         echo "</pre>";
         if (isset($_COOKIE["Nordita_Session"])) {
             echo "<p>0. session cookie: ";
             echo $_COOKIE["Nordita_Session"];
         } else {
             echo "<p>3. No session cookie";
         }
         #if (isset($_SESSION["nwAuth"]["authenticated"])) echo "<p>0. NW Session variable: ".$_SESSION["nwAuth"]["authenticated"]; else echo "<p>0. No NW session variable";
         #if (isset($_SESSION["bAuth"]["email"])) echo "<p>0. MYPEAR Session variable: ".$_SESSION["bAuth"]["email"]; else echo "<p>0. No MYPEAR session variable";
         if (isset($_SESSION["nwAuth"]["av"]) && is_array($_SESSION["nwAuth"]["av"]) && isset($_SESSION["nwAuth"]["av"]["av_identity"])) {
             echo "<p>0. av_identity: ";
             var_dump($_SESSION["nwAuth"]["av"]["av_identity"]);
         } else {
             echo "<p>0. No av_identity";
         }
     }
     // --------------------
     return $stdout;
 }
コード例 #6
0
 function debugDbCheck()
 {
     $errortext = "";
     foreach (array("mrbs_area", "mrbs_entry", "mrbs_group", "mrbs_repeat", "mrbs_room", "mrbs_user") as $tbl) {
         echo "<h2>Table '{$tbl}'</h2>";
         $result = $this->query("SELECT * FROM " . $tbl . "", FALSE);
         if (!$result) {
             echo "<p class='red'>No data found in this table</p>\r\n";
         }
         //$result = $this->query("SELECT DISTINCT type FROM ".$tbl. " ORDER BY type");
         while ($rec = $this->next_record_assoc($result)) {
             debug::rr($rec);
         }
     }
     return TRUE;
 }
コード例 #7
0
 static function OutputTest()
 {
     error_reporting(E_ALL | E_STRICT);
     $stdout = "";
     $data = array();
     if (!class_exists("fromdb_agenda", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/agenda.php";
     }
     if (!class_exists("fromdb_jam", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/jam.php";
     }
     if (!class_exists("fromdb_nwevents", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/nwevents.php";
     }
     if (!class_exists("fromdb_nwsearch", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/nwsearch.php";
     }
     if (!class_exists("fromdb_nwpositions", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/nwpositions.php";
     }
     if (!class_exists("fromdb_preprints", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/preprints.php";
     }
     if (!class_exists("fromdb_preprints_nordita", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/preprints/nordita.php";
     }
     if (!class_exists("fromdb_people", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/people.php";
     }
     if (!class_exists("fromdb_people_ea", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/people/ea.php";
     }
     if (!class_exists("fromdb_people_maildb", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/people/maildb.php";
     }
     if (!class_exists("fromdb_vm", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/vm.php";
     }
     if (!class_exists("fromdb_youtube", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/youtube.php";
     }
     if (!class_exists("fromdb_rooms", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/rooms.php";
     }
     if (!class_exists("statistics", FALSE)) {
         require_once PATH_CLASSES . "/lib/statistics.php";
     }
     if (!class_exists("startpage", FALSE)) {
         require_once PATH_CLASSES . "/lib/startpage.php";
     }
     if (!class_exists("news", FALSE)) {
         require_once PATH_CLASSES . "/lib/news.php";
     }
     if (!class_exists("event", FALSE)) {
         require_once PATH_CLASSES . "/lib/event.php";
     }
     if (!class_exists("qr", FALSE)) {
         require_once PATH_CLASSES . "/lib/qr.php";
     }
     if (!class_exists("display", FALSE)) {
         require_once PATH_CLASSES . "/lib/display.php";
     }
     if (!class_exists("table", FALSE)) {
         require_once PATH_CLASSES . "/lib/table.php";
     }
     if (!class_exists("preprint", FALSE)) {
         require_once PATH_CLASSES . "/lib/preprint.php";
     }
     if (!class_exists("position", FALSE)) {
         require_once PATH_CLASSES . "/lib/position.php";
     }
     //KEEP
     //    if (!isset($dbOr) || !is_object($dbOr)) $dbOr = new fromdb_nwsearch();
     //    if (!isset($dbMd) || !is_object($dbMd)) $dbMd = new fromdb_people_maildb();
     //    if (!isset($dbEa) || !is_object($dbEa)) $dbEa = new fromdb_people_ea();
     //    if (!isset($dbJa) || !is_object($dbJa)) $dbJa = new fromdb_jam();
     //    if (!isset($dbYo) || !is_object($dbYo)) $dbYo = new fromdb_youtube();
     //    if (!isset($dbAg) || !is_object($dbAg)) $dbAg = new fromdb_agenda();
     //    if (!isset($dbRm) || !is_object($dbRm)) $dbRm = new fromdb_rooms();
     //    if (!isset($dbEv) || !is_object($dbEv)) $dbEv = new fromdb_nwevents();
     //    if (!isset($dbvm) || !is_object($dbvm)) $dbvm = new fromdb_vm();
     //    if (!isset($dbPo) || !is_object($dbPo)) $dbPo = new fromdb_nwpositions();
     if (!isset($dbPr) || !is_object($dbPr)) {
         $dbPr = new fromdb_preprints_nordita();
     }
     // ---------------------------------------
     $confId = "4393";
     // Sunspots
     //$confId = "4459"; // Extended Theories of Gravity
     /*
     echo "<hr>";
     $c1 = "hej";
     $c2 = "hej";
     $c3 = "hej";
     $c4 = "hej";
     echo startpage::outputBoxFourColumns($c1,$c2,$c3,$c4,1);
     echo "<hr>";
     $c1 = "hej";
     $c2 = "";
     $c3 = "hej";
     $c4 = "hej";
     echo startpage::outputBoxFourColumns($c1,$c2,$c3,$c4,1);
     echo "<hr>";
     $c1 = "hej";
     $c2 = "";
     $c3 = "";
     $c4 = "hej";
     echo startpage::outputBoxFourColumns($c1,$c2,$c3,$c4,1);
     echo "<hr>";
     $c1 = "hej";
     $c2 = "hej";
     $c3 = "hej";
     $c4 = "";
     echo startpage::outputBoxFourColumns($c1,$c2,$c3,$c4,1);
     */
     echo "<hr>";
     //debug::rr($dbEv->getEventsJoint());
     //      $eventArray = event::getEventByTime();debug::rr(array_keys($eventArray["current"]));echo "<hr>#";
     //      $eventArray = event::getEventByNow();debug::rr(array_keys($eventArray["current"]));
     //echo event::outputAgendatable("entranceagenda","month","nordita","0","0","1","1");
     /*
     echo "<br>RELPATHTOROOT=".RELPATHTOROOT;
     echo "<br>INCLEVEL=".INCLEVEL;
     echo "<br>REQUESTSCHEME=".REQUESTSCHEME;
     echo "<br>\$_SERVER[SERVER_NAME]=".$_SERVER['SERVER_NAME'];
     echo "<br>PHPSELF_PREFIX=".PHPSELF_PREFIX;
     echo "<br>\$_SERVER[PHP_SELF]=".$_SERVER["PHP_SELF"];
     echo "<br>DOCROOT_PREFIX/PATH_FROM_DOCROOT=".DOCROOT_PREFIX."/".PATH_FROM_DOCROOT;
     echo "<br>DOCROOT_PREFIX=".DOCROOT_PREFIX;
     echo "<br>URL_PREFIX=".URL_PREFIX;
     echo "<br>PATH_FROM_DOCROOT=".PATH_FROM_DOCROOT;
     echo "<br>__FILE__=".__FILE__;
     echo "<hr>";
     
     echo "<br>CACHE_DIR=".CACHE_DIR;
     echo "<br>CACHE_FILE_PREFIX=".CACHE_FILE_PREFIX;
     echo "<br>CACHE_DOCROOT_PREFIX=".CACHE_DOCROOT_PREFIX;
     echo "<br>CACHE_PATH_PREFIX=".CACHE_PATH_PREFIX;
     echo "<hr>";
     
     debug::rr($_SERVER);
     echo "<hr>";
     */
     /*
     $a = event::getEventByTime();
     debug::rr($a["current"]);
         $dropdownList =
           "            <br><select name='confid' onchange='submit()' style='font-size:1.1em'>\r\n" .
           "              <option value='0'>-&#45;- select from list -&#45;-</option>\r\n";
           foreach ($a["current"] as $idx => $record) {
           foreach ($record as $startdate => $event) {
             $dropdownList .=
               "              <option value='" . $event["id"] . "'" .
               ( (isset($_REQUEST["confid"]) && ($event["id"]==$_REQUEST["confid"])) ? " selected" : ""  ) .
               ( (strtotime($event["enddate"])>=time())
                   ? " class='future'>" . $event["title"]
                   : " class='past'>[" . $event["title"] . "]"
               ) .
               "</option>\r\n";
           }} // end foreach
         $dropdownList .=
           "            </select>\r\n";
       print  $dropdownList;
     
     
     echo event::outputEventDropdown();
     print "<hr>";
     */
     $variables["header"] = array("h1", "h2", "h3");
     $variables["rows"] = array("lkjh" => array(0 => 'Cell1', 1 => 'Cell2', 3 => 'Cell3'), array('data' => array('OneCol', array('data' => 'TwoCol', 'colspan' => 2)), 'class' => array('funky')), array('Cell1', 'Cell2', 'Cell3'), array('Cell1', 'Cell2', 'Cell3'));
     $variables["attributes"] = array("class" => "hej");
     //$variables["caption"] = "caption";
     //$variables["colgroups"] = array();
     $variables["empty"] = "table has no entries";
     $variables["linenumber"] = true;
     echo table::outputTable($variables);
     print "<hr>";
     /*
     echo"<br><br><br>". position::outputPositionsDropdown();
     debug::rr($dbPo->getCampaigns());
     echo "<hr>";
     echo functions::getDateFromDatetime("lkjh");
     echo functions::getDateFromDatetime("2015-10-12");
     echo"<br>".functions::getDateFromDatetime("2015-10-12 11:00:00");
     
     debug::rr(functions::callMethod('fromdb_nwevents','fromdb/nwevents','getOneEvent','5335',TRUE));
     debug::rr($GLOBALS["documentClass"]->now2agid);
     */
     //echo position::OutputOpenPositions('openpositions','','','0','1','0');
     //$a = $dbPo->getFieldList("position");
     //debug::rr($a);
     //$a = $dbPo->getPositions(array("nordita fellowship","postdoc"));
     //debug::rr($a);
     // ---------------------------------------
     if (isset($data)) {
         echo "<hr>";
         echo "<div style='color:teal'><h1>QWERT</h1>";
         debug::rr($data);
         echo "</div>";
     }
     // ---------------------------------------
     return "<h2>Output from test::OutputTest()</h2><hr>" . $stdout;
 }
コード例 #8
0
 public static function reset_common_cache($cachename = "")
 {
     $cachename = strtoupper(preg_replace("/\\W/", "", $cachename));
     // keep only "a-z0-9_"
     if (empty($cachename)) {
         exec("rm " . CACHE_DIR . "/" . CACHE_FILE_PREFIX . "*");
         // . " 2>/dev/null"
     } else {
         exec("rm " . self::get_cache_filename($cachename, "*"), $output);
         // . " 2>/dev/null"
         if (IS_TESTSERVER) {
             debug::rr($output);
         }
     }
     return true;
 }
コード例 #9
0
    $udata["nw_fullname_break"] = "Yadira<br>Rojas Alicvar";
    $udata["nw_fullname_reverse"] = "Rojas Alicvar,&nbsp;Yadira";
}
if (in_array($thisuser, array("yasser.roudi", "yasser"))) {
    $udata["nw_employeeTitle"] = "Professor, Corresponding Fellow";
    $udata["nw_employeeType"] = EMPLOYMENTTYPE_CORRFELLOWS;
}
if (in_array($thisuser, array("sabine.hossenfelder", "hossi", "sabineh"))) {
    $udata["nw_employeeType"] = EMPLOYMENTTYPE_CORRFELLOWS;
}
if (in_array($thisuser, array("doug.spolyar", "douglas.spolyar", "dspol"))) {
    $udata["nw_employeeType"] = EMPLOYMENTTYPE_CORRFELLOWS;
}
if (in_array($thisuser, array("yoshiki.sato"))) {
    $udata["nw_status"] = "Passive";
}
if (in_array($thisuser, array("viktor.skultety"))) {
    $udata["nw_lastname"] = "&#352;kult&#233;ty";
    $udata["nw_vonnamefam"] = "&#352;kult&#233;ty";
    $udata["nw_fullname"] = "Viktor&nbsp;&#352;kult&#233;ty";
    $udata["nw_fullname_break"] = "Viktor<br>&#352;kult&#233;ty";
    $udata["nw_fullname_reverse"] = "&#352;kult&#233;ty,&nbsp;Viktor";
}
if (in_array($thisuser, array("konstantin.zarembo", "zarembo"))) {
    $udata["nw_employeeTitle"] = "Professor, Deputy Director";
}
if (IS_TESTSERVER && isInPath("/people")) {
    echo "<h4>In adhoc_people_data:</h4>";
    debug::rr($udata);
    echo "-end from adhoc_people_data<hr>";
}
コード例 #10
0
 public static function outputEventDropdown($extrafields = array(), $text = "timetable", $thedate = "", $noMultiple = FALSE)
 {
     $stdout = "";
     $selectEventsForm = $toggleMultipleEventsForm = $dateForm = "";
     $selectSingleEventForm = $selectJointEventsForm = "";
     $propagateConfids = $propagateMode = "";
     $jointEvents = $confidArray = $standardForms = $extraFieldsForms = array();
     functions::gpc_declare_input("mode", "single", false);
     // "single", "joint", "multiple"
     if ($noMultiple) {
         $GLOBALS["mode"] = "single";
     }
     functions::gpc_declare_input("confid", "", false);
     functions::gpc_declare_input("confid2", "", false);
     // still needed?
     if (isset($GLOBALS["confid"]) && is_array($GLOBALS["confid"]) && $GLOBALS["mode"] == "single") {
         $_REQUEST["confid"] = $GLOBALS["confid"] = array(current($GLOBALS["confid"]));
     }
     if (is_array($GLOBALS["confid"])) {
         $GLOBALS["confid"] = array_unique($GLOBALS["confid"]);
     }
     if (!empty($GLOBALS["confid"])) {
         $confidArray = is_array($GLOBALS["confid"]) ? $GLOBALS["confid"] : array($GLOBALS["confid"]);
     }
     if (IS_TESTSERVER) {
         debug::rrr();
     }
     if (IS_TESTSERVER) {
         debug::rr($confidArray);
     }
     // -----------------------------
     // -- Obtain data
     // -----------------------------
     $data = self::getEventByTime();
     foreach ($confidArray as $confid) {
         if ($confid) {
             $arr = self::getJointEvents($confid);
             if (!empty($arr)) {
                 $jointEvents[$confid] = $arr;
             }
         }
     }
     // -----------------------------
     // -- Define common form elements
     // -----------------------------
     $formStart = "          <form " . "action='" . $_SERVER["PHP_SELF"] . "' " . "method='POST' " . "enctype='multipart/form-data' " . "class='only_online'>\r\n";
     $formEnd = "          </form>\r\n";
     foreach ($confidArray as $i => $confid) {
         if ($confid) {
             $propagateConfids .= "            <input type='hidden' name='confid[" . $i . "]' value='" . $confid . "'>\r\n";
         }
     }
     $propagateMode .= "            <input type='hidden' name='mode' value='" . $GLOBALS["mode"] . "'>\r\n";
     // -----------------------------
     // -- Extra input fields
     // -----------------------------
     if (!empty($extrafields)) {
         foreach ($extrafields as $extrafield) {
             if (in_array($extrafield, array("abstracts", "photos"))) {
                 $theform = "            <p>&#187; Change to display this " . $text . "\r\n" . (isset($_REQUEST["with_abstract"]) ? "            <input type='submit' name='null' " . "value='without " . $extrafield . "'>\r\n" : "            <input type='submit' name='with_abstract' " . "value='with " . $extrafield . "'></p>\r\n");
                 // check event::getDateInterval() for 'confid2': still needed?
                 /*
                           foreach ($confidArray as $i => $confid) {
                             $theform .=
                               "            <input type='hidden' name='confid2[".$i."]' value='" .
                               ( (!$_REQUEST["confid"][$i] && isset($_REQUEST["confid2"][$i])) 
                                   ? $GLOBALS["confid2"][$i] 
                                   : $GLOBALS["confid"][$i] ) .
                               "'>\r\n";
                           }
                 */
                 $extraFieldsForms[] = $theform . $propagateConfids . $propagateMode;
             }
         }
     }
     // -----------------------------
     // -- Date input field
     // -----------------------------
     $dateForm = "";
     if ($GLOBALS["confid"] && !empty($thedate)) {
         $dateForm .= "            <p>&#187; List participants only for this date: " . "<input type='text' name='thedate' value='" . $thedate . "' size='10'>" . " &nbsp;<input type='submit' value='Go!'></p>\r\n" . $propagateConfids . $propagateMode;
     }
     if (!empty($dateForm)) {
         $extraFieldsForms[] = $dateForm;
     }
     // -----------------------------
     // -- Single event selection form content
     // -----------------------------
     $selectSingleEventForm .= "            <select name='confid[]' onchange='submit()' style='font-size:1.1em'>\r\n" . "              <option value='0'>-&#45;- select from list -&#45;-</option>\r\n";
     if (isset($data["current"])) {
         foreach ($data["current"] as $record) {
             foreach ($record as $startdate => $event) {
                 $selectSingleEventForm .= "              <option value='" . $event["id"] . "'" . (in_array($event["id"], $confidArray) ? " selected='selected'" : "") . (strtotime($event["enddate"]) >= time() ? " class='future'>" . $event["title"] : " class='past'>[" . $event["title"] . "]") . "</option>\r\n";
             }
             // end foreach
         }
         // end foreach
     }
     // end if
     $selectSingleEventForm .= "            </select></p>\r\n";
     // -----------------------------
     // -- Joint events selection form content
     // -----------------------------
     $jEvents = current($jointEvents);
     if (!empty($jEvents)) {
         $selectJointEventsForm .= "            <input type='hidden' name='mode' value='joint'>\r\n";
         if (isset($jEvents["parent"]) && !empty($jEvents["parent"])) {
             $selectJointEventsForm .= "            <br><input type='checkbox' name='confid[]' value='" . $jEvents["parent"] . "'" . (in_array($jEvents["parent"], $confidArray) ? " checked='checked'" : "") . "> " . functions::callMethod('fromdb_nwevents', 'fromdb/nwevents', 'getEventTitle', $jEvents["parent"]) . "\r\n";
         }
         if (isset($jEvents["children"])) {
             foreach ($jEvents["children"] as $confid_children) {
                 $selectJointEventsForm .= "            <br><input type='checkbox' name='confid[]' value='" . $confid_children . "'" . (in_array($confid_children, $confidArray) ? " checked='checked'" : "") . "> " . functions::callMethod('fromdb_nwevents', 'fromdb/nwevents', 'getEventTitle', $confid_children) . "\r\n";
             }
         }
         $selectJointEventsForm .= "            <br><input type='submit' value='Show " . $text . " for selected events'></p>\r\n";
     }
     if ($GLOBALS["mode"] == "multiple") {
         // --------------------------------------------
         // -----------------------------
         // -- Multiple events
         // -----------------------------
         $toggleMultipleEventsForm .= "            <p><strong>Select " . "(one or more) " . "Nordita event (s)</strong> for which you want to display the " . $text . ":\r\n";
         if (IS_TESTSERVER) {
             $toggleMultipleEventsForm .= "            <input type='hidden' name='mode' value='single'>\r\n" . "            <p>&#187; <strong>Actually, I would rather</strong> like to be able to\r\n" . "            <input type='submit' value='select single events'> instead.\r\n";
         }
         $toggleMultipleEventsForm .= $propagateConfids . "            </p>\r\n";
         // ------------------
         $selectEventsForm .= "            <p>\r\n";
         if (isset($data["current"])) {
             foreach ($data["current"] as $record) {
                 foreach ($record as $startdate => $event) {
                     $selectEventsForm .= "            <input type='checkbox' name='confid[]' value='" . $event["id"] . "'" . (in_array($event["id"], $confidArray) ? " checked='chekced'" : "") . (strtotime($event["enddate"]) >= time() ? " class='future'>" . $event["title"] : " class='past'>[" . $event["title"] . "]") . "<br>\r\n";
                 }
                 // end foreach
             }
             // end foreach
         }
         // end if
         $selectEventsForm .= "            <input type='hidden' name='mode' value='multiple'>\r\n" . "            <input type='submit' value='Submit selected events'></p>\r\n";
         // ------------------
         $standardForms[] = $toggleMultipleEventsForm;
         $standardForms[] = $selectEventsForm;
     } elseif ($GLOBALS["mode"] == "joint") {
         // select joint events // -------------------------------------
         // -----------------------------
         // -- Joint events
         // -----------------------------
         $selectEventsForm .= $propagateConfids . "            <p>&#187; <strong>Actually, I would rather</strong> like to be able to\r\n" . "            <input type='submit' value='select single events'> instead.</p>\r\n" . "            <input type='hidden' name='mode' value='single'>\r\n";
         if (!empty($selectJointEventsForm)) {
             $selectJointEventsForm = "            <p><strong>Select " . "(one or more) " . "Nordita event (s)</strong> for which you want to display the " . $text . ":\r\n" . $selectJointEventsForm;
         }
         if (IS_TESTSERVER) {
             $toggleMultipleEventsForm .= $propagateConfids . "            <p>&#187; [ON TESTSERVER]: <strong>Actually, I would rather</strong> like to be able to\r\n" . "            <input type='submit' value='select multiple events'> instead.</p>\r\n" . "            <input type='hidden' name='mode' value='multiple'>\r\n";
         }
         // ------------------
         if (!empty($selectJointEventsForm)) {
             $standardForms[] = $selectJointEventsForm;
         }
         $standardForms[] = $selectEventsForm;
         $standardForms[] = $toggleMultipleEventsForm;
     } elseif ($GLOBALS["mode"] == "single") {
         // select single events // -------------------------------------
         // -----------------------------
         // -- Single events
         // -----------------------------
         $selectEventsForm .= "            <p><strong>Select " . (isset($GLOBALS["confid"]) ? "a new " : "the ") . "(single) " . "Nordita event</strong> for which you want to display the " . $text . ":<br>\r\n" . $selectSingleEventForm . $propagateMode;
         if (!empty($selectJointEventsForm)) {
             $selectJointEventsForm = "            <p>&#187; <strong>Actually, I would rather</strong> view the " . $text . " for the following events instead:\r\n" . $selectJointEventsForm;
         }
         if (IS_TESTSERVER) {
             $toggleMultipleEventsForm .= "            <p>&#187; [ON TESTSERVER]: <strong>Actually, I would rather</strong> like to be able to\r\n" . "            <input type='submit' value='select multiple events'> instead.</p>\r\n" . "            <input type='hidden' name='mode' value='multiple'>\r\n" . $propagateConfids;
         }
         // ------------------
         $standardForms[] = $selectEventsForm;
         if (!$noMultiple && !empty($selectJointEventsForm)) {
             $standardForms[] = $selectJointEventsForm;
         }
         if (!$noMultiple) {
             $standardForms[] = $toggleMultipleEventsForm;
         }
     }
     // end if (select single event) // -----------------
     foreach ($standardForms as $i => $data) {
         $standardForms[$i] = $formStart . $data . $formEnd;
     }
     foreach ($extraFieldsForms as $i => $data) {
         $extraFieldsForms[$i] = $formStart . $data . $formEnd;
     }
     // -----------------------------
     $stdout .= "\r\n" . "        <div class='box warning background padding only_online' style='padding-bottom:0'>\r\n" . "\r\n" . implode("\r\n", $standardForms) . "\r\n" . "        </div>\r\n" . "\r\n";
     if (!empty($extraFieldsForms)) {
         $stdout .= "        <div class='box warning background padding only_online' style='padding-bottom:0'>\r\n" . "\r\n" . implode("            <br>\r\n", $extraFieldsForms) . "\r\n" . "        </div>\r\n" . "\r\n";
     }
     return $stdout;
 }
コード例 #11
0
 public static function AdbMypearLists()
 {
     $stdout = "";
     $records = array();
     if (!class_exists("fromdb", FALSE)) {
         require_once PATH_CLASSES . "/fromdb.php";
     }
     $db = new fromdb($GLOBALS["DBS"]["vm"]["name"], $GLOBALS["DBS"]["vm"]["host"], $GLOBALS["DBS"]["vm"]["user"], $GLOBALS["DBS"]["vm"]["pass"]);
     // --------------
     $tables = array("zzz_units" => "u", "zzz_lists" => "l");
     foreach ($tables as $table => $prefix) {
         $sql = "SELECT  * FROM " . $table;
         $result = $db->query($sql);
         if ($db->num_rows($result) > 0) {
             while ($rec = $db->next_record_assoc($result)) {
                 if (isset($rec[$prefix . "_name"]) && isset($rec[$prefix . "_class"])) {
                     $records[$table . " --&gt; " . $rec[$prefix . "_name"] . " [" . $rec[$prefix . "_class"] . "]"][] = array("id" => $rec[$prefix . "_id"], "parent" => $rec[$prefix . "_parent"]);
                 }
             }
         }
         // end while
     }
     //TODO: temporary output:
     debug::rr(array_keys($records));
     debug::rr($records);
     return $stdout;
 }
コード例 #12
0
 public function insertLookup($table, $record)
 {
     if (empty($table) || empty($record)) {
         return false;
     }
     foreach ($record as $key => $value) {
         if (empty($value) || $value == "NULL") {
             $record[$key] = "NULL";
         } else {
             $record[$key] = "'" . addslashes($value) . "'";
         }
     }
     // --------------------------------------------
     $sql = "INSERT INTO `" . $this->dbprefix . $table . "` " . "  (`" . implode("`,`", array_keys($record)) . "`) " . "VALUES " . "  (" . implode(",", $record) . ")";
     debug::rr($sql);
     $OK = (bool) $this->query($sql, IS_TESTSERVER);
     // includes a call to connect
     $article_id = $OK ? $this->insert_id() : 0;
     // --------------------------------------------
     return $OK ? $article_id : false;
 }
コード例 #13
0
 public static function OutputDirectorsReport()
 {
     functions::gpc_declare_input("r", false, true);
     if ($GLOBALS["r"] == 1) {
         unset($_SESSION["directorsreport"]);
     }
     debug::rrr();
     $stdout = $date_interval = "";
     $errormessage = array();
     $meetingdate = isset($_SESSION["directorsreport"]["meetingdate"]) ? $_SESSION["directorsreport"]["meetingdate"] : date("Y-m-d");
     $timestamp_from = isset($_SESSION["directorsreport"]["timestamp_from"]) ? $_SESSION["directorsreport"]["timestamp_from"] : strtotime("- 3 months");
     $timestamp_to = isset($_SESSION["directorsreport"]["timestamp_to"]) ? $_SESSION["directorsreport"]["timestamp_to"] : time();
     functions::gpc_declare_input("meetingdate_selected", false, true);
     functions::gpc_declare_input("meetingdate", $meetingdate, false);
     functions::gpc_declare_input("period_selected", false, true);
     functions::gpc_declare_input("month_from", date("n", $timestamp_from), false);
     functions::gpc_declare_input("year_from", date("Y", $timestamp_from), false);
     functions::gpc_declare_input("month_to", date("n", $timestamp_to), false);
     functions::gpc_declare_input("year_to", date("Y", $timestamp_to), false);
     // ------------------------
     // -- Input check
     // ------------------------
     if ($GLOBALS["meetingdate_selected"]) {
         if (!strtotime($GLOBALS["meetingdate"])) {
             $errormessage[] = "Incorrect date '" . $GLOBALS["meetingdate"] . "'. Please try again.";
         }
     } elseif ($GLOBALS["period_selected"]) {
         $timestamp_from = mktime(0, 0, 0, $GLOBALS["month_from"], 1, $GLOBALS["year_from"]);
         $timestamp_to = mktime(0, 0, 0, $GLOBALS["month_to"], 1, $GLOBALS["year_to"]);
         $lastday = date("t", $timestamp_to);
         $timestamp_to = mktime(0, 0, 0, $GLOBALS["month_to"], $lastday, $GLOBALS["year_to"]);
         if (!is_numeric($GLOBALS["month_from"]) || !is_numeric($GLOBALS["year_from"]) || !is_numeric($GLOBALS["month_to"]) || !is_numeric($GLOBALS["year_to"]) || !checkdate($GLOBALS["month_from"], 1, $GLOBALS["year_from"]) || !checkdate($GLOBALS["month_to"], 1, $GLOBALS["year_to"])) {
             $errormessage[] = "Incorrect month or year. Please try again.";
         }
         if ($timestamp_from > $timestamp_to) {
             $errormessage[] = "Incorrect period. Please try again.";
         }
     }
     // ------------------------
     // -- Print preamble
     // ------------------------
     $stdout .= "  <p><a href='" . $_SERVER["PHP_SELF"] . "?r=1' class='fakebuttonbutton'>Start over</a></p>\r\n" . "  <p class='bold'><a href='docsx/directors_reports/nordita_directors_report_MONTH_YEAR.tex'>Download TeX template for report</a>\r\n" . "  &#8212; <a href='docs/logo/nordita-logo-black-text-and-subtitle.pdf'>Download logo image file for TeX file</a></p>\r\n";
     // ------------------------
     // -- Print date selection form
     // ------------------------
     var_dump(!$GLOBALS["meetingdate_selected"]);
     if (!$GLOBALS["period_selected"] && (!$GLOBALS["meetingdate_selected"] || !empty($errormessage))) {
         if (!empty($errormessage)) {
             $stdout .= "  <div class='box error padding background bold'>\r\n" . "  <p>&#187; " . implode("</p>\r\n  <p>&#187; ", $errormessage) . "</p>\r\n" . "  </div>\r\n";
         }
         $stdout .= "  <form " . "action='" . $_SERVER["PHP_SELF"] . "' " . "method='POST' " . "enctype='multipart/form-data' " . "style='margin-top:1em;margin-bottom:1em'>\r\n" . "    <h3 style='margin-bottom:1em'>Please enter the date for the board meeting<br>(format <strong>YY-mm-dd</strong>):</h3>\r\n" . "    <p><input type='date' name='meetingdate' value='" . $GLOBALS["meetingdate"] . "'" . (!empty($errormessage) ? " class='error'" : "") . ">\r\n" . "    <input type='submit' name='meetingdate_selected' value='Select'>\r\n" . "    </p>\r\n " . "  </form>\r\n";
         debug::rr($_SESSION["directorsreport"]);
         return $stdout;
     } elseif (!$GLOBALS["period_selected"] || !empty($errormessage)) {
         $_SESSION["directorsreport"]["meetingdate"] = $GLOBALS["meetingdate"];
         $stdout .= "  <h2>Compiling a Director's Report for<br>the Board Meeting on " . $GLOBALS["meetingdate"] . "</h2>\r\n";
         if (!empty($errormessage)) {
             $stdout .= "  <div class='box error padding background bold'>\r\n" . "  <p>&#187; " . implode("</p>\r\n  <p>&#187; ", $errormessage) . "</p>\r\n" . "  </div>\r\n";
         }
         $stdout .= "  <form " . "action='" . $_SERVER["PHP_SELF"] . "' " . "method='POST' " . "enctype='multipart/form-data' " . "style='margin-top:1em;margin-bottom:1em'>\r\n" . "    <h3 style='margin-bottom:1em'>Select the period for this report</h3>\r\n" . "    <p>From \r\n" . "    <select name='month_from' style=''>\r\n";
         for ($m = 1; $m < 13; $m++) {
             $stdout .= "    <option value='" . $m . "'" . ($GLOBALS["month_from"] == $m ? " selected='selected'" : "") . ">" . date("F", mktime(0, 0, 0, $m)) . "</option>\r\n";
         }
         $stdout .= "    </select>\r\n" . "    <select name='year_from'>\r\n";
         for ($y = date("Y") - 1; $y <= date("Y") + 1; $y++) {
             $stdout .= "    <option value='" . $y . "'" . ($GLOBALS["year_from"] == $y ? " selected='selected'" : "") . ">" . date("Y", mktime(0, 0, 0, 1, 1, $y)) . "</option>\r\n";
         }
         $stdout .= "    </select>\r\n" . "    to \r\n " . "    <select name='month_to'>\r\n";
         for ($m = 1; $m < 13; $m++) {
             $stdout .= "    <option value='" . $m . "'" . ($GLOBALS["month_to"] == $m ? " selected='selected'" : "") . ">" . date("F", mktime(0, 0, 0, $m)) . "</option>\r\n";
         }
         $stdout .= "    </select>\r\n" . "    <select name='year_to'>\r\n";
         for ($y = date("Y") - 1; $y <= date("Y") + 1; $y++) {
             $stdout .= "    <option value='" . $y . "'" . ($GLOBALS["year_to"] == $y ? " selected='selected'" : "") . ">" . date("Y", mktime(0, 0, 0, 1, 1, $y)) . "</option>\r\n";
         }
         $stdout .= "    </select>\r\n" . "    <input type='submit' name='period_selected' value='Select'>\r\n" . "    </p>\r\n " . "  </form>\r\n";
         debug::rr($_SESSION["directorsreport"]);
         return $stdout;
     }
     // ------------------------
     // -- Print output
     // ------------------------
     $_SESSION["directorsreport"]["timestamp_from"] = $timestamp_from;
     $_SESSION["directorsreport"]["timestamp_to"] = $timestamp_to;
     debug::rr($_SESSION["directorsreport"]);
     var_dump(date("Y-m-d", $timestamp_from));
     var_dump(date("Y-m-d", $timestamp_to));
     $from = getdate($timestamp_from);
     $to = getdate($timestamp_to);
     $date_interval = $from["year"] == $to["year"] ? $from["mon"] == $to["mon"] ? $from["month"] . " " . $from["year"] : $from["month"] . " &#8212; " . $to["month"] . " " . $from["year"] : $from["month"] . " " . $from["year"] . " &#8212; " . $to["month"] . " " . $to["year"];
     $stdout .= "  <h2>TeX Template for a Director's Report" . "<br>for the period " . $date_interval . "<br>for the Board Meeting on " . functions::readableDate($_SESSION["directorsreport"]["meetingdate"]) . "</h2>\r\n";
     $stdout .= "  <div class='box blackborder padding' style='white-space:pre;font-family:monospace'>";
     $stdout .= "\\documentclass[twoside,10pt,a4paper]{article}\n\\usepackage[utf8]{inputenc}\n\\usepackage[T1]{fontenc}\n\\usepackage[swedish]{babel}\n\\usepackage{amsmath}\n\\usepackage{amssymb,amsfonts,textcomp}\n\\usepackage{array}\n\\usepackage{hhline}\n\\usepackage{graphicx}\n\\usepackage{titlesec}\n\\usepackage{hyperref}\n\\usepackage{enumerate}\n\\usepackage{color}\n\\usepackage{multicol}\n\n\\setlength{\\textwidth}{155mm}        % A4\n\\setlength{\\textheight}{247mm}       % A4\n\\setlength{\\hoffset}{-1in}           % to compensate default 1 inch inner margin\n\\setlength{\\voffset}{-1in}           % to compensate default 1 inch top margin\n\\setlength{\\oddsidemargin}{30mm}\n\\setlength{\\evensidemargin}{30mm}\n\\setlength{\\marginparwidth}{17mm}\n\n\\titleformat{\\section}[display]{\\normalfont\\Huge\\bfseries}{}{0pt}{}\n\\titleformat{\\subsection}[display]{\\raggedright\\normalfont\\LARGE\\bf}{}{-5pt}{}\n\\titleformat{\\subsubsection}[display]{\\normalfont\\large\\bf}{}{-15pt}{}\n\n\\title{}\n\n% ------------------------------------------------------------\n\n\\begin{document}\n\n% Unhandled or unsupported graphics:\n% This image can be downloaded from http://www.nordita.org/docs/logo/nordita-logo-black-text-and-subtitle.pdf\n\\noindent\\includegraphics{nordita-logo-black-text-and-subtitle.pdf}\n\\newline\\rule{\\textwidth}{1pt}\n\n\\bigskip\n\n\\section{DIRECTOR’S REPORT \\newline\nfor " . $date_interval . "}\n\nPrepared by ........... for the meeting of the Nordita board on " . functions::readableDate($_SESSION["directorsreport"]["meetingdate"]) . ".\n\n\\bigskip\n\n% ------------------------------------------------------------\n\\subsection{STAFF}\n% Get data from http://nordita.org/alumni\n\n\\subsubsection{Faculty}\n\n% ABC listing\n\\begin{itemize}\n\\item \\textit{....} (.... physics) from ... ..... longer text ....\n\\end{itemize}\n\n\\noindent Faculty members that have left since the previous Director’s report:\n\n% ABC listing\n\\begin{itemize}\n\\item \\textit{...} (.... physics) left Nordita ... for a position .........\n\\end{itemize}\n\n% If relevant, insert information about ongoing or concluded recruitments .......\n\n\\subsubsection{Post-doctoral Fellows}\n\n\\noindent ....... new Nordita Fellows arrived during the period covered by the report, and ......... postponed thier arrival:\n\n% ABC listing\n\\begin{itemize}\n\\item \\textit{.....} (.... physics) from ..., arrived .....\n\\end{itemize}\n\n\\noindent ........ new postdoctoral fellow supported by project grants arrived during the report period, and ......... were continued on other project grants:\n\n% ABC listing\n\\begin{itemize}\n\\item \\textit{...} (.... physics) from ..., arrived ..... under the ..... grant\n\\end{itemize}\n\n\\noindent Postdoctoral fellows that have left since the previous Director’s report:\n\n% ABC listing\n\\begin{itemize}\n\\item \\textit{...} (.... physics) left Nordita ... for a position .........\n\\end{itemize}\n\n% Get data from http://nordita.org/people\n\\noindent Currently there are ......... Nordita Fellows, and ......... postdoctoral fellows supported by project grants.\n\n% --------- START -- ONLY FOR OCTOBER-JANUARY REPORT -----------------\n% Get data from http://jam.nordita.org\n\n\\bigskip\n\\noindent A total of 439 applications were received for Nordita Fellowships in Fall 2015 (compared to 455 in 2014, 399 in 2013, 331 in 2012, 226 in 2011, 403 in 2010, and 355 in 2009). Applicants placed themselves in one of six categories and the breakdown was as follows (numbers in parentheses are from previous years):\n\n% Modyfy this list in such a way that the history is kept and updated:\n\\begin{itemize}\\itemsep-3pt\n\\item Astrophysics and Astrobiology — 33 (2014: 46; 2013: 41; 2012: 33; 2011: 43)\n\\item Biological Physics — 8 (2014: 6; 2013: 6; 2012: 3; 2011: 3)\n\\item Condensed Matter Physics — 45 (2014: 42; 2013: 36; 2012: 34; 2011: 28)\n\\item Gravitation and Cosmology — 110 (2014: 137; 2013: 127; 2012: 118; 2011: 54)\n\\item High-Energy Physics — 243 (2014: 150; 2013: 189; 2012: 114; 2011: 87)\n\\item Other — [this option was removed] (2014: 74; 2013: –; 2012: 32; 2011: 11)\n\\end{itemize}\n\n\\noindent The applications were evaluated by the Nordita Research Committees and by members of the Nordita Faculty. The committees met in Stockholm in the beginning of December to make recommendations for a short list,\n% Get data from http://www.nordita.org/minutes/\nwhich was finalized at a faculty meeting on December ..............\n%The recruitment is ongoing with 5 accepted fellowships and 1 active offer.\nThe recruitment is completed with 6 accepted fellowships:\n% ABC listing\n% Get PhD data from http://jam.nordita.org\n\\begin{itemize}\\itemsep-3pt\n\\item \\textit{Stefano Bo} (biophysics), PhD 2015 from Turin, Italy\n\\item \\textit{......} (....... physics), PhD ..... from ........\n\\end{itemize}\nIn most cases, the top candidates accepted.\n% ABC listing\n% Get info from faculty member...\nInitial offers to\n... (..... physics),\n... (..... physics)\nwere eventually declined.\n\n% --------- END -- ONLY FOR OCTOBER-JANUARY REPORT -----------------\n\n\\subsubsection{PhD Students}\n\n........ new PhD students arrived at Nordita during the reporting period:\n\n% ABC listing\n\\begin{itemize}\n\\item \\textit{...} (.... physics) from ..., arrived .....\n\\end{itemize}\n\n\\noindent Thesis defense:\n\n% ABC listing\n\\begin{itemize}\n\\item \\textit{....} successfully defended his ....... thesis ``........'' on 1 January 2016.\n\\end{itemize}\n\n\\noindent A complete list of current Nordita staff is at {\\textless}www.nordita.org/people{\\textgreater}. Nordita Alumni from 1957 to the present are at {\\textless}www.nordita.org/alumni{\\textgreater}.\n\n% ------------------------------------------------------------\n\\subsection{VISITORS}\n% Get data from http://www.nordita.org/science/phd_fellows/list_of_phd_fellows\n\n\\noindent ....... Visiting PhD Student Fellows stayed at Nordita during the period:\n\n% Arrival date listing\n\\begin{itemize}\n\\item \\textit{...} (.... physics) from ..., period\n\\end{itemize}\n\n\\noindent Four Visiting PhD Fellowships for 2016 have been awarded:\n% Get data from http://www.nordita.org/science/phd_fellows/list_of_phd_fellows\n\n% ABC listing\n\\begin{itemize}\n\\item \\textit{...} (.... physics) from ..., period. Contact person is ...............\n\\end{itemize}\n\n\\noindent Long-term visitors, staying one week or more, include:\n% Get data from http://nordita.org/science/visitors/list_of_visitors\n\n% Arrival date listing\n\\begin{itemize}\n\\item \\textit{.......} (.... physics) from ..., period\n\\end{itemize}\n\n\\noindent A more complete list of Nordita visitors, including short-term visits of less than a week, can be found online at {\\textless}www.nordita.org/visitors{\\textgreater}. A summary of visitors outside events, including nationality statistics, is at {\\textless}www.nordita.org/statistics/nationality\\_visitors{\\textgreater}.\n\n% ------------------------------------------------------------\n\\subsection{SCIENTIFIC PROGRAMS}\n% Get data from http://nordita.org/events\n\n........ Nordita Scientific Program took place during the period:\n\n\\begin{itemize}\n\\item \\textit{Water – the Most Anomalous Liquid}, 13 October – 7 November 2014; Coordinators: Lars G. M. Pettersson (Stockholm Univ.), Anders Nilsson (Stanford Univ.), Richard H. Henchman (Univ.\\ of Manchester)\n\\end{itemize}\n\n\\noindent A selection of upcoming programs:\n\n\\begin{itemize}\n\\item \\textit{Extended Theories of Gravity}, 2–20 March 2015; Coordinators: Kari Enqvist (Univ.\\ of Helsinki), Tomi Koivisto (Nordita), David Fonseca Mota (Univ.\\ of Oslo), Fawad Hassan (Stockholm Univ.), Lavinia Heisenberg (Nordita)\n\\end{itemize}\n\n\\noindent The complete list of Nordita events, including programs, conferences and schools, can be found online at {\\textless}www.nordita.org/events{\\textgreater}. Statistics including nationality of program participants is at {\\textless}www.nordita.org/statistics/nationality\\_programs{\\textgreater}.\n\n% ------------------------------------------------------------\n\\subsection{CONFERENCES, WORKSHOPS, AND SCHOOLS}\n% Get data from http://nordita.org/events\n\nThe following events have been organized and/or co-sponsored by Nordita during the period of this report:\n\n\\begin{itemize}\n\\item \\textit{Dark Energy Interactions}, 1–3 October 2014; Coordinators: Tomi Koivisto (Nordita), David Fonseca Mota (Univ.\\ of Oslo)\n\\end{itemize}\n\n\\noindent A selection of upcoming shorter events:\n\n\\begin{itemize}\n\\item \\textit{The 6th Nordic Workshop on Statistical Physics: Biological, Complex and Non-Equilibrium Systems}, 25–27 February 2015; Coordinators: Ralf Eichhorn (Nordita), Alberto Imparato (Aarhus Univ.)\n\\end{itemize}\n\n% ------------------------------------------------------------\n\\subsection{PUBLICATIONS}\n% Get data from http://nordita.org/preprints\n\n% Modify this text so that publication history is kept:\nA total of 181 Nordita preprints were registered in 2015, and 5 so far in 2016.\\\\\n(In 2014 a total of 152 preprints were registered, 121 in 2013, and 110 in 2012.)\n\n\\bigskip\n\n\\noindent All Nordita preprints are listed online at: {\\textless}www.nordita.org/preprints{\\textgreater}.\\\\\nPreprint statistics is at {\\textless}www.nordita.org/statistics/preprint{\\textgreater}.\n\n% ------------------------------------------------------------\n\\subsection{EXTERNAL FUNDING}\n\n\\begin{itemize}\n \\item \\textit{....} (... physics) was awarded ..........\n\\end{itemize}\n\n% ------------------------------------------------------------\n\\subsection{OTHER ISSUES}\n\n\\subsubsection{Funding from the Swedish Research Council (VR)}\n\n.......\n\n\\subsubsection{Funding from the Henrik Granholm Foundation}\n\n........\n\n\\subsubsection{Funding from the Knut and Alice Wallenberg Foundations}\n\n........\n\n\\subsubsection{Indirect support from the Faculty of Science, Stockholm University}\n\n.........\n\n% ------------------------------------------------------------\n\n\\bigskip\n\\end{document}";
     $stdout .= " </div>\r\n";
     // ------------------------
     return $stdout;
 }
コード例 #14
0
 public static function OutputSubmitPreprints()
 {
     if (IS_LOCALHOST) {
         print_rrr();
         debug::rr($_FILES);
     }
     $stdout = "";
     self::loadClass(PREPRINT_DATA_SOURCE_DB);
     // --> $GLOBALS["preprintClass"]
     // --------------------------------
     // -- GPC INDATA
     //    $vname, $default, $bool, $allowed, $set_session, $strip_tags
     // --------------------------------
     functions::gpc_declare_input("bt", 0, TRUE, array(), FALSE, TRUE);
     //    functions::gpc_declare_input("di",    0,TRUE,array(),FALSE,TRUE);
     functions::gpc_declare_input("cancel", 0, TRUE, array(), FALSE, TRUE);
     functions::gpc_declare_input("pp_authors", "", FALSE, array(), FALSE, TRUE);
     functions::gpc_declare_input("pp_field", "", FALSE, array(), FALSE, TRUE);
     //    functions::gpc_declare_input("pp_file",      "",        FALSE,array(), FALSE,TRUE);
     //    functions::gpc_declare_input("pp_journal",   "",        FALSE,array(), FALSE,TRUE);
     //    functions::gpc_declare_input("pp_location",  "",        FALSE,array(), FALSE,TRUE);
     //    functions::gpc_declare_input("pp_nr",        "",        FALSE,array(), FALSE,TRUE);
     functions::gpc_declare_input("pp_owneruid", 0, FALSE, array(), FALSE, TRUE);
     //    functions::gpc_declare_input("pp_tm",        0,         FALSE,array(), FALSE,TRUE);
     //    functions::gpc_declare_input("pp_rowid",     0,         FALSE,array(), FALSE,TRUE);
     //    functions::gpc_declare_input("pp_status",    "",        FALSE,array(), FALSE,TRUE);
     functions::gpc_declare_input("pp_title", "", FALSE, array(), FALSE, TRUE);
     //    functions::gpc_declare_input("pp_year",      date("Y"), FALSE,array(), FALSE,TRUE);
     //    functions::gpc_declare_input("pp_confirmed", 0,         TRUE, array(), FALSE,TRUE);
     if (!$GLOBALS["cancel"] && !empty($GLOBALS["pp_editmode"]) && $GLOBALS["pp_editmode"] != PP_MODE_RESERVE && empty($GLOBALS["pp_rowid"])) {
         return $stdout . "<div class='medwide-box'>\r\n" . BLURB_SORRY_PREPRINT_SINGLE . "</div>\r\n";
     }
     // --------------------------------
     // -- OBTAIN DATA
     // --------------------------------
     // --------------------------------
     // -- OUTPUT DATA
     // --------------------------------
     $stdout .= self::drawReservePreprint();
     // ----------------------------
     return $stdout;
 }
コード例 #15
0
 public static function timerShow()
 {
     debug::rr($GLOBALS["timer"]);
 }
コード例 #16
0
 public static function dbClient()
 {
     $stdout = "";
     // ============================================
     // SELECT
     // ============================================
     if (0) {
         $table = "lime_survey_57939";
         $table = "orcasearch";
         $sqlStmt = "SELECT * " . "FROM " . $table;
         //$sqlStmt = "SHOW CHARACTER SET";
         $result = client_safeMysqlQuery($sqlStmt, "FIX-2");
         $antal_rader = @mysql_num_rows($result);
         $stdout .= "<p><strong>" . $antal_rader . "</strong> records found in table <strong>" . $table . "</strong></p>";
         if ($antal_rader > 0) {
             for ($rad = 0; $rad < $antal_rader; $rad++) {
                 $res = @mysql_fetch_assoc($result);
             }
             // end for
         }
         // end if
         @mysql_free_result($result);
     }
     // --------------------------------------------
     if (0) {
         $sqlStmt = "SELECT Telekatalog_id,Titel_id FROM Telekatalog WHERE Titel_id != ''";
         $result = client_safeMysqlQuery($sqlStmt, "FIX-2");
         $antal_rader = @mysql_num_rows($result);
         if ($antal_rader > 0) {
             for ($rad = 0; $rad < $antal_rader; $rad++) {
                 $res = @mysql_fetch_assoc($result);
                 $val[] = "(" . $res["Telekatalog_id"] . "," . $res["Titel_id"] . ")<br>";
             }
             // end for
         }
         // end if
         @mysql_free_result($result);
     }
     // ============================================
     // DELETE
     // ============================================
     if (0) {
         $sqlStmt = "DELETE FROM Telekatalog_TitelData WHERE Grupp_id='1'";
         $stdout .= client_submitQuery("1", "DELETE FROM Telekatalog_TitelData", $sqlStmt);
     }
     // ============================================
     // UPDATE
     // ============================================
     if (0) {
         $sqlStmt = "UPDATE Telekatalog_TitelData SET Grupp_id='ADM' WHERE Grupp_id='1'";
         $stdout .= client_submitQuery("1", "UPDATE Telekatalog_TitelData", $sqlStmt);
     }
     // --------------------------------------------
     if (0) {
         $gc = array("ALB", "BIO", "DBB", "AST", "FYS", "FKM");
         foreach ($gc as $idx) {
             $sqlStmt = "UPDATE Telekatalog_TitelData SET Status_excelkod='ƒ' WHERE Grupp_id='" . $idx . "'";
             $stdout .= client_submitQuery("1", "UPDATE Telekatalog_TitelData", $sqlStmt);
         }
     }
     // --------------------------------------------
     if (0) {
         $gc = array('ELPARS' => 'bub', 'ATOMFY' => 'atom', 'SYSFYS' => 'sip');
         foreach ($gc as $old => $new) {
             $sqlStmt = "UPDATE Telekatalog_TitelData SET Status_excelkod='" . $new . "' WHERE Status_excelkod='" . $old . "'";
             $stdout .= client_submitQuery("1", "UPDATE Telekatalog_TitelData", $sqlStmt);
         }
     }
     // ============================================
     // INSERT
     // ============================================
     if (0) {
         $val = array("", "");
         $sqlStmt = "INSERT INTO Telekatalog_TitelData " . "  (Telekatalog_id,Titel_id) " . "VALUES " . "('" . implode("','", $val) . "')";
         $stdout .= client_submitQuery("1", "INSERT Telekatalog_TitelData", $sqlStmt);
     }
     // --------------------------------------------
     if (0) {
         $sqlStmt = "INSERT INTO Telekatalog_InstitutionTyp " . "  (,,) " . "VALUES " . "('','','')," . "('','','')," . "('','','')," . "('','','')";
         $stdout .= client_submitQuery("1", "INSERT Telekatalog_InstitutionTyp", $sqlStmt);
     }
     // --------------------------------------------
     if (0) {
         //lime_old_survey_57939_20120518132733
         //lime_old_survey_57939_20120518135027
         //lime_old_survey_57939_20120627183014
         //lime_old_survey_57939_20120627184652
         $table1 = "lime_survey_57939";
         $table2 = "lime_old_survey_57939_20120627183014";
         $sqlStmt = "INSERT INTO " . $table1 . " " . "SELECT * " . "FROM " . $table2;
         $stdout .= client_submitQuery("1", "INSERT INTO " . $table1, $sqlStmt);
         $sqlStmt = "SELECT * " . "FROM " . $table1;
         $result = client_safeMysqlQuery($sqlStmt, "SELECT FROM" . $table1);
         $antal_rader = @mysql_num_rows($result);
         $stdout .= "<p><strong>" . $antal_rader . "</strong> records found in table <strong>" . $table1 . "</strong></p>";
     }
     // ============================================
     // CREATE TABLE
     // ============================================
     if (0) {
         $sqlStmt = "CREATE TABLE IF NOT EXISTS Telekatalog_TitelData ( " . "  Telekatalog_id SMALLINT NOT NULL REFERENCES Telekatalog (Telekatalog_id), " . "  Titel_id VARCHAR(30) NOT NULL REFERENCES Titel (Titel_id), " . "  PRIMARY KEY (Telekatalog_id,Titel_id) " . ")";
         $stdout .= client_submitQuery("1", "CREATE Telekatalog_TitelData", $sqlStmt);
     }
     // ============================================
     // ALTER TABLE
     // ============================================
     if (0) {
         mysql_select_db("");
         $sqlStmt = "ALTER IGNORE TABLE Telekatalog " . "  CHANGE COLUMN Grupp_id " . "  Grupp_id CHAR(10) NULL";
         $stdout .= client_submitQuery("1", "ALTER CHANGE Telekatalog", $sqlStmt);
     }
     // --------------------------------------------
     if (0) {
         $db = "nordita_test";
         $tbl = "publications";
         $sqlStmt = "ALTER IGNORE TABLE " . $db . "." . $tbl . " " . "  ADD COLUMN " . "  publ_year varchar(200) DEFAULT NULL " . "  AFTER PublIn";
         echo "<br>{$sqlStmt}";
         //$stdout .= client_submitQuery("1","ALTER ADD publ_year TO nordita_test",$sqlStmt);
         $sqlStmt = "ALTER IGNORE TABLE " . $db . "." . $tbl . " " . "  ADD COLUMN " . "  `label` char(1) default NULL REFERENCES pp_category (label) " . "  AFTER publ_year";
         echo "<br>{$sqlStmt}";
         //$stdout .= client_submitQuery("2","ALTER ADD label TO nordita_test",$sqlStmt);
         $sqlStmt = "ALTER IGNORE TABLE " . $db . "." . $tbl . " " . "  ADD COLUMN " . "  `slask3` char(1) default NULL REFERENCES pp_category (label) " . "  AFTER label";
         //$stdout .= client_submitQuery("3","ALTER ADD slask TO nordita_test",$sqlStmt);
     }
     // --------------------------------------------
     if (0) {
         $sqlStmt = "ALTER IGNORE TABLE kalendarium_details " . "  DROP COLUMN Kolumn";
         $stdout .= client_submitQuery("1", "ALTER DROP kalendarium_details", $sqlStmt);
     }
     // ============================================
     // SHOW
     // ============================================
     if (0) {
         $db = "nordita_test";
         $sqlStmt = "SHOW TABLES " . "FROM " . $db;
         //$sqlStmt = "SHOW CHARACTER SET";
         $result = client_safeMysqlQuery($sqlStmt, "FIX-2");
         $antal_rader = @mysql_num_rows($result);
         $stdout .= "<p><strong>" . $antal_rader . "</strong> tables found in database <strong>" . $db . "</strong></p>";
         if ($antal_rader > 0) {
             $stdout .= "<ul>\r\n";
             for ($rad = 0; $rad < $antal_rader; $rad++) {
                 $res = @mysql_fetch_assoc($result);
                 $stdout .= "  <li>" . $res["Tables_in_" . $db] . "</li>\r\n";
             }
             // end for
             $stdout .= "</ul>\r\n";
         }
         // end if
         @mysql_free_result($result);
     }
     if (0) {
         $db = "nordita_test";
         $tbl = "publications";
         $sqlStmt = "SHOW COLUMNS " . "FROM " . $db . "." . $tbl;
         //$sqlStmt = "SHOW CHARACTER SET";
         $result = client_safeMysqlQuery($sqlStmt, "FIX-2");
         $antal_rader = @mysql_num_rows($result);
         $stdout .= "<p><strong>" . $antal_rader . "</strong> columns found in table <strong>" . $db . "." . $tbl . "</strong></p>";
         if ($antal_rader > 0) {
             $stdout .= "<ul>\r\n";
             for ($rad = 0; $rad < $antal_rader; $rad++) {
                 $res = @mysql_fetch_assoc($result);
                 debug::rr($res);
                 $stdout .= "  <li>" . $res["Field"] . "</li>\r\n";
             }
             // end for
             $stdout .= "</ul>\r\n";
         }
         // end if
         @mysql_free_result($result);
     }
     // ============================================
     @mysql_close();
     // ============================================
     return $stdout;
 }
コード例 #17
0
 public static function outputFormUpdate($tbl = "hired", $inputFields = array(), $hiddenFields = array())
 {
     echo "<hr><h2>inputFields</h2>";
     debug::rr($inputFields);
     //TODO: better error handling
     if (empty($inputFields)) {
         return "ERROR";
     }
     $stdout = "  <form id='" . $tbl . "_new' method='post' action='" . $_SERVER["PHP_SELF"] . "'>\r\n";
     if (is_array($hiddenFields)) {
         foreach ($hiddenFields as $fldName) {
             $stdout .= isset($GLOBALS[$fldName]) ? "    <input type='hidden' name='" . $fldName . "' value='" . $GLOBALS[$fldName] . "'>\r\n" : "";
         }
     }
     $stdout .= "    <input type='hidden' name='table' value='" . $tbl . "'>\r\n" . "    <input type='hidden' name='" . "update" . "' value='1'>\r\n" . "    <input type='input' name='" . HONEYTRAP_ID . "' class='osynl'>\r\n" . "    <table>\r\n";
     echo "€€€";
     debug::rr($inputFields);
     foreach ($inputFields as $fldName => $fld) {
         if (!isset($fld["skip"]) || !$fld["skip"]) {
             if (preg_match("#^(.*)_id\$#", $fldName, $res) && $fldName != $tbl . "_id" && !empty($res[1])) {
                 $fldLabel = ucwords(str_replace("_id", "", $res[1]));
             } else {
                 $fldLabel = ucwords(str_replace("_", " ", $fldName));
             }
             switch ($fld["type"]) {
                 // ---------------------------
                 case "text":
                     // ---------------------------
                     $stdout .= "      <tr><td style='padding-right:1em;white-space:nowrap'" . ($fld["required"] ? " class='required'" : "") . ">" . $fldLabel . ":</td><td>" . "<input type='text' name='" . $fldName . "' value='" . $fld["value"] . "'" . ($fld["error"] ? " class='error'" : "") . ($fld["required"] ? " class='required'" : "") . " size='40'>" . "</td></tr>\r\n";
                     break;
                     // ---------------------------
                 // ---------------------------
                 case "textarea":
                     // ---------------------------
                     $stdout .= "      <tr><td style='padding-right:1em;white-space:nowrap'" . ($fld["required"] ? " class='required'" : "") . ">" . $fldLabel . ":</td><td>" . "<textarea" . " style='font-size:84.6%'" . " name='" . $fldName . "'" . ($fld["error"] ? " class='error'" : "") . ($fld["required"] ? " class='required'" : "") . " rows='15' cols='40'>" . htmlspecialchars($fld["value"]) . "</textarea>" . "</td></tr>\r\n";
                     break;
                     // ---------------------------
                 // ---------------------------
                 case "checkbox":
                     // ---------------------------
                     $stdout .= "      <tr><td style='padding-right:1em;white-space:nowrap'" . ($fld["required"] ? " class='required'" : "") . ">" . $fldLabel . ":</td><td>" . "<input type='checkbox' name='" . $fldName . "'" . ($fld["error"] ? " class='error'" : "") . ($fld["required"] ? " class='required'" : "") . ($fld["value"] ? " checked='checked'" : "") . ">" . "</td></tr>\r\n";
                     break;
                     // ---------------------------
                 // ---------------------------
                 case "select":
                     // ---------------------------
                     if (empty($fld["list"]) && empty($fld["fixedvalue"])) {
                         break;
                     }
                     $stdout .= "      <tr><td style='padding-right:1em'" . ($fld["required"] ? " class='required'" : "") . ">" . $fldLabel . ":</td><td>";
                     if (empty($fld["list"])) {
                         $stdout .= $fld["fixedvalue"] . "</td></tr>\r\n";
                     } else {
                         $stdout .= "<select name='" . $fldName . "'" . ($fld["error"] ? " class='error'" : "") . ">" . "<option value='-1'" . (isset($GLOBALS[$fldName]) && $GLOBALS[$fldName] == "-1" ? " selected='selected'" : "") . ">--select--</option>";
                         foreach ($fld["list"] as $id => $description) {
                             $stdout .= "<option value='" . $id . "'" . ($fld["value"] == $id ? " selected='selected'" : "") . ">" . $description . "</option>";
                         }
                         $stdout .= "</select>" . "</td></tr>\r\n";
                     }
                     break;
                     // ---------------------------
             }
             // end switch
         }
     }
     $stdout .= "    </table>\r\n" . "    <p style='height:1.5em'>" . "<input type='submit' value='SAVE' style='height:100%'>" . "<span class='fakebuttonbutton' style='margin-left:0.5em;padding-left:0.5em;padding-right:0.5em'><a href='" . $_SERVER["PHP_SELF"] . (isset($_REQUEST["table"]) && isset($GLOBALS["position_id"]) ? "?position_id=" . $GLOBALS["position_id"] : "") . "'>CANCEL</a></span>" . "</p>\r\n" . "  </form>\r\n" . "\r\n";
     return $stdout;
 }
コード例 #18
0
 public static function analyzeOauthResponse($returnUrl, $domain)
 {
     $_SESSION["oauth_access_token"] = "";
     // -- (1) OAuth return values from first call (validation)
     //      $_REQUEST["state"]
     //      $_REQUEST["code"]
     functions::gpc_declare_input("code", "", false, array(), false);
     functions::gpc_declare_input("state", "", false, array(), false);
     $GLOBALS["oauth_state"] = $GLOBALS["state"];
     functions::gpc_declare_input("error", "", false, array(), false);
     functions::gpc_declare_input("error_reason", "", false, array(), false);
     functions::gpc_declare_input("error_description", "", false, array(), false);
     switch ($domain) {
         case "facebook":
             $accessTokenUrl = "https://graph.facebook.com/oauth/access_token?" . "redirect_uri=" . urlencode($returnUrl) . "&client_id=" . FACEBBOK_NEWS_APP_ID . "&client_secret=" . FACEBBOK_NEWS_APP_SECRET . "&code=" . $GLOBALS["code"];
             $authorizeUrl = "https://graph.facebook.com/me";
             break;
         case "twitter":
             $accessTokenUrl = "https://api.twitter.com/oauth/access_token?" . "redirect_uri=" . urlencode($returnUrl) . "&client_id=" . FACEBBOK_NEWS_APP_ID . "&client_secret=" . FACEBBOK_NEWS_APP_SECRET . "&code=" . $GLOBALS["code"];
             $authorizeUrl = "https://api.twitter.com/oauth/authorize";
             break;
     }
     if (OPENIDDEBUG) {
         echo "<hr><h4>START OAUTH RESPONSE:</h4>state=";
         var_dump($GLOBALS["state"]);
         echo "<br><br>SESSION(state)=";
         if (isset($_SESSION["oauth_state"])) {
             var_dump($_SESSION["oauth_state"]);
         } else {
             echo "-";
         }
         echo "<br><br>code=";
         var_dump($GLOBALS["code"]);
     }
     if (!empty($GLOBALS["error"])) {
         //TODO:
         if (OPENIDDEBUG) {
             echo "<br>OAUTH ERROR: ";
             var_dump($GLOBALS["error"]);
             var_dump($GLOBALS["error_reason"]);
             var_dump($GLOBALS["error_description"]);
         }
         if (OPENIDDEBUG) {
             echo "<h4>END OAUTH RESPONSE</h4><hr>";
         }
         return false;
     }
     if (isset($_SESSION["oauth_state"]) && $_SESSION["oauth_state"] === $GLOBALS["state"]) {
         $response = functions::acurl($accessTokenUrl);
         // do NOT use file_get_contents()
         $params = null;
         parse_str($response, $params);
     } else {
         //TODO: more user-friendly text
         if (OPENIDDEBUG) {
             echo "<h4>END OAUTH RESPONSE</h4><hr>";
         }
         return "The state does not match. You may be a victim of CSRF.";
     }
     // -- (2) OAuth return values from second call (exchange code for access token)
     if (isset($params["access_token"])) {
         // User data was returned:
         $_SESSION["oauth_access_token"] = $params["access_token"];
         //$_SESSION["oauth_expires"] = $params["expires"]; // seconds
         $authorizeUrl .= "?access_token=" . $params['access_token'];
         $user = json_decode(functions::acurl($authorizeUrl));
         if (OPENIDDEBUG) {
             debug::rr($user);
         }
         if (OPENIDDEBUG) {
             echo "<h4>END OAUTH RESPONSE</h4><hr>";
         }
         //echo("Hello " . $user->name);
         //$user->id
         //$user->name
         //$user->first_name
         //$user->last_name
         //Extended:
         // email
         // picture->url and picture->is_silhouette
         $idData["display_identifyer"] = isset($_SESSION["openid_identifier"]) ? $_SESSION["openid_identifier"] : "";
         //TODO: fragile:
         if (!empty($idData["display_identifyer"])) {
             $_SESSION["openid_last_valid_identifier"] = $idData["display_identifyer"];
         }
         $idData["data"]["nickname"][] = isset($user->name) ? $user->name : "";
         // no nickanme available
         $idData["data"]["email"][] = isset($user->email) ? $user->email : "";
         $idData["data"]["fullname"][] = isset($user->name) ? $user->name : "";
         //TODO:
         $idData["data"]["image"] = array();
         $idData["data"]["guid"] = array();
         $idData["data"]["dob"] = array();
         $idData["data"]["gender"] = array();
         $idData["data"]["postcode"] = array();
         $idData["data"]["country"] = array();
         $idData["data"]["language"] = array();
         $idData["data"]["timezone"] = array();
         // Dummy arrays for compatibility with OpenID output
         $idData["sreg"] = array();
         $idData["ax"] = array();
         $idData["pape"] = array();
         if (OPENIDDEBUG) {
             debug::rr($idData);
         }
         return $idData;
     } else {
         // An error message was returned:
         if (isset($_SESSION["openid_last_valid_identifier"])) {
             unset($_SESSION["openid_last_valid_identifier"]);
         }
         $errorArr = json_decode(stripslashes(current(array_flip($params))));
         if (OPENIDDEBUG) {
             debug::rr($errorArr->error);
         }
         if (OPENIDDEBUG) {
             echo str_replace("_", " ", $errorArr->error->message);
         }
         if (OPENIDDEBUG) {
             echo "<br>END OAUTH RESPONSE<hr>";
         }
         $error_org = htmlspecialchars(str_replace("_", " ", $errorArr->error->message));
         $error_public = "Please try again";
         if (IS_TESTSERVER) {
             $error = ":<br>" . $error_org . (!empty($error_public) ? " (" . $error_public . ")" : "");
         } else {
             $error = !empty($error_public) ? ":<br>" . $error_public : "";
         }
         return "<strong>OpenID authentication failed</strong>" . $error;
     }
 }