name = $tag['tag']; $elements[$index]->attributes = $tag['attributes']; $elements[$index]->content = $tag['value']; if ($tag['type'] == "open") { // push $elements[$index]->children = array(); $stack[count($stack)] = &$elements; $elements = &$elements[$index]->children; } } if ($tag['type'] == "close") { // pop $elements = &$stack[count($stack) - 1]; unset($stack[count($stack) - 1]); } } return $elements[0]; // the single top-level element } // For example: //general parsing instructions for the resume XML file. function loadXMLFile($filename) { // read the XML file . $xml = implode("", file($filename)); $resume = xml_to_object($xml); return $resume; } function loadObjects($array) { global $person, $quals, $education, $jobs, $employment, $publications, $projects; while (count($array) > 0) { $xmlObject = array_shift($array); $objectName = substr($xmlObject->getName(),7); switch ($objectName) { case "Person": $person = new Person(); $person->loadObject($xmlObject); break; case "Qualifications": $quals = new Qualifications(); $quals->loadObject($xmlObject); break; case "Education": $education = new Education(); $education->loadObject($xmlObject); break; case "Employment": $employment = new Employment(); $employment->loadObject($xmlObject); break; case "Publications": $publications = new Publications(); $publications->loadObject($xmlObject); break; case "Projects": $projects = new Projects(); $projects->loadObject($xmlObject); break; } } } function compDegrees($a, $b) { $year1 = $a->getYear(); $year2 = $b->getYear(); if ($year1 == $year2) return 0; return ($year1 > $year2) ? -1 : 1; } function compJobsYear($a, $b) { $year1 = $a->getStartYear(); $year2 = $b->getStartYear(); if ($year1 == $year2) return 0; return ($year1 > $year2) ? -1 : 1; } function compJobsType($a, $b) { $test1 = $a->getJobType(); $test2 = $b->getJobType(); if ($year1 == $year2) return 0; return ($year1 > $year2) ? -1 : 1; } function renderDegrees($object) { $degrees = $object->getDegrees(); usort($degrees,"compDegrees"); foreach ($degrees as $degree) { $program = $degree->getProgram(); $degreeType=$degree->getDegreeType(); $ins=$degree->getInstitution(); $name = $ins->getName(); $location = $ins->getLocation(); $department = $ins->getDepartment(); $insUrl = $ins->getInstitutionUrl(); $depUrl = $ins->getDepartmentUrl(); $year=$degree->getYear(); $specialty=$degree->getSpecialty(); $grade=$degree->getGrade(); $honors=$degree->getHonors(); echo "
"; echo "

$degreeType, $program ($year)
"; echo "$department
"; echo "$name, $location
"; //echo "GPA: $grade
"; //echo "Focus: $specialty
"; //echo "Honors

"; echo "

"; } } function renderJobs($object) { $jobs = $object->getJobs(); usort($jobs,"compJobsYear"); foreach ($jobs as $job) { $title = $job->getTitle(); $jobType = $job->getJobType(); $ins = $job->getInstitution(); $name = $ins->getName(); $location = $ins->getLocation(); $department = $ins->getDepartment(); $url = $ins->getInstitutionUrl(); $startYear = $job->getStartYear(); $endYear = $job->getEndYear(); echo "
"; echo "

$title ($startYear - $endYear)
"; echo "$name, $location
"; if ($department) echo "$department
"; $resps = $job->getResponsibilities(); renderResponsibilities($resps); $techskills = $job->getTechnicalSkills(); renderTechSkills($techskills); echo "

"; echo "

"; } } function renderJobOverview($object) { $jobs = $object->getJobs(); usort($jobs,"compJobsYear"); $ListInstitutions=array(); $FullTimeWork=array(); foreach ($jobs as $job) { $title = $job->getTitle(); $jobType = $job->getJobType(); $ins = $job->getInstitution(); $name = $ins->getName(); $location = $ins->getLocation(); $department = $ins->getDepartment(); $url = $ins->getInstitutionUrl(); $startYear = $job->getStartYear(); $endYear = $job->getEndYear(); if ($jobType == 'Consultant') { $ListInstitutions[$url]=$name; } if ($jobType == 'Employee') { array_push($FullTimeWork, $job); } } $UniqueIns = array_unique($ListInstitutions); foreach ($UniqueIns as $url => $name) { $x = "$name"; $i++; if ($i < count($UniqueIns)) $list.= $x.", "; else $list.=" and $x."; } echo "

Consulting Experience:

"; echo "

Since 1997, I've worked as a consultant for large organizations in the private and public sectors, including financial services, health care, government and academically-oriented research centers. "; echo "My list of clients include $list

"; echo "

I've designed and developed large scale data-driven web applications, consulted on and participated in writing scientific research papers, written and maintained business-critical databases. I've participated in all phases of software developement, have developed a methodology for working with diverse clients and have established a reputation for delivering quality information products and services.

"; echo "

In June, 2005, I founded my own company, Arcus Associates, LLC to serve as my own consulting company. Through Arcus, I offer premier information design and development and expertise in many cutting edge technologies.

"; echo "

For a detailed version of my resume, please click here."; echo "

"; echo "

Non-Consulting Experience:

"; foreach ($FullTimeWork as $job) { $title = $job->getTitle(); $jobType = $job->getJobType(); $ins = $job->getInstitution(); $name = $ins->getName(); $location = $ins->getLocation(); $department = $ins->getDepartment(); $url = $ins->getInstitutionUrl(); $startYear = $job->getStartYear(); $endYear = $job->getEndYear(); $startYear = $job->getStartYear(); $endYear = $job->getEndYear(); echo "

$title ($startYear - $endYear)
"; echo "$name, $location
"; if ($department) echo "$department
"; //$resps = $job->getResponsibilities(); //renderResponsibilities($resps); //$techskills = $job->getTechnicalSkills(); //renderTechSkills($techskills); echo "

"; } echo "
"; } function renderResponsibilities($array) { echo "

Key Achievements and Responsibilities

"; echo "
"; } function renderTechSkills($object) { echo "

Skills Used

"; $platforms = $object->getPlatforms(); $software = $object->getSoftware(); $languages = $object->getLanguages(); echo "

"; if ($platforms) renderSkills($platforms, "Platforms"); if ($software) renderSkills($software, "Software"); if ($languages) renderLanguages($languages, "Languages"); echo "

"; } function renderSkills($array, $skillType) { $list="$skillType: "; foreach ($array as $skillset) { $i++; $name = $skillset->getName(); $version = $skillset->getVersion(); $percent = $skillset->getPercentTime(); $list .="$name ($version)"; if ($i < count($array)) $list .=", "; else $list.=".
"; } echo $list; } function renderLanguages($array, $skillType) { $list="$skillType: "; foreach ($array as $skillset) { $i++; $name = $skillset->getName(); $type = $skillset->getType(); $percent = $skillset->getPercentTime(); $list .="$name"; if ($i < count($array)) $list .=", "; else $list.=".
"; } echo $list; } function renderPublications($xmlObject) { $publications=$xmlObject->getPublications(); foreach ($publications as $pub) { $list="

"; // print_r($pub); $authors = $pub->getAuthors(); foreach ($authors as $author) { $firstName=$author->getFirstName(); $lastName=$author->getLastName(); $list.=" $lastName, $firstName;"; } $title = $pub->getTitle(); $citation= $pub->getCitation(); $date = $pub->getDate(); $type = $pub->getType(); $list .='"' . $title . '"; ' . $citation . "; " . $date ; $list.="

"; echo $list; unset($list); } } function renderProjects($projectsObject) { $projArray=$projectsObject->getProjects(); foreach ($projArray as $project) { $projectName = $project->getName(); $projectUrl = $project->getProjectUrl(); $description = $project->getDescription(); $projectType = $project->getProjectType(); $startDate = $project->getStartDate(); $endDate = $project->getEndDate(); echo "

".$projectName.": ".$description."

"; } } function renderPerson($person) { $firstName = $person->getFirstName(); $lastName = $person->getLastName(); $middleName = $person->getMiddleName(); $contactInfo = $person->getContactInfo(); $streetAddress = $contactInfo->getStreetAddress(); $apartment = $contactInfo->getApartment(); $city = $contactInfo->getCity(); $state = $contactInfo->getState(); $emailAddress = $contactInfo->getEmailAddress(); $title = $person->getTitle(); echo "
$firstName $middleName $lastName
" ; echo "
$title
"; echo "
$streetAddress $apartment
" ; echo "$city" . ", $state
" ; echo "$emailAddress

" ; echo "" ; } function renderHeader($person, $format) { $firstName = strtolower($person->getFirstName()); $lastName = strtolower($person->getLastName()); echo "$firstName $lastName » resume ($format)"; //