Example #1
0
 static function Acron($onlycaches = array())
 {
     $stdout = "";
     $newcache = $updatedRecords = array();
     // ----------------------
     // -- Update current event data from Agenda
     // ----------------------
     if (!class_exists("fromdb_nwevents", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/nwevents.php";
     }
     if (!isset($dbEv) || !is_object($dbEv)) {
         $dbEv = new fromdb_nwevents();
     }
     $updatedRecords = $dbEv->updateCurrentEventsFromAgenda();
     // ----------------------
     // -- Recreate all caches
     // ----------------------
     if (!class_exists("fromcache", FALSE)) {
         require_once PATH_CLASSES . "/lib/fromcache.php";
     }
     $cachesCallback = fromcache::get_cache_callback();
     foreach (array_reverse($cachesCallback) as $cachename => $callback) {
         $callback = str_replace("URL_PREFIX", URL_PREFIX, $callback);
         eval("\$c = functions::callMethod(" . $callback . ");");
         if ($c) {
             $newcache[] = $cachename . "\r\n";
         }
     }
     // ----------------------
     // -- Output confirmation
     // ----------------------
     $thecache = is_array($onlycaches) || !empty($onlycaches) ? $onlycaches : $newcache;
     $stdout .= "<div class='col-content-left' style='width:30%'>\r\n";
     if (count($updatedRecords)) {
         $stdout .= "<h3>Updated data for events:</h3>" . "  <ul>\r\n";
         foreach ($updatedRecords as $confId) {
             $stdout .= "    <li><a href='http://agenda.albanova.se/conferenceDisplay.py?confId=" . $confId . "'>" . $dbEv->getEventTitle($confId) . "</a></li>\r\n";
         }
         $stdout .= "  </ul>\r\n";
     }
     $stdout .= "<h3>Recreated Caches:</h3>" . "<ul>\r\n";
     foreach ($thecache as $c) {
         $stdout .= "<li>" . $c . "</li>\r\n";
     }
     $stdout .= "</ul>\r\n" . "\r\n</div><div class='col-content-right' style='width:60%'>\r\n" . admin::AcacheFilesList() . "</div>\r\n";
     return $stdout;
 }
Example #2
0
 public function updateEventsFromLocalFile()
 {
     if (!file_exists(INCLEVEL . PATH_MENU . "/m_events.php")) {
         return false;
     }
     include_once PATH_MENU . "/m_events.php";
     if (!isset($dbEv) || !is_object($dbEv)) {
         $dbEv = new fromdb_nwevents();
     }
     $existingConfids = $dbEv->getAgendaConferenceIdsForNorditaEvents();
     $success = true;
     $updatedRecords = 0;
     // -----------------------
     $events = menu_events();
     if (empty($events)) {
         return false;
     }
     foreach ($events as $path => $event) {
         if (preg_match("#events/([^/]*)#", $path, $subpath) && !empty($subpath[1]) && !empty($event["confid"])) {
             foreach (array("title", "blurb", "venue", "surveyresponse", "youtube") as $field) {
                 if (!isset($event[$field])) {
                     $event[$field] = "";
                 }
             }
             foreach (array("confid_parent", "syrveyid") as $field) {
                 if (!isset($event[$field])) {
                     $event[$field] = "0";
                 }
             }
             $event["subpath"] = $subpath[1];
             $et = strtolower($event["etype"]);
             $event["eventtype"] = isset(event::$eventTypeId[$et]) ? event::$eventTypeId[$et] : "0";
             $sql = "INSERT INTO " . $this->dbprefix . "event " . "  (event_id," . "  subpath," . "  eventtype," . "  title," . "  blurb," . "  venue," . "  confid_parent," . "  surveyid," . "  surveyresponse," . "  youtube) " . "VALUES " . "  ('" . addslashes(strip_tags($event["confid"])) . "'," . "   '" . addslashes(strip_tags($event["subpath"])) . "'," . "   '" . addslashes(strip_tags($event["eventtype"])) . "'," . "   '" . addslashes(strip_tags($event["title"])) . "'," . "   '" . addslashes(strip_tags($event["blurb"])) . "'," . "   '" . addslashes(strip_tags($event["venue"])) . "'," . "   '" . addslashes(strip_tags($event["confid_parent"])) . "'," . "   '" . addslashes(strip_tags($event["surveyid"])) . "'," . "   '" . addslashes(strip_tags($event["surveyresponse"])) . "'," . "   '" . addslashes(strip_tags($event["youtube"])) . "'" . "  ) " . "ON DUPLICATE KEY UPDATE " . "  subpath='" . addslashes(strip_tags($event["subpath"])) . "'," . "  eventtype='" . addslashes(strip_tags($event["eventtype"])) . "'," . "  title='" . addslashes(strip_tags($event["title"])) . "'," . "  blurb='" . addslashes(strip_tags($event["blurb"])) . "'," . "  venue='" . addslashes(strip_tags($event["venue"])) . "'," . "  confid_parent='" . addslashes(strip_tags($event["confid_parent"])) . "'," . "  surveyid='" . addslashes(strip_tags($event["surveyid"])) . "'," . "  surveyresponse='" . addslashes(strip_tags($event["surveyresponse"])) . "'," . "  youtube='" . addslashes(strip_tags($event["youtube"])) . "'";
             if ((bool) $this->query($sql, IS_TESTSERVER)) {
                 // includes a call to connect
                 $updatedRecords++;
             } else {
                 $success = false;
             }
         }
     }
     // end foreach
     // -----------------------
     return $updatedRecords;
     //return $success;
 }
Example #3
0
 public static function OutputMockagendaUpdate($updateCurrentEvents = FALSE, $updateFutureEvents = FALSE, $showOnlyAgendaOptions = FALSE)
 {
     $stdout = "";
     $options = $headers = $allConfids = $allConfidsUpdated = array();
     $eventTitle = $updatedRecords = array();
     $numberOfUpdatedRecords = 0;
     // ----------------------------------------------
     // -- GPC and initiations
     // ----------------------------------------------
     // UPDATE manually kept fields from legacy file - ALL events:
     functions::gpc_declare_input("uf", false, true);
     // UPDATE VM fields [disabled]:
     functions::gpc_declare_input("uv", false, true);
     // UPDATE Agenda fields - ALL events:
     functions::gpc_declare_input("ua", false, true);
     // UPDATE Agenda fields - CURRENT events:
     functions::gpc_declare_input("uc", $updateCurrentEvents && !$updateFutureEvents, true);
     // UPDATE Agenda fields - CURRENT and FUTURE events:
     functions::gpc_declare_input("un", $updateCurrentEvents && $updateFutureEvents, true);
     // Recreate 'menulookup' cache:
     functions::gpc_declare_input("um", false, true);
     if (!class_exists("fromdb_nwevents", FALSE)) {
         require_once PATH_CLASSES . "/fromdb/nwevents.php";
     }
     if (!isset($dbEv) || !is_object($dbEv)) {
         $dbEv = new fromdb_nwevents();
     }
     $allConfids = $dbEv->getAgendaConferenceIdsForNorditaEvents();
     $noRecordsInDB = (bool) (!is_array($allConfids) || empty($allConfids));
     if ($noRecordsInDB) {
         $GLOBALS["uv"] = $GLOBALS["ua"] = $GLOBALS["un"] = false;
     }
     // ----------------------------------------------
     // -- Act on selected option
     // ----------------------------------------------
     // UPDATE manually kept fields from legacy file - ALL events
     if ($GLOBALS["uf"]) {
         $numberOfUpdatedRecords = $dbEv->updateEventsFromLocalFile();
         if ($numberOfUpdatedRecords) {
             $noRecordsInDB = false;
         }
     } elseif ($GLOBALS["uv"]) {
         //if (!class_exists("fromdb_vm",FALSE)) require_once PATH_CLASSES . "/fromdb/vm.php";
         //$dbEv = new fromdb_vm();
         //$numberOfUpdatedRecords = ...();
     } elseif ($GLOBALS["ua"]) {
         $updatedRecords = $dbEv->updateEventsFromAgenda("");
         $numberOfUpdatedRecords = is_array($updatedRecords) ? count($updatedRecords) : $updatedRecords;
     } elseif ($GLOBALS["uc"]) {
         $updatedRecords = $dbEv->updateCurrentEventsFromAgenda();
         $numberOfUpdatedRecords = is_array($updatedRecords) ? count($updatedRecords) : $updatedRecords;
         document::recreateMenulookupCache();
         // also recreate menu cache, to make sure
     } elseif ($GLOBALS["un"]) {
         $updatedRecords = $dbEv->updateEventsFromAgenda(date("Y-m-d", strtotime("-50 days")));
         $numberOfUpdatedRecords = is_array($updatedRecords) ? count($updatedRecords) : $updatedRecords;
         document::recreateMenulookupCache();
         // also recreate menu cache, to make sure
     } elseif ($GLOBALS["um"]) {
         if (document::recreateMenulookupCache()) {
             $stdout .= "\r\n" . functions::boxMessage("confirm", "<strong>Cache 'menulookup'</strong> was successfully recreated.") . "\r\n";
         } else {
             $stdout .= "\r\n" . functions::boxMessage("error", "<strong>Cache 'menulookup'</strong> could not be recreated") . "\r\n";
         }
     }
     // -----------------------
     $allConfidsUpdated = $numberOfUpdatedRecords ? $dbEv->getAgendaConferenceIdsForNorditaEvents() : $allConfids;
     // ----------------------------------------------
     // -- Output
     // ----------------------------------------------
     $stdout .= "  <p class='largefont'>There are currently <strong>" . count($allConfidsUpdated) . " events</strong> in the local 'nw_events' database.</p>\r\n";
     // -----------------------
     $stdout .= "<div class='col c1of2'>\r\n";
     $stdout .= "  <p><strong>The local database 'nw_events'</strong> collects information of Nordita events (programs, workshops, conferences, meetings, schools) from several sources: most data comes from the <strong>AlbaNova Agenda database</strong>; some fields are fetched from the <strong>VM database</strong>; and some metadata fields are <strong>manually kept only in the 'nw_events' database</strong>.</p>\r\n";
     if (!$showOnlyAgendaOptions) {
         $headers["manual"] = "Manually Kept Files";
         $options["manual"][] = "<a href='" . $_SERVER["PHP_SELF"] . "?uf=1'>UPDATE manually kept fields from legacy file - ALL events</a>";
         if (!$noRecordsInDB) {
             $options["manual"][] = "<a href='" . str_replace("nw_events_update", "nw_events_edit", $_SERVER["PHP_SELF"]) . "'>" . "EDIT manually kept fields - SINGLE event</a> " . "<span style='padding-left:1em;font-weight:normal;white-space:nowrap'>(use [Edit] links)</span>";
         }
     }
     $headers["agenda"] = "Agenda Fields";
     if (!$showOnlyAgendaOptions) {
         $options["agenda"][] = "<a href='" . $_SERVER["PHP_SELF"] . "?ua=1'>UPDATE Agenda fields - ALL events</a> " . "<span style='padding-left:1em;font-weight:normal;white-space:nowrap'>(going back to 2007)</span>";
     }
     if (!$noRecordsInDB) {
         $options["agenda"][] = "<a href='" . $_SERVER["PHP_SELF"] . "?uc=1'>UPDATE Agenda fields - CURRENT events</a>";
     }
     if (!$noRecordsInDB) {
         $options["agenda"][] = "<a href='" . $_SERVER["PHP_SELF"] . "?un=1'>UPDATE Agenda fields - CURRENT and FUTURE events</a>";
     }
     if (!$showOnlyAgendaOptions) {
         if (!$noRecordsInDB) {
             $options["agenda"][] = "<a href='" . str_replace("nw_events_update", "nw_events_edit", $_SERVER["PHP_SELF"]) . "'>UPDATE Agenda fields - SINGLE event</a> <span style='padding-left:1em;font-weight:normal;white-space:nowrap'>(use [Update] links)</span>";
         }
         $options["agenda"][] = "<a href='" . AGENDA_URI . "/'>EDIT Agenda events</a> " . EXTERNAL_LINK;
     }
     if (!$showOnlyAgendaOptions) {
         $headers["vm"] = "VM Fields";
         $options["vm"][] = "[UPDATE VM fields - disabled]";
         //$options["vm"][] = "<a href='".$_SERVER["PHP_SELF"]."?uv=1'>UPDATE VM fields</a>";
     }
     if (!$showOnlyAgendaOptions) {
         $headers["varia"] = "Varia";
         $options["varia"][] = "<a href='" . $_SERVER["PHP_SELF"] . "?um=1'>Recreate 'menulookup' cache</a>";
     }
     //$stdout .= "<p><strong>&#187; Update event records in database 'nw_events'...</strong></p>\r\n";
     foreach (array("manual", "agenda", "vm", "varia") as $db) {
         if (!empty($options[$db])) {
             $stdout .= (!empty($headers[$db]) ? "<h4>" . $headers[$db] . "</h4>\r\n" : "") . "<ul class='bold tightlist'>\r\n" . "  <li>" . implode($options[$db], "</li>\r\n  <li>") . "</li>\r\n" . "</ul>\r\n";
         }
     }
     // -----------------------
     $stdout .= "</div> <div class='col c2of2'>\r\n";
     if (!empty($_REQUEST) && !$GLOBALS["um"] && !$noRecordsInDB && isset($numberOfUpdatedRecords)) {
         $stdout .= $numberOfUpdatedRecords > 0 ? "  <p class='box padding confirm background'>Successfully updated " . "<strong>" . $numberOfUpdatedRecords . "</strong> records in the database 'nw_events'.</p>\r\n" : "  <p class='box padding error background'><strong>Could not update any records</strong> " . "in the database 'nw_events'." . (!$noRecordsInDB && $numberOfUpdatedRecords == ERROR_NO_EVENTS_REQUESTED ? " [No events requested]" : "") . (!$noRecordsInDB && $numberOfUpdatedRecords == 0 ? " [No events updated]" : "") . "</p>\r\n";
         if (count($updatedRecords)) {
             $stdout .= "  <ul>\r\n";
             foreach ($updatedRecords as $confId) {
                 $stdout .= "    <li><a href='http://agenda.albanova.se/conferenceDisplay.py?confId=" . $confId . "'>" . $dbEv->getEventTitle($confId) . "</a></li>\r\n";
             }
             $stdout .= "  </ul>\r\n";
         }
     }
     // -----------------------
     $stdout .= "</div><div style='clear:both'><br></div>\r\n";
     // -----------------------
     return $stdout;
 }