
(see below for a list of theme changes in
recent Geeklog versions - Note: not all changes may be listed)
Creating a Theme for Geeklog
Two types of themes exist in Geeklog. A regular Theme that includes all the required files under its directory, and a Child Theme. A Child Theme is based on a regular Theme (not on another Child Theme) and only include any changed files of the regular Theme within it's own directory. If Geeklog's theme engine doesn't find a required file in the Child Themes directory, it then falls back and uses the assigned regular theme to find the file it needs. Child Themes are a great way for theme developers to make minor adjustments to a regular Theme while keeping updating the theme simple when it is time to upgrade Geeklog itself, since any upgrades to the regular Theme will automatically be included in the Child Theme.
Creating a theme for Geeklog is easy and quite fast. If you can
manipulate HTML files then you can create a theme! There's no need to learn
PHP.
Creating a regular Theme
First, copy an existing theme that is most similar to what you want to
implement (if one exists). If what you will do is radically different (and we
hope so!) then copying any one will do. Copy the existing theme to the name you
want your theme to have (please, no spaces in the theme name):
cp -R /path/to/geeklog/public_html/layout/denim /path/to/geeklog/public_html/layout/My_Theme_Name_No_Spaces
Change into your new theme directory:
cd /path/to/geeklog/public_html/layout/My_Theme_Name_No_Spaces
Now edit the templates to suit your needs. Keep in mind that templates,
generally are partial HTML files. The directory you just created holds ALL
templates Geeklog needs but you will only need to modify a small few to
make a huge impact on the look.
In particular these are the templates you will undoubtedly want to
change:
- index.thtml
- blockheader.thtml
- blockfooter.thtml
- articletext.thtml
- articlebodytext.thtml
- featuredarticletext.thtml
- featuredarticlebodytext.thtml
- archivearticletext.thtml
- archivearticlebodytext.thtml
- style.css
When rendering a theme, Geeklog starts with index.thtml which
builds the site's header and then goes on to include the left column of blocks
(look for the variable {left_blocks} and the leftblocks.thtml file).
The middle part of a site consists of the articles which are built using the
articletext.thtml and articlebodytext.thtml (for normal articles)
and featuredarticletext.thtml and featuredarticlebodytext.thtml
(for featured articles) template files. The index.thtml file then
builds the right column of blocks (variable {right_blocks}, file
right_blocks.thtml) and the site's footer. Blocks themselves consist
of the blockheader.thtml and blockfooter.thtml files.
The above only describes how Geeklog's main page and articles are rendered.
More templates exist for the various editors and lists you will see in Geeklog,
as well as for plugins like the Calendar and almost every other part of Geeklog.
There is currently no complete list available that explains which template
file is used for which part of Geeklog. However, in most cases the use should
be obvious when you have a look at the file and directory names in your theme's
layout directory. Enabling the Geeklog Configuration option 'template_comments'
will also show any template comments (marked by {# foo #}) in the source of the
html file. All Geeklog themes and Plugins included with the Geeklog Install also
include template comments which shows which template file is being used. So
enabling this config option and then viewing the source of the HTML page, you will
find comments right in the code that shows you when a certain template file is
being used.
If you're unsure which template file is used to render a
certain part of Geeklog, have a look at the URL. You will notice the name of
a PHP file there, e.g. the users.php file when you view a user's
profile. Open that file and search for '.thtml'. For the profile
you will find these lines (in function userprofile()
):
$user_templates = new Template ($_CONF['path_layout'] . 'users');
$user_templates->set_file (array ('profile'=>'profile.thtml', 'row'=>'commentrow.thtml', 'strow'=>'articlerow.thtml'));
You don't need to understand PHP code to see that this uses the template
files profile.thtml, commentrow.thtml, and
articlerow.thtml. The first line also indicates that these are taken
from the users directory within the theme's layout directory.
An incomplete list of variables that can be
used in templates files is also included.
After you have edited your themes, you are now ready to test it out.
Simply go to http://mygeeklogsite/usersettings.php?mode=preferences - in the
theme drop-down select your newly created theme (note the name of your theme is
the same name as the directory for your theme).
Finally, you may want to update the logo and other images in your
theme's images directory.
Themes and WYSIWYG editors:
The template files used by Geeklog are not complete HTML files - they contain
only parts of the HTML that Geeklog puts together to build a proper HTML
document. This, however, seems to confuse some WYSIWYG HTML editors and some of
them tend to add the HTML which they think is missing from the file, thus
making it unusable for Geeklog.
We suggest you use a simple text editor to edit your themes.
XHTML:
Geeklog will create XHTML-compliant tags when asked to do so. You can also
create themes that are both HTML and XHTML compliant. Please see the article
Themes and
XHTML entry on the Geeklog Wiki for more information.
Logic Processing, Autotags, and PHP in themes:
Please see our wiki article Caching Template Library
for more information and examples of how to add PHP, Mobile Detection, Autotags,
and even logic processing into template files.
Error Message:
Since Geeklog 1.4.1 it is possible to control what HTML is displayed to
non-root users in the event of an error occurring (a crash bug). To do
so, you need to enable the config option $_CONF['rootdebug'] found in the
siteconfig.php file.
Creating a Child Theme
For an example of a Child Theme and how they work please see the "denim_curve" theme
which is based on the "denim" regular theme (also called the Parent Theme). Please
note the extra settings and changes required in the "denim_curve"
functions.php file.
- New Block Header Child template called blockheader-child.thtml. This is used by User Profile page and allows for nesting blocks within the main block. This change required bumping Geeklog minimum version for themes to 2.2.2.
- For the users\profile.thtml file, all {end_block} template variables updated with unique names.
- Edit link for topics added to topic.thtml
- New block template added called "_admin_list" which allows a theme to specify what block header and footer to use to wrap Admin Lists. Admin lists originally used "_admin_block" which is also used by the main admin page block.
- Template files archivearticlebodytext.thtml, archivearticletext.thtml, articlebodytext.thtml, articletext.thtml, featuredarticlebodytext.thtml, and featuredarticletext.thtml moved from root folder to the folder "article".
- Template file printable.thtml added to the root folder to the folder.
- Template file printable.thtml removed from the "article" folder.
- The main theme header.thtml and footer.thtml files have been combined into one file called index.thtml. This means any template variable available to either of the old files is now available in the new index file.
- For the new index.thtml file, the {content} template variable has been added which is where the main page content is placed.
- For the new index.thtml file, the {system_messsages} template variable has been added which is where system messages may appear.
- New theme config options include: 'theme_name', 'theme_version', 'theme_gl_version', 'theme_author', 'theme_license'
- Theme variable $theme_config['supported_version_theme'] has been depreciated in the functions.php file. Please use 'theme_gl_version' instead.
- PLG_getThemeItem and theme_getThemeItem_foo api functions have been added so themes can specify certain css classes, styles, and other info for certain items in Geeklog.
- Added "record_edit" block and {record_edit} template variable to commentform.thtml and commentform_advanced.thtml. This allows Comment Moderators to bypass recording when a comment edit is done and by whom.
- Added "comment_signature" and "comment_edit" blocks and {comment_signature} and {comment_edit} template variable to comment.thtml. This allows comment signatures and user edits to by styled easier and removes some hardcoded CSS from the code.
- Removed {block_help} template variable from all blockheader template files (blockheader.thtml, blockheader-left.thtml, etc..) Added {help_title} template variable and included help icon and link directly into template files. Use {help_url} variable for template if statement to check if it needs to be displayed or not.
- Added blocks directory to store template files which may be needed for php blocks. Added switchlanguage.thtml template file for phpblock_switch_language function.
- Removed {delete_option} and {delete_option_no_confirmation} from articleeditor.thtml and articleeditor_advanced.thtml template files. Use {allow_delete} instead and see Modern Curve theme for example.
- Added {image_add_instructions}, {allow_user_scaling} and {image_preview_instructions} to articleeditor.thtml and articleeditor_advanced.thtml template files.
- Added blocks image-file-name and image-file-select to articleeditor.thtml and articleeditor_advanced.thtml template files.
- Added template files common.thtml and checklist.thtml to the new folder "controls".
- Added template file authenticationrequired.thtml to the folder "user".
- Added template file deleteaccountconfirm.thtml to the folder "preferences".
- Added template file topic.thtml to root of the theme folder.
- Removed {copyright_notice} from footer.thtml since it contained embedded HTML tags and the same message can be created from {copyright_msg} and {trademark_msg} template variables.
- Removed from the users directory the files storyrow.thtml, commentrow.thtml, and email.thtml. Added additional blocks to profile.thtml to take into account removed files.
- Added 3 blocks to storytext.thtml, featuredstorytext.thtml, and archivestorytext.thtml to control how left aligned, right aligned, and non aligned images are displayed in articles (using the [imageX], [imageX_right], and [imageX_left] tags).
- Removed from the Polls Plugin the files for the denim and default templates pollanswer.thtml, pollquestions.thtml, pollvotes_bar.thtml, pollvotes_num.thtml, and pollquestion.thtml. Added additional blocks to pollblock.thtml and pollresult.thtml to take into account removed files.
- Replaced {lang_side} with {lang_position} and added {none_selected} option to position field for blockeditor.thtml and defaultblockeditor.thtml
- Added Device field (with 3 radio inputs) to blockeditor.thtml and defaultblockeditor.thtml
- Added an ability to change article template file with the topic. Suppose you would like to change
article templates with the "Geeklog" topic. Create a directory [path_layout]/topics/Geeklog and
copy storytext.thtml, storybodytext.thtml, featuredstorytext.thtml, featuredstorybodytext.thtml,
archivestorytext.thtml, archivestorybodytext.thtml under the [path_layout] directory over to
[path_layout]/topics/Geeklog and edit the files as you like.
- Added {device_mobile} for all template files which returns true if user device viewing the page is considered a mobile device (phone and tablet)
New template functionality for plugins has been added to Geeklog which when supported allow for specific theme templates for plugins. This means a plugin or theme can include plugin templates designed for individual themes.
These templates can be included with either the plugin itself, or the theme, or in both places at once. All of Geeklogs core plugins support this new feature. To find out more please visit the Geeklog Wiki about Theme Specific Plugin Templates.
General Changes
- Added the UIkit framework (v2.24.0) which can be accessed by themes if needed
- Moved breadcrumbs.thtml from breadcrumbs directory to root directory. Added a number of blocks to the template.
- Removed breadcrumb.thtml, breadcrumb_child.thtml, breadcrumb_nolink.thtml, and breadcrumb_root.thtml.
- Removed breadcrumbs directory from theme root directory.
- Added the template variable {related_topics} to featuredstorytext.thtml and storytext.thtml
- Added topicrelated.thtml which displays related topics for articles.
- Removed topicoption.thtml and topicoption_off.thtml.
Added topicnavigation.thtml which uses blocks to reduce the number of template files.
- Renamed page_navigation.thtml to pagenavigation.thtml
to be consistent.
- Removed menuitem.thtml, menuitem_last.thtml and menuitem_none.thtml.
Added menunavigation.thtml which uses blocks to reduce the number of template files.
- Removed adminoption.thtml and adminoption_off.thtml.
Added adminavigation.thtml which uses blocks to reduce the number of template files.
- Removed adminoption.thtml and adminoption_off.thtml.
Added adminavigation.thtml which uses blocks to reduce the number of template files.
- Removed useroption.thtml and useroption.thtml.
Added usernavigation.thtml which uses blocks to reduce the number of template files.
- Removed listitem.thtml. list.thtml now uses blocks to reduce the number of template files.
- Removed admin/moderation/moderation.thtml, admin/moderation/ccitem.thtml and admin/moderation/ccrow.thtml.
Added admin/commandcontrol.thtml which uses blocks to reduce the number of template files.
- Added /images/icons/moderation.pngimage for Admin Moderation page.
- Changed list id of "admin-moderation" to "admin-commandcontrol". This affects the Denim, Modern Curve and Proffesional CSS themes.
- Moved all images from /tooltips/images/ to /images/tooltips/ and updated all tooltip template files under the /tooltips/ directory to reflect the change.
- Moved all images from /navbar/images/ to /images/navbar/ and updated required css files (different for each theme). Removed unused images for navbar from Denim and Modern Curve themes.
- Updated /admin/blocks/blockeditor.thtml and added in cache_time labels and input for all themes.
- Updated /admin/common/edit_topics.thtml so it can use jQuery (by adding ids to a number of elements) for all themes.
- Added /admin/envcheck.thtml and related css for the Enviroment Check Admin page.
- Updated /admin/topic/storyeditor.thtml, /admin/topic/storyeditor_advanced.thtml and /admin/topic/topiceditor.thtml. Ids can now be upto 128 characters long so changed max length (for Topic Name as well). Also added javascript which runs topic_2_id.js which converts titles to nice looking ids.
- Added the template variable {titletoid} to the story editor, topic editor and staticpage editor template files. It enables/disables the use of javascript to automatic update the ids when the title is changed.
- In the template file /comment/commentbar.thtml removed template variable {show_link_to_commenteditform}. Added the template block commenteditform_jumplink and the template variable {jump_link_for_commenteditform}.
As of Geeklog 2.0.0 there are now 2 theme engines in Geeklog. Currently the themes Demin and Modern Curve use the 2.0.0 theme engine. The Professional and Professional CSS themes use the 1.8.1 engine.
The 1.8.1 theme engine will eventually be removed from Geeklog so if you are developing a new theme it is best to use the new engine. To find out more about this please visit the Geeklog Wiki Theme Developers Guide.
General Changes
- HTML 5 DOCTYPE added.
- A minimal theme API is now available. It can be used to override defaults, load CSS files and load JavaScript files. See the Geeklog Wiki for more details. New functions are function theme_config_mytheme(), function theme_css_mytheme(), function theme_js_libs_mytheme(), function theme_js_files_mytheme(), and function theme_init_mytheme().
- New breadcrumbs folder. New files in folder include breadcrumbs.html, breadcrumb_root.thtml, breadcrumb.thtml, breadcrumb_nolink.thtml, and breadcrumb_child.thtml.
- To display breadcrumbs for topics, articles and staticpages add {breadcrumb_trail} template variable to your header.thtml.
- New file edit_topics.thtml for topic selection found in /admin/common folder.
- Updated topicoption.thtml and topicoption_off.thtml files found in root of theme folder.
- Replace topic folder in admin folder. Lots of changes with these files.
- For topic selection control you need to add the template variable {topic_selection} to the files /admin/block/blockeditor.thtml, /admin/block/defaultblockeditor.thtml, /admin/article/articleeditor.thtml, /admin/article/articleeditor_advenced.thtml, /submit/submitstory.thtml, and /submit/submitstory_advanced.thtml.
- Comments on same page changed a lot of things. Copy paste the complete comment folder and custom the commentbar.thtml and comment.thtml files as necessary.
- The page navigation uses a new file called page_navigation.thtml.
- New css for static pages, stories and blocks editors.
Theme Engine 2.0.0 Specific Changes
- New template variable {layout_columns} sets the class of the body tag which is found in header.thtml. This is needed to set the number of Geeklog columns on a given page.
- New Javscript file /javascript/fix_html.js required when plugin doesn't support the 2.0.0 theme engine.
- Javascript code that runs
FixHTML('leftblocks', 'centerblocks', 'rightblocks');
needs to be added to the footer.thtml file.
Theme Engine 1.8.1 Specific Changes
- Added a new variable
{plg_footercode}
to footer.thtml.
Allows for adding code, e.g. JavaScript code, to the end of a page.
- Added a robots meta tag to the printable story page,
article/printable.thtml, so that it isn't indexed by search
engines.
- Added a robots meta tag to the printable Static Pages page,
templates/printable.thtml, so that it isn't indexed by search
engines.
- Added a new tooltips directory that contains templates for various
forms of tooltips (used e.g. for displaying autotag descriptions). Also
required some changes in the
tooltip
classes and introduced
new classes (classic, help, etc.) in the stylesheet,
style.css.
Admin templates
- Changed the
chk_grpdefault
and chk_applydefault
checkboxes in admin/group/groupeditor.thtml so that the "apply
Default Group change" option only shows up when the state of the Default
Group checkbox changes (requires an additional piece of JavaScript in
javascript/common.js).
Other changes
- The comment submission forms will now display Cancel and Delete buttons,
depending on context (e.g. when reviewing a comment submission). Changes in
comment/commentform.thtml and comment/commentform_advanced.thtml for the new elements.
- Fixed a closing </div> tag in loginform_openid.thtml.
- Cosmetics: Removed the 1px border from the block-bg-left and
block-bg-right classes in the stylesheet.
- Cosmetics: Added a border="0" to the main table in
header.thtml.
Admin templates
- New variable
{hide_meta}
in the Topic editor template,
admin/topic/topiceditor.thtml, to hide the text entry fields for
the meta description and meta keywords when meta tag support is
disabled.
- In the Topic editor template, admin/topic/topiceditor.thtml,
display the max. size of the topic icon and whether it will be scaled down
(new variable
{icon_max_dimensions}
).
- Added a hidden field "old_tid" to the Topic editor template file,
admin/topic/topiceditor.thtml, to allow changing the topic id.
- New variable
{hide_meta}
in the Story editor templates,
admin/topic/storyeditor.thtml and
admin/topic/storyeditor_advanced.thtml, to hide the text entry
fields for the meta description and meta keywords when meta tag support is
disabled.
- Removed the
display:{show_htmleditor};
CSS snippet from the
<div id="editor-mode">
in
admin/topic/storyeditor_advanced.thtml to ensure that the list of
allowed HTML tags and autotags is always visible.
- All onclick events in the Configuration templates should return
false
. In admin/config/menu_element.thtml, the return
statement was missing for the open_group
and
open_subgroup
calls.
In admin/config/config_element.thtml, it was missing for the
unset-param case (i.e. the call to restore
).
- Added a new textarea section to admin/config/config_element.thtml
to allow for configuration options to use a multi-line text entry
field.
- In admin/config/config_element.thtml, in the section for the
select-element
, {hide_row}
was added for the
table row and a {delete}
option was added after the
select
. These changes are required to allow dynamic addition /
removal of dropdowns, e.g. for $_CONF['menu_elements']
.
- The Group editor template, admin/group/groupeditor.thtml, has two
new options for default groups (chk_grpdefault and
chk_applydefault checkboxes + language variables).
- The fieldhelp class was changed to include left and right padding
so that the hard-coded padding could be removed from the Group editor
template, admin/group/groupeditor.thtml.
- For consistency: The template variables for the headline texts in
admin/common/edit_permissions.thtml are now also available with a
lang_
prefix ({lang_owner}
, etc).
Other changes
- When editing a comment or comment submission, the "Logout" link is now
hidden. This is done by adding a
span
around the link and a
new template variable, {hidewhenediting}, that will contain CSS to
hide the span
when a comment is edited (but not when it's
submitted). Changed files: comment/commentform.thtml and
comment/commentform_advanced.thtml.
- In the profile template, users/profile.thtml, the link to "Find
all postings by User" was shortened, as it contained a lot of
unnecessary parameters for the search.
- In loginform_openid.thtml, the input field was missing a
id="identity_url"
(since the <label> tag refers to an id,
not a name).
- A new variable {option_attributes} is available in the
topicoption.thtml template file. It is currently only used to add
a
rel="home"
attribute to the Home link in the Topics
block.
- A new option in My Account allows users to enable/disable the Advanced
Editor. Requires a new template variable {advanced_editor_option}
in preferences/displayblock.thtml and a new template file
preferences/editor.thtml for the actual option (the option remains
hidden unless Advanced Editor is enabled globally in the Configuration).
- Added some padding to the
<li>
element in
comment/thread.thtml so that follow-up comments in threaded mode
are a bit more apart and easier to read.
- The template file submit/submitloginrequired.thtml is no longer
needed and has been removed.
- Added rules for the token-expirynotice and
token-expirytime ids (not classes!) to the stylesheet.
These are used to format the new notice in the editors, informing the user
when the security token will expire.
- Added an icon, images/update.png, to be displayed in the admin's
list of plugins when a plugin needs to be updated. The icon should have the
same size as the "edit" icon (16x16 pixel in the Professional theme).
- The Topic Editor now contains a line displaying the number of stories in
the current topic. New variables in admin/topic/topiceditor.thtml:
{lang_num_stories}
, {num_stories}
- Added a link back to the story to the "Mail Story to a Friend" form,
profiles/contactauthorform.thtml. Available variables:
{lang_title}, {story_title}, {story_url},
{story_link}.
- Added a "send copy to myself" option to
profiles/contactauthorform.thtml
- Added textarea fields for meta description and meta keywords to the Story
Editor (admin/article/articleeditor.thtml,
admin/story/storyeditor_advanced.thtml).
- Added textarea fields for meta description and meta keywords to the Topic
Editor (admin/topic/topiceditor.thtml).
- Added a
{remoteservice}
variable in
admin/user/edituser.thtml to optionally display the name of the
service a Remote User was using to log in.
- Added a
{title_checked}
variable to search/searchform.thtml, so that the "Refine search" option can keep the status of the "Titles
Only" checkbox.
- Moved hard-coded green color for the byline of search results in "Google"
style to the stylesheet: New class
searchresult-byline
.
Cosmetic changes
These changes are mostly cosmetic and won't affect the functionality of a
theme if not applied:
- Cosmetics: Made the look and layout of the "Send mail to user"
(profiles/contactuserform.thtml), "Mail Story to a Friend"
(profiles/contactauthorform.thtml), and "Mail Users"
(admin/mail/mailform.thtml) dialogs more consistent (alignment,
size of input fields).
- Cosmetics: Fixed the position of the story preview when using the
advanced editor (was slightly shifted to the right, bug #0000963). Changes to the
<div id="preview">
in
admin/story/storyeditor_advanced.thtml.
- Cosmetics: Removed
font-size:larger;
for the header fields of
the admin lists from the stylesheet, but added some top/bottom padding
(bug #0000956).
- Cosmetics: Removed a
width="180"
from the Block editor template
(admin/block/blockeditor.thtml) that pushed the first column too
far to the right.
- Cosmetics: Made the permission checkboxes look more like an Admin list,
admin/common/edit_permissions.thtml. Introduced new CSS class
admin-list-smalltable, which is almost identical to
admin-list-table but without the
width:100%;
Changes to plugin templates
Note that plugin template files are kept in a directory
plugins/pluginnname/templates and not in the layout
directory.
- Links: Removed a
width="150"
from the Category editor template
(admin/categoryeditor.thtml) that pushed the first column too far
to the right.
- Static Pages: Added new input fields for a meta description and meta
keywords to the Static Pages editor.
- Static Pages: In the Static Pages editor, moved the Hits display below
the Last Updated entry (admin/editor.thtml,
admin/editor_advanced.thtml).
- Static Pages: Added textarea fileds for meta description and meta keywords
in the Static Pages editor (admin/editor.thtml,
admin/editor_advanced.thtml).
- Polls: Added new input fields for a meta description and meta keywords to
the Polls editor.
- Polls: Added new CSS classes poll-autotag-message,
poll-autotag, poll-autotag-left, used when embedding polls
via the new autotags.
- Themes can now opt to use a {doctype} variable in their
header.thtml instead of using a hard-coded DOCTYPE declaration.
The DOCTYPE will then be set from the configuration (currently available:
HTML 4.01 Strict and Transitional, XHTML 1.0 Strict and Transitional). Such
a theme should not set the
XHTML
constant in its
functions.php file!
- When using XHTML, the variable {xmlns} now
contains xmlns="http://www.w3.org/1999/xhtml" for XHTML compliance
(to be used in the <html> element).
- Added a space between a story's intro text and body text when using the
{story_text_no_br} variable.
- The story templates in the Professional theme now use
{story_text_no_br} instead of {story_introtext}, i.e.
there are no <br> tags between a story's intro text and
body text any more. This allows for greater flexibility in formatting a
story (e.g. when using the intro text for teasers) but may result in older
stories being displayed differently now (no visible separation between intro
text and body text).
- Bugfix: The variables {contributedby_user} and
{contributedby_fullname} were always empty.
- The two variables {start_contributedby_anchortag} and
{end_contributedby_anchortag} were not set any more (since Geeklog
1.5.0). Instead, the link to the author's profile was added to
{contributedby_author}, so that the combination of these three
variables (as used in the story templates) still seemed to work. Geeklog
1.6.0 reinstates the old definitions, i.e. the anchortag variables contain
the opening and closing tag to link to the author's profile and
{contributedby_author} contains only the author's name.
- New variable {photo_max_dimensions} to inform users about the
max. dimensions of a userphoto: preferences/userphoto.thtml
- Added a print.css stylesheet to be used by the
printable.thtml template files for articles and the static pages
plugin.
- The plugin editor can now show a plugin's "display name" (or a beautified
version of the directory name) when using the new variable
{pi_display_name}
in admin/plugins/editor.thtml.
This is a purely cosmetic change.
- New template file admin/lists/inline.thtml, used when embedding
lists into an existing HTML
<form>
(e.g. the new Groups
editor).
- Added a "send copy to myself" option to
profiles/contactuserform.thtml
- Cosmetic changes to the admin/mail/mailform.thtml template file:
Removed
{startblock_email}
and {endblock_email}
and the top table. These elements are now added automatically to make the
the mail form look more consistent with the other admin panels.
- A new checkbox has been added to search/searchform.thtml to allow
for a search in the title only.
- Cosmetic changes to the admin/group/groupmembers.thtml template
file: The header (including the icon, links, and the instructions) is now
generated by Geeklog. The <table> that contained these
elements has been removed from the template file.
- Configuration: config_element.thtml was missing a closing
</option>
tag; the <col>
tags in
configuration.thtml were not XHTML compliant.
Search
The templates for the search form and search results have been changed and
new template files have been added for the new display modes of the search
results. We suggest to replace the entire search subdirectory in your
theme with a copy of the directory from the Professional theme as it ships
with Geeklog.
Comments
The commentform.thtml and commentform_advanced.thtml
template files were changed to include a security token and a
{notification}
variable (for the new option to be notified of
followup comments).
Plugins
- The template file for the Polls editor has been changed to allow up to 40
characters for the poll id (pid):
plugins/polls/templates/admin/polleditor.thtml
- The printable.thtml template file for the static pages plugin now
uses print.css (see above). It also uses the HTML Strict doctype
now.
Permissions Editor
The various instances of the Permissions Editor (where you can set the Read
/ Edit permissions for Owner, Group, Members, Anonymous) were using slightly
different template variable names. From now on, the following names are defined
everywhere:
- {lang_permissions} (headline)
- {lang_perm_key} (legend: R = read, ...)
- {permissions_editor} (the actual checkboxes)
- {lang_permissions_msg} (Note: members is all logged in member ...)
Template files using the alternative names will continue to work, but new
files should use the above names from now on.
Note: Themes made for Geeklog 1.5.0 or 1.5.1 should work just fine with
Geeklog 1.5.2. In this release, we only fixed a few problems in the themes
(detailed below) that also affected 1.5.0 and 1.5.1. The other changes listed
here are optional.
Bugfixes
These changes are actual bugs in the template files that also exist in
Geeklog 1.5.0 and 1.5.1. We recommend making these changes to all custom
themes.
- The security token was missing from the trackback editor template file,
admin/trackback/trackbackeditor.thtml
- The
{start_storylink_anchortag}
variable in the story templates
was missing the closing '>'. This caused the story title to disappear
on some themes. (This was a bug in Geeklog's code, so no theme changes
required)
- The
{site_admin_url}
was missing from the Configuration form
action in admin/config/configuration.thtml. This may have caused
problems making configuration changes on some setups.
- Added a hidden
old_pid
input field to the polls editor template
file, plugins/polls/templates/admin/polleditor.thtml, to fix
problems when changing a poll's ID.
Other changes
These changes are optional. They fix cosmetic issues or issues that only
affect some setups.
- Cosmetics: In the Professional theme, the last menu entry isn't different
from the other entries, so the
.header-navigation-container li.last
rule in style.css
is not needed for this theme.
- Internationalisation: The language direction variable,
{direction}
, was not available in the printer-friendly
templates for articles and static pages.
Note: Themes made for Geeklog 1.5.0 are mostly compatible with Geeklog 1.5.1. We only made one mandatory change (for the Configuration admin panel) - all the other changes listed below are optional or adjustments for special setups (e.g. multi-language sites, right-to-left languages). See details below.
Important change: Configuration
The JavaScript code used for the Configuration admin panel used a generic name which caused conflicts with other JavaScript code. You should update the file admin/config/config_element.thtml to make sure your theme works with Geeklog 1.5.1.
Multilingual blocks
The multi-language support for blocks introduced in Geeklog 1.5.1 relies on
disabled blocks being swapped in dynamically. If you are using
Geeklog's multi-language support, you may need to modify the piece of PHP code
in your theme's functions.php so that it picks the correct templates
for these multilingual blocks:
$lang = COM_getLanguageId();
if (empty($lang)) {
$result = DB_query("SELECT onleft,name FROM {$_TABLES['blocks']} WHERE is_enabled = 1");
} else {
$result = DB_query("SELECT onleft,name FROM {$_TABLES['blocks']}");
}
Prior to Geeklog 1.5.1, you will probably only find the first SQL request
in your functions.php file.
Other changes
- In Geeklog 1.5.0, the behaviour of the variable
{page_title}
(in header.thtml) changed so that it now only contains the actual
page title or the site's slogan (in earlier versions, it contained both the
site's name and either the page title or the site's slogan). This was done
so that the combination {page_title}{page_site_splitter}{site_name}
could be used to place the page title before the site's name for better SEO. If you prefer
to have the site's name first on the index page and the page title first on
all other pages, you can now use the new variable
{page_title_and_site_name}
- In the Links plugin, links have an icon indicating that it's an external
link (taking the user away from the current site). This icon did not show
up properly for RTL languages (e.g Hebrew), making the link text unreadable.
Since we could not find a way to make it show up properly in this case, the
icon is not displayed when the text direction is switched to 'rtl'
(for now).
- Added an optional
feed-link
class to be used for links to
feeds (e.g. the new Story Option entry for topic feeds). In the Professional
theme, a small feed icon (images/feed.png) is used as a background
image for these links.
- An optional change to the comment/commentbar.thtml template file
and the
commentbar-line2
class in style.css to make
the "Post a comment" button float to the left and easier to see. There were
no changes in functionality and other commentbar layouts will continue to
work as before.
- The story template files archivestorytext.thtml,
featuredstorytext.thtml, and storytext.thtml are now
using the
{story_text_no_br}
variable to refer to the story
text. Template files that use {story_introtext}
here will
continue to work as before.
Geeklog now supports XHTML compliant themes. These themes should define the
following constant in their functions.php file:
define('XHTML', ' /');
This will ensure that Geeklog switches to XHTML internally. If you want your
theme be working both as an HTML and an XHTML theme, you should use the
{xhtml}
variable wherever XHTML requires a self-closing tag,
e.g. <br />
would be written as <br{xhtml}>
. If you don't plan to use the theme for HTML, feel free to hard-code your
theme for XHTML only.
Note: If you're using XHTML, it is your responsibility to
ensure that your site's content (stories, comments, etc.) is XHTML compliant.
Geeklog does not convert your content to XHTML.
Geeklog 1.5.0 supports the ability for users to specify story intro text
and body text seperately rather than just the intro text. This can be
turned on and off by changing the templates. The files:
- submit/submitstory.thtml
- submit/submitstory_advanced.thtml
Contain table rows containing the bodytext inputs. Simply removing these
inputs returns behaviour to the original.
All the above mentioned items are now lists, using ul
and
li
tags (and a new CSS class, blocklist, to hide the list
bullets). Two new template files have been added to create these blocks:
- blockheader-list.thtml
- blockfooter-list.thtml
Please note that the {blockid}
variable that was present in
pre-release versions of Geeklog 1.5.0 has since been removed.
Many forms, particularly in the admin section of the site need a new hidden
form field in order for saving the form/processing the action to work. Add:
<input type="hidden" name="{gltoken_name}" value="{gltoken}"{xhtml}>
To the following templates:
- admin/block/blockeditor.thtml
- admin/block/defaultblockeditor.thtml
- admin/config/configuration.thtml (new theme file for 1.5)
- admin/group/groupeditor.thtml
- admin/group/groupmembers.thtml
- admin/mail/mailform.thtml
- admin/plugins/editor.thtml
- admin/article/articleeditor.thtml
- admin/article/articleeditor_advanced.thtml
- admin/syndication/feededitor.thtml
- admin/topic/topiceditor.thtml
- admin/trackback/pingbackform.thtml
- admin/trackback/pingform.thtml
- admin/trackback/serviceeditor.thtml
- admin/user/edituser.thtml
- comment/reportcomment.thtml
Some plugin specific templates have also been changed, you may also need to
check:
- plugins/calendar/templates/addevent.thtml
- plugins/calendar/templates/editpersonalevent.thtml
- plugins/calendar/templates/dayview/quickaddform.thtml
- plugins/calendar/templates/submitevent.thtml (
{hidden_fields}
variable)
- plugins/links/templates/admin/categoryeditor.thtml (new theme file for 1.5)
- plugins/links/templates/admin/linkeditor.thtml
- plugins/polls/templates/admin/polleditor.thtml
- plugins/staticpages/templates/admin/editor.thtml
- plugins/staticpages/templates/admin/editor_advanced.thtml
The following template files have been removed and are no longer needed:
- admin/lists/menufields.thtml
- admin/lists/topmenu_nosearch.thtml
- admin/plugins/newlistitem.thtml
- admin/plugins/newpluginlist.thtml
The previously hard-coded CSS for the System Messages has been moved to the
stylesheet (new CSS class sysmessage).
The css in 1.4.1 has been changed to a wider extent. More and more layout
components are beeing moved to the stylesheet so more change in looks can be
achieved with less change in the files. There is a reduction of tables and DIV,
and a stronger focus on semantics and consistency. Please also notice that the
styles.css includes additional documentation on the use of classes now.
As usual, any missing new theme files can simply be copied over from the
default theme (Professional) that ships with Geeklog.
Header-Tags
From now on, all headlines in blocks & stories are made with header-tags. The
biggest title in a story is always h1, in a block always h2.
Story layout
The blocks for stories have no more tables, and the classes have been renamed
for consistency. There is a box now around the story called class "story" or
"story-featured". The components inside that box are story-icons,
story-information, story-body and story-footer. The title is a h1-tag. For
featured stories, only the outer box has a different class, the rest has to be
cascaded for changes.
Blocks
The blocks changed in the same way as the stories. There are no more tables,
only one div-tag as a frame around called block-box, block-box-left or
block-box-right. The title is a h2-tag and the help icon for the block is a span
with a class called block-helpicon. Sub-titles in blocks have the h3-tag (such
such as in the What's new or Older Stories block). The changes affect (next to
styles.css) the follwing files:
- blockfooter-left.thtml
- blockfooter-related.thtml
- blockfooter-right.thtml
- blockfooter.thtml
- blockheader-left.thtml
- blockheader-message.thtml
- blockheader-related.thtml
- blockheader-right.thtml
- blockheader.thtml
Admin templates
Many of the admin template files have had minor changes to tweak appearance
or functionality. If you didn't modify the admin templates in your theme, the
easiest way to upgrade your theme's admin templates is to simply replace the
entire 'admin' directory with the one from Geeklog's Professional theme.
- All the "delete" buttons in the admin's editors (story editor, etc.) now
pop up a JavaScript confirmation box as a simple measure against
accidental deletion. If you'd rather not have that confirmation box,
replace the
{delete_option}
variable with
{delete_option_no_confirmation}
in the admin templates.
- The order of the save / cancel / delete buttons is now consistent across
all admin template files (changed group/groupeditor.thtml and
user/edituser.thtml).
- Changed the top links in lists/topmenu_nosearch.thtml and
topic/topiclist.thtml to be consistent with the other admin areas
(i.e. the links are no longer enclosed in square brackets).
- To enable changing the group ownership of "gldefault" blocks, the
defaultblockeditor.thtml has to be changed to include a
{group_dropdown}
variable.
Other theme changes
- There was a div for spreading the with of the blocks to a minimum in the
files leftblocks.thtml and rightblocks.thtml. The format of those has been
transferred to the stylesheet with the class name block-bg-spreader
- The template for the Polls-plugin has renamed classes block-vote-results to
poll-vote-results and block-vote to poll-vote to avoid confustion with
block-related classes.
- The template files used by the Calendar plugin are now located in the
plugin's directory, (/path/to/geeklog/plugins/calendar/templates),
so the entire 'calendar' directory can be removed from the theme
directory.
The submitevent.thtml, editpersonalevent.thtml,
admin/eventeditor.thtml, and dayview/quickaddform.thtml
have also been changed to (optionally) support entering the time in 24 hour mode: A hidden input field
"hour_mode" is now required, the am/pm dropdowns are available as variables
{startampm_selection}
, {endampm_selection}
,
{ampm_selection}
, depending on the template file), and the
dropdowns for the minutes are available as variables
({startminute_options}
, {endminute_options}
,
{minute_options}
, depending on the template file).
- The variables
{author}
and {owner}
are now
available in every template where an object's author (e.g. story or
comment author) or owner (e.g. owner of a block) name can be displayed.
They will also respect the $_CONF['show_fullname'] setting,
i.e. display either the user's full name or username.
- The Article Author's tag in storytext.thtml and
featuredstorytext.thtml is now called
{contributedby_author}.
- To enable a remarks field in the answer to polls, the
pollvotes_bar.thtml, pollansweroption.thtml and
polleditor.thtml were changed. The
pollvotes_bar.thtml is now colored and has two lines, a class
for color coding each line and the
{answer_text}
. The
polleditor.thtml has an aditional field to enter the remarks,
same as the pollansweroption.thtml.
- A user's Account Information page has been redesigned. While there were no
technical changes (i.e. template files from earlier versions will still
work), some options have been rearranged and a note has been added to tell
the user that the current password is required to change those. Affected
files in the preferences directory: profile.thtml,
username.thtml, and userphoto.thtml.
- The navbar directory now contains four files,
menuitem.thtml,navbar.thtml,breadcrumbs.thtml,breadcrumb_link as well as two images,
button.gif and button_over.gif.
- A
{captcha}
variable has been added to
the following files:
- comment/commentform.thtml
- comment/commentform_advanced.thtml
- profiles/contactauthorform.thtml
- profiles/contactuserform.thtml
- submit/submitstory.thtml
- submit/submitstory_advanced.thtml
- users/registrationform.thtml
This variable is supposed to be used by a plugin that implements CAPTCHAs
and will simply be empty when no such plugin is installed.
Professional theme
The following changes are specific to the Professional theme. There is
probably no need to port them over to other themes.
- The theme now uses CSS everywhere for spacing and dividers instead of
relying on a 1x1 pixel transparent GIF image (speck.gif).
- The amount of nested tables has been reduced, e.g. in the block
headers.
- Two unused template files, customlogin-header.thtml and
customlogin-footer.thtml, have been removed.
As usual, any missing new theme files can simply be copied over from the
default theme (Professional) that ships with Geeklog.
Admin templates
Geeklog 1.4.0 comes with revamped Admin sections which required a lot of
theme changes. We therefore suggest that you simply replace the entire
admin directory of your theme with the admin directory
from Geeklog's default theme (Professional) as it ships with Geeklog 1.4.0
and apply any modfications you may have made to your Admin templates again
afterwards.
Note: The new icons for "Command and Control"
(moderation.php) in the Professional theme use a white background.
For themes with a dark (or other non-white) background, you can download these
icons as PNGs with alpha transparency (note that Internet Explorer can not
display images with alpha transparency unless you include a JavaScript "hack" into your theme, so you
may want to convert those icons to normal transparency or simply set the
background to that of your theme).
Advanced editor
To use the included advanced editor (FCKeditor) you will need the following
new template files:
- comment/commentform_advanced.thtml (for comments)
- submit/submitstory_advanced.thtml (for story submissions)
- admin/story/storyeditor_advanced.thtml (Admin's story editor)
- staticpages/templates/admin/editor_advanced.thtml (for the Static
Pages editor, located in /path/to/geeklog/plugins)
- advanced_editor_header.thtml (included by all of the above)
You also have to add {advanced_editor}
to the <head>
section of your theme's header.thtml file.
Other changes
- The comment templates commentbar.thtml and thread.thtml
have changed due to changes in the comment handling.
- New directories trackback and admin/trackback containing
several new template files have been added for the trackback support.
- New variables
{send_trackback_link}
,
{send_trackback_url}
, and
{lang_send_trackback_text}
are available in the story and
article template files. They provide a complete link as well as the URL and
link text allowing you to send a trackback comment for the current
story.
- The links and admin/link directories have been
removed. Links are now a plugin and the plugin's templates can be found in
/path/to/geeklog/plugins/links/templates.
- The pollbooth and admin/poll directories have been
removed. Polls are now a plugin and the plugin's templates can be found in
/path/to/geeklog/plugins/polls/templates.
- The preferences/profile.thtml template now has additional fields
for the password change (old password, confirmation field for the new
password).
- The search form, search/searchform.thtml has a new option for the
number of search results per page, while the hard-coded option to search
for links has been removed (since Links are in plugin now, it will show up
as part of the
{plugin_types}
option).
- An additional variable,
{services}
, has to be added to the
loginform.thtml template file if you plan to allow users to log in
to your site using remote authentication.
- If you plan to enable Trackbacks on your site, you may want to add links to
a story's trackbacks section to your story template files, e.g.
{start_trackbacks_anchortag}{trackbacks_with_count}{end_trackbacks_anchortag}
. See the Professional theme's story template files for
examples.
- For the site statistics, the file stats/sitestatistics.thtml has
changed (entries for the links and poll have been removed and a new entry
for the number of active users has been added). There is also a new file,
stats/singlesummary.thtml, that is used for plugin entries.
- The navbar directory is now part of a Geeklog theme (previously
used by some plugins, e.g. the Forum plugin). It contains two files,
menuitem.thtml and navbar.thtml, as well as two images,
button.gif and button_over.gif.
There are no mandatory theme changes in Geeklog 1.3.11, so themes made for Geeklog 1.3.10 will work just fine without any modifications.
A few minor additions / new options have been introduced:
- A new variable,
{camera_icon}
, can now be used in the story
and comment template files to display the small camera icon (the same as in
the Who's Online block) to link to the author's user profile (only if they
uploaded a userphoto).
- The
{layout_url}
variable is now available in the templates
for the story, link, and event submission forms.
- Also in the submission forms, a variable
{separator}
is now
available in addition to the misspelled {seperator}
variable.
- A new variable,
{calendar_mode}
, can be used in the
calendar/events.thtml template file to ensure that the "add event"
link will take the user to the proper event submission form for either the
site calendar or the personal calendar.
General note: To upgrade your custom theme for use with Geeklog 1.3.10, you can simply copy over any new template files from the Geeklog default theme.
The biggest change in Geeklog 1.3.10 is that we now ship it with only one
default theme (the Professional theme, kindly provided by Victor B. Gonzalez)
and that the previously included themes are now available as a separate
download.
Admin templates
Most themes don't change the template files in the theme's admin
directory, so you can often save yourself a bit of work by simply replacing
the entire admin directory with the one from the Geeklog 1.3.10
distribution.
- The story editor, admin/article/articleeditor.thtml includes new
options for the story archiving and for editable story IDs. It is
recommended to make a copy of this file and re-apply any changes you may
have made to your copy again afterwards!
- The list of polls, admin/poll/polllist.thtml now supports
paging, i.e. uses the {google_paging} variable.
- The list of events uses paging and a row number now (files affected:
admin/event/eventlist.thtml and
admin/event/listitem.thtml).
- The plugin editor, admin/plugins/editor.thml, now displays 2
version numbers for the plugin: The installed version and the (possibly
differing) version of the actual code. In the latter case, it will also
display an update button.
The list of plugins, admin/plugins/pluginlist.thtml and
admin/plugins/listitem.thtml, also displays the 2 version numbers
and now supports paging when more than 25 plugins are installed.
- The topic editor, admin/topic/topiceditor.thtml, contained a
hard-coded "10" for the default number of stories per pages. The new
variable {default_limit} provides the actual default value now.
- admin/mail/mailform.thtml has been changed to look slightly less
ugly ...
Other templates
- Added two new templates for the new story archive feature. This allows you
to theme olderstories differently. By default Geeklog 1.3.10 ships with
these template files not themed and the same as a standard story. The new
template files are
- archivestorytext.thtml
- archivestorybodytext.thtml
- Due to various changes in the comment engine, it is recommended that you
copy over all the comment template files from the comment directory
(comment/reportcomment.thtml is actually a new file).
- In calendar/dayview/dayview.thtml, i.e. in the calendar's day
view, the hard-coded am/pm times have been replaced by variables of the
form {xx_hour} (where 'xx' is 0-23).
- In the event details template, i.e. in calendar/eventdetails.thtml,
the event type and an edit icon were added (this change was only made in
Geeklog 1.3.10rc3).
- A "location" field was added in the user's profile: Added {lang_location}
and {user_location} in users/profile.thtml and {lang_location},
{lang_location_text}, and {location_value} in
preferences/profile.thtml.
Optional changes
The following is a list of optional changes (mostly new variables that are
now available). This information is mostly of interest for those who want to
develop their own themes.
- {article_url}, i.e. the full URL to an article, is now also available in
article/printable.thtml.
- In links/linkdetails.thtml the new variable {link_actual_url} now
contains the actual link URL (instead of a link to Geeklog's
portal.php).
- The following variables are now available in calendar/eventdetails.thtml:
{event_state_name} (full name of the state), {event_state_only} and
{event_state_name_only} (abbreviated and full state name without the comma),
{event_edit} (link to edit the event, if allowed for the current user),
{edit_icon} (same, but with the edit icon instead of a text link),
{lang_event_type} and {event_type} for the event type
- The topic image is now available through the {topic_image} variable in
topicoption.thtml and topicoption_off.thtml
- Several class names have been introduced so that the various lists that
Geeklog uses can now be styled individually: list-feed, list-new-comments,
list-new-links, list-new-plugins, list-older-stories, list-personal-events,
list-site-events, list-story-options, list-whats-related (the names should
be self-explanatory).
Use {list_class_name} to get the actual class name, and {list_class} to get
class="classname".
- Several class names have been introduced so that the 2 small calendars
in the calendar's month view can be styled: .smallcal, .smallcal-headline,
.smallcal-week-even, .smallcal-week-odd, .smallcal-week-empty,
.smallcal-day-even, .smallcal-day-odd, and .smallcal-day-empty
- In header.thtml, you can now use the new variable
{allowed_menu_elements}
as an alternative to using
{menu_elements}
. The new variable takes the
$_CONF['XXXloginrequired']
settings into account, i.e.
it will only list those entries that the current user has access to.
- The admin/syndication directory, containing
feededitor.thtml, listfeeds.thtml,
listitem.thtml, and selecttype.thtml has been added.
- Template files comment/comment.thtml and
comment/thread.thtml have been added and
comment/startcomment.thtml has been changed to implement
template-driven comments.
Please note that comment/comment.thtml was changed again
in Geeklog 1.3.9rc2.
- A
{link_edit}
variable has been added to
links/linkdetails.thtml so that admins can edit links directly
from the links section.
- An "edit" icon has been added: images/edit.gif. The new variable
{edit_icon}
can be used as an alternative to
{edit_link}
in the story template files and in
links/linkdetails.thtml.
- In the calendar/calendar.thtml file, the "mode" parameter has been
added to the << and >> buttons, so that users stay in their
personal calendar when browsing through months.
- A new file, admin/group/groupmembers.thtml, has been added and
admin/group/listitem.thtml has been changed for the new
alternative option to add users to groups.
- A new file, admin/block/listside.thtml, has been added and
admin/block/listitem.thtml and admin/block/listblocks.thtml
have been changed for the enhanced block list.
- A
{google_paging}
variable has been added to
admin/link/linklist.thtml. Also added a column number to
linklist.thtml and admin/link/listitem.thtml.
- All template files where the user can enter a URL are now using a new
variable,
{max_url_length}
, instead of a hard-coded number of
characters for the max. length of the URL. Files affected:
admin/block/blockeditor.thtml,
admin/event/eventeditor.thtml,
admin/link/linkeditor.thtml,
admin/topic/topiceditor.thtml,
submit/submitevent.thtml, submit/submitlink.thtml.
- The hard-coded
has been removed from the
{welcome_msg}
variable. The blank was then added to the
header.thtml of the Classic, XSilver, and Yahoo themes (the other
themes either look fine without it or didn't use {welcome_msg}
in the first place).
- An extra
table
has been removed from the
users/profile.thtml file of the XSilver theme so that the
username now lines up properly with the other entries.
Theme changes in Geeklog 1.3.8 were mostly aimed at moving as much of the
hard-coded HTML into template files as possible. Other changes were made to
give theme authors better control over the layout and a small portion of changes
were done to incorporate new Geeklog features.
New template files
This is a list of the new files. You can safely copy these over from one of
the standard themes that ship with Geeklog (most of these files contain HTML
that was previously hard-coded into Geeklog).
adminoption_off.thtml
loginform.thtml
topicoption.thtml
topicoption_off.thtml
useroption_off.thtml
admin/database/listbackups.thtml
admin/database/listitem.thtml
admin/user/edituser.thtml
admin/user/plainlist.thtml
comment/commentbar.thtml
comment/startcomment.thtml
pollbooth/pollanswer.thtml
pollbooth/pollblock.thtml
pollbooth/pollcomments.thtml
pollbooth/pollresult.thtml
pollbooth/pollvotes_bar.thtml
pollbooth/pollvotes_num.thtml
preferences/commentblock.thtml
preferences/deleteaccount.thtml
preferences/digestblock.thtml
preferences/displayblock.thtml
preferences/displayprefs.thtml
preferences/language.thtml
preferences/privacyblock.thtml
preferences/profile.thtml
preferences/theme.thtml
preferences/username.thtml
preferences/userphoto.thtml
search/resultauthdatehits.thtml
search/resultrowenhanced.thtml
search/resultsummary.thtml
search/resulttitle.thtml
users/newpassword.thtml
Note: preferences and admin/database are new directores.
Changed / updated template files
These files have changed since Geeklog 1.3.7, i.e. they may contain new
variables, table columns, etc. If you haven't changed these files in your
existing theme, it is probably best to simply copy them over from one of the
themes that ship with Geeklog (with the exception of style.css and
header.thtml, see below).
style.css (see below)
header.thtml (see below)
admin/block/blockeditor.thtml
admin/block/listblocks.thtml
admin/block/listitem.thtml
admin/event/eventeditor.thtml
admin/event/eventlist.thtml
admin/event/listitem.thtml
admin/group/grouplist.thtml
admin/group/listitem.thtml
admin/story/liststories.thtml
admin/topic/listitem.thtml
admin/topic/topiceditor.thtml
admin/topic/topiclist.thtml
calendar/editpersonalevent.thtml
calendar/eventdetails.thtml
search/searchform.thtml
search/searchresults.thtml
submit/submitevent.thtml
users/getpasswordform.thtml
In style.css, four classes have been added that are used in the
new search code of Geeklog 1.3.8. Instead of copying over the entire file, you
will probably only want to copy over the code for those four classes:
searchAuth, searchDate, searchHits,
highlight.
If the header.thtml of your theme is using the
{menu_elements} variable, then you do not need to make any
changes to it. If it is not using that variable, then you will need to make one
change to it. In that case, search your header.thtml for the link
to the story submission form, i.e. something like
<a href="{site_url}/submit.php?type=story">
and change it to read
<a href="{site_url}/submit.php?type=story{current_topic}">
Removed template files
If you have a file named commentheader.thtml in your theme
directory, you can safely remove it. It isn't used at all.
Please note that all the following changes are optional. Themes
made for Geeklog 1.3.6 will work just fine with Geeklog 1.3.7 - no changes
are necessary.
New features and improvements
- Theme-based topic icons are now supported by setting $_THEME_URL
in the theme's functions.php file. The variable should point to
a directory that has the same hierarchy as Geeklog's images directory
(note that the path to topic images is stored relative to Geeklog's
public_html directory).
Example:
$_THEME_URL = $_CONF['layout_url'];
- The
$_BLOCK_TEMPLATE
"hack" can now be applied to the
What's Related and Story Options blocks, as well. Use
whats_related_block and story_options_block as the block
names.
- The What's Related and Story Options blocks are now available as
separate variables using {whats_related} and
{story_options}, respectively
(the {whats_related_story_options} variable for both blocks is
still available).
- Several new variables can now be used in the story templates, e.g.
{contributedby_fullname} for the full name of a story author and
{contributedby_photo} for his/her user photo.
- When the new config variable $_CONF['showfirstasfeatured'] is set
to 1, then the first story on every page is rendered using the
template files for featured stories, even when the story is not marked as
featured.
Other changes
- The template file admin/plugins/installform.thtml has been
removed since it isn't used any more.
- Two new optional template files,
admin/plugins/newpluginlist.thtml and
admin/plugins/newlistitem.thml, have been added to support
formatting of the list of plugins which haven't been installed yet. If
these files do not exist, hard-coded HTML is used to present the list.
- The template file admin/link/listitem.thtml has been changed
so that all the links are clickable.
COM_pollResults()
doesn't use the side block templates any
more when called from pollbooth.php. Therefore, you can now use
different layouts whether the poll results are displayed in a side block
or on the separate poll results and comments page.
- Removed the Normal / Archive / Refreshing drop down menus from the admin
story and poll editors of the themes that ship with Geeklog. The setting
of this dropdown isn't used in Geeklog anyway and has just confused users
in the past ... (files admin/article/articleeditor.thtml and
admin/poll/polleditor.thtml)
There have been a lot of changes in the themes for 1.3.6 to get rid of the
last pieces of hard-coded english texts so as to make localisation easier.
Most of these changes have been made in the Admin editors (admin
directory) and the calendar (calendar directory). If you created
your own theme for an earlier version of Geeklog, we recommend that you copy
over these two directories from one of the themes that come with Geeklog
(choose one that is similar to your own theme or which it was originally based
on). It seems like most Geeklog themes didn't change these files anyway, so
this shouldn't be too much of a hassle ...
Other changes
- The template file admin/mail/mailform.thtml has been added.
This form for sending emails to other users of the site was previously
hard-coded into Geeklog.
If you followed the above advice and copied over the admin
directory to your theme, you got this file already.
- Two new files menuitem_last.thtml and
menuitem_none.thtml have been added to give theme authors better
control over the items in menu bars ({menu_elements} and {plg_menu_elements}
variables in header.thtml). The template file
menuitem.thtml is now used to render the first and any following
menu items - with the exception of the last menu item, which is rendered
using menuitem_last.thtml. If there are no menu elements for a
menu bar, menuitem_none.thtml is used.
- New files have been added and the existing files have been changed for
the links section (links directory). Again, we recommend to just
copy over those files from one of the themes that ship with Geeklog.
The new files are: categoryactivecol.thtml,
categorycol.thtml, categorynavigation.thtml,
categoryrow.thtml, pagenavigation.thtml
- The user profile has been extended to include a list of the last 10
stories as well as the total numbers of stories and comments posted by that
user. Have a look at the file users/profile.thtml to see the
changes or just copy that file over from one of the themes that ship with
Geeklog. You should also copy over the file users/storyrow.thtml
which describes the block for the last 1o stories.
- The Classic theme has been updated to have an "Edit" link (for
StoryAdmins) in every story now.
Files changed: storybodytext.thtml,
featuredstorybodytext.thtml
- In the Classic and Digital Monochrome themes the "contact" link now
points to the form to send an email to the admin user instead of using a
mailto:
link with the site's email address from the
configuration.
CSS changes
- The underscore '_' is not a valid character in CSS. Therefore, some class names used by the Geeklog calendar have been changed to use the dash '-' instead. You may need to change your stylesheet accordingly.
Names that changed: cal-oldday, cal-today,
cal-futureday, cal-nullday, weekview-curday,
weekview-offday
- A new class named pagenav can be used to format the paged
navigation.
Please note that this change was made after the release of Geeklog
1.3.6rc1 and affects the use of the paged navigation in
admin/user/userslist.thtml and links/links.thtml: In
1.3.6rc1, the navigation was wrapped in <p> tags in those files. As
of Geeklog 1.3.6 however, the function producing the navigation will wrap
it in a <div> automatically.
Note: Theme authors are encouraged to specify a character
set in the header.thtml of their themes like this:
<meta http-equiv="Content-Type" content="text/html; charset={charset}">
Geeklog will replace the {charset}
variable with the proper
character set based on the currently used language file. Also make sure that
you put the above line before the <title>
tag in
the <head>
section of your header.thtml file.