function getPpmWithMetadata($max = 0) { //if (!isset($GLOBALS["preprintsClass"]) || !is_object($GLOBALS["preprintsClass"])) { // require_once PATH_CLASSES . "/fromdb/preprints.php"; // $GLOBALS["preprintsClass"] = new fromdb_preprints(); //} preprint::loadClass(PREPRINT_DATA_SOURCE_DB); // --> $GLOBALS["preprintClass"] $ppData = $GLOBALS["preprintClass"]->getRecentPreprints("bygroup", $max); $ppMetadata = $this->getPpmMetadata(); foreach ($ppData as $wid => $p) { $p["ppn"] = str_pad($p["ppn"], 3, "0", STR_PAD_LEFT); $ppData[$wid]["norppn"] = $p["year"] . "-" . $p["ppn"]; } foreach ($ppData as $wid => $p) { $ppData[$wid]["norcat"] = isset($p["norppn"]) && isset($ppMetadata[$p["norppn"]]) && $ppMetadata[$p["norppn"]]["label"] !== "-" ? $ppMetadata[$p["norppn"]]["label"] : ""; $ppData[$wid]["noryear"] = isset($p["norppn"]) && isset($ppMetadata[$p["norppn"]]["year"]) ? $ppMetadata[$p["norppn"]]["year"] : ""; } return $ppData; }
public static function drawPreprints() { $stdout = ""; // ----------------------------------------------------------- // -- Obtain preprint numbers // ----------------------------------------------------------- self::initiateNewsClass(); $issue_id = $GLOBALS["newsClass"]->getCurrentIssueId(); $pn = $GLOBALS["newsClass"]->getPreprintNumbers($issue_id); if (empty($pn)) { return ""; } // ----------------------------------------------------------- // -- Obtain preprint data // ----------------------------------------------------------- //if (!isset($dbPreprints) || !is_object($dbPreprints)) { // require_once PATH_CLASSES . "/fromdb/preprints.php"; // $dbPreprints = new fromdb_preprints(); //} preprint::loadClass(PREPRINT_DATA_SOURCE_DB); // --> $GLOBALS["preprintClass"] $preprints_row = $GLOBALS["preprintClass"]->getRecentPreprints("byid", 3, false, $pn["0"], $pn["1"]); array_shift($preprints_row); // ----------------------------------------------------------- // -- Output // ----------------------------------------------------------- $stdout .= "<h2 class='bottommargin'>NORDITA PREPRINTS</h2>\r\n" . "<p style='margin-bottom:-0.5em' class='only_online'>→ See All Preprints: <a href='preprints/index.php' rel='nofollow'><strong>www.nordita.org/preprints</strong></a></p>\r\n" . "<p style='margin-bottom:2em'><em>The following preprints have been posted to the Nordita on-line preprint archive since the last newsletter issue:</em></p>\r\n"; foreach ($preprints_row as $row) { $stdout .= "<dl>\r\n" . " <dt><strong>" . (!empty($row["location"]) ? "<a href='" . $row["location"] . "'>" . $row["serial"] . "</a>" : $row["serial"]) . "</strong></dt>\r\n" . " <dd>"<strong>" . $row["title"] . "</strong>"</dd>\r\n" . " <dd>" . $row["authors"] . "</dd>\r\n" . " <dd><em>" . $row["journal"] . "</em></dd>\r\n" . "</dl>\r\n"; } // ----------------------------------------------------------- return $stdout; }
static function OutputStatisticsPreprints($max) { $stdout = ""; $theform = ""; $htmllist = ""; $wordlist = ""; $textlist = ""; $founderror = 0; functions::gpc_declare_input("statistics_select", false, true); functions::gpc_declare_input("yearfrom", VM_START_YEAR, false); functions::gpc_declare_input("yearto", date("Y"), false); functions::gpc_declare_input("output_type", "html", false); // -------------------------------------- // LOAD CLASS // -------------------------------------- if (!isset($GLOBALS["ppmClass"])) { if (!class_exists("fromdb_preprintsmeta", FALSE)) { require_once PATH_CLASSES . "/fromdb/preprintsmeta.php"; } $GLOBALS["metadataClass"] = new fromdb_preprintsmeta(); } //if (!isset($GLOBALS["preprintsClass"]) || !is_object($GLOBALS["preprintsClass"])) { // require_once PATH_CLASSES . "/fromdb/preprints.php"; // $GLOBALS["preprintsClass"] = new fromdb_preprints(); //} preprint::loadClass(PREPRINT_DATA_SOURCE_DB); // --> $GLOBALS["preprintClass"] // -------------------------------------- // COLLECT DATA // -------------------------------------- $ppCategories = $GLOBALS["metadataClass"]->getPpmCategories(); $i = 1; foreach ($ppCategories as $label => $slask) { $ppSort[$label] = $i++; } $ppSort["0"] = "99"; /* "R" => "1", "C" => "2", "B" => "3", "X" => "4", "D" => "5", "P" => "6", "S" => "7", "t" => "8", "n" => "9", "0" => "99" */ $ppRsort = array_flip($ppSort); $ppData = $GLOBALS["metadataClass"]->getPpmWithMetadata($max); // --------------------------------------------------------------------------- // The preprints list // --------------------------------------------------------------------------- $preprints_row = $GLOBALS["preprintClass"]->getRecentPreprints("bygroup", $max); //debug::rr($preprints_row); /* if (false) { // -------------------------- // Raw Data list // -------------------------- foreach ($preprints_row as $p) { if ( //($p["year"]<2007) || ($GLOBALS["yearto"]>=$p["year"]) ) $htmllist .= " <p>" . "{<em>" . $p["field"] . "</em>} ". "[<a href='" . $p["location"] . "'>" . $p["serial"] . "</a>]" . " <strong>" . $p["title"] . "</strong>" . " by " . $p["authors"] . ( (!empty($p["journal"])) ? " (" . ucfirst($p["journal"]) . ")" : "" ) . "</p>\r\n"; } return (!empty($htmllist)) ? " <div>\r\n" . " <p class='seealso'>" . $htmllist . " </div>\r\n" . "\r\n" : ""; } // end if (false) */ // -------------------------- $ppmax = array(); foreach ($preprints_row as $wid => $p) { $p["ppn"] = str_pad($p["ppn"], 3, "0", STR_PAD_LEFT); $preprints_row[$wid]["norppn"] = $p["year"] . "-" . $p["ppn"]; if (!isset($ppmax[$p["year"]]) || $ppmax[$p["year"]] < $p["ppn"]) { $ppmax[$p["year"]] = "['" . $p["year"] . "'," . (int) $p["ppn"] . "]"; } } ksort($ppmax); /* include PATH_DATA."/statistics_preprints/classification.inc.php"; */ /* $ppList = array(); foreach ($preprints_row as $wid => $p) { if (isset($p["norppn"]) && isset($ppYear[$p["norppn"]]) && isset($ppHead[$p["norppn"]]) && ($ppHead[$p["norppn"]]!=="-") && ($GLOBALS["yearfrom"]<=$ppYear[$p["norppn"]]) && ($ppYear[$p["norppn"]]<=$GLOBALS["yearto"]) ) { $ppList[$ppSort[$ppHead[$p["norppn"]]]][$ppYear[$p["norppn"]]][$p["norppn"]] = $p; } } */ foreach ($ppData as $data) { if (!empty($data["norcat"]) && !empty($data["noryear"]) && $data["norcat"] !== "-" && $GLOBALS["yearfrom"] <= $data["noryear"] && $data["noryear"] <= $GLOBALS["yearto"]) { $ppList[$ppSort[$data["norcat"]]][$data["noryear"]][$data["serial"]] = $data; } } foreach ($ppList as $norppn => $p1) { krsort($p1); $ppList[$norppn] = $p1; foreach ($p1 as $year => $p2) { krsort($p2); $ppList[$norppn][$year] = $p2; } unset($ppList[$year][""]); } $ppList[$ppSort["D"]][1] = array("code" => "The Pencil-Code", "desc" => "A high-order finite-difference code for compressible hydrodynamic flows with magnetic fields.", "url" => "http://pencil-code.googlecode.com"); if ($GLOBALS["yearfrom"] <= 2012 && 2010 <= $GLOBALS["yearto"]) { // CK $ppList[$ppSort["D"]][] = array("code" => "G-Pen", "desc" => "Reimplementing the pencil-code for GPU using CUDA so we call it G-Pen.", "url" => "http://nas-fermi.albanova.se/cgit.cgi/gpen"); } if ($GLOBALS["yearfrom"] <= 2011 && 2009 <= $GLOBALS["yearto"]) { // Niccolò $ppList[$ppSort["D"]][] = array("code" => "XNS", "desc" => "A code for axisymmetric equilibrium configurations of differentially rotating Neutron Stars with toroidal magnetic field.", "url" => "http://sites.google.com/site/niccolobucciantini/xns"); } ksort($ppList); //echo "<h1>ppData</h1>";debug::rr($ppData); //echo "<h1>ppList</h1>";debug::rr($ppList); //echo "<h1>ppSort</h1>";debug::rr($ppSort); //echo "<h1>ppRsort</h1>";debug::rr($ppRsort); // --------------------------------------------------------------------------- // Form for list preferences // --------------------------------------------------------------------------- $sortby = 0; $theform .= " <form id='selectmenu' action='" . $_SERVER["PHP_SELF"] . "' method='post' class='only_online'>\r\n" . " <div class='input shadow-whiteinset'>\r\n" . " <span>List preprints from:</span> \r\n" . " <select name='yearfrom'>\r\n"; for ($year = VM_START_YEAR; $year <= date("Y"); $year++) { $theform .= " <option value='" . $year . "'" . ($GLOBALS["yearfrom"] == $year ? " selected='selected'" : "") . ">" . $year . "</option>\r\n"; } $theform .= " </select>\r\n" . " <span>to:</span> \r\n" . " <select name='yearto'>\r\n"; for ($year = VM_START_YEAR; $year <= date("Y"); $year++) { $theform .= " <option value='" . $year . "'" . ($GLOBALS["yearto"] == $year ? " selected='selected'" : "") . ">" . $year . "</option>\r\n"; } $theform .= " </select>\r\n" . " </div>\r\n" . " <div class='input shadow-whiteinset'><span>Display as:</span>\r\n" . " <input type='radio' name='output_type' value='html'" . ($GLOBALS["output_type"] == "html" ? " checked" : "") . "> web page\r\n" . " <input type='radio' name='output_type' value='word'" . ($GLOBALS["output_type"] == "word" ? " checked" : "") . "> word-ready\r\n" . " <input type='radio' name='output_type' value='text'" . ($GLOBALS["output_type"] == "text" ? " checked" : "") . "> plaintext\r\n" . " </div>\r\n" . " <div class=''>\r\n" . " <input type='submit' value='Select'>\r\n" . " <input type='hidden' name='statistics_select' value='1'>\r\n" . " </div>\r\n" . " <p style='font-size:smaller;margin-left:3em'><em>NB. When selecting options 'word-ready' or plaintext', use the <strong>browser back button</strong> to get back to this page</em></p>\r\n" . " </form>\r\n" . "\r\n"; $formdata = ""; $showform = 1; if ($GLOBALS["statistics_select"]) { $errormessage = ""; $founderror = 0; if ($GLOBALS["yearfrom"] > $GLOBALS["yearto"]) { $founderror = 1; $errormessage .= " <p class='red bold'>» The year interval seems to be a bit strange.</p>\r\n\r\n"; } if (!is_numeric($GLOBALS["yearfrom"]) || $GLOBALS["yearfrom"] < VM_START_YEAR) { $founderror = 1; $errormessage .= " <p class='red bold'>» The start year seems to be a bit strange.</p>\r\n\r\n"; } if (!is_numeric($GLOBALS["yearto"]) || date("Y") < $GLOBALS["yearto"]) { $founderror = 1; $errormessage .= " <p class='red bold'>» The end year seems to be a bit strange.</p>\r\n\r\n"; } if (!in_array($GLOBALS["output_type"], array("html", "xstext"))) { $founderror = 1; $errormessage .= " <p class='red bold'>» The output type seems to be a bit strange.</p>\r\n\r\n"; } if ($founderror) { $formdata .= $errormessage; $showform = 1; } else { // $userdata = self::getDoorlabelData(); // $stdout .= self::outputDoorlabelImage($userdata); // $showform = 0; } // end if ($noerror) } else { // leave vertical space for error messages //$formdata .= " <p> </p>\r\n\r\n"; } // end if (statistics_select) if ($showform) { $formdata .= $theform; /* unset($GLOBALS["statistics_select"]); $userdata = self::doorlabelData(); if (empty($userdata)) { $formdata .= BLURB_SORRY_PEOPLE_SEARCH; } else { $formdata .= "FORM"; } */ } // -------------------------- // Sorted list - html // -------------------------- foreach ($ppList as $norppn => $p1) { if ($norppn < 8) { $htmllist .= (isset($ppCategories[$ppRsort[$norppn]]) ? " <h2 id='" . $ppRsort[$norppn] . "'>" . $ppCategories[$ppRsort[$norppn]] . "</h2>\r\n" : "") . "\r\n"; if ($norppn == 5) { $i = 1; $htmllist .= " <table class='item'>\r\n"; foreach ($p1 as $wid => $p) { $zclass = " class='b_zebra" . ($i % 2 + 1) . "'"; $htmllist .= " <tr>\r\n" . " <td" . $zclass . ">[" . $i++ . "]</td>\r\n" . " <td" . $zclass . ">\r\n" . (isset($p["code"]) ? "<strong>" . $p["code"] . "</strong>" : "") . (isset($p["desc"]) ? "\r\n <br>" . str_replace("\"", "'", $p["desc"]) . "" : "") . ($norppn != 7 && !empty($p["url"]) ? "\r\n <br><span style='display:block;padding-left:2em;' class='monospace'>" . $p["url"] . "</span>" : "") . "</td>\r\n" . " </tr>\r\n"; } $htmllist .= " </table>\r\n" . "\r\n"; } else { $i = 1; foreach ($p1 as $year => $p2) { if ($norppn < 8 || $GLOBALS["yearfrom"] < $year) { $htmllist .= " <h4>" . $year . "</h4>\r\n" . "\r\n" . " <table class='item'>\r\n"; foreach ($p2 as $wid => $p) { $zclass = " class='b_zebra" . (($i - 1) % 2 + 1) . "'"; $htmllist .= " <tr>\r\n" . " <td" . $zclass . ">[" . $i++ . "]</td>\r\n" . " <td" . $zclass . ">\r\n" . (isset($p["authors"]) ? " <p>" . str_replace("&", " and ", $p["authors"]) . "</p>" : "") . (isset($p["title"]) ? "\r\n <p>"<strong>" . str_replace("\"", "'", $p["title"]) . "</strong>"</p>" : "") . ($norppn != 7 && !empty($p["journal"]) ? "\r\n <p>" . ucfirst(str_replace("not to be published", "", $p["journal"])) . "</p>" : "") . "</td>\r\n" . " </tr>\r\n"; } $htmllist .= " </table>\r\n" . "\r\n"; } } } } } // -------------------------- // Sorted list - word // -------------------------- foreach ($ppList as $norppn => $p1) { if ($norppn < 8 && $norppn != 5) { if (isset($ppCategories[$ppRsort[$norppn]])) { $wordlist .= " <h2>" . $ppCategories[$ppRsort[$norppn]] . "</h2>\r\n\r\n"; } $i = 1; foreach ($p1 as $year => $p2) { if ($norppn < 8 || $GLOBALS["yearfrom"] < $year) { $wordlist .= " <h4>" . $year . "</h4>\r\n" . "\r\n"; foreach ($p2 as $wid => $p) { $wordlist .= "<p>[" . $i++ . "] " . (isset($p["authors"]) ? str_replace("&", " and ", $p["authors"]) : "") . (isset($p["title"]) ? " "<strong>" . str_replace("\"", "'", $p["title"]) . "</strong>"" : "") . ($norppn != 7 && !empty($p["journal"]) ? "; " . ucfirst(str_replace("not to be published", "", $p["journal"])) : "") . "</p>\r\n"; } $wordlist .= "\r\n"; } } } } // -------------------------- // Sorted list - text // -------------------------- foreach ($ppList as $norppn => $p1) { if ($norppn < 8 && $norppn != 5) { if (isset($ppCategories[$ppRsort[$norppn]])) { $textlist .= $ppCategories[$ppRsort[$norppn]] . "\r\n\r\n"; } $i = 1; foreach ($p1 as $year => $p2) { if ($norppn < 8 || $GLOBALS["yearfrom"] < $year) { $textlist .= $year . "\r\n" . "\r\n"; foreach ($p2 as $wid => $p) { $textlist .= "[" . $i++ . "] " . (isset($p["authors"]) ? str_replace("&", " and ", $p["authors"]) : "") . (isset($p["title"]) ? ", '" . str_replace("\"", "'", $p["title"]) . "'" : "") . ($norppn != 7 && !empty($p["journal"]) ? "; " . ucfirst(str_replace("not to be published", "", $p["journal"])) : "") . "\r\n"; } $textlist .= "\r\n"; } } } } // --------------------------------------------------------------------------- // Output // --------------------------------------------------------------------------- if (empty($htmllist)) { return ""; } if ($GLOBALS["yearfrom"] == $GLOBALS["yearto"]) { $yearinterval = $GLOBALS["yearfrom"]; } else { $yearinterval = $GLOBALS["yearfrom"] . "-" . $GLOBALS["yearto"]; } switch ($GLOBALS["output_type"]) { case "html": $stdout .= " <style type='text/css'>\r\n" . " table.item {width:100%;}\r\n" . " table.item td:first-child {width:2em}\r\n" . " table.item td {padding:0 1em 0 1em;}\r\n" . " table.item p {margin-bottom:0em;}\r\n" . " h4 {margin-bottom: 1em;}\r\n" . " </style>\r\n" . " <div>\r\n" . " <div>\r\n" . self::outputColumnchart("preprints", $ppmax, "Nordita Preprints 1995-" . date("Y"), "700", "300", array(""), "{slantedText:true}", "{baseline:0, gridlines:{count:7}}") . " </div>\r\n" . "\r\n" . $formdata; if (!$founderror) { $stdout .= " <hr>\r\n" . " <h4>" . "From the <a href='preprints/index.php' rel='nofollow'>" . "Nordita preprint archive</a> " . $yearinterval . ":</h4>\r\n" . " <div class='col-content-left'>\r\n" . " <ul>\r\n" . " <li class='bold'><a href='" . $_SERVER["PHP_SELF"] . "#R'>Refereed Papers</a></li>\r\n" . " <li class='bold'><a href='" . $_SERVER["PHP_SELF"] . "#C'>Refereed conference contributions</a></li>\r\n" . " <li class='bold'><a href='" . $_SERVER["PHP_SELF"] . "#B'>Review articles, book chapters, books</a></li>\r\n" . " </ul>\r\n" . " </div><div class='col-content-right'>\r\n" . " <ul>\r\n" . " <li class='bold'><a href='" . $_SERVER["PHP_SELF"] . "#D'>Open Source Computer Software</a></li>\r\n" . " <li class='bold'><a href='" . $_SERVER["PHP_SELF"] . "#P'>Popular science articles or presentations</a></li>\r\n" . " <li class='bold'><a href='" . $_SERVER["PHP_SELF"] . "#S'>Submitted papers and conference contributions</a></li>\r\n" . " </ul>\r\n" . " </div><div style='clear:both'><br></div>\r\n" . "\r\n" . " <div id='prepweb'>\r\n" . " " . PAGE_BREAK . " </div>\r\n" . $htmllist; } $stdout .= " </div>\r\n" . "\r\n"; break; case "word": $stdout .= " <style type='text/css'>\r\n" . " p {margin-bottom:-1em}\r\n" . " h1,h2,h3,h4 {font-size:1em;}\r\n" . " h1, h2 {text-transform: uppercase}\r\n" . " h4 {margin-bottom: 1em;}\r\n" . " p+h2, p+h4 {margin-top: 2em;}\r\n" . " </style>\r\n" . " <div id='prepword'>\r\n" . "\r\n" . " <h1>FROM THE NORDITA PREPRINT ARCHIVE " . $yearinterval . "</h1>\r\n" . "\r\n" . $wordlist . "\r\n" . " </div>\r\n" . ""; break; case "text": // assumed to be configured as "contenttype" => "plain" $stdout .= "FROM THE NORDITA PREPRINT ARCHIVE " . $yearinterval . "\r\n" . "\r\n" . $textlist . ""; break; } // end switch return $stdout; }