commit 32bc7a2c8a870394eee9f034d1f05ede51b4e03f Author: Andrew Coleman Date: Tue Feb 18 10:47:46 2020 -0500 historical commit of site diff --git a/admin.php b/admin.php new file mode 100644 index 0000000..db557dd --- /dev/null +++ b/admin.php @@ -0,0 +1,151 @@ +addHidden('', 'actionId', 'text', true); + $this->addHidden('', 'data_id', 'int', false); + $this->addVariable(_("Title"), 'title', 'text', true); + $this->addVariable(_("Type"), 'type', 'text', true); + $this->addVariable(_("Info"), 'info', 'longText', true); + } +} + +class JournalForm extends Horde_Form +{ + function JournalForm(&$vars) + { + parent::Horde_Form($vars); + + $this->addHidden('', 'actionId', 'text', true); + $this->addVariable(_("Title"), 'title', 'text', true); + $this->addVariable(_("Entry"), 'entry', 'longText', true); + } +} + +$title = _("Master Blaster"); + +$vars = &Variables::getDefaultVariables(); +$tabs = &new Horde_UI_Tabs('actionId', $vars); +$tabs->addTab(_("List Data"), 'admin.php', 'list'); +$tabs->addTab(_("Add Data"), 'admin.php', 'add'); +$tabs->addTab(_("Post Journal"), 'admin.php', 'post'); + +$renderer = &new Horde_Form_Renderer(); +global $pdata; +global $pjournal; +$data_id = Util::getFormData('data_id'); +$vars->set('actionId', Util::getFormData('actionId')); + +switch ($vars->get('actionId')) { +case 'post': + $form = &Horde_Form::singleton('JournalForm', $vars); + $valid = $form->validate($vars); + if ($valid) { + $result = $pjournal->add($vars->get('title'), $vars->get('entry')); + if (is_a($result, 'PEAR_Error')) { + $notification->push(sprintf( + _("There was a problem saving the post: %s"), + $result->getMessage()), 'horde.error'); + } else { + $notification->push(_("Success"), 'horde.success'); + header('Location: ' . Horde::selfUrl()); + exit; + } + } + break; +case 'add': +case 'edit': + $form = &Horde_Form::singleton('DataForm', $vars); + $valid = $form->validate($vars); + if ($valid) { + switch ($vars->get('actionId')) { + case 'add': + $result = $pdata->add($vars->get('title'), $vars->get('type'), + $vars->get('info')); + break; + case 'edit': + $result = $pdata->update($vars->get('data_id'), $vars->get('title'), + $vars->get('type'), $vars->get('info')); + break; + } + if (is_a($result, 'PEAR_Error')) { + $notification->push(sprintf( + _("There was a problem with the data persistence: %s"), + $result->getMessage()), 'horde.error'); + } else { + $notification->push(_("Success"), 'horde.success'); + header('Location: ' . Horde::selfUrl()); + exit; + } + } + if ($vars->get('actionId') == 'edit' && !$valid) { + $item = $pdata->retrieveById($data_id); + if (is_a($item, 'PEAR_Error')) { + $notification->push(sprintf( + _("There was a problem with the data persistence: %s"), + $item->getMessage()), 'horde.error'); + } else { + $vars->set('data_id', $data_id); + $vars->set('title', $item['title']); + $vars->set('type', $item['type']); + $vars->set('info', $item['info']); + } + } + break; +case 'delete': + if (isset($data_id)) { + $result = $pdata->delete($data_id); + if (is_a($result, 'PEAR_Error')) { + $notification->push(sprintf( + _("There was a problem with the data persistence: %s"), + $result->getMessage()), 'horde.error'); + } else { + $notification->push(_("Success"), 'horde.success'); + } + } +case 'list': +default: + $result = $pdata->retrieve(); + if (is_a($result, 'PEAR_Error')) { + $notification->push(sprintf( + _("There was a problem with the data persistence: %s"), + $result->getMessage()), 'horde.error'); + } + $data = $pdata->listData(); + break; +} + +require_once PENGUINCODER_TEMPLATES . '/common-header.inc'; +require_once PENGUINCODER_TEMPLATES . '/menu/menu.inc'; +echo '
'; +echo $tabs->render(); +if (isset($form)) { + $form->renderActive($renderer, $vars, 'admin.php', 'post'); +} else { + require PENGUINCODER_TEMPLATES . '/admin/header.inc'; + $style = 'item1'; + foreach ($data as $d) { + if ($style == 'item1') {$style = 'item0';} + else {$style = 'item1';} + include PENGUINCODER_TEMPLATES . '/admin/entry.inc'; + } + require PENGUINCODER_TEMPLATES . '/admin/footer.inc'; +} +echo '
'; +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/config/conf.xml b/config/conf.xml new file mode 100644 index 0000000..eb018ec --- /dev/null +++ b/config/conf.xml @@ -0,0 +1,28 @@ + + + + + + + Storage Driver Settings + sql + + + + + + + + + + + + + + + + + + + + diff --git a/data.php b/data.php new file mode 100644 index 0000000..34cc62e --- /dev/null +++ b/data.php @@ -0,0 +1,40 @@ +getByCategory($category); +if (is_a($data, 'PEAR_Error')) { + $notification->push("There was a problem getting the information: " . + $data->getMessage(), 'horde.error'); +} elseif (!count($data)) { + $notification->push("No content was found, try again later (:^)"); +} + +require PENGUINCODER_TEMPLATES . '/common-header.inc'; +require PENGUINCODER_TEMPLATES . '/menu/menu.inc'; + +if (is_array($data)) { + foreach ($data as $entry) { + require PENGUINCODER_TEMPLATES . '/data/header.inc'; + if($admin) { + require PENGUINCODER_TEMPLATES . '/actions/header.inc'; + require PENGUINCODER_TEMPLATES . '/actions/admin.inc'; + require PENGUINCODER_TEMPLATES . '/actions/footer.inc'; + } + require PENGUINCODER_TEMPLATES . '/data/data.inc'; + require PENGUINCODER_TEMPLATES . '/data/footer.inc'; + } +} +echo '

 

