Upgrading Seagull from a 0.3.x install to 0.4.x
in version 0.4 many things have changed, so if you want to port existing modules to the new cvs version, please take care of the following. Please have also a look at the CHANGELOG.txt
Base class renamed
Class Base:: is now class SGL::
for example now:
SGL::logMessage(null, PEAR_LOG_DEBUG);
Some base methods changed:
Base::logMessage(__CLASS__ . '::' . __FUNCTION__ , null, null, PEAR_LOG_DEBUG);
is now:
SGL::logMessage(null, PEAR_LOG_DEBUG);
New action Management
Yeah, this throws some errors and takes some minutes to find everything out.
Thanks to the guys at IRC for helping me.
- Rename the aAllowedActions array into aActionsMapping
- rewrite the $this->_aActionsMapping array to the new standard:
$this->_aActionsMapping = array(
'insert' => array('insert','redirectToDefault'),
'update' => array('update','redirectToDefault'),
'list' => array('list'),
'send' => array('send','redirectToDefault'),
);
Important: change function validate($req, $input) to function validate($req, &$input) (do you see this little & ?)
Change validate() parameter
Inside your module the validate() function definition must be changed to:
function validate($req, &$input)
{
...
}
Note the & in front of $input parameter.
Calling DB method is different
In 0.3.xx version a DB connection was made with:
$dbh = &Base::DB();
Now, in 0.4.xx is:
$dbh = &SGL_DB::singleton();
Changing into www/*.php pages
The last line usually says:
$process->go(new SGL_HTTP_Request());
Now is just:
$process->go();
Move generateSelect's to templates
All calls to generateSelect were moved to template
In your managers change:
$output->aLanguages = SGL_Output::generateSelect($array)
to
$output->aLanguages = $array
Now place the following call in the corresponding template.
<select name="frmArticleLangs[]" multiple="multiple">
{generateSelect(aLanguages):h}
</select>
Some methods moved to /lib/SGL/Manager.php
you can delete the process() and display() methods if you don't have modified them. They are in the parent class now.
Other methods moved…
23-01-05 Created SGL_String class and moved appropriate methods to it 23-01-05 Moved all generateSelect() calls to templates 21-01-05 Renamed session DB methods more conventionally 21-01-05 Moved url-related methods into new class, SGL_Url 21-01-05 Moved SGL::getPagedData() to SGL_DB::getPagedData()
Moved SGL_Output::msgSet() to SGL::raiseMsg()
SGL_Item Changes
Moved !ArticleViewMgr::getArticleDetail() to SGL_Item::getItemDetail() Moved !ArticleViewMgr::getArticleListByCatID to SGL_Item::getArticleListByCatID Moved !ArticleViewMgr::getDocumentListByCatID to SGL_Item::getDocumentListByCatID Moved !ArticleViewMgr::retrievePaginated to !SGL_Item::retrievePaginated
Adding $input->masterTemplate and removing $input->rightCol
Be sure to add $input->masterTemplate = $this->masterTemplate; and remove $input->rightCol in your validate method
