Difference between revisions of "SAC:Setup OCS Custom Additions"
m (→Starting Template: edit managerhandler) |
|||
(7 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
------- | ------- | ||
− | == | + | == 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 in the | + | 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 | cd OCSROOT/classes/manager/form | ||
Line 30: | Line 30: | ||
cd OCSROOT/templates/schedConf | cd OCSROOT/templates/schedConf | ||
cp accommodation.tpl transportation.tpl | cp accommodation.tpl transportation.tpl | ||
− | sed -i .bak 's/Accommodation/Transportation/g' | + | sed -i .bak 's/Accommodation/Transportation/g' transportation.tpl |
− | sed -i .bak 's/accommodation/transportation/g' | + | sed -i .bak 's/accommodation/transportation/g' transportation.tpl |
Update locale.xml file to populate UI: | Update locale.xml file to populate UI: | ||
Line 64: | Line 64: | ||
} | } | ||
+ | </pre> | ||
+ | |||
+ | Add section to: | ||
+ | <pre> | ||
+ | /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'); | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | Finally, add it so that the new Transportation link shows up on the main manager page, by copying the accommodation line and modifying it: | ||
+ | <pre> | ||
+ | templates/manager/index.tpl: | ||
+ | <li>» <a href="{url schedConf=$schedConf->getPath() page="manager" op="accommodation"}">{translate key="manager.accommodation"}</a></li> | ||
+ | <li>» <a href="{url schedConf=$schedConf->getPath() page="manager" op="transportation"}">{translate key="manager.transportation"}</a></li> | ||
+ | </pre> | ||
+ | |||
+ | 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: | ||
+ | <pre> | ||
+ | /templates/schedConf/index.tpl: | ||
+ | <li>» <a href="{url page="schedConf" op="accommodation"}">{translate key="schedConf.accommodation"}</a> – | ||
+ | <a href="{url page="schedConf" op="transportation"}">{translate key="schedConf.transportation"}</a></li> | ||
+ | </pre> | ||
+ | |||
+ | == 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:Infrastructure]] | ||
[[Category:OCS]] | [[Category:OCS]] |
Latest revision as of 00:00, 14 February 2008
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: <li>» <a href="{url schedConf=$schedConf->getPath() page="manager" op="accommodation"}">{translate key="manager.accommodation"}</a></li> <li>» <a href="{url schedConf=$schedConf->getPath() page="manager" op="transportation"}">{translate key="manager.transportation"}</a></li>
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: <li>» <a href="{url page="schedConf" op="accommodation"}">{translate key="schedConf.accommodation"}</a> – <a href="{url page="schedConf" op="transportation"}">{translate key="schedConf.transportation"}</a></li>
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...