'; +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/index.php b/index.php new file mode 100644 index 0000000..1b3bd61 --- /dev/null +++ b/index.php @@ -0,0 +1,47 @@ +getNewestJournals(); +$maxJournalId = $pdata->getMaxJournalId(); +$minJournalId = $pdata->getMinJournalId(); +$admin = Auth::isAdmin('penguincoder:admin'); +$adminDelete = Auth::isAdmin('penguincoder:admin', PERMS_DELETE); +$goodEntry = true; + +if (is_a($entries, 'PEAR_Error')) { + $goodEntry = false; + $notification->push(_("There was a problem getting the Journal: ") . + $entry->getMessage(), 'horde.error'); +} + +require PENGUINCODER_TEMPLATES . '/common-header.inc'; +require PENGUINCODER_TEMPLATES . '/menu/menu.inc'; +require PENGUINCODER_TEMPLATES . '/frontpage.inc'; + +if ($goodEntry) { + $baseUrl = Util::addParameter(Horde::applicationUrl('journal.php'), + 'actionId', 'show'); + $appUrl = Horde::applicationUrl('journal.php'); + foreach ($entries as $entry) { + $commentcount = $registry->call('forums/numMessages', array( + $entry['id'], 'penguincoder')); + if (is_a($commentcount, 'PEAR_Error')) { + $commentcount = 0; + } + include PENGUINCODER_TEMPLATES . '/data/header.inc'; + include PENGUINCODER_TEMPLATES . '/actions/header.inc'; + include PENGUINCODER_TEMPLATES . '/actions/main.inc'; + include PENGUINCODER_TEMPLATES . '/actions/admin.inc'; + include PENGUINCODER_TEMPLATES . '/actions/footer.inc'; + include PENGUINCODER_TEMPLATES . '/data/data.inc'; + include PENGUINCODER_TEMPLATES . '/data/footer.inc'; + } +} + +echo '

 

