SAC:Setup OCS Custom Additions

For capturing some notes about trying to create a custom new set of forms for use in OCS Open Conference System. These tests are done on me local PC but will be merged into OSGeo code if/when ready.
These improvements attempt to address some of the system needs discussed in FOSS4G2008 Committee Issues
This is also a journal chronicling the adaptations.
-------
== Cloning a Core Class and Templates ==
To keep it as simple as possible I will take the existing Accommodations functions, make a copy and modify them from there. (At time of writing this was only available in CVS for upcoming OCS 2.2 release) My new functions will be for presenting a link to Transportation items alongside Accommodations in the Conference Information section of the site (both publicly and for managers to update).
 cd OCSROOT/classes/manager/form
 cp AccommodationSettingsForm.inc.php TransportationSettingsForm.inc.php
Replace all references to Accommodations and accommodations with Transportation:
 sed -i .bak 's/Accommodation/Transportation/g' TransportationSettingsForm.inc.php
 sed -i .bak 's/accommodation/transportation/g' TransportationSettingsForm.inc.php
 cd OCSROOT/pages/manager
 cp ManagerAccommodationHandler.inc.php ManagerTransportationHandler.inc.php
 sed -i .bak 's/Accommodation/Transportation/g' ManagerTransportationHandler.inc.php
 sed -i .bak 's/accommodation/transportation/g' ManagerTransportationHandler.inc.php
 cd OCSROOT/templates/manager
 cp accommodationSettings.tpl transportationSettings.tpl
 sed -i .bak 's/Accommodation/Transportation/g' transportationSettings.tpl
 sed -i .bak 's/accommodation/transportation/g' transportationSettings.tpl
 cd OCSROOT/templates/schedConf
 cp accommodation.tpl transportation.tpl
 sed -i .bak 's/Accommodation/Transportation/g' transportation.tpl
 sed -i .bak 's/accommodation/transportation/g' transportation.tpl
Update locale.xml file to populate UI:
 locale/en_US/locale.xml:
 <message key="schedConf.accommodation">Accommodation</message>
 <message key="schedConf.accommodation.title">{$schedConfAbbrev} Accommodation</message>
 <!-- Accommodation settings --> --- Whole section
 <message key="manager.accommodation">Accommodation</message> 
 
Update ManagerHandler so options appear:
 pages/manager/ManagerHandler.inc.php:
 //
 // Accommodation
 //
 ... entire section (2 functions)
ADDED:
 // 
 // Transportation
 //
 
 function transportation() {
 import('pages.manager.ManagerTransportationHandler');
 ManagerTransportationHandler::transportation();
 } 
 
 function saveTransportationSettings() {
 import('pages.manager.ManagerTransportationHandler');
 ManagerTransportationHandler::saveTransportationSettings();
 } 
Add section to:
 /pages/schedConf/SchedConfHandler.inc.php:
 /**
 * Display conference transportation page
 */
 function transportation() {
 list($conference, $schedConf) = SchedConfHandler::validate(true, true);
 $templateMgr = &TemplateManager::getManager();
 $templateMgr->assign('pageHierarchy', array(
 array(Request::url(null, 'index', 'index'), $conference->getConferenceTitle(), true),
 array(Request::url(null, null, 'index'), $schedConf->getSchedConfTitle(), true)));
 SchedConfHandler::setupSchedConfTemplate($conference,$schedConf);
 
 $templateMgr->assign('transportationDescription', $schedConf->getLocalizedSetting('transportationDescription'));
 $templateMgr->assign('transportationFiles', $schedConf->getLocalizedSetting('transportationFiles'));
 $templateMgr->assign('helpTopicId', 'schedConf.transportation');
 $templateMgr->display('schedConf/transportation.tpl');
 }
Finally, add it so that the new Transportation link shows up on the main manager page, by copying the accommodation line and modifying it:
 templates/manager/index.tpl:
 » <a href="{url schedConf=$schedConf->getPath() page="manager" op="accommodation"}">{translate key="manager.accommodation"}</a>
 » <a href="{url schedConf=$schedConf->getPath() page="manager" op="transportation"}">{translate key="manager.transportation"}</a>
Okay, so there is still one more step, do similar to above, but so this shows up on the public page too. I just threw in a dash between accommodation and transportation links since they are related:
 /templates/schedConf/index.tpl:
 » <a href="{url page="schedConf" op="accommodation"}">{translate key="schedConf.accommodation"}</a> – 
 <a href="{url page="schedConf" op="transportation"}">{translate key="schedConf.transportation"}</a>
== Cloning and Customising a Simple Block for the sidebar ==
Blocks are the sections often used in the sidebar menus - i.e. showing you login information or a navigation menu or search box. In this learning exercise I will clone an existing simple block (plugins/blocks/developedBy) and make one that shows the latest announcement. I expect to find that I'll have to look at a different more complex example to learn how to get the data from the db... we'll see
... underway...
Category:Infrastructure
Category:OCS