- Improvement to node listings.
- Patched story.module to work with new node.module!
NOTE:
- UnConeD: poll.module needs updating. Let me know if you want me to do
it as I assume you will update it unless otherwise mentioned.
- Added improved node scheduler:
+ Automatically post node at date 'xx/xx/xx, xx:xx'.
+ Automatically queue node at date 'xx/xx/xx, xx:xx'.
+ Automatically dump node at date 'xx/xx/xx, xx:xx'.
Requires a database update, see ./updates/2.00-to-x.xx.sql!
- Refactored the admin interface of node.module. It is only a start
but it should show the direction we are going.
+ The new interface is easier to extend with new functionality
and operations. New "edit xxx" links can easily be added on
our way.
+ The new interface tries to cover all content- or node-related
functions. Thus making a special admin interface for each new
node type redundant. To demonstrate this, I removed the admin
hook from page.module and forum.module. This removes quite a
bit of logic from the invidual modules which is a good sign if
you ask me.
A centralized GUI or interface covering all node-related
administration should make Drupal easier to administer.
TODO:
- All node-related nodes need updating. This should be trivial and
I'll hapilly tackle this later tonight.
- There will be bugs, and I'm still working on this but I would like
to get some feedback (from Natrak et all) on both user-friendliness
and usability of this new interface. I'm still working on it as we
speak ...
structure.module either needs work, or replacement by index.module:
see "admin > node > node settings".
It will do for now and it can always made better when we can think
of a better solution; it is the best I could think of. Now what?
index.module or structure.module? I'm currently pro index.module.
- Drastically simplified "variable.inc".
- Removed most dependecies on structure.module from all content related
modules. Thus making our modules more modular. ;)
- Fixed calculation glitch in queue.module.
- Fixed potential function name clash/conflict in rating.module, and
simplified some code on my way.
- Started removing all global variables $status and $rstatus. Global
variables are "yucky" so in near future, we will replace all global
$status variables by a call to node_status(). Originally, $status
was only introduced as a temporary hack and nothing is as permanent
as a temporary hack so I took it out when still possible.
- Changed the watchdog messages a bit.
- Modified check_mail() to allow '+' characters in mail addresses.
TODO
- Extend the regular expression to allow addresses valid in the RFC's.
Currently IP domains are banned, and so are many other extensions of RFC
822. This is not a priority since we currently support 96% of all addresses.
- Removed headline.module: it became obsolete.
- Removed backend.class: it became obsolete.
- Added export.module.
For now, you can use:
1. http://drupal/export.php?headlines.rss
2. http://drupal/export.php?headlines.rdf
- Renamed export to export.php.
For now, you can use:
1. http://drupal/export.php?headlines.rss
2. http://drupal/export.php?headlines.rdf
Renaming this file has main 3 advantages:
1. We no longer rely on .htaccess for being able to export.
2. It is more conform with the general naming conventions.
3. It removes a pseudo-hack with formatting the URI.
- Made import.module export blocks with feeds.
headline code is still in place 'till the new code has proven
to be stable. See "syndication.module" for the new code.
Changes:
+ Improved the parser and tested it against RSS 0.9, RSS 0.91,
RSS 0.92, RSS 1.0, RDF and XML feeds.
+ Improved the administration interface. It might be a bit fuzzy
at first. Maybe some native English like Julian, Michael (or any
one else with knowledge in the field) can help out by suggesting
better naming, terminology or descriptions - as well as by
writing the help section for this module? I'd have no idea how
much this would be appreciated.
+ We can *easily* recognize new tags or extensions: we parse out
"link", "title", "description" and "author" right now, but we
will have to revise which tags to support and which not. New
tags can be added in less than 10 minutes (if you are familiar
with the code). Read: we have something we can build on.
+ Within each item, tags can now appear is random order which is
or was not the case with the old headline code where we expect
<link>s prior to <description>s for example.
+ Feed updates only (ie. always) happen through cron. Neither do
we use one global cron for updating all feeds; instead, every
feed can specify his own update-interval.
+ Newly fetched headlines are "appended" to the pool of existing
headlines (read: we don't replace the whole feed), and headlines
automatically "expire" after x days or hours. (Every headline
has a timestamp.)
+ Got rid of backend.class; it is integrated in the module.
+ Switched to more generic names: "headline" became "item" and
"backend" became "feed". This should ease future non-headline
oriented syndication.
+ You can associate attributes or keyword lists with every feed.
At the moment new items will automatically inherit their feeds
attributes but in future we can use heuristics to make these
attributes "mutate" when and where we see fit. The attributes
can be maintained by hand as well.
+ We don't export any blocks yet; we will soon do as soon this
new code has been tested for a bit more. We will only export
bundles though so if you want to export by feed/source, you
will have to make a source-specific bundle.
- Polished a bit on a few other modules: nothing major.
for the different content types. These weights are used when
calculating each user's gravity. This is a required step before
we can even think of "nodifying" the diary or headline module.
- Polished a bit more on the other modules' crons.
When $field was 0 it would return true, causing SQL errors. Seems to
convert the string its being matched with to a numeric, normally 0. Forced
$field to be treated as a string by enclosing it in quotes.