'; +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/journal.php b/journal.php new file mode 100644 index 0000000..0a989eb --- /dev/null +++ b/journal.php @@ -0,0 +1,194 @@ +set('id', $id); + $vars->set('actionId', $actionId); + $vars->set('category', $category); + $form = &Horde_Form::singleton('PDataForm', &$vars); + if ($form->validate($vars)) { + $vals = array( + 'title' => $vars->get('title'), + 'info' => $vars->get('info'), + 'category' => $vars->get('category'), + 'attributes' => serialize(array()), + ); + if ($actionId == 'edit') { + $vals['time_modified'] = time(); + $result = $pdata->update($id, $vals); + } else { + $vals['time_created'] = time(); + $result = $pdata->add($vals); + } + if (is_a($result, 'PEAR_Error')) { + $notification->push(_("There was a problem saving the entry: ") . + $result->getMessage(), 'horde.error'); + } else { + $notification->push(_("Success!"), 'horde.success'); + $goodEntry = false; + } + } elseif ($actionId == 'edit') { + $entry = $pdata->getById($id); + if (is_a($entry, 'PEAR_Error')) { + $goodEntry = false; + $notification->push(_("There was a problem fetching the data: ") . + $entry->getMessage(), 'horde.error'); + } else { + $vars->set('time_created', $entry['time_created']); + $vars->set('category', $entry['category']); + $vars->set('title', $entry['title']); + $vars->set('info', $entry['info']); + } + } + break; +case 'show': + // base url for generation later + $baseUrl = Util::addParameter(Horde::selfUrl(), 'actionId', 'show'); + $appUrl = Horde::selfUrl(); + + // get the maximum journal id + $maxJournalId = $pdata->getMaxJournalId(); + $minJournalId = $pdata->getMinJournalId(); + + // if no direction has been specified, then you want this id, fetch it + if (is_null($direction)) { + $entry = $pdata->getById($id); + } elseif ($direction) { + $entry = $pdata->getJournalById($id, '>', 'ASC'); + } else { + $entry = $pdata->getJournalById($id, '<', 'DESC'); + } + + // check the fetched entry + if (is_a($entry, 'PEAR_Error')) { + $goodEntry = false; + $notification->push("There was a problem getting the journal entry: " . + $entry->getMessage(), 'horde.error'); + } + break; +default: + if ($direction) { + $direction = 'ASC'; + } else { + $direction = 'DESC'; + } + $entries = $pdata->getByCategory('Journal', $order, $direction); + if (is_a($entries, 'PEAR_Error')) { + $goodEntry = false; + $notification->push("There was a problem getting the information: " . + $entries->getMessage(), 'horde.error'); + } + break; +} + +require PENGUINCODER_TEMPLATES . '/common-header.inc'; +require PENGUINCODER_TEMPLATES . '/menu/menu.inc'; + +switch ($actionId) { +case 'post': +case 'edit': + if (!is_null($form)) { + $renderer = &new Horde_Form_Renderer(); + if ($goodEntry) { + $form->renderActive($renderer, $vars, Horde::selfUrl(), 'post'); + } else { + $form->renderInactive($renderer, $vars, Horde::selfUrl(), 'post'); + } + } + break; +case 'show': + $commentcount = $registry->call('forums/numMessages', array( + $entry['id'], 'penguincoder')); + if (is_a($commentcount, 'PEAR_Error')) { + $commentcount = 0; + } + if (!is_a($entry, 'PEAR_Error')) { + require PENGUINCODER_TEMPLATES . '/data/header.inc'; + require PENGUINCODER_TEMPLATES . '/actions/header.inc'; + require PENGUINCODER_TEMPLATES . '/actions/main.inc'; + require PENGUINCODER_TEMPLATES . '/actions/nav.inc'; + require PENGUINCODER_TEMPLATES . '/actions/admin.inc'; + require PENGUINCODER_TEMPLATES . '/actions/footer.inc'; + require PENGUINCODER_TEMPLATES . '/data/data.inc'; + require PENGUINCODER_TEMPLATES . '/data/footer.inc'; + } + $comments = $registry->call('forums/postMessage', array( + 'penguincoder', $entry['id'], 'commentCallback' + )); + $threads = $registry->call('forums/renderThreads', array( + $entry['id'], true, 'penguincoder')); + if (is_a($threads, 'PEAR_Error')) { + $threads = $threads->getMessage(); + } + if (is_a($comments, 'PEAR_Error')) { + $comments = $comments->getMessage(); + } + if (!empty($threads)) { + echo '
' . $threads; + } + if (!empty($comments)) { + echo '
' . $comments; + } + break; +default: + if (!is_a($entries, 'PEAR_Error') && count($entries)) { + if ($direction == 'DESC') { + $direction = 0; + } else { + $direction = 1; + } + require PENGUINCODER_TEMPLATES . '/journal/listheader.inc'; + $style = 'item0'; + $counter = 0; + foreach ($entries as $entry) { + if ($style === 'item1') {$style = 'item0';} + else {$style = 'item1';} + include PENGUINCODER_TEMPLATES . '/journal/listentry.inc'; + $counter++; + } + include PENGUINCODER_TEMPLATES . '/journal/listfooter.inc'; + } + break; +} +echo '

 

