Parent Directory
|
Revision Log
|
Revision Graph
| Links to HEAD: | (view) (download) (as text) (annotate) |
| Sticky Tag: |
Roll-back of #595084; type-hinting parameters at stdClass makes it so you can't ever pass in another type of class.
#192056 by effulgentsia, Dave Cohen, andypost, hswong3i, geodaniel, pwolanin, and dahacouk: Ensure user's raw login name is never output directly.
- Patch #595084 by c960657: use type hinting for .
#493030 follow-up by sun: Clean-ups to RDF module.
- Patch #493030 by scor, Stefan Freudenberg, pwolanin, fago, Benjamin Melançon, kriskras, dmitrig01, sun: added RDFa support to Drupal core. Oh my, oh my.
- Patch #572618 by effulgentsia, pwolanin, sun: all theme functions should take a single argument. Code clean-up and performance improvement. Woot.
- Patch #560746 by dropcube: rename hook_block_list() to hook_block_info() for consistency in the API.
#497118 by chx, catch, pwolanin, JoshuaRogers, and Jacob Singh: Remove the function registry. While the hope was that this would result in improved performance for low-end hosts, it comes at the expense of critical development experience problems and less benefit than something like APC. Class registry remains intact to facilitate autoloading.
Of all the patches to accidentally commit without a message. :( Rolling back registry rip. Let's try that again.
*** empty log message ***
#326539 by JohnAlbin, sun, cha0s, ultimateboy, Rob Loach, Damien Tournoud: Convert 'class' attribute to use an array, not a string.
- Patch #537862 by Crell, Amitaibu, salvis: simplify and make more flexible the node access by converting hook_access() to hook_node_access().
- Patch #491972 by Berdir, webchick: clean-up of user/profile related hooks and APIs.
- Patch #521474 by bangpound, JuliaKM et al: rename admin/site-building to admin/structure.
- Patch #506976 by catch: rename hook_perm to hook_permission.
#373201 by moshe weitzman, chx, Frando, eaton: Allow renderable array properties to be passed directly to theme functions.
- Patch #233200 by eigentor, catch, bohjan, yoroy et al: better content type descriptions.
- Patch #409750 by yched et al: overhaul and extend node build modes.
- Patch #372743 by bjaspan, yched, KarenS, catch et al: node body and teasers as fields. Oh, my.
#220233 by Berdir, marcingy, et al: Add useful API functions for extracting node type data.
- Patch #472642 by stella, agentrickard: remove 'implementation of' nominalizations from Docblocks.
- Patch #393402 by stella, Xane: renamed 'create content' link to 'add new content'. Minor usability improvement.
- Patch #449718 by alienbrain: node_feed() is now using new node building API.
- Patch #302234 by Berdir: converted blog module to the new database abstraction layer.
#383066 by David Strauss: Rename hook_nodeapi_X to hook_node_X.
#276174 by nbz, John Morahan, slightly modified: do not escape username more then once at multiple places in blog.module
- Patch #350984 by Moshe: kick comment rendering out of node module.
- Patch #345866 by alexanderpas, justinrandell, Dave Reid: remove from hook_block().
- Patch #339929 by Moshe et al: move node links into ->content.
- Patch #319356 by recidive: clean up hook_nodeapi_ fucntion signatures and documentation because of previous node API clean-ups.
- Patch #233407 by R.Muilwijk, catch, flobruit, et al: remove hardcoded references to blog module.
#206138 by pwolanin: Rename mis-named 'module' attribute in node types.
- Patch #310212 by justinrandell, catch, et all: killed in _user hook, as well as two small kittens.
- Patch #237189 by catch, sepeck, birdmanx35: improved blog module description.
- Patch #252013 by Eaton, pwolanin, Susurrus et al: drupal_render() now printes #markup, not #value.
#159538 by Wesley Tanaka. 404 instead of showing recent blog posts for invalid paths.
- Patch #276174 by nbz: avoid calling check_plain() twice.
- Patch #259496 by ksenzee and Desbeers: fixed a permission bug discovered by the tests. Yay.
#217957 by yched, quicksketch: header cell removal is broken when headers use colspans (and a little bit of performance improvement)
- Patch #257644 by Senpai: code cleanup.
- Patch #221964 by chx, dopry, webernet, moshe, webchick, justinrandall, flobruit et al. Can you say 'registry'? Drupal now maintains an internal registry of all functions or classes in the system, allowing it to lazy-load code files as needed (reducing the amount of code that must be parsed on each request). The list of included files is cached per menu callback for subsequent loading by the menu router. This way, a given page request will have all the code it needs but little else, minimizing time spent parsing unneeded code.
- Patch #227830 by JohnAlbin: link attributes added to l() incorrectly.
#153998 follow up by salvis: we should return NULL if access cannot be granted based on permissions so the node level permission system can take it forward
- Patch #249546 by pwolanin: rip menu access inheritance -- was already committed to D6.
- Patch #245115 by kkaefer, John Morahan, JohnAlbin et al: after a long discussion we've decided to make the concatenation operator consistent with the other operators.
- Patch #216072 by recidive, David Rothstein, ptalindstrom et al: switched from numeric block IDs to string IDs.
The short explanation is that Drupal uses a lot of numeric deltas in the block system; blocks are identified by the 'module' and the 'delta'. In early Drupal, delta was numeric, but somewhere along the line it was changed to be possibly a string. In modern Drupal, block overrides are easily done via block-MODULE-DELTA.tpl.php. The primary motivation to switch to string IDs everywhere is to make these deltas friendlier to themers:
block-user-0.tpl.php --> block-user-navigation.tpl.php
block-user-1.tpl.php --> block-user-login.tpl.php
You get the picture.
Drupal 6.2
- Patch #30984 by webchick, keith.smith, kkaefer, Crell et al: provide descriptions for permissions on the permission administration page.
- Patch #210131 by dvessel, catch, John, et al: updated jQuery library.
#153998 by David_Rothstein and myself: clean up permissions in book, blog, blogapi, forum and locale modules
- Patch #204221 by webernet: code style fixes.
#202425 by keith.smith: standardize reference to block placement page as 'blocks administration page' to avoid any confusion
#200069 by keith.smith: new standard for 'more information' links in module help texts, as the handbook we referred to before was renamed
#197297 by DanW (as GHOP 17), and keith.smith: clean up lots of help texts, update to drag and drop functionality, drupal.module removal, etc
#43447 by Kobus, add1sun and keith.smith: improve blog module help text, also removing ages old reference to import module
#185893 by Rob Loach: only provide blog page for users having permission to blog
- Patch #89196 by catch, keith, earnie, webchick et al: string massaging.
#177497 by chx and Desbeers: revive Drupal 5's menu_set_location() functionality by introducing menu_set_item() (for consistency in function naming), thus fixing a regression in the current development code. Also fixing some misuse of menu_set_location() by using drupal_set_breadcrumb() instead.
#179519 by chx, webchick and Desbeers: fix blog/[uid] to only display posts for that user and also set proper title
#147492 by flobruit: make 'more' links themeable
#72487 by chx, pwolanin and moshe weitzman: let node_access() work on arbitrary users, so independent user access checks can be done in a request
- Patch #163191 by hswong3i: removed db_num_rows() for compatibility with Oracle and DB2. Also a performance improvement.
- Patch #159634 by Crell: split the blog module.
- Patch #20295 by pyromanfo, webchick, Gurpartap Singh et al: allow forum topics to be custom node types.
#154064 by pwolanin: get hook_help() up to speed to menu changes, allowing router path based lookups, and also full path argument lookup with a passed argument array
#144397: Use drupal_render for user profiles and convert to themer-friendly .tpl.php files.
- Patch #128082 by Goba et al: Allow localization of built-in menu items.
- Patch #128600 by scott.mclewin and spatz4000: ambigious field use in SQL query.
- Patch #128600 by scott.mclewin and spatz4000: ambigious field use in SQL query.
- Patch #107061 by Steven et al: add jQuery teaser splitter.
#130971: Kitchen sink (E_NOTICE compliance / Code style / Bugfix in book toc)
- Patch #117953 by Matt Westgate: make blog module hook_profile_alter friendly.
- Patch #117953 by Matt Westgate: make blog module hook_profile_alter friendly.
- Patch #111347 by Steven: refactor url() and l().
- Patch #113603 by chx: first crack at re-implementing tabs.
- Patch #112715 by chx, webchick, asimmonds, et al: fixing E_ALL notices. Thanks.
- Patch #34755 by chx et al: faster menu system. HEAD is temporary broken and there is no upgrade path yet.
- Patch #102413 by yched: path node/add/[poll|forum|blog] defined twice.
- Patch #99287 by webchick: missed some title capitalizations.
- Patch #92992 by webchick and neclimdul: clean up documentation that is superseded by the new 'by module' administration dashboard.
- Patch #98359 by webchick and webernet: standardize on terminology: 'website' and 'web page'.
- Patch #59832 by markus and chx: simplified SQL query.
#84146: Use 'Sentence capitalization' for menu items, page titles, form items, etc
- Patch #80952 by earl, webchick, neclimdul et al: .info files
- Patch #80934 by timnc: more t() fixes.
#70097 by magico. Fix the ordering of blog pages.
Fixing Drupal.
- Patch #66569 by m3avrck: Consolidate the drupal_add_link() calls.
#66569 by m3avrck. Put all the feed icons in the same place.
- Patch #79476 by assimonds and webchick: fixed broken t()-iness. CVS: ----------------------------------------------------------------------
blog: Remove unnecessary emphasis due to #76802
#76802: Introduce placeholder magic into t() See: http://drupal.org/node/64279#t-placeholders
- Patch #74326 by Eaton, Royboy, chx, et al: building $node->body with arrays like FAPI for viewing. Once again, we're paving the path for CCK in core ... :)
- Patch #77422 by timcn: corrected various paths in the documentation.
#62340 by chx, webchick, Jaza, Eaton, mathieu, and myself. Configurable node types.
- Patch #72079 by Earl et al: give Drupal an overall administration page ... :-)
#75594 by eafarris, remove of gender-specific pronouns
#73605 by RobRoy, make hook_link() implementations consistent with documentation.
#71925 by Steven, remove # prefix from link array keys.
- Patch #18260 by Ber, m3averck et al: allow overriding of links returned by modules
- Patch #63492 by zirafa: removed redundant semicolon.
#63492, double semicolon in blog.module, patch by zirafa
#61802 by Zen, Double spaced sentences clean up
#44473 by Frodo: fixed broken links in help text. backport from HEAD
- Patch #44473 by Frodo: fixed broken links in help text.
#56105, remove title validation, already enforced by #required, patch by Moshe
- Patch #49912: www.drupal.org -> drupal.org. (Today's critical bugfix #5.)
- Patch #40200 by Ax, Drewish, Zen et al: user_view() isn't merging view items correctly + CSS cleanup + form handling cleanup.
- Patch #45530 by Morbus: filter_form shouldn't default to #weight 0
When a form element doesn't specify a #weight, it is assumed internally as #weight 0. However, to ensure that our form elements display visually *as they were defined in the array* we, in form_builder, count the number of elements, divide by 1000, and set that as the weight:
# Assign a decimal placeholder weight to preserve original array order
if (!isset($form[$key]['#weight'])) {
$form[$key]['#weight'] = $count/1000;
}
The above code will set the #weights of elements that have not defined a weight to something like 0 (first element in array definition), 0.001, 0.002, and so on. However, anytime a form element *explicitly* defines a #weight of 0, that #weight is kept at exactly 0, which would cause that form element to appear BEFORE the elements that didn't have a #weight defined (and thus received a #weight such as 0.002).
Consider the following pseudo example:
$form['game_title'] = array(
'#type' => 'textfield',
...
);
$form['game_description'] = array(
'#type' => 'textarea',
...
);
$form['game_format'] = filter_form(variable_get('game_format', NULL));
return $form;
Here, we're not definiing weights on our two textfields. We then add an filter_form. The second parameter of the filter_form is $weight, which defaults to 0. After this $form hits form_builder, we have weights 0 (game_title), 0.001 (game_description), and 0 (filter_form) respectively. This is then sorted by weight, which causes filter_form (the third element in the array) to appear BEFORE game_description (0 is lighter than 0.001).
The short lesson is: explicitly defining #weight 0 for a form element is probably a bad idea. This patch changes the default #weight of filter_form to NULL, instead of 0, and also removes any other explicit setting of #weight to 0 in core.
- Patch #45349 by Morbus Iff: input filters aren't sorting correctly infForms API.
- Patch #45301 by Morbus: corrected the weight of form item titles of nodes.
- #42234: Use standardized feed icon for RSS
- Patch #39778 by chx: obliterate nodeapi op form in favor of the forms API's way of doing things. Tested with help from webchick.
- Patch #35644 by webchick: fixed the sizes of the textareas on the node edit forms.
- Patch #35644 by webchick: forms API simplificiations.
#36791: node_validate was called twice
- Patch #26139 by webchick / Kieran / documentation team: improved admin help of core modules! /
- Patch #33752 by chx, adrian, et al: another batch of form API changes/fixes.
- Removing tabs and trailing whitespaces.
- Patch #29465: new form API by Adrian et al. TODO: + The contact.module was broken; a new patch for contact.module is needed. + Documentation is needed. + The most important modules need to be updated ASAP.
- Modified patch #30620 by Geary: 'personal blog entry' -> 'blog entry'. Improves consistency.
- Patch #10056: allow the node title forms to be customized.
- Patch #3986 by James (and Boris :)):consolidated all feed-related settings in one place.
* adds a "feed settings" section to admin/settings where 2 new settings are introduced:
* number of items per feed
* default length of feed descriptions (title only, teaser, full)
* patches all of core to obey the above - including the new aggregator (out) feeds
* adds support for adding namespaces in _nodeapi('rss item') - which means things like iTunes RSS and yahoo's media rss can be implemented by the appropriate modules (i.e. audio.module)
* includes some additional info in the default node feed - specifically the element (links directly to comments) - and dc:creator - to show node author information.
- Patch #31123 by Ber: make it easier to theme the user profile pages.
- Patch #7582 by Gerhard: updated the blog.module to use the new node revisions.
- Renamed _node() to _node_info()! We reserve _node for _nodeapi.
- Patch #29785 by Chx: multiple node types were broken so we refactored
part of the node system! If you have a module that implements node
types, you'll have to udpate its CVS HEAD version.
We replaced _node_name() and _node_types() by _node(). The new _node()
hook let's you define one or more node types, including their names.
The implementation of the _node() hook needs to:
return array($type1 => array('name' => $name1, 'base' => $base1),
$type2 => array('name' => $name2, 'base' => $base2));
where $type is the node type, $name is the human readable name of the type
and $base is used instead of <hook> for <hook>_load, <hook>_view, etc.
For example, the story module's node hook looks like this:
function story_node() {
return array('story' => array('name' => t('story'), 'base' => 'story'));
}
The page module's node hook module like:
function page_node() {
return array('page' => array('name' => t('page'), 'base' => 'page'));
}
However, more complex node modules like the project module and the
flexinode module can use the 'base' parameter to specify a different base.
The project module implements two node types, proejcts and issues, so it
can do:
function project_node() {
return array(
array('project_project' => array('name' => t('project'), 'base' => 'project'),
array('project_issue' => array('name' => t('issue'), 'base' => 'project_issue'));
}
In the flexinode module's case there can only one base ...
This hook will simplify the CCK, and will make it easy (or easier) to merge
the story and page module.
In addition, node_list() became node_get_types(). In addition, we created
the following functions: node_get_name($type) and node_get_base($type).
- Patch #29385 by chx: no ?> add end of files.
- Backported chx's XML-RPC library.
- Removed some whitespace
- #20668: Fix "username's blog" appearance rules.
- #20668: Fix "username's blog" appearance rules.
- #26643: Restore accidentally lost "my blog" menu item.
- #26643: Restore accidentally lost "my blog" menu item.
- Patch #25634 by chx: simplified node_load().
- Patch 7897: don't show blocks if they have no content
- Code cleanup: improve format_plural usage, add some missing placeholder/check calls, and introduce API for <link> tags.
- Code cleanup: improve format_plural usage, add some missing placeholder/check calls, and introduce API for <link> tags.
- #20910: Centralize print theme page fixes
- Patch 20910 by chx: centralize print theme page.
- Patch #20312 by mif: fixed problem with blog_link().
- Patch #20312 by mif: fixed problem with blog_link().
- Fixed bugs in RSS handling of blogs.
- Patch #16111 by chx: generalized node_rewrite_query to db_rewrite_query.
- Patch #16192 by Neil: moved the submission guidelines found in forum, story, and blog and the minimum number of words found in story and blog (blog had a slight bug) into the node module.
- Patch #16021 by tangent: changed the format "/blog/feed/52" to "/blog/52/feed".
- Patch #14731 by chx: made it possible to rewrite node queries.
- Patch #13907 by Neil: less ways to set the page title. * Less logic in theme code. * Encourages use of the menu system. * Easier to find where a title or breadcrumb comes from in other people's code because there are less places to look. Look in menu and then grep for the appropriate set function. Looking for calls to theme_page() is hard because there are too many of them. * Very slightly more efficient.
- Refactored the queue module: removed the queue module's field from the node table. With help from Gerhard.
- Slight addition to INSTALL.txt with regard to PHP versions.
- Updated/reworded some node type descriptions as per Boris' suggestions.
- Adding missing {} around a table name in update.php.
- Patch #13443 by Moshe: got rid of the semi-implemented 'page link' feature. All themes currently support primary and secondary links so page links are now deprecated. Check your contributed modules and update them accordingly.
- Patch #10990 by TDobes: adds a "create new blog entry" link at the top of each user's own blog page, similar to the "post new forum topic" link displayed at the top of forum pages. This adds consistency as well as convenience for users.
- Patch by Stefan: wrapped the help texts in <p></p> tags. Helps improve consistency.
- Patch #11875 by Neil Drumm: block module configuration improvements. The primary goal of this patch is to take the 'custom' and 'path' columns of the block overview page and make them into something understandable. As of Drupal 4.5 'custom' lacked an explanation which wasn't buried in help text and path required dealing with regular expressions. Every block now has a configuration page to control these options. This gives more space to make form controls which do not require a lengthy explanation. This page also gives modules a chance to put their block configuration options in a place that makes sense using new operations in the block hook. The only required changes to modules implementing hook_block() is to be careful about what is returned. Do not return anything if $op is not 'list' or 'view'. Once this change is made, modules will still be compatible with Drupal 4.5. Required changes to core modules are included in this path. An additional optional change to modules is to implement the additional $op options added. 'configure' should return a string containing the configuration form for the block with the appropriate $delta. 'configure save' will come with an additional $edit argument, which will contain the submitted form data for saving. These changes to core modules are also included in this patch.
- Patch #11879 by Moshe: deprecated the _content hook. TODO: + Update Doxygen hook list (if required). + Document this in the developer's upgrade section.
- Patch #10613 by Gerhard: calling a non-existent username or user ID in the blog module URL now returns a 404 error instead of an empty blog page.
Modified version of #10230: Put placement of filter format selector in a module's hands, and move it below the relevant textarea.
- Patch #11045 by Stefan: improved consistency of node modules: + made the helptext under the 'Explanation or submission guidelines', more the same (blog & story); + made the form_set_error() texts consistent when the body of a blog/story does not match or exceeds the specified minimal numer of words. + used the $options for form_select() and form_radios() inline like we do in the rest of drupal; + made the textarea sizes for the submission pages the same for all node types and also for the 'Explanation or submission guidelines';
- Revert some changes.
- Patch #10977 by Gerhard: added missing node access controls for RSS feeds.
- Patch #8179 by JonBob: reintroduced menu caching.
- Roll back of earlier patch.
- Patch #10830 by killes: bugfix: made sticky post feature work for blogs.
- Patch #10622 by Adrian: fixes various PostgreSQL related problems. 1) Menu problems with Postgres (this is a highly critical 1 line fix) 2) Archive module fails with Postgres 3) Postgres setup problems - changes to database.pgsql (although i made these changes myself before finding this patch) 4) Book module fails with Postgres 5) Postgres problems following creation of a new type of user - which is actually about a taxonomy.module bug. 6) Creating accregator_item_table in PostgreSQL 7) Postgres - Polls not displayed on Poll Page 8) Blog module has sql errors with postgres This should not affect MySQL users (hopefully).
Patch #7603 by JonBob: emit absolute URLs where possible (even though it isn't strictly necessary).
Patch #7603 by JonBob: emit absolute URLs where possible (even though it isn't strictly necessary).
- Patch by JonBob: for consistency and readability, add brief descriptions of each source file inside the @file comment block at the head of the file. This helps with Doxygen indexing, and also allows neophytes to see what a file does immediately on opening the source, regardless of the organization of the hooks.
- Patch #9983 by Stefan: various code style improvements.
The Input formats - filter patch has landed. I still need to make update instructions for modules and update the hook docs. Here's an overview of the changes: 1) Multiple Input formats: they are complete filter configurations (what filters to use, in what order and with which settings). Input formats are admin-definable, and usage of them is role-dependant. For example, you can set it up so that regular users can only use limited HTML, while admins can free HTML without any tag limitations. The input format can be chosen per content item (nodes, comments, blocks, ...) when you add/edit them. If only a single format is available, there is no choice, and nothing changes with before. The default install (and the upgrade) contains a basic set of formats which should satisfy the average user's needs. 2) Filters have toggles Because now you might want to enable a filter only on some input formats, an explicit toggle is provided by the filter system. Modules do not need to worry about it and filters that still have their own on/off switch should get rid of it. 3) Multiple filters per module This was necessary to accomodate the next change, and it's also a logical extension of the filter system. 4) Embedded PHP is now a filter Thanks to the multiple input formats, I was able to move the 'embedded PHP' feature from block.module, page.module and book.module into a simple filter which executes PHP code. This filter is part of filter.module, and by default there is an input format 'PHP', restricted to the administrator only, which contains this filter. This change means that block.module now passes custom block contents through the filter system. As well as from reducing code duplication and avoiding two type selectors for page/book nodes, you can now combine PHP code with other filters. 5) User-supplied PHP code now requires <?php ?> tags. This is required for teasers to work with PHP code. Because PHP evaluation is now just another step in the filter process, we can't do this. Also, because teasers are generated before filtering, this would result in errors when the teaser generation would cut off a piece of PHP code. Also, regular PHP syntax explicitly includes the <?php ?> tags for PHP files, so it makes sense to use the same convention for embedded PHP in Drupal. 6) Filter caching was added. Benchmarking shows that even for a simple setup (basic html filtering + legacy URL rewriting), filtercache can offer speedups. Unlike the old filtercache, this uses the normal cache table. 7) Filtertips were moved from help into a hook_filter_tips(). This was required to accomodate the fact that there are multiple filters per module, and that filter settings are format dependant. Shoehorning filter tips into _help was ugly and silly. The display of the filter tips is done through the input format selector, so filter_tips_short() no longer exists. 8) A more intelligent linebreak convertor was added, which doesn't stop working if you use block-level tags and which adds <p> tags.
- Patch #9543 by JonBob: added node-level access control!
- Patch #5347 by JonBob:
Here's a new patch that unifies the node/52 and book/view/52 paths for nodes. It involves a small change to hook_view(), which is discussed first:
Currently hook_view() expects node modules to return a themed node. However, each module does this the same way; they modify $node as necessary, then call theme('node', $node) and return the result. We can refactor this so that the calling function node_view() calls theme('node') instead. By doing this, it becomes possible for hook_nodeapi('view') to be called after hook_view() where the node contents are filtered, and before theme('node') where the body is enclosed in other HTML. This way the book module can insert its navigation into the body right before the theming.
Advantages of this refactoring:
- I can use it for book.module to remove the extra viewing path.
- The function of hook_nodeapi('view') becomes more like hook_view(), as neither will expect a return value.
- We more closely follow the flow of other nodeapi calls, which usually directly follow their corresponding specific node type hooks (instead of preceding them).
- The attachment.module people could use it to append their attachments in a list after the node.
- Gabor could use it instead of his filter perversion for his "articles in a series" module.
- A little less code in each view hook.
- The content hook is no longer needed, so that means even less code.
Disadvantages:
- Any modules written to use nodeapi('view') could be affected (but these would all be post-4.4 modules).
- Implementations of hook_view() would need to be updated (but return values would be ignored, so most would work without updates anyway).
Now the patch takes advantage of this API shift to inject its navigation at the end of all book nodes, regardless of the viewing path. In fact, since the paths become identical, I've removed the book/view handler entirely. We should probably provide an .htaccess rewrite for this (one is still needed for node/view/nn anyway). At the same time, there is a check in book_block() that shows the block appropriately on these pages.
- Patch #9478 by JonBob: allow printf-style arguments in pager_query. Currently pager_query() is the black sheep of the database query family, because it does not allow for printf-style arguments to be inserted in the query. This is a problem because it introduces developer confusion when moving from an unpaged query to a paged one, and it encourages substitution of variables directly into the query, which can bypass our check_query() security feature. This patch adds this ability to pager_query(). The change is backwards-compatible, but a couple calls to the function in core have been changed to use the new capability.
- Patch by Andy: improved help text / module description.
- Patch #8398 by TDobes: changed permissions for the blog, story, and page modules (and all occurrances elsewhere) to match their 4.4.x equivalents. In the discussion when these permissions were introduced, it was decided that "edit own ..." was clearer, but "maintain personal ..." slipped into CVS HEAD anyway, while "edit own ..." landed in the 4.4.x branch. Changes are as follows: "maintain personal blog" -> "edit own blog" (aggregator.module, blog.module, blogapi.module) "maintain personal pages" -> "edit own pages" (page.module) "maintain personal stories" -> "edit own stories (story.module)
- Renamed the blog module's block for sake of clarity. - Made the blog module's submission form mark required form fields.
- Patch by Steven and me: refactored the form handling of nodes. The node system is now using form_set_error() and friends like the rest of Drupal does. This makes for both a consistent user experience and consistent code. It simplifies the forms and validation code, however, it does change the node API slightly:
* The _validate hook and the _nodeapi('validate') hook of the node API (1) no longer take an 'error' parameter and (2) should no longer return an error array. To set an error, call form_set_error().
* The _form hook of the node module no longer takes a form hook and should not worry about displaying errors. Ditto for _nodeapi('form_post') and _nodeapi('form_pre').
- Made it possible to edit blog posts and made the blog module use tabs.
- Patch #8585 by Junyor: sort blog items by creation date. Added some database indices.
- Patch #8603 by TDobes: added support for sticky forum topics to the blog and forum module.
Tabs patch!
CHANGES
-------
+ Introduced tabs. First, we extended the menu system to support tabs. Next, a tab was added for every link that was (1) an administrative action other than the implicit 'view' (2) relevant to that particular page only. This is illustrated by the fact that all tabs are verbs and that clicking a page's tab leads you to a subpage of that page.
+ Flattened the administration menu. The tabs helped simplify the navigation menu as I could separate 'actions' from 'navigation'. In addition, I removed the 'administer > configuration'-menu, renamed 'blocks' to 'sidebars' which I hope is a bit more descriptive, and made a couple more changes. Earlier, we already renamed 'taxonomy' to 'categorization' and we move 'statistics' under 'logs'.
+ Grouped settings. All settings have been grouped under 'administer > settings'.
TODO
----
+ Update core themes: only Xtemplate default supports tabs and even those look ugly. Need help.
+ Update contributed modules. The menu() hook changed drastically. Updating your code adhere the new menu() function should be 90% of the work. Moreover, ensure that your modue's admin links are still valid and that URLs to node get updated to the new scheme ('node/view/x' -> 'node/x').
- Fixing bug #8233: User blog pages not displaying.
- Patch #7959 by walkah: the 'blog it' link used the wrong SQL tables.
- Patch 7727 by Benjamin Grant: fixed incorrect <channel> URL in blog feeds.
- Patch 7727 by Benjamin Grant: fixed incorrect <channel> URL in blog feeds.
- Code improvements by JonBob. Thanks.
- Menu and code improvements by JonBob.
- Added support for 403 handling. Patch by JonBob. As a side benefit, administrators will be able to define a custom 403 page, just as they can define 404 pages now. This needs to be documented in the "Changes since / migrating to ..." pages.
- Patch by JonBob/Jonathan: reworked the menu system so that menus are configurable! Menu items can be disabled, repositioned, added and so on. Upgrading to requires you to run update.php. This functionality depricates some of the 'navigation modules' in the contributions repository. Furthermore, modules can now 'suggest' menu items and site adminstrators can choose to enable them. Modules in the contributions repository should try to take advantage of this.
- More profile module improvements:
+ Updated the _user() hook's "$type == 'view'" case to match the
"$type == 'edit'" case. That is, both have to return an associtive
array of the format array('category' => 'fields').
+ Updated the profile pages to group fields by category. Made possible
thanks to the above change.
+ Moved logic out of the theme_ functions.
- Patch #6484 by Goba:
+ A small typo on tracker module, which prevented the help from displaying.
+ For for a HTML tag closing buglet which made Opera completely mess up
the page.
+ Translation fixes in story.module.
- Rewrote the profile module:
+ Added a 'created' field to the users table and renamed the 'timestamp'
fied to 'changed' (cfr. node table). Update.php will try to determine
a 'created' timestamp for existing users.
+ The profile module no longer uses serialized data but has its own set
of tables. Known existing profile data is migrated by these new tables.
TODO: migrate the birthday field.
+ The profile fields can be grouped, and within each group, profile fields
can be sorted using weights.
+ The profile pages can be themed.
+ The profiles can be browsed based on certain properties/settings.
+ Change the _user hook: (i) 'private_view' and 'public_view' are merged
into 'view' as there are no private fields and (ii) 'edit_form' has
been renamed to 'edit'.
+ Avatar handling has been refactored and is now part of the user module.
The users table has a dedicted 'picture' field.
+ Simplified the way themes should use display/visualize pictures or
avatars.
+ Made it possible for administrators to replace or delete avatars.
+ ...
I hope this make for a good base to build on collectively.
- Patch #4902 by Goba: fix URLs in RSS feeds.
+ Make all channel links absolute.
+ Always set the $base_url as xml:base, thus providing a solid base for
relative URLs.
- Patch by Steven: removed redundant permission checks. These are no longer required thanks to the new 404 handling.
- Patch 5592 by Goba: let drupal_map_assoc() rule. :-) - Renamed CHANGELOG to CHANGELOG.txt for Windows uses.
Typo
- Removed obsolete head hook.
- Fixed bug #5434: added missing "/" in link to be XHTML compliant. Patch by pz.
- Patch 4332 by Goba: eliminate compose tips module.
- Patch 5049 by JonBob: allow a module to define multiple node types.
Patch 5287 by Stefan: multiline help texts should become inside a single $output.
- Removed the $help parameter from the _form hook. The help, typically submission guidelines, should be emmitted using the _help hook.
Patch 5114 by Kjartan: - Adds drupal_set_header() and drupal_get_headers(). - Cache now stores custom headers. - Replace theme_head() with drupal_get_html_head(), added drupal_set_html_head(). - Added RSS autodiscover links to node, blog and taxonomy pages.
- Applied patch #4949: node_prepare() wastes resources. Patch by Goba.
Round 3 of aggregator improvements:
- Added support for new tags:
+ Optinal feed image: <image> tag.
+ Dublin core dates: <dc:date> <dcterms:created>, <dcterms:issued>,
<dcterms:modified>.
- Usability improvements:
+ On the administration page, made the feed/bundle titles link
to the feeds/bundles' pages. On the feed/bundle's page, made
the 'Last updated' field link to the administration page.
+ Moved the 'syndication' menu one level down.
- Updated some content sensitive help.
- Further improved themeability.
- Fixed some invalid HTML.
- Patch 4916: improved preparation of $node->teaser and $node->body. Patch by Goba.
- XHTML improvements: <b> -> <strong>. Patch by Stefan.
- Removed some dead code and improved the link emission. Patch by Kjartan.
- Tidied up some inconsistencies in the code: scripts/code-style.sh is your friend.
- Updated the calls to menu() to use MENU_HIDE instead of 1
- Improvements by Goba:
+ removes the lots of pagers and indirect pager themeing
+ add the theme_pager() function, which should be called as
theme("pager", ...) to get a pager.
- Removed some dead breadcrumb code identified by Tom Dobes.
- Committed phase 4 of JonBob's menu system changes.
- Patch by JonBob: Phase 2 of the menu system integration project. This unifies the interface used by admin and non-admin pages, and deprecates the _page hook in favor of explicit callbacks from menu(). Breadcrumbs, titles, and help text go away as a result of this patch; they will return in the phase 3 patch, printed by the theme.
- Committed stage 2 of the theme system improvements! Patch by CodeMonkeyX.
- Committed stage 1 of the menu callbacks improvements. Patch by Jonathan.
- Improvement: made it possible to disable the comment controls and reworded some of the configuration settings. - Improvement: removed a left-over from Drupal 4.2.0 (dead code). - Improvement: replaced hard-coded XHTML around the XML icons with class="xml-icon". - Improvement: removed the custom navigation menus shown at the top of the "user information page" and integrated them in the new navigation block. The "my account" link in the navigation menu will unfold. Also removed the "delete account" link/functionality (for now). - Improvement: fix for "magic quotes" settings. Patch by Steven. I also removed check_php_settings(). - Improvement: block themability improvements. Modified patch from Ax and Steve/CodeMonkeyX. - Fixed bug #2617: editing user information does not work. Patch by Kjartan.
- Committed part 3 of Michael's help system improvements: removed the $help parameter from the menu() function.
- Help system improvements: eliminated the _system hook. Patch by Michael. - Bloggerapi module fixes. Patch by Kjartan. - Coding style fixes. Patch by Michael.
- Help improvements and translation improvements from Michael. Thanks!
- Changed 'view my blog' to 'my blog' and 'view recent posts' to 'recent posts'. See mailing list discussion.
- Associate a callback with the menu links! (This callback is not yet being called but will be as soon the remaining links have been transformed to use the menu system.) - Made sure the menu does not render links with no callback and no children. Like this, the 'create content' link is not being shown when the user has no permission to add any content.
- Committed Al's new admin link texts. Remarks:
1) As explained by Al, there is still a glitch with the 'create content'
menu.
2) The user module part of the patch did not apply due to Kjartan's earlier
patch.
- Committed the admin menu integration patch. Thanks Adrian, Stefan and others.
- Updated the blog module to use the _validate hook. Fixes bug #2920 reported by Jonathan.
- Committed Nick's _content improvements.
- Book module improvements. This commit changes the behavior of the "view" hook. See mailing list for details; search for a mail with the subject: '[IMPORTANT] behavior of "view" hook changed'. Modified patch from Nick.
- Some breadcrumb refinements by Nick.
- Added basic breadcrumb navigation to the blog module.
- Rewrote handling of forum icons and added default icons made by Steven Wittens. - Renamed some column titles in the forum module as per Moshe's suggestion. - Introduced a 'more-link' class to position the 'more' links. Removed hard-coded markup from the modules. - Fixed bug in import module: the theme functions called a non-existing function.
- Documentation fixes by Michael F.
- Help system improvements from Michael.
- Performance improvement: changed a fair amount of "left joins" to "inner joins". Patch by Gerhard.
- Committed a slightly modified version of Slavica's table prefix patch.
- Bugfix: added more permissions checks. Patches #60-62 by Al. Should fix bug #2163 and #2164.
- Bugfix: fixed utf-8 problem for people that use PHP 4.2.x or below. Patch #33 by Al. - Bugfix: fixed translation problems in the user module and the block module. Patch by Stefan. - Improvement: made it impossible to delete user role #1 and #2. Patch #38 by Al. - Improvement: fixed the "Allowed HTML tag" issues. Makes for better code and improved usability. Patch #35 by Al. NOTE: as soon the compose tips make their way into CVS, most of this code can be removed.
- Improvements: XHTML-ifications. Patch by GmbH.
- Bugfix: fixed broken links in the emitted RSS feed discovery code. Modified patch by Kjartan.
- Bugfix: small Xtemplate fixes. Patch by Ax. (Slightly modified.) - Bugfix: block patch fix. Patch by Gerhard. - Bugfix: fixed broken URL in ping. Patch by Gerhard. (This should fix the problems shown on http://www.blo.gs/info.php?id=1515.) - Improvement: added better password generator. Patch #1 by Al. Fixes bug #1935. - Improvement: performance improvement to the blog module. Patch by Marco.
- Bugfix: better charset support for non-ISO-8859-1 languages. Patch 0029.charset.fixes.patch by Al. Could East Asia test this please. - Bugfix: made the "moderate" field behave. Patch 0030.queue.module.help.and.settings.form.patch by Al. - Documentation: revised a large part of the help texts / documentation! Al's 0024.* patches. - Documentation: added a glossary to the help module. Patch 0025.help.module.glossary.patch by Al and Michael. - Usability: first step towards unifying the terminology used in the cloud module. Patch by 0028.site.cloud.rationalize.name.patch Al. - Usability + CSS improvements: revamped the node form and removed all tables. Patch 0027.node.form.rewrite.patch by Al. - CSS improvements: patch 0026.admin.css.small.improvement.patch by Al. - Updated the MAINTAINERS file.
- Fixed the blog it link to work with register globals off. Patch by Al.
- Michael Frankowski's excellent help text improvements!
- Updated Drupal to use "on output" filters. Derived from Gerhard's patch.
- Changed "user blogs" to "blogs". Patch by Al.
- Applied Michael Caerwyn's "%s -> %d" patch. - Changed all occurences of '%d' to %d as suggested on the mailing list.
- Fixed some PHP "notices".
- Fixed some SQL query directives.
- Added missing title description. Patch by Stefan.
- Fixed broken URL in the blog module's feed. Reported by Gunnar.
- All LIMIT queries must go through the pager or through db_query_range(). The syntax for db_query_range() was enhanced so it matches db_query(). So you may pass extra arguments of the SQL statement which are checked via check_query() and then substituted into the SQL statement. After these optional arguments, you always pass $from and $count parameters which define your range. Most often, the $from is 0 and the count is the max number of records you want returned. Patch by Moshe. - The pager_query() function for PEAR was enhanced so that it adds proper GROUP BY statement counting the number of records to be paged. Patch by James Arthur. - MSSQL database scheme by Moshe.
- Fixes invalid link generation in import module (wouldn't work with clean urls enabled). - Changed the logic in blog module to handle "blog it" links.
- Renamed "form.admin" to "form admin".
- Added node_admin_settings() to let users set node defaults.
* Added _nodeapi("conf")
- Modified form_checkbox() to unset options. (Modified the patch from Ax.)
- Removed the _save() hook.
- Fixed a logical flaw in field_get() and field_set() which would break
moderation.
- Moved some admin menus around and cleaned up some typos.
- Removed the path_uri() function in favor of the $base_url variable and fixes a handful of bugs introduced by the clean URL patch.
- Theme options patch. See mailing list.
- Everything is using theme("function") now instead of $theme->function().
- Fixed blog.module to accept blog/name URLs as well as blog/id - Changed the RewriteRule in .htaccess. - Fixed form_select() matching incorrectly. - Added missing $Id$ to menu.inc
- See http://lists.drupal.org/pipermail/drupal-devel/2003-February/021824.html.
- Applied Alastair's date patch.
- Removed all instances of '$user->nodes'.
- Committed Moshe's taxonomy patch - minus the node_compact_list() bit. It needs a bit more thought/work. This patch changes the links of taxonomy pages/feeds so update your custom code and themes accordingly!
Themes should now use "taxonomy_link("taxonomy terms", $node)" to get an array of taxonomy term links. The old construct is deprecated and should be changed.
// old theme blob:
if (function_exists("taxonomy_node_get_terms")) {
foreach (taxonomy_node_get_terms($node->nid) as $term) {
$terms[] = l($term->name, NULL, array(), "or=$term->tid");
}
}
// new theme blob:
if (module_exist("taxonomy")) {
$terms = taxonomy_link("taxonomy terms", $node);
}
// old URL:
http://foo.com/index.php?or=1,2
// new URL:
http://foo.com/?q=taxonomy/page/or/1,2
- Moved the filter()s back to the individual node modules as it used to be.
- Tidied up XHTML. Patch by Ulf. - Added missing t() function. Patch by Stefan.
- Tidied up some SQL queries.
- Bugfix: RSS auto-discovery was broken due to clean URL work. Patch by Breyten.
- Clean URL patch.
- Added missing whitespace.
- Committed Marco's pager improvements. - Fixed another annoyance with editing content.
o Permission improvements: + Removed the "post content" permission and replaced it by more fine-grained permissions such as "maintain static pages", "maintain personal blog", "maintain stories", etc. o Usability improvements to teasers: + Teaser forms are no more. Teasers are extracted automatically but can also be instructed using a delimiter "---". Furthermore, when a post it too short for a teaser, the user won't be bother with teaser stuff anymore. + Added an option to set the teaser length, or to disable teasers all together. + When previewing a post, both the short (if any) and the full version of a post are shown. This addresses a common complaint; for example, when writing a book page there was no way you could preview the short version of your post. + Forum posts can be teasered now. This is particularly helpful in the context of drupal.org where we promote forum topics. o Bugfix: replaced all PHP short tags (<?) with long tags (<?php). o Bugfix: removed hard-coded dependence on comment module. o Bugfix: when the queue module was disabled, it was not possible to approve updated book pages. o Bugfix: applied modified version of Marco's node_teaser() fix.
Applied Moshe's patches: - Adds more title info to each line in the block: now showing author and number of comments in a unified way accross all modules. - Added pager support to blog module. - Blog module now uses standard node view, not its own hack which is more theme friendly (http://www.drupal.org/node.php?id=133). - Blog module now uses node_feed() function for making RSS feeds. since all feeds are now consolidated, a couple tweaks to node_feed() and format_rss_* would lead us to support new RSS formats easily. - Fixed bugs where unpublished entries were displayed.
- Small clean-up.
- Applied Moshe's "theme head" patch: "This patch to theme.inc adds the ability for modules to insert HTML into the <HEAD> section of all web pages. The additional modules in this directory [ed: blog.module] demonstate possible uses for the new _head() hook."
* Added Jeremy's pager: "This is a simple, generic pager for Drupal-CVS. It is designed to be easily themeable and expandable. The code is highly-commented to enhance readability." "Pagers are constructed by combining the provided pieces (all of which can be easily modified to display the text or image you prefer) into your custom pager." * Statistics module fixes by Jeremy: - removed superfluous check for existence of watchdog() - saving changes in admin page displays status and returns same page - no longer return 1971/01/01 in "view statistics" table - switched from "!=" to "<>" in SQL queries for ANSI-SQL compliance - switched from "MAX(timestamp) as timestamp" to "MAX(timestamp) as max_timestamp" moving towards ANSI-SQL compliance. * Added a "theme_item_list" function to format itemized lists. Also changed a couple of modules to take advantage of it. Makes for a more consistent UI.
- Fixed glitch in block module: the admin links were not composed
correctly. Patch by Stefan.
- Added missing t() functions and improved the %x directives for
better readability and to ease the process of translating your
site. Patches by Stefan.
- Made two small additions to the 'code-clean.sh' script; it will
now remove patch related junk.
NOTES:
- I removed the · related bits. Let's tackle these later on
in a separate patch after we got some sort of consensus.
- I removed the 'module_exist("drupal")' check in the user module;
I *think* it is incomplete and therefore incorrect.
- Stefan, try using quotes in your translations and check whether
everything still works. Example: translate the "Create account"
button to "Create \"haha\" account \'hihi\'" and see if you can
still create new accounts. Maybe automate this using a quick
hack in the locale module ...
- Committed Marco's block rewrite:
+ Blocks are not longer called if not rendered: major performance
improvement.
+ Fixed some bugs (preview option was broken, path option was broken).
+ Removed "ascii"-type blocks.
+ Added permission to for "PHP blocks"
+ ...
NOTES:
+ You'll want to run "update.php":
ALTER TABLE blocks DROP remove;
ALTER TABLE blocks DROP name;
+ You'll want to update your custom modules as well as the modules in
the contrib repository. Block function should now read:
function *_block($op = "list", $delta = 0) {
if ($op == "list") {
return array of block infos
}
else {
return subject and content of $delta block
}
}
- Wrapped some hardcoded colors in "theme_invoke()"s; we can still create a drupal_error() later on but I think we better get used to theme_invoke(). - Fixed translation bug. Patch by Moshe. - Fixed PHP warning. Patch by ax.
- fixing some incorrect l*() calls. - fixing node_feed() to work with tax feeds. Thanks Moshe.
- default theme added to theme options + some clean up. - title of "blog it" item is used as default node title. - added link to news feed admin pages on import_page. - "blog it" link only shows when the blog module is available.
- more documentation updates by Scott.
- improved module descriptions. - removed admin options for queue and comment module if the modules are not loaded. - nodes are now auto promoted when queue module isn't enabled. - moderation result block is now visible by the node author.
- Extended the blog module documentation with input from the Drupal handbook. The documentation is not particulary exciting/good but it is better than what it used to be.
- adding descriptions to modules (thanks Joe + Scott).
- fixed comment flat list view missing 1 comment.
- changed update.php around a bit.
* security check isn't in effect if the db hasn't been updated.
* instructions re-organized.
* fixed some minor updates.
- updated database.mysql done by UnConeD.
- changelog update.
- Added missing translations and the like.
- fixing perma links and link to all blogs by user. - added access checks to blog block.
- pending user accounts will not be notified to the site_email. - fixed access checks on the register form, do this before you enter the _save function. If registrations are disabled the register link will no longer show (again). - changed » to », using the names of entities are better than the numbers. - fixed user information being set when account is registered (properly this time, really!) - reversed the if(!...) commit. - node_add specifies more defaults. - added link to blog entries from user page.
- node security fixes. - fixing the UI to represent what actually happens when you are an admin.
- tweaking the links. Too many of them.
- fixing perma links.
- bug fix.
- updating all nodes to use taxonomy terms. - updated node modules not to cause errors when taxonomy module is disabled. - added %date variable to user mail configuration. - added hyperlinks to admin.php?mod=system (site configuration) for easy access. - usual coding style and xhtml fixes.
- applied Stevens link patch. - fixed block permissions. - fixed user admin page errors: http://www.drupal.org/node.php?id=173. - cleaned up common.inc a bit: removed format_info, path_img, field_merge.
- filter changes part 1. Part 2 tomorrow.
- re-adding the module.php?mod=blog&node=USER.
- Applied Marco's big patch, including contributions from Moshe:
+ Changed the db_query() API.
+ Wrapped all links in l(), lm(), la(), ..., drupal_url() functions.
+ XHTML-ified some HTML.
+ Wrapped a lot of text in the administrative pages in a t()
function.
+ Replaced all $REQUEST_URI/$PATH_INFOs by request_uri().
+ Small bugfixes (eg. bug in book_export_html() and clean-ups (eg.
RSS code).
+ Fixed some bugs in the taxonomy module (eg. tree making bug), added
new functionality (eg. new APIs for use by other modules), included
Moshe's taxonomy extensions, and some documentation udpates.
+ ...
- Added Marco's long-awaited taxonmy module and patches - a replacement
for the meta system. The patches add some extra functionality to the
comment system (for example, comments can be set read-only) and fix a
couple of small problems.
+ I integrated the required SQL updates from the varius *.mysql files
into the "update.php" script. Upgrading should be easy ...
+ I did not apply/commit the "user.diff" as requested by Marco ...
+ I didn't know what to do with "forum.module" and "forum2.module":
what do you want me to do with it Marco? Which one should go in?
+ Can we remove "node_index()" now; both from "node.module" and the
themes?
+ Thanks Marco!
- made a typo in one of the updated t()'s.
This is a major change to the system, needs more testing! Committing Changes by Moshe Weitzman: - admin_user_account(), user_edit(), and user_view() no longer have any hard code for authentication modules. instead authentication modules implement the _user hook. - fixed a couple 'help' typos. - linked the 'REGISTER' text in the login block to the register page. this page now advertises DA better if site employs DA. - admins may now edit everything about a user account (was a feature request). - user #1 may now login immediately, in addition to receiving his password via email. Other changes: - modules and themes are now enabled/disabled in the administrative / settings / modules | themes pages. Requires SQL update and things must be enabled before your site returns to normal. TODO: enable all functionality. (For now just do UPDATE system SET status = 1;) - removed $themes from conf.php. - added a $theme->system() function where