Commit Graph

382 Commits (dd7764302f1484face1288d35673e9e9defdfebc)

Author SHA1 Message Date
Steven Wittens fc99c57d87 #6732: fixing bug 'once anonymous always anoymous' (nodes). 2004-08-14 17:05:32 +00:00
Steven Wittens cb36ef37cc #10033: by Jonbob, make sure no filter check is done until the first preview. 2004-08-13 18:17:10 +00:00
Steven Wittens 441b63accd Moving all legacy handlers into legacy.module. 2004-08-12 15:12:26 +00:00
Dries Buytaert 543d8b7208 - Patch #9972 by njivy: modified node_feed() for the instances where locale is not enabled. Without this patch, reset(array_keys($languages['name'])) throws an error. 2004-08-12 05:44:11 +00:00
Dries Buytaert 1831e1b690 - New locale module thanks to Gerhard, Goba, Marco, Kristjan and others.
The new locale module provides every functionality on the web interface, so you don't need to edit the configuration files or add columns, when you add a new language. This module is an integration of the old locale and localegettext modules, plus a bunch of logic to parse Gettext Portable Object files (opposed to Machine Object files, as supported by localegettext).

  Note: I made some minor changes to the context-sensitive help texts and to some of the status messages.
2004-08-11 11:26:20 +00:00
Steven Wittens 660f99287d 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.
2004-08-10 18:34:29 +00:00
Dries Buytaert 821c6d2d17 - Patch #9812 by Adrian: fixed some PostgreSQL/ANSI SQL compabitibility
problems created by the new comment and node access permissions code.
2004-08-06 21:00:43 +00:00
Dries Buytaert b47e4e16d3 - Patch #9794 by JonBob: a bug introduced late in the review process makes individual node views inaccessible to users who should have permission. This does not affect node listings, so was missed. 2004-08-05 20:26:25 +00:00
Dries Buytaert c6b1eaa20d - Patch #9775 by TDobes: consistency operation. Changed to "edit foo," "delete foo," and "view foo" links into simply "edit," "delete," and "view". 2004-08-05 05:40:53 +00:00
Dries Buytaert 07ae0fad65 - Patch #9497 by gordon: made <!--break--> work even when the teaser length
is set to unlimited and fixed up some code comments.
2004-08-04 21:19:12 +00:00
Dries Buytaert c0f6fccac3 - Patch #7336 by TDobes: in various parts of Drupal, we use the title attribute for links to provide a slightly more detailed explanation as to the purpose of a link or where it goes. 2004-08-03 18:01:48 +00:00
Dries Buytaert 202eee42a9 - Patch #9543 by JonBob: added node-level access control! 2004-07-31 09:30:09 +00:00
Dries Buytaert aed1b0ca9e - 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.
2004-07-30 13:37:26 +00:00
Dries Buytaert df2e5ef505 - Patch #8942 by Morbus: when testing under devel.module, the "SELECT timestamp from {history}" SQL statement is executed multiple times in two different functions. This duplicated code should be placed in a function, and that's been done already with node_last_visited() - the remaining code was just never updated to use the new routine. This patch changes the old code to use node_last_visited, and also modifies node_last_visited() to cache the result of the database call. 2004-07-13 20:44:13 +00:00
Dries Buytaert ac5b5616c0 - More tab-improvements by JonBob: improved support for the default tabs! 2004-07-10 15:51:48 +00:00
Dries Buytaert 898bdeffaf - Marked required fields on the node (story, book, page, blog) and comment
forms using the $required argument of the form_ functions.

- Replaced all Optional's and Required's from the taxonomy forms with proper
  use of the form_ functions.

