open($file); $parser->read(); $parser->read(); /** * pull all relevant info from the config file... gives you the following variables to work with: * commentAction, commentRedirect, commentMessage, commentAttributes, data, enableDelete, commentText * successMessage, deleteAction, deleteRedirect, deleteMessage, deleteAttributes, deleteText, commentLayout, * globalOpen, globalClose, localOpen, and localClose */ do { switch ($parser->name) { case "addComment": //echo "in addComment
"; $commentAction = $parser->getAttribute("action"); $commentRedirect = $parser->getAttribute("redirect"); $data = $parser->getAttribute("data"); $enableDelete = $parser->getAttribute("enableDelete"); $backup = $parser->getAttribute("backup"); $backup = substr($backup, 0, strrpos($backup, "/")); $backup .= "/" . $data; echo $backup; $parser->read(); do { switch ($parser->name) { case "commentMessage": $commentText = stripXML($parser, $commentText); break; case "successMessage": $successMessage = stripXML($parser, $successMessage); break; case "button": $parser->read(); do { switch ($parser->name) { case "message": $parser->read(); $commentMessage = $parser->value; $parser->read(); break; case "attributes": $parser->read(); $parser->read(); $commentAttributes = " " . $parser->value; $parser->read(); $parser->read(); break; } } while ($parser->next() && $parser->depth > 2); break; } } while ($parser->next() && $parser->depth > 1); break; case "deleteComment": //echo "in deleteComment"; $deleteAction = $parser->getAttribute("action"); $deleteRedirect = $parser->getAttribute("redirect"); $parser->read(); do { switch ($parser->name) { case "successMessage": $deleteText = stripXML($parser, $deleteMessage); break; case "button": $parser->read(); do { switch ($parser->name) { case "message": $parser->read(); $deleteMessage = $parser->value; $parser->read(); break; case "attributes": $parser->read(); $parser->read(); $deleteAttributes = " " . $parser->value; $parser->read(); $parser->read(); break; } } while ($parser->next() && $parser->depth > 2); break; } } while ($parser->next() && $parser->depth > 1); break; case "commentView": $parser->read(); do { switch ($parser->name) { case "globalDiv": $parser->read(); do { switch ($parser->name) { case "open": $globalOpen = stripXML($parser, $globalOpen); break; case "close": $globalClose = stripXML($parser, $globalClose); break; } } while ($parser->next() && $parser->depth > 2); break; case "layout": $commentLayout = stripXML($parser, $commentLayout); break; break; case "localDiv": $parser->read(); do { switch ($parser->name) { case "open": $localOpen = stripXML($parser, $localOpen); break; case "close": $localClose = stripXML($parser, $localClose); break; } } while ($parser->next() && $parser->depth > 2); break; } } while ($parser->next() && $parser->depth > 1); break; } } while ($parser->next()); function stripXML($parser, $data) { $initDepth = $parser->depth; $array = array(""); $parser->read(); do { switch ($parser->nodeType) { case 1: $data .= "<" . $parser->name ; if (!$parser->hasAttributes) { $data .= ">"; } else { $parser->moveToFirstAttribute(); do { $data .= " " . $parser->name . "=\"" . $parser->value . "\""; } while ($parser->moveToNextAttribute()); $data .= ">"; $parser -> moveToElement(); } array_push($array, $parser->name); break; case 3: $data .= $parser->value; break; case 4: $data .= $parser->value; break; case 14: break;/**whitespace, so do nothing--I'm basically putting this in here so * the default won't keep showing me the whitespace nodes*/ case 15: $data .= ""; break; /**default case is for debugging. Will disable before final vers.*/ default: //echo $parser->nodeType; } } while ($parser->read() && $parser->depth > $initDepth);/** the creators of PHP decided * it should evaluate conditionals left to right instead * of following the standard set by C, Python, Java, etc. */ return $data; } ?>