Ejemplo n.º 1
0
 /**
  * Show a set of entries
  * @param refs An array of references
  * @param options The options to pass to bib2tpl
  * @param getKeys Keep track of the keys for a final substitution
  */
 function showEntries(&$refs, &$options, $getKeys, $mainTpl, $formatTpl, $mode)
 {
     // Get the template files
     $mainFile = papercite::getDataFile("/tpl/{$mainTpl}.tpl");
     $formatFile = papercite::getDataFile("/format/{$formatTpl}.tpl");
     // Fallback to defaults if needed
     if (!$mainFile) {
         $mainFile = papercite::getDataFile("/tpl/" . papercite::$default_options["{$mode}_template"] . ".tpl");
     }
     if (!$formatFile) {
         $formatFile = papercite::getDataFile("/format/" . papercite::$default_options["format"] . ".tpl");
     }
     $main = file_get_contents($mainFile[0]);
     $format = file_get_contents($formatFile[0]);
     $bibtexEntryTemplate = new BibtexEntryFormat($format);
     // Gives a distinct ID to each publication (i.e. to display the corresponding bibtex)
     // in the reference list
     foreach ($refs as &$entry) {
         $entry["papercite_id"] = $this->counter++;
     }
     // Convert (also set the citation key)
     $bib2tpl = new BibtexConverter($options, $main, $bibtexEntryTemplate);
     $bib2tpl->setGlobal("WP_PLUGIN_URL", WP_PLUGIN_URL);
     $r = $bib2tpl->display($refs);
     // If we need to get the citation key back
     if ($getKeys) {
         foreach ($refs as &$group) {
             foreach ($group as &$ref) {
                 $this->keys[] = $ref["pKey"];
                 $this->keyValues[] = $ref["key"];
             }
         }
     }
     // Process text in order to avoid some unexpected WordPress formatting
     return str_replace("\t", '  ', trim($r["text"]));
 }
Ejemplo n.º 2
0
  /**
   * Show a set of entries
   * @param refs An array of references
   * @param options The options to pass to bib2tpl
   * @param getKeys Keep track of the keys for a final substitution
   */
  function showEntries(&$refs, &$options, $getKeys, $mainTpl, $formatTpl, $mode) {
    $mainFile = papercite::getDataFile("/tpl/$mainTpl.tpl");
    $formatFile = papercite::getDataFile("/format/$formatTpl.tpl");

    // Fallback to defaults
    if (!$mainFile)
      $mainFile = papercite::getDataFile("/tpl/" .papercite::$default_options["${mode}_template"] .".tpl");
    if (!$formatFile)
      $formatFile = papercite::getDataFile("/format/" .papercite::$default_options["format"] . ".tpl");

    $main = file_get_contents($mainFile[0]);
    $format = file_get_contents($formatFile[0]);
    $bibtexEntryTemplate = new BibtexEntryFormat($format);

    foreach($refs as &$entry) {
      $entry["papercite_id"] = $this->counter++;
    }

    // Convert
    $bib2tpl = new BibtexConverter($options, $main, $bibtexEntryTemplate);
    $bib2tpl->setGlobal("WP_PLUGIN_URL", WP_PLUGIN_URL);
    $r =  $bib2tpl->display($refs);

    if ($getKeys) {
      foreach($refs as &$group)
	foreach($group as &$ref) {
	  $this->keys[] = $ref["pKey"];
	  $this->keyValues[] = $ref["key"];
	}
    }

    // Process text in order to avoid some unexpected WordPress formatting 
    return str_replace("\t", '  ', trim($r["text"]));
  }
Ejemplo n.º 3
0
 /**
  * Show a set of entries
  * @param refs An array of references
  * @param options The options to pass to bib2tpl
  * @param getKeys Keep track of the keys for a final substitution
  */
 function showEntries($refs, $goptions, $options, $getKeys, $mainTpl, $formatTpl, $mode)
 {
     // Get the template files
     $main = $this->getContent("{$mainTpl}", "tpl", "tpl", "MIMETYPE", $goptions, true);
     $format = $this->getContent("{$formatTpl}", "tpl", "format", "MIMETYPE", $goptions, true);
     // Fallback to defaults if needed
     if (!$main) {
         $main = $this->getContent(papercite::$default_options["{$mode}_template"], "tpl", "tpl", "MIMETYPE", $goptions, true);
     }
     if (!$format) {
         $format = $this->getContent(papercite::$default_options["format"], "tpl", "format", "MIMETYPE", $goptions, true);
     }
     $bibtexEntryTemplate = new PaperciteBibtexEntryFormat($format);
     // Gives a distinct ID to each publication (i.e. to display the corresponding bibtex)
     // in the reference list
     if ($refs) {
         foreach ($refs as &$entry) {
             $entry["papercite_id"] = $this->counter++;
         }
     }
     // Convert (also set the citation key)
     $bib2tpl = new BibtexConverter($options, $main, $bibtexEntryTemplate);
     $bib2tpl->setGlobal("WP_PLUGIN_URL", WP_PLUGIN_URL);
     $bib2tpl->setGlobal("PAPERCITE_DATA_URL", Papercite::getCustomDataDirectory());
     // Now, check for attached files
     if (!$refs) {
         // No references: return nothing
         return "";
     }
     foreach ($refs as &$ref) {
         // --- Add custom fields
         $this->checkFiles($ref, $goptions);
     }
     // This will set the key of each reference
     $r = $bib2tpl->display($refs);
     // If we need to get the citation key back
     if ($getKeys) {
         foreach ($refs as &$group) {
             foreach ($group as &$ref) {
                 $this->keys[] = $ref["pKey"];
                 if ($goptions["show_links"]) {
                     $this->keyValues[] = "<a class=\"papercite_bibcite\" href=\"#paperkey_{$ref["papercite_id"]}\">{$ref["key"]}</a>";
                 } else {
                     $this->keyValues[] = $ref["key"];
                 }
             }
         }
     }
     // Process text in order to avoid some unexpected WordPress formatting
     return str_replace("\t", '  ', trim($r["text"]));
 }