Please check your contributed modules too!
2004-07-08 15:24:30 +00:00
Steven Wittens d615cb245e - Added revisions tab to node view (when needed)
- Updated node.module to use drupal_goto after submission: this allows people to refresh after submission without any problems.
2004-07-04 19:24:52 +00:00
Dries Buytaert fe2b3e7c00 - 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').
2004-07-04 16:50:02 +00:00
Dries Buytaert 353c05d015 - Made it possible to edit blog posts and made the blog module use tabs. 2004-07-04 10:30:42 +00:00
Dries Buytaert 9986cb36b5 - Patch #8973 by JonBob: Drupal contains many undefined variables and array indices, which makes PHP throw a lot of warnings when the reporting level is set to E_ALL. Things run fine with these warnings, but as a matter of code style if nothing else we should probably strive to avoid them. The attached fixes most of the more egregious offenders (about 95% of the warnings when I load /node on my test site). 2004-07-02 18:46:42 +00:00
Dries Buytaert e288b4ddb1 - Patch #8747 by JonBob: extended and standardized node.module Doxygen
comments, and made formatting and quote usage more consistent.
2004-06-22 20:24:27 +00:00
Dries Buytaert 090743bdba - Patch #8670 by asimmonds: more spelling fixes. 2004-06-21 20:05:37 +00:00
Dries Buytaert bfa7d178a9 - Patch #8713 by stefan: changed some 'node's to 'post's. Usability improvement. 2004-06-21 20:01:49 +00:00
Dries Buytaert c2d7419f23 - Patch #8681 by stefan: fixed some broken URLs and help texts. 2004-06-20 19:49:14 +00:00
Dries Buytaert efed4cfc70 - Patch #8679 by asimmonds: fixed spelling mistakes. 2004-06-20 08:27:03 +00:00
Dries Buytaert cbc230a36c - Patch #7696 by TDobes: renamed 'static' to 'sticky' which is a more
logical name.  Requires a database upgrade.
2004-06-19 10:39:36 +00:00
Dries Buytaert 71c99bb213 - Patch #8619 by TDobes: fixed typo in watchdog message. 2004-06-19 10:10:11 +00:00
Dries Buytaert 54b77d6435 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').
2004-06-18 15:04:37 +00:00
Dries Buytaert 5ad73c8eb6 - Partial patch #8284 by jseng: made the RSS auto-discovery URL absolute even though that is not strictly necessary. 2004-06-17 18:46:41 +00:00
Steven Wittens 4d91449dd9 Quick improvement to autoteaser generation:
added double-width dot and comma, and right-to-left question mark as sentence boundaries.
2004-06-10 14:40:55 +00:00
Dries Buytaert c0b85a5721 - Patch #4950 by Stefan (and Morbus): made watchdog messages translatable. 2004-06-02 19:01:40 +00:00
Dries Buytaert aa3f05d819 - Patch #7096 by bylund: fixed a bug with the node filters at the node administration page (administration > content) 2004-05-03 17:38:40 +00:00
Dries Buytaert 2ca7eb7152 - Patch #6612 by JonBob: extended the node API with new hooks. 2004-04-28 20:23:30 +00:00
Dries Buytaert 33eb82e16f - Patch #6444 by Junyor: allow modules to change the 'changed' timestamp of nodes. 2004-04-24 07:41:49 +00:00
Dries Buytaert 7231c88a32 - 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.
2004-04-21 13:56:38 +00:00
Dries Buytaert 10bdb51c37 - 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.
2004-04-15 20:49:42 +00:00
Steven Wittens a083daf841 Truncate UTF-8 patch. Introduced a new function truncate_utf8() for chopping off strings at unsure locations, without risking incomplete UTF-8 data. 2004-04-15 14:07:08 +00:00
Steven Wittens 767141c49e Missing semi-colon for HTML entity. 2004-04-05 01:10:48 +00:00
Dries Buytaert 142dd6ba43 Patch #5588 by bylund: XHTML improvements: <i> -> <em> and <b> -> <strong>. 2004-03-20 13:29:06 +00:00
Dries Buytaert 2101f6c454 - 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.
2004-03-11 20:33:59 +00:00
Dries Buytaert ccc9276f45 - 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.
2004-03-06 16:17:48 +00:00
Dries Buytaert 744405e316 - Patch 6140 by Goba: fix the 'read more'-link behavior. 2004-03-06 10:57:53 +00:00
Dries Buytaert 0f980c24bc - Removed broken throttle. 2004-03-01 19:45:33 +00:00
Dries Buytaert c73305f6d6 - Patch #6129 by Goba: fixed dependencies on search module. 2004-02-29 17:16:27 +00:00
Dries Buytaert df2c033729 - Patch 6066 by Adrian: PostgreSQL does not return 'affected rows' when doing
a select statement.  Even though PEAR supports this functionality, it fails
  silently when using PostgreSQL.  We use the db_num_rows() function instead
  to return the amount of rows returned.  (According to Killes, the MySQL
  manual also states that it should not return affected rows on a 'select'
  statement.)
2004-02-26 17:55:14 +00:00
Steven Wittens b109518bc1 - Added a short note about the node-trim-length setting. Many people seem to expect that changing it updates existing teasers too. 2004-02-19 11:57:54 +00:00
Dries Buytaert 634893f298 - Patch 5683 by JonBob: changes the multiple type delimiter from / to -. 2004-02-16 18:33:37 +00:00
Dries Buytaert 4b0b2d02ee - Patch by Steven: removed redundant permission checks. These are no longer
required thanks to the new 404 handling.
2004-02-15 20:09:46 +00:00
Dries Buytaert b5c18e8a17 - Patch 5592 by Goba: introduced a new function, drupal_map_assoc(). 2004-02-12 19:37:04 +00:00
Dries Buytaert f137b26979 - Patch 4902 by Goba:
+ only adds an optional parameter to url() and l(), so individual links
    can be set to be absolute
  + modifies drupal_goto() to accept the parameters of url() without the
    $absolute parameter, so cleaner invocations can be used
  + rework of some code in node_feed, making it much better to look at
    (the current code uses foreach with an immediate brake to get the first
    key of the associative array, geeeeez)
  + added xml:base to the rss tag generated by node_feed()
  + set all user mail URLs to be absolute
  + fix a small fragmented URL in user.module
2004-02-11 19:21:14 +00:00