3 // HTML Resume Template in PHP
4 // version 2.2, 2006-08-06
6 // Copyright (c) 2002-2006 Alex King
7 // http://www.alexking.org/software/resume/
9 // **********************************************************************
10 // This program is free software; you can redistribute it and/or modify
11 // it under the terms of the GNU General Public License as published by
12 // the Free Software Foundation; either version 2 of the License, or
13 // (at your option) any later version.
15 // This program is distributed in the hope that it will be useful, but
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 // General Public License for more details.
20 // http://www.gnu.org/copyleft/gpl.html
22 // *****************************************************************
25 /* -- INITIALIZE DATA ------------------------------------------------------------ */
27 // we want to see any errors so we can fix them
29 ini_set('display_errors', '1');
30 ini_set('error_reporting', E_ALL
);
31 error_reporting(E_ALL
);
35 $data['jobs'] = array();
38 /* -- ENTER DATA ----------------------------------------------------------------- */
42 $bio['name'] = "Kingdon Patrick Barrett";
43 $bio['phone'] = "(585) 239-6035";
44 $bio['email'] = "kingdon@tuesdaystudios.com";
45 $bio['address'] = "125 Tech Park Drive STE 1102";
46 $bio['city'] = "Rochester";
48 $bio['zip'] = "14623";
50 // set to 1 to show this info on the page, 0 to hide it
52 $prefs['show_phone'] = 1;
53 $prefs['show_email'] = 1;
54 $prefs['show_address'] = 1;
56 // if you want to be able to enter HTML (links, etc.) in your descriptions, set this to 1. This means you need to manually escape any content as HTML.
58 $prefs['encode_output'] = 1;
60 // enter job data here
62 $data['objective'] = "To connect with people and organizations that will benefit from my skills, to broaden my own base of experience, and to deliver prompt, reliable service meeting and exceeding the high standards that a business environment demands.";
64 // add more to this array as needed
65 $data['skills_technologies_projects'] = array(
67 "Internet TV and Telephony, Blogging, Web 2.0"
68 ,"Storage Area Networks and Data Retention"
69 ,"High Availability and Server Clustering"
70 ,"Social Networking and Language Acquisition"
74 // add more to this array as needed
75 $data['education_interests'] = array(
77 "Rochester Institute of Technology, degree anticipated in May 2008, BS Computer Science"
78 ,"36 credits (minor) in Arabic Language, 12 credits (concentration) in Writing Studies"
79 ,"President and Founder, Tuesday Studios at Venture Creations Business Development Lab"
80 ,"Interactive Collaborative Technologies Specialist, RIT Lab for Applied Computing/CASCI"
81 ,"Computer Science House, Phi Delta Theta, Empty Sky Go Club, Korean Student Association"
82 ,"Tutor and Teaching Assistant, Golisano College of Computing and Information Sciences"
85 // this is where you put all your job information
86 // add more of these arrays as needed
88 $data['jobs'][] = array(
90 'period' => "2005-Present"
91 ,'employer' => "Venture Creations Business Development Lab"
92 ,'location' => "Rochester, NY"
93 ,'employer_info' => "Tuesday Studios builds and markets innovative middleware solutions."
94 ,'employer_link' => "http://www.venturecreations.org/"
95 ,'positions' => array('President and Founder, Network Admin' => array(
97 "Establish a secure and reliable distributed computing system to operate inside and across hostile network environments."
98 ,"Catalog, quantify, establish blame, and resolve issues relating to intermittency in network services, from internal sources as well as upstream providers."
99 ,"Design, build and maintain a top-shelf data center on a shoestring budget, minding high bandwidth applications as well as least-common-denominator and remote access."
100 ,"Satisfy inter-departmental research goals with variable requirements, and do my best to keep pace with the research goals of the University."
103 ,'show' => 0 // set to 0 to hide this job, 1 to show it
106 $data['jobs'][] = array(
108 'period' => "2004-2007"
109 ,'employer' => "Rochester Institute of Technology"
110 ,'location' => "Rochester, NY"
111 ,'employer_info' => "The primary objective of the CASCI is to create faculty/student and industry/government ventures to study and implement future CyberInfrastructure technologies, for solving computing problems in focused domains where we have renowned local expertise in the Institute."
112 ,'employer_link' => "http://www.rit.edu/~rc/"
113 ,'positions' => array('Collaboration Technologies Specialist' => array(
115 "Work with computers to enable communication between people across all kinds of technical borders, supporting the free exchange of information and ideas."
116 ,"Explore collaborative technologies like Wikis, Internet TV and IP Telephony, and become familiar with technologies behind the so-called Web 2.0 revolution."
117 ,"Connect directly with RIT faculty and administration and explore creative and independent problem solving techniques in my capacity as a researcher."
120 'Lab Assistant' => array(
121 "Responsible for timely attendance of tutoring office hours and labs."
122 ,"Support computing resources in several labs and troubleshoot issues between inter-dependent systems."
123 ,"Facilitate student programming activities and explain difficult course materials to enhance group learning."
126 ,'show' => 0 // set to 0 to hide this job, 1 to show it
129 $data['jobs'][] = array(
131 'period' => "2005-2006"
132 ,'employer' => "American Fiber Systems"
133 ,'location' => "Rochester, NY"
134 ,'employer_info' => "AFS builds, owns, and maintains fiber networks in nine major metropolitan areas across the United States of America. Business operations are homed here in Rochester, NY at the main office in the Meridian Centre Office Park off Winton Avenue."
135 ,'employer_link' => "http://www.afsnetworks.com/"
136 ,'positions' => array('IT Associate' => array(
138 "Built internal-use-only web application using Apache and PHP, integrating with a pre-existing Active Directory environment.",
139 "Testing and deployment of IBM servers, maintenance of previously deployed Sun and Windows servers.",
140 "Migration of proprietary NEC PBX system to Cisco IP Phones with Linux/Asterisk Open Source Telephony Platform."
143 ,'show' => 1 // set to 0 to hide this job, 1 to show it
146 $data['jobs'][] = array(
147 'period' => "Summer 2005"
148 ,'employer' => "Robinson Home Products"
149 ,'location' => "Buffalo, NY"
150 ,'employer_info' => "Robinson Home Products markets quality kitchen utensils and food preparation tools. Robinson evolved from a manufacturer of cutlery, kitchen tools, scissors, and fine edged industrial components."
151 ,'employer_link' => "http://www.robinsonknife.com/"
152 ,'positions' => array(
153 'Summer Internship' => array(
154 "Inventory management, packing and shipping for Wal-Mart and other customers, and new employee orientation.",
155 "Handled integration issues for SuSE Enterprise Linux, Novell Groupwise and Blackberry Enterprise Server."
160 $data['jobs'][] = array(
161 'period' => "2003-2004"
162 ,'employer' => "Financial Institutions, Inc."
163 ,'location' => "Warsaw, NY"
164 ,'employer_info' => "Financial Institutions, Inc. is a bank-holding Company that provides consumer, commercial and agricultural banking services through our bank and a non-bank subsidiaries."
165 ,'employer_link' => "http://www.fiiwarsaw.com/"
166 ,'positions' => array(
167 'Intranet Developer' => array(
168 "Ground-up implementation of XML-based Intranet workflow and form processing software on a Microsoft IIS environment.",
169 "Planned and started development of automated B2B/EDI services for integration of office supply chain with StaplesLink.com."
174 /* -- DONE ENTERING DATA - you shouldn't need to edit below this line ------------ */
176 /* ------------------------------------------------------------------------------- */
178 /* -- OUTPUT --------------------------------------------------------------------- */
180 function pad_and_wrap($string, $pad_to = 20, $pad_with = ' ', $wrap_at = 80, $bullet = '') {
182 if (!empty($prefs['encode_output']) && $prefs['encode_output'] == 1) {
183 $string = strip_tags($string);
185 if (!empty($bullet)) {
186 $string = $bullet.$string;
188 if (strlen($string) > $wrap_at) {
189 $wrap_line_at = strrpos(substr($string, 0, $wrap_at), ' ');
190 $output = str_pad('', $pad_to, $pad_with).substr($string, 0, $wrap_line_at);
191 $remainder = substr($string, $wrap_line_at +
1);
192 if (strlen($remainder) > 0) {
193 $output .= "\n".pad_and_wrap($remainder, ($pad_to +
strlen($bullet)), $pad_with, ($wrap_at - strlen($bullet)), '');
197 $output = str_pad('', $pad_to, $pad_with).$string;
202 function encode_output($str) {
204 if (!empty($prefs['encode_output']) && $prefs['encode_output'] == 1) {
205 return htmlentities($str);
220 font
-family
: verdana
, arial
, helvetica
, sans
-serif
;
223 font
: 90% verdana
, arial
, helvetica
, sans
-serif
;
228 border
-bottom
: 1px solid
#666;
230 font
: 80% verdana
, arial
, helvetica
, sans
-serif
;
232 margin
: 15px
0 10px
0;
238 font
: 80% verdana
, arial
, helvetica
, sans
-serif
;
246 margin
: 0 0 3px
20px
;
315 $css_screen = ob_get_contents();
324 font
-family
: verdana
, arial
, helvetica
, sans
-serif
;
327 font
: 14pt verdana
, arial
, helvetica
, sans
-serif
;
332 border
-bottom
: 1px solid
#666;
334 font
: 11pt verdana
, arial
, helvetica
, sans
-serif
;
336 margin
: 15px
0 10px
0;
341 font
: 11pt verdana
, arial
, helvetica
, sans
-serif
;
414 $css_print = ob_get_contents();
418 $split_length = floor(strlen($bio['email']) / 4);
420 function email() { // try to avoid spam trollers, intentionally complex
421 var a
= "<?php print(substr($bio['email'], 0, $split_length)); ?>";
422 var b
= "<?php print(substr($bio['email'], $split_length, $split_length)); ?>";
423 var c
= "<?php print(substr($bio['email'], ($split_length * 2), $split_length)); ?>";
424 var d
= "<?php print(substr($bio['email'], ($split_length * 3), ($split_length + (strlen($bio['email']) % 4)))); ?>";
426 e_string
= "<a href=\"ma" +
"ilto:" + a + b + c + d +
"\">" + a + b + c + d +
"</a>";
427 document
.write(e_string
);
430 $js = ob_get_contents();
433 if (isset($_REQUEST["output"])) {
434 $output = stripslashes($_REQUEST["output"]);
441 header("Content-type: text/css");
445 header("Content-type: text/css");
449 header("Content-type: text/javascript");
453 if (isset($_GET['contained']) && $_GET['contained'] == 1) {
454 header("Content-Type: application/force-download");
455 header("Content-Type: application/octet-stream");
456 header("Content-Type: application/download");
457 header("Content-Disposition: attachment; filename=\"resume.html\"");
460 <!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.1//EN"
461 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
462 <!-- HTML Resume Template from http
://www.alexking.org/software/resume/ -->
465 <title
><?php
print(encode_output($bio['name'])); ?
></title
>
466 <meta http
-equiv
="content-type" content
="text/html; charset=utf-8" />
468 if (isset($_GET['contained']) && $_GET['contained'] == 1) {
470 <style type
="text/css" media
="screen">
475 <style type
="text/css" media
="print">
480 <script type
="text/javascript">
489 <style type
="text/css" media
="screen">
490 @import
url(/resume
.php?output
=css_screen
);
492 <link rel
="stylesheet" type
="text/css" media
="print" href
="/resume.php?output=css_print" />
493 <script type
="text/javascript" src
="/resume.php?output=js"></script
>
501 <h1
><?php
print(encode_output($bio['name'])); ?
></h1
>
505 if ($prefs['show_phone'] == 1) {
506 print(encode_output($bio['phone']).'<br />');
508 if ($prefs['show_email'] == 1) {
510 <script type
="text/javascript">email();</script
>
517 if ($prefs['show_address'] == 1) {
518 print(encode_output($bio['address']).'<br />'
519 .encode_output($bio['city']).', '
520 .encode_output($bio['state']).' '
521 .encode_output($bio['zip'])
528 <p
class="data"><?php
print(encode_output($data['objective'])); ?
></p
>
532 foreach ($data['jobs'] as $job) {
533 if ($job['show'] == 1) {
534 if (!empty($job['employer_link'])) {
536 '<a href="'.$job['employer_link'].'">'
541 $link = array('','');
545 <p
class="date"><?php
print(encode_output($job['period'])); ?
></p
>
546 <div
class="job_data">
547 <h3
><?php
print($link[0].encode_output($job['employer']).$link[1]); ?
></h3
>
549 if (!empty($job['location'])) {
551 <p
class="location"><?php
print(encode_output($job['location'])); ?
></p
>
556 <p
class="location"> 
;</p
>
559 if (!empty($job['employer_info'])) {
561 <p
class="company"><?php
print(encode_output($job['employer_info'])); ?
></p
>
564 foreach ($job['positions'] as $title => $position) {
566 <p
class="position"><?php
print(encode_output($title)); ?
></p
>
569 foreach ($position as $responsibility) {
570 print(" <li>".encode_output($responsibility)."</li>\n");
585 <h2
>SKILLS
, TECHNOLOGIES
&
; PROJECTS
</h2
>
588 foreach ($data['skills_technologies_projects'] as $temp) {
589 print(" <li>".encode_output($temp)."</li>\n");
594 <h2
>EDUCATION
&
; INTERESTS
</h2
>
597 foreach ($data['education_interests'] as $temp) {
598 print(" <li>".encode_output($temp)."</li>\n");
603 <!--<p id
="references">LinkedIn Profile
: <a href
="http://www.linkedin.com/pub/2/a/731">http
://www.linkedin.com/pub/2/a/731</a> - Direct references available upon request.</p>-->
607 if (empty($_GET['contained']) ||
$_GET['contained'] != 1) {
609 <span id
="versions"><a href
="./resume.php">HTML version
</a
> |
<a href
="./resume.pdf">E
-mailable PDF version
</a
> |
<a href
="./resume.php?output=text">Plain
Text (.txt
) version
</a
> |
</span
>
613 <span id
="valid">Validate
<a href
="http://validator.w3.org/check/referer">XHTML
1.1</a
> / <a href
="http://jigsaw.w3.org/css-validator/check/referer">CSS
2.0</a
></span
>
621 header("Content-type: text/plain");
622 print($bio['name']."\n\n");
623 if ($prefs['show_phone'] == 1) {
624 print(str_pad($bio['phone'], 50, ' '));
626 if ($prefs['show_address'] == 1) {
627 print(str_pad($bio['address'], 50, ' ', STR_PAD_LEFT
)."\n");
629 if ($prefs['show_email'] == 1) {
630 print(str_pad($bio['email'], 50, ' '));
632 if ($prefs['show_address'] == 1) {
633 print(str_pad($bio['city'].', '.$bio['state'].' '.$bio['zip'], 50, ' ', STR_PAD_LEFT
));
636 print('OBJECTIVE'."\n".str_pad('', 100, '-')."\n");
637 print(pad_and_wrap($data['objective'])."\n\n\n");
638 print('EXPERIENCE'."\n".str_pad('', 100, '-')."\n");
639 foreach ($data['jobs'] as $job) {
640 if ($job['show'] == 1) {
641 print(str_pad($job['period'], 20, ' '));
642 print(str_pad($job['employer'], 55, ' '));
643 print(str_pad($job['location'], 25, ' ', STR_PAD_LEFT
)."\n");
644 if (!empty($job['employer_info'])) {
645 print(pad_and_wrap($job['employer_info'])."\n");
647 foreach ($job['positions'] as $title => $position) {
648 print("\n".pad_and_wrap($title)."\n");
649 foreach ($position as $responsibility) {
650 print(pad_and_wrap($responsibility, 20, ' ', 80, '- ')."\n");
656 print("\n".'SKILLS, TECHNOLOGIES & PROJECTS'."\n".str_pad('', 100, '-')."\n");
657 foreach ($data['skills_technologies_projects'] as $temp) {
658 print(pad_and_wrap($temp, 20, ' ', 80, '- ')."\n");
660 print("\n\n".'EDUCATION & INTERESTS'."\n".str_pad('', 100, '-')."\n");
661 foreach ($data['education_interests'] as $temp) {
662 print(pad_and_wrap($temp, 20, ' ', 80, '- ')."\n");
664 print("\n\n".'LinkedIn Profile: http://www.linkedin.com/pub/2/a/731 - Direct references available upon request.'."\n\n");