Gossamer Forum
Home : Products : Gossamer Mail : Discussion :

How to make time/date global?

Quote Reply
How to make time/date global?
Hi,

I'd like to make a global time and date tag in my GM setup to display this:

18:39 | Friday, July 20, 2001

Could someone give my weak perl skills some help?

Cheers,
Regan.


Quote Reply
Re: How to make time/date global? In reply to
this should work if you put it into your globals.txt...

'timedate' => 'sub { return GT::Date::_format_date([localtime()], "%HH%:%MM% | %dddd%, %mmmm% %d%, %yyyy%"); }'



Quote Reply
Re: How to make time/date global? In reply to
Thanks for that!

No matter what I do with it though, instead of returning the date in the <%timedate%> tag it just prints the whole subroutine out to the browser??

Any ideas?

Thanks!

Regan.


Quote Reply
Re: How to make time/date global? In reply to
hmm... it's working here, but I've got all the cvs'd versions of the libraries and such so I'm not sure if that would make a difference. Did you check your error_log (assuming you have debugging on) for any messages?

Quote Reply
Re: How to make time/date global? In reply to
The error log gets filled with this if it makes any sense to you?? And no error if I leave the global out.


GT::SQL::Driver::MYSQL (9298): Preparing query: SELECT * FROM webmail_session WHERE ( session_id = 'f1d693b41a1ab549c73b626faf64dd85' AND session_date > '995657933' ) at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.
GT::SQL::Driver::MYSQL (9298): Preparing query: SELECT session_date,session_id,session_user,session_data FROM webmail_session WHERE session_id = 'f1d693b41a1ab549c73b626faf64dd85' at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.
GT::SQL::Driver::MYSQL (9298): Preparing query: SELECT COUNT(*) FROM webmail_users WHERE user = 'regan@postoffice.co.nz' at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.
GT::SQL::Driver::MYSQL (9298): Preparing query: UPDATE webmail_session SET session_date = '995672333' , session_user = 'regan@postoffice.co.nz' , session_data = '{\n \'page\' => undef,\n \'cookie\' => \'1\',\n \'do\' => undef\n};\n' WHERE session_id = 'f1d693b41a1ab549c73b626faf64dd85' at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.
GT::SQL::Driver::MYSQL (9298): Preparing query: SELECT * FROM webmail_users WHERE user = 'regan@postoffice.co.nz' at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.
GT::SQL::Driver::MYSQL (9298): Preparing query: SELECT * FROM webmail_dgraph WHERE ( dgraph_userid = '2' ) at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.
GT::SQL::Driver::MYSQL (9298): Preparing query: SELECT COUNT(*) FROM webmail_pop_accounts WHERE pop_accounts_userid = '2' at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.
GT::SQL::Driver::MYSQL (9298): Preparing query: SELECT * FROM webmail_pop_accounts WHERE pop_accounts_userid = '2' at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.
GT::SQL::Driver::MYSQL (9298): Preparing query: SELECT * FROM webmail_dgraph WHERE ( dgraph_userid = '2' ) at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.
GT::SQL::Driver::MYSQL (9298): Preparing query: SELECT * FROM webmail_folders WHERE folders_fid = '1' AND folders_userid = '2' at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.
GT::SQL::Driver::MYSQL (9298): Preparing query:
SELECT webmail_msgs.msgs_mid, webmail_msgs.msgs_size, webmail_msgs.msgs_sent, webmail_msgs.msgs_sent_from, webmail_msgs.msgs_sent_to, webmail_msgs.msgs_sent_cc, webmail_msgs.msgs_reply_to, webmail_msgs.msgs_subject, webmail_msgs.msgs_message_id, webmail_msgs.msgs_has_attach, webmail_msgs.msgs_has_html, webmail_msgs.msgs_checksum, webmail_msgs.msgs_timestamp, webmail_msgs.msgs_content, webmail_msgtrack.msgtrack_id, webmail_msgtrack.msgtrack_mid, webmail_msgtrack.msgtrack_fid, webmail_msgtrack.msgtrack_userid, webmail_msgtrack.msgtrack_status, webmail_msgtrack.msgtrack_account, webmail_msgtrack.msgtrack_look, webmail_msgtrack.msgtrack_expanded
FROM webmail_msgs, webmail_msgtrack
WHERE webmail_msgs.msgs_mid = webmail_msgtrack.msgtrack_mid
AND (webmail_msgtrack.msgtrack_userid = '2' AND webmail_msgtrack.msgtrack_fid = '1')
ORDER BY msgs_sent desc LIMIT 0, 25
at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.
GT::SQL::Driver::MYSQL (9298): Preparing query: SELECT COUNT(*) FROM webmail_msgtrack WHERE msgtrack_status = 'New' AND msgtrack_fid = '1' AND msgtrack_userid = '2' at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.
GT::SQL::Driver::MYSQL (9298): Preparing query: SELECT * FROM webmail_folders WHERE folders_userid = '2'
ORDER BY folders_fid at /path/to/my/webmail/gmail/admin/GT/SQL/Driver/MYSQL.pm line 35.


Quote Reply
Re: How to make time/date global? In reply to
Just to make sure I'm entering it in alright, this is how I'm doing it...

In the globals section in the admin area:

Name of new global:

timedate

Then in the code part I'm pasting:

sub { return GT::Date::_format_date([localtime()], "%HH%:%MM% | %dddd%, %mmmm% %d%, %yyyy%");
}

Which makes my complete globals.txt file read:

{
'timedate' => 'sub { return GT::Date::_format_date([localtime()], "%HH%:%MM% | %dddd%, %mmmm% %d%, %yyyy%");
}',
'title' => 'The Post Office'
};


Can you see anything wrong with that?

Cheers,
R.

Quote Reply
Re: How to make time/date global? In reply to
here's another solution...
put this right into the template itself:
<%GT::Date::date_get('', "%HH%:%MM% | %dddd%, %mmmm% %d%, %yyyy%")%>

or if you really want to put it in globals (so that you can change the format of the date w/o having to modify every template):
'timedate' => 'sub { return GT::Date::date_get('', "%HH%:%MM% | %dddd%, %mmmm% %d%, %yyyy%") }'

or another solution...
'timedate' => 'sub { my $time = localtime(); return GT::Date::date_transform($time, "%ddd% %mmm% %dd% %HH%:%MM%:%ss% %yyyy%", "%HH%:%MM% | %dddd%, %mmmm% %d%, %yyyy%"); }'


Adrian
Quote Reply
Re: How to make time/date global? In reply to
Thanks! The first template solution worked.

The others just displayed to the browser again when entered as globals? Could this be a globals parsing bug in 2.0.2??

Cheers,
R.

Quote Reply
Re: How to make time/date global? In reply to
Might be, not sure. There were some changes to GT::Template lately, but I'm not sure if they made it into 2.0.2. Would have to ask Scott about those.

Adrian
Quote Reply
Re: How to make time/date global? In reply to
Hello!

What would be really helpful to everyone for every product by GT is such optional globals available with many variations.

As a non-programmer, I would not be able to reach those otherwise, like discussed below!