'; +require $registry->get('templates', 'horde') . '/common-footer.inc'; diff --git a/lib/Data.php b/lib/Data.php new file mode 100644 index 0000000..03eaf81 --- /dev/null +++ b/lib/Data.php @@ -0,0 +1,221 @@ +_params = $params; + } + + function &singleton() + { + // array of instances + static $instances; + + // driver configuration + $driver = $GLOBALS['conf']['storage']['driver']; + $params = Horde::getDriverConfig('storage', $driver); + + if (!isset($instances)) { + $instances = array(); + } + + // set up this driver configuration + $signature = serialize(array($driver, $params)); + if (!isset($instances[$signature])) { + $instances[$signature] = &new PData($params); + } + + return $instances[$signature]; + } + + function getByCategoryAndLimit($category, $limit) + { + $this->_connect(); + + // Build up the query + $query = sprintf('SELECT * FROM penguin_data WHERE category=%s ' . + 'LIMIT %d', $this->_db->quote($category)); + + // Log and submit query + Horde::logMessage(sprintf('PData::getByCategoryAndLimit %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + return $this->_db->getAll($query, array(), DB_FETCHMODE_ASSOC); + } + + function getByTitle($title) + { + $this->_connect(); + + // Build up the query + $query = sprintf('SELECT * FROM penguin_data WHERE title=%s', + $this->_db->quote($category)); + + // Log and submit query + Horde::logMessage(sprintf('PData::getByTitle %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + return $this->_db->getAll($query, array(), DB_FETCHMODE_ASSOC); + } + + function getByCategory($category, $order = 'id', $direction = 'ASC') + { + $this->_connect(); + + // Build up the query + $query = sprintf('SELECT * FROM penguin_data WHERE category=%s ORDER ' . + 'BY %s %s', $this->_db->quote($category), $order, $direction); + + // Log and submit query + Horde::logMessage(sprintf('PData::getByCategory %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + return $this->_db->getAll($query, array(), DB_FETCHMODE_ASSOC); + } + + function getById($id) + { + $this->_connect(); + + // Build up the query + $query = sprintf('SELECT * FROM penguin_data WHERE id=%d', $id); + + // Log and submit query + Horde::logMessage(sprintf('PData::getById %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + return $this->_db->getRow($query, array(), DB_FETCHMODE_ASSOC); + } + + function getJournalById($id, $oper, $order) + { + $this->_connect(); + + // Build up the query + $query = sprintf('SELECT * FROM penguin_data WHERE id%s%d AND ' . + 'category="Journal" ORDER BY id %s LIMIT 1', $oper, $id, + $order); + + // Log and submit query + Horde::logMessage(sprintf('PData::getJournalById %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + return $this->_db->getRow($query, array(), DB_FETCHMODE_ASSOC); + } + + function getNewestJournals() + { + $this->_connect(); + $query = 'SELECT * FROM penguin_data WHERE category = "Journal" ORDER ' + . 'BY id DESC LIMIT 5'; + + // db log/query + Horde::logMessage(sprintf('PData::getNewestJournal %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + return $this->_db->getAll($query, array(), DB_FETCHMODE_ASSOC); + } + + function getMaxJournalId() + { + $this->_connect(); + $query = 'SELECT MAX(id) FROM penguin_data WHERE category = "Journal"'; + + Horde::logMessage(sprintf('PDATA::getMaxJournalId %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + $result = $this->_db->getRow($query); + if(is_a('PEAR_Error', $result)) { + $result = -1; + } else { + $result = $result[0]; + } + return $result; + } + + function getMinJournalId() + { + $this->_connect(); + $query = 'SELECT MIN(id) FROM penguin_data WHERE category = "Journal"'; + + Horde::logMessage(sprintf('PDATA::getMinJournalId %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + $result = $this->_db->getRow($query); + if(is_a('PEAR_Error', $result)) { + $result = -1; + } else { + $result = $result[0]; + } + return $result; + } + + function add($values = array()) + { + // sanity checks + if (!isset($values['title'])) { + return PEAR::raiseError(_("No title is set!")); + } + if (!isset($values['info'])) { $values['info'] = ''; } + if (!isset($values['attributes']) || !is_array($values['attributes'])) { + $values['attributes'] = array(); + } + + // db init + $this->_connect(); + require_once 'Horde/SQL.php'; + $query = sprintf('INSERT INTO penguin_data %s', Horde_SQL::insertValues( + $this->_db, $values)); + + // db log/query + Horde::logMessage(sprintf('PData::add %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + return $this->_db->query($query); + } + + function update($id, $values = array()) + { + // sanity checks + if (isset($values['id'])) { unset($values['id']); } + + // db init + $this->_connect(); + require_once 'Horde/SQL.php'; + $query = sprintf('UPDATE penguin_data SET %s WHERE id=%d', + Horde_SQL::updateValues($this->_db, $values), $id); + + // db log/query + Horde::logMessage(sprintf('PData::update %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + return $this->_db->query($query); + } + + function delete($id) + { + $this->_connect(); + + $query = sprintf('DELETE FROM penguin_data WHERE id=%d', $id); + Horde::logMessage(sprintf('PData::delete %s', $query), + __FILE__, __LINE__, PEAR_LOG_DEBUG); + return $this->_db->query($query); + } + + function _connect() + { + // yay persistent connections + if (!$this->_connected) { + Horde::assertDriverConfig($this->_params, 'storage', + array('phptype', 'hostspec', 'username', 'database', + 'charset')); + + require_once 'DB.php'; + $this->_db = &DB::connect($this->_params, + array('persistent' => !empty( + $this->_params['persistent']))); + if (is_a($this->_db, 'PEAR_Error')) { + Horde::fatal($this->_db, __FILE__, __LINE__); + } + + $this->_db->setOption('optimize', 'portability'); + $this->_connected = true; + } + + return true; + } +} diff --git a/lib/DataForm.php b/lib/DataForm.php new file mode 100644 index 0000000..8522ebd --- /dev/null +++ b/lib/DataForm.php @@ -0,0 +1,24 @@ +setButtons(_("Save")); + $this->addHidden('', 'actionId', 'text', true, false); + $this->addHidden('', 'id', 'int', false, false); + $this->addVariable(_("Data ID"), 'id', 'int', false, true); + $this->addVariable(_("Time Posted"), 'time_created', 'time', + false, true); + $this->addVariable(_("Title"), 'title', 'text', true, false); + $this->addVariable(_("Category"), 'category', 'text', true, false); + $this->addVariable(_("Info"), 'info', 'longText', true, false); + } +} diff --git a/lib/PenguinCoder.php b/lib/PenguinCoder.php new file mode 100644 index 0000000..a045e79 --- /dev/null +++ b/lib/PenguinCoder.php @@ -0,0 +1,29 @@ +add(Horde::applicationUrl('index.php', true, 1.), _("/home"), 'home.png'); + $menu->add(Horde::applicationUrl('journal.php', true, 1.), _("Archive"), 'journal.png'); + $menu->add(Util::addParameter(Util::addParameter(Horde::applicationUrl('data.php', true, 1.), 'category', 'Machine'), 'title', _("Machines")), _("Machines"), 'machine.png'); + $menu->add(Util::addParameter(Util::addParameter(Horde::applicationUrl('data.php', true, 1.), 'category', 'About'), 'title', _("About")), _("About"), 'about.png'); + $menu->add(Horde::applicationUrl('rss.php', true), _("RSS"), 'rss.png'); + + if ($returnType == 'object') { + return $menu; + } + return $menu->render(); + } + + function fileUrl($filename) + { + if(is_null($filename) || !file_exists(escapeshellcmd($filename))) + return ''; + return Horde::url($registry->get('webroot') . '/fileset/' . + escapeshellcmd($filename), true, -1); + } +} diff --git a/lib/api.php b/lib/api.php new file mode 100644 index 0000000..2d7230d --- /dev/null +++ b/lib/api.php @@ -0,0 +1,13 @@ + array('id' => 'string'), + 'type' => 'boolean' +); + + +function _penguincoder_commentCallback($entry_id) +{ + return true; +} + diff --git a/lib/base.php b/lib/base.php new file mode 100644 index 0000000..8523ce4 --- /dev/null +++ b/lib/base.php @@ -0,0 +1,27 @@ +pushApp('penguincoder', + !defined('AUTH_HANDLER'))), 'PEAR_Error')) { + if ($pushed->getCode() == 'permission_denied') { + Horde::authenticationFailureRedirect(); + } + Horde::fatal($pushed, __FILE__, __LINE__, false); +} +$conf = &$GLOBALS['conf']; + +@define('PENGUINCODER_TEMPLATES', $registry->get('templates')); +@define('PENGUINCODER_BASE', dirname(__FILE__) . '/..'); + +$notification = &Notification::singleton(); +$notification->attach('status'); + +Horde::compressOutput(); + +require PENGUINCODER_BASE . '/lib/PenguinCoder.php'; +require PENGUINCODER_BASE . '/lib/Data.php'; + +$GLOBALS['pdata'] = &PData::singleton(); \ No newline at end of file diff --git a/rss.php b/rss.php new file mode 100644 index 0000000..4ca1d09 --- /dev/null +++ b/rss.php @@ -0,0 +1,33 @@ +getNewestJournals(); + +if (is_a($entries, 'PEAR_Error')) { + exit("There was a problem fetching the entries: " . $entries->getMessage()); +} + +$template->set('charset', NLS::getCharset()); +$template->set('channel_name', _("Penguin Coder"), NLS::getCharset()); +$template->set('channel_desc', _("The ramblings of a computer geek..."), + NLS::getCharset()); +$template->set('channel_updated', @htmlspecialchars(date('r', + ($entries[0]['time_modified'] > 0 ? $entries[0]['time_modified'] : + $entries[0]['time_created']))), NLS::getCharset()); +$template->set('channel_url', Horde::applicationUrl('index.php', true)); + +$baseUrl = Util::addParameter(Horde::applicationUrl('journal.php', true), + 'actionId', 'show'); +foreach ($entries as $key => $entry) { + $entries[$key]['link'] = Util::addParameter($baseUrl, 'id', $entry['id']); +} +$template->set('entries', $entries); + +header('Content-Type: text/xml'); +echo $template->fetch(PENGUINCODER_TEMPLATES . '/journal/rss.xml'); diff --git a/scripts/db/penguincoder.sql b/scripts/db/penguincoder.sql new file mode 100644 index 0000000..02b55ff --- /dev/null +++ b/scripts/db/penguincoder.sql @@ -0,0 +1,10 @@ +CREATE TABLE `penguin_data` ( + `id` int(11) NOT NULL auto_increment, + `time_created` int(11) NOT NULL default '0', + `time_modified` int(11) NOT NULL default '0', + `title` varchar(255) default NULL, + `category` varchar(255) NOT NULL default 'Journal', + `info` longtext, + `attributes` longtext, + PRIMARY KEY (`id`) +) TYPE=MyISAM; \ No newline at end of file diff --git a/templates/admin/entry.inc b/templates/admin/entry.inc new file mode 100644 index 0000000..141200a --- /dev/null +++ b/templates/admin/entry.inc @@ -0,0 +1,7 @@ + + + getImageDir('horde')) . ''; ?> + ' ?> + + + diff --git a/templates/admin/footer.inc b/templates/admin/footer.inc new file mode 100644 index 0000000..94eb82e --- /dev/null +++ b/templates/admin/footer.inc @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/templates/admin/header.inc b/templates/admin/header.inc new file mode 100644 index 0000000..d390664 --- /dev/null +++ b/templates/admin/header.inc @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/templates/common-header.inc b/templates/common-header.inc new file mode 100644 index 0000000..249359f --- /dev/null +++ b/templates/common-header.inc @@ -0,0 +1,24 @@ + + +' : '' ?> + +get('name'); +if (!empty($title)) $page_title .= ' :: ' . $title; +if (!empty($refresh_time) && ($refresh_time > 0) && !empty($refresh_url)) { + echo "\n"; +} + +Horde::includeScriptFiles(); +?> +<?php echo $page_title ?> + + + +> diff --git a/templates/data/data.inc b/templates/data/data.inc new file mode 100644 index 0000000..eed64ca --- /dev/null +++ b/templates/data/data.inc @@ -0,0 +1 @@ +
diff --git a/templates/data/footer.inc b/templates/data/footer.inc new file mode 100644 index 0000000..97a8afb --- /dev/null +++ b/templates/data/footer.inc @@ -0,0 +1 @@ +
diff --git a/templates/data/header.inc b/templates/data/header.inc new file mode 100644 index 0000000..9b1b0c7 --- /dev/null +++ b/templates/data/header.inc @@ -0,0 +1 @@ +
[Posted ] [Last Modified ]
\ No newline at end of file diff --git a/templates/frontpage.inc b/templates/frontpage.inc new file mode 100644 index 0000000..7caf2f2 --- /dev/null +++ b/templates/frontpage.inc @@ -0,0 +1,6 @@ +
+
 IDTitleType
+
Who is driving?
+OMG Bear is driving, how can this be?!
+
+
\ No newline at end of file diff --git a/templates/journal/listentry.inc b/templates/journal/listentry.inc new file mode 100644 index 0000000..f834962 --- /dev/null +++ b/templates/journal/listentry.inc @@ -0,0 +1 @@ + diff --git a/templates/journal/listfooter.inc b/templates/journal/listfooter.inc new file mode 100644 index 0000000..4bde969 --- /dev/null +++ b/templates/journal/listfooter.inc @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/templates/journal/listheader.inc b/templates/journal/listheader.inc new file mode 100644 index 0000000..821c379 --- /dev/null +++ b/templates/journal/listheader.inc @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/templates/journal/rss.xml b/templates/journal/rss.xml new file mode 100644 index 0000000..8e0ceff --- /dev/null +++ b/templates/journal/rss.xml @@ -0,0 +1,16 @@ +"?> + + + + <tag:channel_name /> + + + + + + <tag:entries.title /> + + + + + diff --git a/templates/menu/menu.inc b/templates/menu/menu.inc new file mode 100644 index 0000000..af38d9b --- /dev/null +++ b/templates/menu/menu.inc @@ -0,0 +1,5 @@ +
Date PostedTitle
+ + +
+notify(array('listeners' => 'status')) ?> diff --git a/themes/graphics/about.png b/themes/graphics/about.png new file mode 100644 index 0000000..3e827f1 Binary files /dev/null and b/themes/graphics/about.png differ diff --git a/themes/graphics/banner.png b/themes/graphics/banner.png new file mode 100644 index 0000000..788f61b Binary files /dev/null and b/themes/graphics/banner.png differ diff --git a/themes/graphics/dot.gif b/themes/graphics/dot.gif new file mode 100644 index 0000000..cc40d68 Binary files /dev/null and b/themes/graphics/dot.gif differ diff --git a/themes/graphics/favicon.ico b/themes/graphics/favicon.ico new file mode 100644 index 0000000..1485cd8 Binary files /dev/null and b/themes/graphics/favicon.ico differ diff --git a/themes/graphics/friends.png b/themes/graphics/friends.png new file mode 100644 index 0000000..c7fe872 Binary files /dev/null and b/themes/graphics/friends.png differ diff --git a/themes/graphics/home.png b/themes/graphics/home.png new file mode 100644 index 0000000..78a002d Binary files /dev/null and b/themes/graphics/home.png differ diff --git a/themes/graphics/journal.png b/themes/graphics/journal.png new file mode 100644 index 0000000..28f539f Binary files /dev/null and b/themes/graphics/journal.png differ diff --git a/themes/graphics/machine.png b/themes/graphics/machine.png new file mode 100644 index 0000000..647bf40 Binary files /dev/null and b/themes/graphics/machine.png differ diff --git a/themes/graphics/penguincoder.png b/themes/graphics/penguincoder.png new file mode 100644 index 0000000..9ba8dae Binary files /dev/null and b/themes/graphics/penguincoder.png differ diff --git a/themes/graphics/rss.png b/themes/graphics/rss.png new file mode 100644 index 0000000..6d049d4 Binary files /dev/null and b/themes/graphics/rss.png differ