<?php if (!defined('PmWiki')) exit();

/* Copyright 2006 Americo Albuquerque */
$VariableArray = array();
$IfIsSet = 0;

SDV($VariableTest, 0);

Markup("set1", "_begining", '/\\(:set ([\w\d]+) "(.*)"\s*:\\)/ie', "SetVar('$1', '$2')");
Markup("checkif", '>set1', "/\\(:if/sei",
       "CheckIf()");
Markup("secondpass", ">checkif", "/\\(:set secondpass:\\)/e", 'SecondPass()');
Markup("set2", ">secondpass", '/\\(:set ([\w\d]+) "(.*)"\s*:\\)/ie', "SetVar('$1', '$2')");
Markup("vardump", "inline", '/\\(:vardump:\\)/e', "VarDump()");

function SecondPass() {
  global $IfIsSet;
  $IfIsSet = 1;
  return "";
}
function VarDump() {
  global $VariableArray, $FmtPV;
  if($VariableTest) {
    $text = "<h2>Variable Dump</h2>\n\n";
    foreach($VariableArray as $key=>$value) {
      $text .= "<b>$key</b> = <i>[{$value['value']}, {$value['isset']}])</i><br/>\n";
    }
    return $text;
  }
  return '';
}
function SetVar($name, $value) {
  global $VariableArray, $IfIsSet, $FmtPV;
  $VariableArray[$name] = array('value'=>$value, 'isset'=>$IfIsSet);
  $FmtPV["\$$name"] = "'$value'";
  if(!$IfIsSet) return "(:set $name \"$value\":)";
  if($VariableArray[$name]['isset']) $FmtPV["\$$name"] = "'$value'";
  return "";
}
function CheckIf() {
  DisableMarkup("checkif");
  return "(:set secondpass:)(:if";
}
?>