Typical Problems

I inherit from RegisterMgr class to make my own register form. It worked well on 0.55 but now in 0.6 I get: Warning: md5() expects parameter 1 to be string, object given in /lib/SGL/DB.php on line 190.

Remove

SGL_DB::setConnection($this->dbh);

line in _cmd_insert method

Check the new RegisterMgr class to see the changes


Setting custom default module I get Fatal error: Call to a member function validate()

When setting the default manager in the configuration, you must use the short name of the manager. For example:

  • FaqMgr = faq
  • DefaultMgr = default

Note: short names should be lower cased


All the blocks on my site have disappeared!

Make sure the blocksEnables setting in your <domain>.conf.php is set to 1. E.g.:

blocksEnabled=1


I'm getting FATAL pass by reference errors

Are you using PHP 5.0.5? This is a known buggy version, please upgrade (or downgrade).


I changed my site from PHP 4.x to PHP 5.x (or vice versa) and now I get an error with db_dataobject entities

You have to regenerate the db_dataobjects specifically for the PHP version. This can be invoked with the following request:

http://localhost/seagull/www/index.php/default/maintenance/action/dbgen/

You will need to disable the authentication key first to be able to do this, in seagull/var/<server>.conf.php:

$conf['debug']['authenticationEnabled'] = '0';

I have accidently set config values that stop my site from running

This can happen quite easily, best approach is to reset to a default config. To do this, request 'setup.php' instead of the default index.php. You will be prompted for a password. If you don't remember what you set, simply delete the file 'INSTALL_COMPLETE.php' from the seagull/var directory. During the setup, select 'use existing database' and 'preserve your existing data' to preserve your existing data.


I get the message "The specified method, list does not exist"

Check the specified module's conf.ini file located in modules/<modulename>/conf.ini and ensure that each manager in the module/classes directory is listed

You must also ensure that you have setup your method in your manager's action mapping

If you are unfamiliar with action mappings please read here Tutorials/WorkingWithActions


I get the message "No input file specified"

This means you're runing PHP as a CGI instead of the recommend apache module configuration, mod_php. You can get around some of the limitations of this mode by updating your Seagull config file. Locate seagull/var/<servername>.conf.php and find the line:

$conf['site']['frontScriptName'] = 'index.php';

and change it to

$conf['site']['frontScriptName'] = 'index.php?';

I get the error message 'Use of undefined constant ""FUNCTION"" - assumed '""FUNCTION""

This means you are using a version of PHP older than 4.3.0, Seagull will run fine in this case however you may want to disable error reporting to screen, this is done by going into /etc/<servername>.default.conf.ini and setting the production key to 'true':

[debug]
production = true

Args to Flexy methods must NOT be separated by spaces before or after the commas

Incidentally, my problem was compounded by an HTML_Template_Flexy fatal error in the HTML (unexpected character 0x20). I had placed a space between parameters in the generateSelect() parameter list (for readability). Although I might complain about Flexy's pickiness, I can't complain about the specificity of the error detection - it was specific to the character and the cause.


My pages seem to be rendering slowly

The first time you request a page its template gets compiled, similar to JSP, the subsequent request will be a lot faster. Additionally you can enable caching which speeds up pages significantly: logon as admin, go to 'Configuration', and set 'Caching enabled' to yes.


MS IExplorer cannot download PDF files

A well known bug in MS IExplorer could create problems when downloading PDF files, especially if the files are dynamically created. Using this code:

$dl = &new SGL_Download();
$dl->setData($myPdfData);
$dl->setContentType('application/pdf');
$dl->setContentTransferEncoding('binary');
$dl->setContentDisposition(HTTP_DOWNLOAD_INLINE, 'myfile.pdf');
$dl->setAcceptRanges('none');
$dl->setContentTransferEncoding('binary');
$error = $dl->send();

IExplorer could give you an error after opening the Acrobat Reader Plugin.

A good solution is to change the ContentDisposition parameter to HTTP_DOWNLOAD_ATTACHMENT instead: IExplorer will open a new window and will ask you to choose from 'open' or 'save' the file.

Choosing 'open' the PDF will be downloaded and presented without problem.