Basically this is a 'nice version' of a hack that you could do as a theme author.
I've updated all the standard themes, but 3rd party themes will of course have to be updated by their authors, in the following manner:
- Replace the box() declaration:
< function box($subject, $content) {
> function box($subject, $content, $region = "main") {
- Replace the theme_account call:
< theme_account($this);
> theme_account("region", $this);
Note that you'll have to replace "region" with the correct region that the box is placed in. However if you have a one-column theme, you should use "all", and not for example "left" (if all boxes are on the left).
Usually the "region" here should be the same as the nearest theme_blocks() call.
Those theme authors who want to can make boxes that appear in the center look different from those that appear in the sides for example.
- Fixed tiny quote problem in account.php.
- Fixed tiny bug in comment.inc.
- Fixed tiny bug in comment.module.
- Fixed tiny bug in meta.module.
- Simplified user_access() API.
- Rewrote link system: still needs fine-tuning and testing so don't
upgrade if you are running a production site. ;)
Updated all modules and themes to reflect this change. All other
themes and modules need updating too!
'=' instead of ';' and ':'. It is considered to be more readable.
--> A _first_ step towards and improved index.module. Stay tuned
for more.
+ Important:
If you update from CVS - apply the queries in 2.00-to-x.xx.sql!
- Changed all 'attribute' to 'attributes'.
+ Important:
If you update from CVS - apply the queries in 2.00-to-x.xx.sql!
+ Important:
This might require to ieni-wieni small update to your custom
themes and/or node-related modules:
- themes: node_index($node->attribute) -> node_index($node)
- node modules: attribute -> attributes
- fixed the trailing | in some cases.
- removed theme_morelinks().
- added node_links().
- simplified BaseTheme->links().
- updated themes.
Notes
- the new links system is taking form, but concider it beta. There might still
be some major changes ahead so I suggest waiting a little longer before
modifying your theme to take advantage of it.
update, you'll break your site as you need switching from structure
to index.module: so this can be considered an intermediate commit.
If you upgrade, and you are welcome to, just create a collection
called "section" (for now) and assign your nodes some attributes
in the described format.
Feedback and bugreports are welcomed. Questions will be answered.
CHANGES:
- comment system:
+ when replying to a node (rather then to a comment), that
node is displayed above the reply form.
+ when replying to a comment (rather then to a node), that
comment is displayd above the reply form.
- removed structure.inc, removed structure.module.
- node.inc:
+ added 2 new node functions called 'node_attribute_edit()' and
'node_attribute_save()' used to 'hook in' any indexing system
including your home-brewed stuff if you'd want to. Currently,
index.module is the facto default index system.
See story.module for usage.
- book.module, story.module, poll.module, page.module, forum.module:
+ added preview functionality to administration section (via node
module).
+ removed all references to structure.inc (category, topic).
- moderate.module:
+ removed all references to structure.inc (category, topic).
- book.module, story.module, page.module, forum.module:
+ increased the sizes of some textareas.
- submit.php:
+ removed all references to structure.inc (category, topic).
- marvin.theme:
+ removed dead code: function story() was depricated.
- unconed.theme:
+ removed hardcoded references to drop.org.
- marvin.theme, unconed.theme, jeroen.theme, yaroon.theme, example.theme:
+ removed all references to structure.inc (category, topic).
TODO:
- file.module, trip_link.module:
+ update preview functionality:
see story.module for example.
+ remove references to 'cid' and 'tid', use 'attribute' instead:
see story.module for example.
- extend and build upon index.module as well as making it configurable
- created a BaseTheme class in theme.inc.
- added links($links = array(), $status = 0, $node = 0) to BaseTheme.
- modified all themes to extend from BaseTheme.
- modiefied theme_link() to take advantage of $theme->links().
- theme_morelink() does not require a $theme argument.
Todo
- add the other standard variables and functions to BaseTheme.
- some themes could use some more modifications.
Weird
- marvin.theme still has a story() function.
They both return a linked string with the respective category,
or topic name. Updated all themes to use these new functions.
- (stripped tabs from emsa files, nevermind)
- all these themes are getting a pain to maintain but I guess nothing we can do about it. Hopefully the theme API is about to stabalize soon. In future, we should certainly keep the number of "supported" below 10 so as so we have, say, 11 themes I suggest to kick out the one that is less interesting. It will then become an "unsupported theme" available through drop.org/drupal but maybe not in prime condition. It think we'll have our hands full with 10 themes already. It is really the max IMHO. Comments/suggestions/noding heads?
I updated my jeroen.theme. Its navigation box on the right is nicer now :), also, in that navigation box, I changed help into handbook. It looked more appropriate.
Jeroen.
- fixed update bug in book.module
- provide a log message when both adding and updating book pages
- all configurable variables are now accessed through "variable_get()":
- rewrote watchdog and submission throttle and removed watchdog.inc
- improved robustness of sections.inc
- imporved story.module
- updated ./database/database.sql
- removed ban.inc and ban.module and integrated it in account.module
under the name "access control" --> the ban code was not really up
to standard so this has now been dealt with. This refactoring and
reintegration cuts down the code size with 100 lines too. :-)
(The ban.module code was really old and it showed.)
- added node.module and made the other modules reuse some of this
code --> cut down the code size of modules by at least 100 lines
and adds stability.
- added a status() function to admin.php to display a conform status
message where appropriate. See admin.php for usage.
- removed $theme->control() and made comments.inc handle this itself
wrapped in a $theme->box(). No need to clutter the themes with
such complexity --> updated all themes already. :-)
- some small visual changes to some administration pages to be more
consistent across different modules.
(reported by UnConeD)
- added "add node" link to book selection box and made it display the
current location
- removed tabs and whitespaces from themes - done automatically
I changed cellpadding="0" to cellpadding is="1" in the box function. I saw on http://drop.org/ that the box subjects sticked to the border. This shoud fix it.
Jeroen.
Fixed jeroen.theme.
1. comment() function only gets 2 arguments. And as I made example.theme from jeroen.theme I don't see how thread got in there.
2. That must have sneaked in while I stripped down my theme to get to example.theme.
3. Fixed, it was already done in my top-right navigation box, but I must've forgotten it at the bottom.
4. OK, no more variable timestamp but straigt in the code. :)
Jeroen.
OK, this is perfectionism. I had http://jeroen.drop.org/ validated once again, and noticed an error with a </P>, it said that the paragraph wasn't opened. But it occured near a story as we do <P> check_output(story->abstract) </P> I was pretty certain the paragraph was open. :) OK, so it wasn't the theme's fault, neither was it the engine. Then I went to take a look at the actual story and what did I see. It used a BLOCKQUOTE. After deleting the BLOCKQUOTE, messing around with the HTML, trying to insert it again. It always gave me the error when it was inserted... What's my conclusion? BLOCKQUOTE isn't allowed inside a paragraph...
Solution? We could take the option to use the blockquote HTML tag in a story or comment out of drupal. But I really like blockquote. So I now changed <P> check_output(story->abstract) </P> to <BR> check_output(story->abstract) </BR> because, basicly, that does the same thing. I'd advise you to do so too, I might do it for you if you please. Not that I really care about it, but lately we've got some queer w3-lovers on our back. Let's shake them off, allright? ;)
Jeroen.
If we're lucky this tiny jeroen.theme update might just save us from 5 HTML 4.01 bugs.
If we're very lucky it'll solve 7.
If we're unlucky only the code has improved.
Jeroen.
Jeroen.
P.S.: I don't think I'll get unconed.theme and marvin.theme updated today. But I promise I'll do it tomorrow. Had to go eat with my family, just got back and in 2 hours I am leavin for the movies. Hope you don't mind, but it's always cooler to commit patches closer to the release date... gives you this "rush" feeling. Ahh, deliberately doing stuff on the nick of time... sweet :)
abstract() + article() = story()
abstract() and article() have been merged into a new function story()
which looks like:
function story($story_object, $reply) {
if (!reply) {
// full story
}
else {
// main page version / abstract
}
}
This should allow you to "compress" your theme as abstract() and
article() tended to be 98% identical.
=> I didn't really merge your themes so I leave it up to *you* to
improved the code!!! Do it ASAP as we release drupal 2.00 in 7
days.
In future we'll have similar functions for other content types as
for example:
review($review, $reply);
enquete($enquete, $reply);
...
I updated some things, remove some PHP lines in the comment function, that I think weren't necessary (did that in the previous commit but forgot to mention it) also I renamed all the PHP?> tags to ?>. I read in the docs at http://php.net that this is the way to go. Also I renamed all <? to <?PHP. I added a BCGOLOR again, so my theme's build up is a little nicer again. Spotted four (yes 4) bugs. I now use regular HTML to assign colors but in abstract and article, the sections were still done the old way. Fixed that now, but left them black. Oh yeah, I fixed that weird rendering of my theme I think Dries was talking about. He didn't exactly mention what was wrong but I assume that it were the links in abstract and article that didn't display at the right of the story. Because I deleted some tables I had to add COLSPAN="2". However, when I loaded my page locally on eden it displayed correct. But when I browsed to drop it didn't (in the same browser) Do you get it? I sure don't. It was the same HTML code, but seems differently parsed when coming from an outside server. Allthough I don't see why Netscape would see apache locally as something different than another one. Nevertheless, I think it's fixed.
Jeroen.
I tweaked my theme a bit, don't know if it'll help much but I was able to squeeze a table out of abstract and article. So what you'd say? Well, since the abstract function is called for every post on the main page, I thought that it'd improve it a bit. Of course it isn't much but less tables to show the same is always a good thing. Also, due of the deleted table, I could delete some backgrounds (less traffic from the server to the client) and placed them once in a TABLE header. OK, but a cool side-effect is that it's more HTML 4.01 compliant. Because BACKGROUNDs are allowed in TABLEs and I think it's a bit unclear if they can be in TD yes or no. Either way, this brought to my attention that my !DOCTYPE is strict... I started of strict though... But I think it's a better idea to switch to transitional/loose. OK I think that was it... Oh also because of the changed TABLE structure I had to delete some BGCOLORs. Again, it might be a teeny weeny bit faster, but when you see my site being build up it isn't that nice anymore. (bgcolors are displayed faster than backgrounds). Nevertheless its the result that counts not? Let's hope everything still works.
Jeroen.
$theme->comment() only takes 2 parameters ever since the comment
system rewrite 2 months ago. Make sure to update your local tree
before you start hacking away on your themes.
- added a couple of missing t() functions
- improved the comments module, fixed the score problem Jeroen
reported earlier -> it's slicker but I hope it won't break anything
Jeroen.
P.S.: Dries, I think we can release it tomorrow, but wait and upload it to http://jeroen.drop.org first so I can check. And at noon we'll let it out. It's yearning to, I can here it growl and make roaring noises in my laptop...
OK, now it's finished, really. Fixed a small gfx glitch, and the categories seem to be called sections now...
It's done, and ready for release. Really.
Jeroen.
I placed all the blocks left, regardless if their region was left or right, what I did was this:
theme_blocks("all", $this);
in my left <TD>.
Now I changed it to
theme_block("left", $this);
in the left <TD> and
theme_blocks("right", $this);
in the right. If everything was this easy.
OK, really, this theme is NS4.7 NS4.76 mozilla (but mozilla 0.8 cuz he's buggy as hell with the BACKGROUNDS in TDs) and IE comliant or compatible, whatever it's being called.
Jeroen. -- Happy.
It's ready for public release and can be added the the drupal CVS releases. First however, make sure you check htpp://jeroen.drop.org first and let me know if you find any more bugs. I still have to change a bit one a .gif before my footer is correct but that won't be a problem.
And thanks to Dries for solving some theme-problems.
Jeroen