Development
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- 9354 discussions
Issue status update for http://drupal.org/node/20977
Project: Drupal
Version: 4.6.0
Component: page.module
Category: feature requests
Priority: normal
Assigned to: Anonymous
Reported by: Syntoad
Updated by: Syntoad
-Status: active
+Status: patch
Forgot to set status to patch.
Syntoad
Previous comments:
------------------------------------------------------------------------
April 20, 2005 - 23:21 : Syntoad
Attachment: http://drupal.org/files/issues/page_perms.diff (619 bytes)
I am using drupal as a semi-wiki, and wanted all users to be able to
edit any page, but didn't want to allow them to administer pages (gives
access to too many other things such as configuring the front page)
This patch will add the permission 'edit others pages' to the page
module.
1
0
Issue status update for http://drupal.org/node/18719
Project: Drupal
Version: cvs
Component: user.module
Category: bug reports
Priority: critical
Assigned to: Anonymous
Reported by: neofactor
Updated by: Jose A Reyero
Status: patch
Attachment: http://drupal.org/files/issues/user_one_time_login_5.patch (20.35 KB)
Patch updated for HEAD
Some changes:
- Removed 'Last changed' field in user overview
- Added some comments
- Better wording for password recovery e-mail
About e-mailing passwords, yes, we are e-mailing passwords, but only on
user registration, so the user has both possibilities for first time
login. And anyway it's up to the site admin to remove that password
from the e-mail.
Jose A Reyero
Previous comments:
------------------------------------------------------------------------
March 11, 2005 - 03:52 : neofactor
Problem:
Any user can force another user's password to change... simply by
selecting "request new password" and putting in their username. The
user gets an email with the new.. but this feels like a violation to
the user... and a pain.
Solution?
If someone requests a new password... Don't blindly change it... send
an email that says...."Is this a real request authorized by you? Click
here to confirm otherwise disregard this message"
Please consider this critical for user by-in to Drupal as a secure
system.
I appreciate your consideration.
http://drupal.org/node/18689
------------------------------------------------------------------------
March 11, 2005 - 05:05 : neofactor
I added some code to prevent the admin account from being reset...
Please add as a patch.
if ($account->uid == 1 {
unset($account);
form_set_error('name', t('Sorry. The username %name is not allowed to
be changed.', array('%name' => '<em>'. $edit['name'] .'</em>')));
}
// Just above this code on line 911:
if ($account) {
$from = variable_get('site_mail', ini_get('sendmail_from'));
$pass = user_password();
------------------------------------------------------------------------
March 11, 2005 - 05:08 : killes(a)www.drop.org
Please only set to "patch" if you are actually submitting one. The
solution you proposed is rather a workaround and will not be acceptable
for core.
------------------------------------------------------------------------
March 11, 2005 - 09:21 : Deno
I was in charge of a web site with >10000 paying customers for some
time, and the "customers care" was constantly troubled with pasword
change requests, until we switched to a system that worked in the
following way:
1) "I forgot the password" function accepts either users email, or
users login name, generates a random phrase, and adds an entry to
"pasword_change_request" table. This entry consists of:
- User ID (corresponding to email or login)
- random phrase
- datestamp
User ID is unique key, and the entries in this table older than
MAX_TIME are regularly purged by a cron job.
2) System sends an email with a link to "change forgotten password"
page with this random phrase as argument to the user. That would be
something like:
https://drupal.org/user/cfp/d438rwiuodw894732ehdw
3) When user follows the link, "cfp" page checks if the random phrase
exists in the table, allows the user to immediately change the
password, and sends another email with "your password was changed on
RIGHT_NOW ... " note to the user in question.
- Password change automatically triggers deleting of the corresponding
entry in pasword_change_request table.
- Password change automatically logs-in the user as well.
This way, users weren't bothered by accidental password changes, and
they also understood the system better than the one with automatically
generated passwords.
For additional security, we also built some brakes that assured that
the number of attempts to change the password, such as:
- "An email with instructions was sent to you X minutes ago. In case
you don't receive it within N hours, please contact the site
administrator"
- "According to our logs, you have visited the CFP page more than NMAX
times within last 24 hours. For security reasons, you will be denied
access to this page for the next 24 hours. Please contact the site
administrator."
hope this helps...
------------------------------------------------------------------------
March 30, 2005 - 21:01 : Jose A Reyero
Attachment: http://drupal.org/files/issues/user_one_time_login.patch (6.52 KB)
This patch for -cvs- addresses this issue.
It generates an *only one use* URL to login into user account, instead
of a new password. Then the user clicks on the URL, logs in, and may
change his old password if desired.
It is a only one use URL, and has some additional security measures,
like a configurable time-out -can be confgured in admin/user/settings-
and also, if somebody uses it or password is changed in the meanwhile,
previously generated login URLs of this type won't work.
About how it works, it creates a new url with:
- user id,
- timestamp
- a hash of current timestamp, changed date for account, and the old
password hashed
With this patch, this wont work for admin accounts, which I think is
better, you never know...
It has a number of features like:
- User can be ignoring these emails if somebody else is requesting
access, a new password request wont change current password. However,
the user will be warned when seeing the emails
- It reveals no sensible information about the user account in the URL
itself
- the generated hash is not predictable at all if you dont know the old
password, as it depends on user's old password
- there's a configurable timeout
- The URL's are only one use, as they depend on two timestamps, one of
which will be changing in case this login is used -or in case user logs
in for other means
- Any 'new password' request is independent of others, so no one can be
interfering with one user asking for his password back.
Also doesn't require any new db field nor keeping track of requested
passwords.
------------------------------------------------------------------------
March 30, 2005 - 21:41 : chx
Very nice patch. Please consider for 4.6.
------------------------------------------------------------------------
March 30, 2005 - 23:16 : drumm
Couldn't those nested if statements be made into one with a bit cleaner
indentation? It looks like the page which the user arrives at after
getting the new login information is their user page, not a page to set
the password. The "Time out for password recovery e-mail" configuration
is very unfriendly. It should be a drop down select of the most used
human readable durations. Or we could just decide on one timeout and
leave that hard coded in; who actually needs to use that setting? The
url is quite long, what could be done to make it shorter?
------------------------------------------------------------------------
March 31, 2005 - 00:50 : Jose A Reyero
/Couldn't those nested if statements be made into one with a bit cleaner
indentation?/
Maybe, but I had to split that if conditions in two parts because the
$account var didn't get the value before the rest of the conditions
-latest two- where evaluated. Someone can help with PHP here?
/It looks like the page which the user arrives at after getting the new
login information is their user page, not a page to set the password.
The "Time out for password recovery e-mail" configuration is very
unfriendly. It should be a drop down select of the most used human
readable durations. Or we could just decide on one timeout and leave
that hard coded in; who actually needs to use that setting?/
Agreed, will be polishing this a little bit, just wating for some more
suggestions...
For the duration, I'll change to 'hours', ok? Just don't like to
restrict options using unneccessary dropdowns, it's only intended for
administrators anyway. Maybe I add also a '0' for unlimited.
Hardcoding it, would need anyway to be mentioned in the module help, so
it's about the same overhead, both for coding and for the admin
interface, and harcoding in two places in code is not good anyway. And
I like having options, am I the only one?
/ The url is quite long, what could be done to make it shorter?/
Well, the url has to be long, it has neccessary params and an MD5 hash,
which yes, could be cut someway, but that adding inneccessary code and
also reducing security -though half an MD5 hash may be secure enough-
but I see no point in that.
------------------------------------------------------------------------
March 31, 2005 - 02:18 : FactoryJoe(a)civicspacelabs.org
"Or we could just decide on one timeout and leave that hard coded in;
who actually needs to use that setting?
"
+1 for making this *not* configurable! C'mon, Drupal should have
standards about security -- and if best practices say that, say, 8
hours, is a good amount of time for that URL to be active, then do
that. Cut out the confusion and extra brain juice it takes to decide...
"Gee, is 4 hours better than 5?"
Additionally, there's a simple way to make this workflow better for the
user. If you visit an outdated change password URL, you should be told,
"Sorry, but that link you followed to change your password has expired.
If you would like to reset your password, please fill out this form:
[form] If you did not request to change your password, please notify
[administrator's name w/ PM link]".
This way, if you missed your change password deadline, you can request
your password again right from the timeout page. If you didn't request
the change, it will be obvious that someone else was trying to change
it, and then you can contact the administrator and find out who it was
that was messin' with your account.
------------------------------------------------------------------------
March 31, 2005 - 06:55 : chx
Attachment: http://drupal.org/files/issues/user_one_time_login_0.patch (4.72 KB)
I cleaned up the patch a bit. I hope code style is OK. So may -- there
are no checks against the arguments? There is no need. user_load uses
%d for 'uid', so that's dealt with. Comparison by < and > means an
implicit cast to integer, so $timestamp is also dealt with
automatically.
I do not think timeout needs to be configured.
Please comment on not letting uid 1 using this one. I am not sure
whether this is necessary.
------------------------------------------------------------------------
March 31, 2005 - 07:12 : chx
Attachment: http://drupal.org/files/issues/user_one_time_login_1.patch (6.21 KB)
Implemented Chris' idea, so if you use a one time URl which is expired,
you are sent to user/password with a message to ask for another. I
changed a few messages and deleted the "not for admin" feature. Do we
really want one gazillion support requests "I locked myself out of my
site, user/password tells me not for admin, what now"?
------------------------------------------------------------------------
March 31, 2005 - 08:24 : chx
One more point on uid 1. Yes, uid 1 can reset his pwd over the database.
But then we would need to lock out administer users privileged users.
Then administer nodes, 'cos of XSS. Then administer comments... then
administer filters... OK, this is pointless.
If someone can eavesdrop on your emails, everything is lost, I think.
This is not something Drupal shall address. Maybe we could employ a
security question -- secret answer pair.
------------------------------------------------------------------------
March 31, 2005 - 11:52 : Bèr Kessels
Eventhough I am a less-settings advocate, I think this must remain a
setting :).
Why?
Sites on Drupal differ a lot, and have a very differnet userbase.
I run very low level sites, where it sometimes takes days before
someone will read his/her mail. But I also know sites (drupal.org)
where days would certainly be too long.
Sorry Chris et al, I +1 on configurable duration.
(hell, we really need some about:config alike screen in drupal)
------------------------------------------------------------------------
March 31, 2005 - 12:46 : Dries
IMO, that setting has nothing to do with a site being "low level". If
you request a new password, you probably want to login ASAP. I vote
against a configuration option.
Either way, this patch needs work:
1. We don't glue words together (eg. $hashedpass, $currenttime,
$loginurl). Similarly, I suggest to change 'user/newpassword' to
'user/reset' or 'user/request-password'.
2. The patch exposes technical details to the user; terminology like
"one time login URL" is likely to confuse many users.
3. The login URL is not clean URL safe, I think.
4. Please rename the variable $pass1 in user_pass_rehash().
5. The code comments are often inconsistent. Some end with a
punctuation, some don't. Some span two lines, others don't.
On a related note, can't we reuse this system for the initial password?
That is, instead of mailing a password, we mail an URL and force the
user to enter a password.
------------------------------------------------------------------------
March 31, 2005 - 18:20 : Jose A Reyero
Attachment: http://drupal.org/files/issues/user_one_time_login_2.patch (12.77 KB)
Ok, I've started with chx's reviewed patch, and done most of Dries
suggestions
Main changes are:
-----------------------
- Rewording, variable names, path, etc... as pointed out by Dries. Now
it's user/reset. And yes, it was not clean-URL safe; it is now.
- Allowed also for admin account, I dont like it though, but seem to be
the only one :(
- Used also for user registration, but I also kept old style
login/password, think it can be some use and anyway, it's up to the
site admin to remove it from the welcome e-mail. However it is only for
'no admin approval', see below about this....
- Added back in the config option for time-out, though reworked
completely for usability. Default is '1 day' which I think should be
reasonable. However, there's no time out for firts time users. About
this, read below, please...
-----------------------
Using this for first time login has some problems when admin aproval
is required, as the hashed pass depends on 'changed' timestamp, and it
changes when the admin approves an account. Actually, there's no way to
know -or I didn't find it- when it is the first login for an approved
account. For no admin approval, I just used 'changed' == 'created' as a
criterium.
I think we should be separating this changed date and last login date
creating a new field in the user table, but that maybe for a future
patch. That would also increase security, as the Administrator's info
would be more accurate, and 'last login date' could be shown when user
logs in, which is also security+
Related with this I've experienced problems, as administrator, when
editing user accounts, then last login info for the users gets lost -is
reset-...
About the config option for time out, though I agree that enforcing
security can be good in general, this is one of this cases where more
security means less usability. And that decission should be left to
Site administrators -each site has its own security requirements-.
So I think the target here should be a 'reasonable' default, and then
some flexibility for site admins. IMHO this latest patch is quite well
balanced. So... everybody happy?
------------------------------------------------------------------------
March 31, 2005 - 20:43 : Dries
"So ... everyone happy?"
Not quite. The patch is an improvement but it uses tabs, incorrect
spacing, incorrect placement of brackets, and does not use
theme('placeholder').
If a new database column is required to implement this properly, please
add one. This patch won't get committed until it is implemented
properly.
I still vote to remove the configuration option.
We're getting there ...
------------------------------------------------------------------------
April 2, 2005 - 19:45 : factoryjoe
I’m going to have to stick by my earlier assertion on this one, and,
and, as with most usability issues, none of us are “correct” until
we test it 50 times and see whether anyone actually uses the option.
Just like with my folksonomy review [1], more options is *not always
better* nor does it always help people *get things done*!
To further expand this point, Jose says [2]:
About the config option for time out, though I agree that enforcing
security can be good in general, this is one of this cases where more
security means less usability. And that decission should be left to
Site administrators -each site has its own security requirements.
"
But this is a misuse of the term “usability”. What you’re talking
about is *functionality*—since usability has more to do with focusing
single-mindedly on the task at hand and reducing distraction than it
does with providing extraneous options that might be useful for a
fraction of all Drupal admins.
To speak to Ber’s point [3], I cannot imagine a situation where, if I
want to change my password because I’ve forgotten it, that it will
take more than a few hours to get the email and fulfill the process.
And even still, if it does — for whatever reason — take me a week
to get around to resetting my password, then starting the process over
again isn’t all that time consuming. Plus, I have the added sense of
security that Drupal doesn’t let things like password resetting links
stay active forever!
So again, I agree that we need a reasonable default—24 hours is very
generous for the singular task that we’re trying to serve here, which
is, to my knowledge, to make the process for resetting your password
easier and more secure.
Lastly, about the patch itself: I noticed a couple <em> tags strewn
around in lines 38, 43, 54 and 72 (as well as a <strong> on 54). Until
we have a style guide for marking up usernames, should we really be
using HTML like this? It seems to be that it would be better to use a
span with a class of… say… “username” and let the themer
determine whether the username should be bold, italicized, red, all
caps and so on.*/
[1] http://drupal.org/node/19697#comment-25599
[2] http://drupal.org/node/18719#comment-25480
[3] http://drupal.org/node/18719#comment-25463
------------------------------------------------------------------------
April 2, 2005 - 21:29 : factoryjoe
One other quick question. How does this patch interact with distributed
authentication? If I'm logged in with a remote account and ask to reset
my password, what happens?
------------------------------------------------------------------------
April 3, 2005 - 10:22 : Dries
factoryjoe: you can't reset your password when you are logged in.
------------------------------------------------------------------------
April 3, 2005 - 14:03 : Jose A Reyero
About usability I've written this piece [4], so I really prefer to
discuss it on the forums...
That patch, I'll be cleaning it up a little bit, adding that last login
field, and maybe go for that 'reasonable default', which anyway is not
worth so much discussion....
[4] http://drupal.org/node/19918
------------------------------------------------------------------------
April 5, 2005 - 01:20 : Jose A Reyero
Attachment: http://drupal.org/files/issues/user_one_time_login_3.patch (20.26 KB)
Ok, lets try to make people happy, which will be good for my karma, I
hope so ;-)
So, changes:
- Added 'lastlogin' field to user table. Now there's one timestamp for
when an account is edited and another one for login. Of course, I've
also taken care of the user's admin page.
- Some small detail like help text for e-mail fields and that.
- Now it can be used also for accounts with admin approval.
- And yes, removed config option, 1 day time out for password recovery,
no time out for first login.
By the way, I've also patched db files for PostgreSQL, please someone
review it, I don't know too much about it.
The default e-mails may need better wording. Specially the one for
password recovery which just says 'You have requested a new password',
but I dont want users get too worried in case someone else has
requested that password and the old one that said something like 'This
is your new login information..' which may suggest it has been sent by
the admin maybe updating accounts..... Anyway, every site admin can
configure that email...
As an idea for the future or for someone else - I've had enough for now
with logging in 100 times to try this-, now that we can know when it is
the first login for an user, a nice welcome message or welcome screen
would be great :-) Or if someone wants to go for better security *nix
style, some message telling the user when last logged in wouldn't be
bad...
So... ?
------------------------------------------------------------------------
April 5, 2005 - 01:51 : factoryjoe
+1 lastlogin time.
Also, I just lost my admin password for WP and these are the emails I
received at each stage of the process (email titles in bold):
*[FactoryCity] Password Reset*
"Someone has asked to reset a password for the login this site
http://www.factorycity.net/blog [5]
Login: admin
To reset your password visit the following address, otherwise just
ignore this email and nothing will happen.
http://www.factorycity.net/blog/wp-login.php?action=resetpass&key=XXXXXf4xx…
"
*[FactoryCity] Your new password*
"
Login: admin
Password: XxXxXxX
http://www.factorycity.net/blog/wp-login.php
"
*[FactoryCity] Password Lost/Change*
"Password Lost and Changed for user: admin
"
[5] http://www.factorycity.net/blog
------------------------------------------------------------------------
April 6, 2005 - 20:39 : Dries
Good job. Some more remarks:
- Don't glue words together. Please use 'login' instead of
'lastlogin'.
- Write 'administrator' not 'admin'.
- You capitalized some random 'subjects' (eg. those in the form's help
text).
------------------------------------------------------------------------
April 7, 2005 - 17:30 : Jose A Reyero
Attachment: http://drupal.org/files/issues/user_one_time_login_4.patch (20.28 KB)
Replaced 'lastlogin' by 'login', 'admin' by 'administrator'
Dries, about the "You capitalized some random 'subjects'", no clue what
you are talking about... ?
------------------------------------------------------------------------
April 14, 2005 - 11:32 : jacusah
Will this patch be added to the core?
------------------------------------------------------------------------
April 15, 2005 - 20:08 : bloggator
I can't seem to get this patch to work without problems. Once I've
installed it, when I try to go to my account, I get a 404 error. I'm
running 4.52 and I tried both the file versions of user.module and
updates.inc mentioned in the patch and the latest versions in the cvs
and no dice. Everything seems to be fine with the database change and
the updates.inc file. When I add the new user.module, that's when
things go wonky.
------------------------------------------------------------------------
April 16, 2005 - 12:24 : Jose A Reyero
bloggator, this is not a patch for 4.5 !!!
------------------------------------------------------------------------
April 16, 2005 - 12:38 : Dries
One more round of revisions before this patch can go in:
- The patch no longer applies because of earlier changes.
- Don't add a column to the user overview page. The overview should
show when the user has been 'last seen' (last activity).
- From looking at the patch, it seems we are still e-mailing passwords?
- Some status messages could do with being made simpler -- not critical
at this point.
- Some of the new functions could do with having some minimal phpdoc.
Thanks.
------------------------------------------------------------------------
April 17, 2005 - 06:33 : bloggator
/bloggator, this is not a patch for 4.5 !!!
Thanks, Jose. I'm still getting used to how everything works around
here.
Best regards,
Jeff
1
0
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I've recently found myself incredibly impressed with the autopath
module, but I realize that there is an inherent scaleability issue
with how we do paths at the moment.
On every page load, the entire url_alias table is loaded into memory,
and enabling the autopath module on a site like Drupal.org with
thousands upon thousands of nodes, is just impractical. Does anyone
have an idea of how we could make the path system
easier to use for large sites?
- --
Adrian Rossouw
Drupal developer and Bryght Guy
http://drupal.org | http://bryght.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)
iD8DBQFCZPIagegMqdGlkasRAsYLAJ0TBqKVHU+3QL9J2TgdVar/r2LHqgCfbmWu
zINs3OqZ7AO3lHFYCIMDHOY=
=7IEu
-----END PGP SIGNATURE-----
5
8
As you might have seen, we occasionally get "too many connections"
problems on drupal.org. During peak hours the load of the machine
occasionally spikes to 10+. After such a burst, the load drops back
below 2-3. Most of the day, the load is just below 1 though.
I haven't investigated the problem yet but I figured I would let you
know. For a few days now, I tried to get hold of Kjartan who
administers the machine. It looks like he is traveling so I hope he
gets back to us shortly.
Know that we haven't properly configured the machine yet (it uses all
the default settings) so chances are we get a long way by properly
tuning the various configuration parameters. In fact, I don't even
know whether we have PHP cache/optimizing installed. Clearly, we will
have to look into that ASAP.
--
Dries Buytaert :: http://www.buytaert.net/
5
7
21 Apr '05
Bbcode / bug reports
email spam filtering does not "see" email addresses when they are NOT preceded by a word
age: 13 weeks 4 days
url: http://drupal.org/node/15654
Drupal / bug reports
Teaser problem
assigned: childhood
age: 1 day 15 hours
url: http://drupal.org/node/20843
Comment.module fails to automatically extract the subject from the body.
age: 2 days 19 hours
url: http://drupal.org/node/20736
UTF-8 node title gets truncated at wrong position
age: 5 days 21 hours
url: http://drupal.org/node/20537
database table "term_node" not updated when removing a term from a node under editing and submitting
age: 1 week 2 days
url: http://drupal.org/node/20315
Attached files can not be deleted
age: 1 week 2 days
url: http://drupal.org/node/20307
Reassigning a node to a different term does not work properly
age: 1 week 3 days
url: http://drupal.org/node/20278
4.6 aggregator showing/not interpreting HTML tags
age: 2 weeks 4 days
url: http://drupal.org/node/19874
Search ranking broken on pgsql
age: 3 weeks 1 day
url: http://drupal.org/node/19629
New submit error, non-admin user, postgresql database
assigned: adrian
age: 6 weeks 1 day
url: http://drupal.org/node/18552
When I delete a user, any forum in which s/he has commented also disappears.
assigned: Jill6q
age: 9 weeks 7 hours
url: http://drupal.org/node/17428
Published poll doesnt show up in poll block if in submission queue
age: 10 weeks 6 days
url: http://drupal.org/node/16671
Change to sesssion.inc violates UID database constraint
age: 13 weeks 4 days
url: http://drupal.org/node/15666
forum.module problem with postgresql v7.4.1
age: 14 weeks 2 days
url: http://drupal.org/node/15411
PHP 5 gives error when session table has no session
assigned: adschar
age: 14 weeks 2 days
url: http://drupal.org/node/15399
postgresql error
age: 15 weeks 2 hours
url: http://drupal.org/node/15175
Entering an empty title broke drupal
age: 22 weeks 2 days
url: http://drupal.org/node/12974
Argument NOT must be type boolean
age: 22 weeks 2 days
url: http://drupal.org/node/12950
Comments in approval queue still show up in tracker
age: 26 weeks 4 days
url: http://drupal.org/node/11647
Twin problems with comments
assigned: Junyor
age: 27 weeks 6 days
url: http://drupal.org/node/11366
Drupal / feature requests
Add a footer that is specific to a particular book, shown only on certain pages
age: 2 weeks 6 days
url: http://drupal.org/node/19757
moving pages en masse
age: 2 weeks 6 days
url: http://drupal.org/node/19754
Taxonomy module should use nodeapi 'load'
age: 6 weeks 7 hours
url: http://drupal.org/node/18631
Auto PHP memory maximisation
age: 8 weeks 2 days
url: http://drupal.org/node/17663
Don't reset existing password on request, prevent DoS password reset abuse
age: 10 weeks 2 days
url: http://drupal.org/node/16909
User info exposed to anonymous user
age: 20 weeks 5 days
url: http://drupal.org/node/13545
Allow named anchors to work without specifying full path to node
age: 1 year 21 weeks
url: http://drupal.org/node/4213
Drupal / support requests
Fatal error: Call to undefined function: pg_query() in /includes/database.pgsql.inc on line 104
age: 1 hour 8 min
url: http://drupal.org/node/20969
Fatal error: Unknown column 'headers' in 'field list' query
assigned: Eagle-i
age: 5 weeks 1 day
url: http://drupal.org/node/18928
Strange session behavior
age: 5 weeks 3 days
url: http://drupal.org/node/18821
user redirected to homepage when logging in
age: 6 weeks 5 days
url: http://drupal.org/node/18381
Problem with Forums
age: 14 weeks 4 days
url: http://drupal.org/node/15299
Drupal / tasks
atom.module working version to 4.5.0
assigned: hugoromano
age: 24 weeks 10 hours
url: http://drupal.org/node/12496
Consistency
assigned: stefan nagtegaal
age: 29 weeks 5 days
url: http://drupal.org/node/11045
Drupal.org maintenance / bug reports
www.drupal.org - Too many connections error.
age: 1 week 1 day
url: http://drupal.org/node/20370
Website search broken with some terms
age: 2 weeks 2 days
url: http://drupal.org/node/19956
drupaldocs.org and large fonts
age: 6 weeks 5 days
url: http://drupal.org/node/18367
Drupal.org print preview crashes Mozilla
age: 7 weeks 12 hours
url: http://drupal.org/node/18248
Konqueror problem
age: 10 weeks 2 days
url: http://drupal.org/node/16913
screenshots : page not found
age: 10 weeks 5 days
url: http://drupal.org/node/16752
Large Fonts problems
age: 10 weeks 6 days
url: http://drupal.org/node/16664
Drupal.org maintenance / feature requests
Plain text posting
age: 9 weeks 2 days
url: http://drupal.org/node/17335
Drupal.org maintenance / tasks
Prune the viewCVS display of Contrib repository
age: 1 year 47 weeks
url: http://drupal.org/node/1734
Event / bug reports
Events show in wrong month
age: 1 week 1 day
url: http://drupal.org/node/20378
Timezone improperly applied to new events
age: 1 week 4 days
url: http://drupal.org/node/20239
Convert node type on upgrade
assigned: crunchywelch
age: 1 week 4 days
url: http://drupal.org/node/20234
Events for March 31, 2005 not showing up in calendar view
age: 5 weeks 2 days
url: http://drupal.org/node/18885
search over fields.inc fields conceptual error
age: 24 weeks 6 days
url: http://drupal.org/node/12259
fields.inc screws up with multible multiselect fields
age: 24 weeks 6 days
url: http://drupal.org/node/12257
Still GMT/TZ issues with CVS
age: 25 weeks 6 days
url: http://drupal.org/node/11870
Time entry is GMT even when site default is not
age: 26 weeks 4 days
url: http://drupal.org/node/11630
Start Time of Event is NOT Preserved
age: 43 weeks 6 days
url: http://drupal.org/node/8565
Feature / bug reports
Menu item not showing
age: 28 weeks 5 days
url: http://drupal.org/node/11210
File / bug reports
segmentation fault related to filestore
age: 1 year 29 weeks
url: http://drupal.org/node/3001
Filestore / support requests
File store module - Overwriting Filename....Help needed
assigned: harishkm
age: 1 year 2 weeks
url: http://drupal.org/node/6827
Unserialize error at line 104
age: 1 year 9 weeks
url: http://drupal.org/node/5857
Filestore module- sql errors rectified
assigned: harishkm
age: 1 year 10 weeks
url: http://drupal.org/node/5619
Filestore Module Problems unaddressed
assigned: harishkm
age: 1 year 12 weeks
url: http://drupal.org/node/5365
Gallery / bug reports
no images displayed in drupal 4.6-RC but they are displayed by gallery2
age: 3 weeks 5 days
url: http://drupal.org/node/19467
Fatal Error: variable_get()
age: 4 weeks 3 days
url: http://drupal.org/node/19189
No Gallery Image Block
age: 4 weeks 6 days
url: http://drupal.org/node/19045
Mini applet can't find gallery at url /
age: 5 weeks 4 days
url: http://drupal.org/node/18785
Fatal error: Undefined class name 'galleryembed'
age: 8 weeks 1 day
url: http://drupal.org/node/17746
Gallery / support requests
Can't Embed Gallery into Drupal
age: 7 weeks 3 days
url: http://drupal.org/node/18029
Groups / bug reports
Drupal-4.4-rc breaks registration setups and groups.module
age: 1 year 5 weeks
url: http://drupal.org/node/6392
Image / bug reports
Cannot upload .jpgs
age: 7 weeks 3 days
url: http://drupal.org/node/18076
Wrongly formed html in image gallery
age: 8 weeks 6 days
url: http://drupal.org/node/17462
Image.Module does not know the correct filename
age: 22 weeks 1 day
url: http://drupal.org/node/13032
SAFE MODE Restriction in effect...
age: 25 weeks 6 days
url: http://drupal.org/node/11843
Uploading jpeg makes Imagemagick do high compression
age: 27 weeks 3 days
url: http://drupal.org/node/11445
Image module failing on Preview because of a blank node id
age: 29 weeks 4 days
url: http://drupal.org/node/11069
Similar problem with Directory Upload Slow
age: 29 weeks 4 days
url: http://drupal.org/node/11064
Members / bug reports
Suggested Menu Item empty
age: 7 hours 8 min
url: http://drupal.org/node/20940
Node (key)words / bug reports
Fatal error on logout - only when "cache" enabled
age: 1 week 5 days
url: http://drupal.org/node/20174
Node Aggregator / bug reports
Please update Node_Aggregator
age: 4 weeks 5 days
url: http://drupal.org/node/19096
Import doesn't like XML/RSS feeds with no Title element
age: 46 weeks 4 days
url: http://drupal.org/node/8128
Node Aggregator / feature requests
RSS items overwriting edited items
age: 44 weeks 5 days
url: http://drupal.org/node/8455
Notify / feature requests
Notify.module ignores the true submission queue
age: 1 year 25 weeks
url: http://drupal.org/node/3765
Online / support requests
Need Help
age: 8 weeks 6 days
url: http://drupal.org/node/17475
Pdfview / feature requests
Internationalization support for PDF
assigned: TheLibrarian
age: 1 year 3 weeks
url: http://drupal.org/node/6795
Project / bug reports
Date for latest is incorrect
age: 6 days 18 hours
url: http://drupal.org/node/20485
Invalid link to release files
age: 8 weeks 3 days
url: http://drupal.org/node/17625
blank page after install
age: 11 weeks 1 day
url: http://drupal.org/node/16575
"Page Not Found" when trying to view issues or add new release
age: 19 weeks 6 days
url: http://drupal.org/node/13815
Project pages display only title and description
age: 22 weeks 5 hours
url: http://drupal.org/node/13082
Fatal error: Cannot use string offset as an array in includes/tablesort.inc on line 113
assigned: publian
age: 28 weeks 6 days
url: http://drupal.org/node/11187
Can't create new project with issue tracker
age: 35 weeks 19 hours
url: http://drupal.org/node/10148
Project / support requests
Help with everything - nothing seems to work in the latest build
age: 21 weeks 2 days
url: http://drupal.org/node/13310
Taxonomy dhtml / bug reports
MySQL Error
age: 3 weeks 5 days
url: http://drupal.org/node/19413
javascrip downloads square.gif for every category
age: 9 weeks 1 day
url: http://drupal.org/node/17366
TrackBack / bug reports
Sends trackbacks for unpublished nodes
age: 12 weeks 6 hours
url: http://drupal.org/node/16239
trackback borks google and every other search engine
age: 24 weeks 2 days
url: http://drupal.org/node/12388
User experience / bug reports
user interface problem http://drupal.org/forum/1?from=25
age: 7 weeks 17 hours
url: http://drupal.org/node/18237
User experience / tasks
WorkFlow and Action Module
age: 8 weeks 5 days
url: http://drupal.org/node/17517
Weblink / bug reports
drupal special chars error
age: 3 days 8 hours
url: http://drupal.org/node/20687
1
0
Hello world,
thanks to Steven and James, I could upgrade the image.module on
drupal.org. As a result, the screenshot repository is back. In
addition, I've made a 'themes gallery' where we can showcase themes.
Adrian provided some screenshots. Check it out at:
http://drupal.org/image/tid/39
Also, the CVS tracker for the Drupal project should be fixed. We still
have to import the missing commit messages but at least you can keep
track of new changes.
--
Dries Buytaert :: http://www.buytaert.net/
1
0
[drupal-devel] [feature] Improve functionality of block generation for book module
by andremolnar 20 Apr '05
by andremolnar 20 Apr '05
20 Apr '05
Issue status update for http://drupal.org/node/14120
Project: Drupal
Version: cvs
Component: book.module
Category: feature requests
Priority: normal
Assigned to: andremolnar
Reported by: nysus
Updated by: andremolnar
Status: patch
It occurs to me, as I finally dive back into this, that the main issue
is that people want BOTH the new way of handling blocks (because of
greater flexibility of putting a book block anywhere they like) AND the
old way (because people have sites where they only want to book block to
show up in the current book's nodes - at the exclusion of all other
books).
At some point in the patch history, both options were available by
simply leaving book.module's own block generation code intact AND
implementing the new code that inserted items into the menu system and
let menu.module handle block creation.
This was deemed to be bad. (The argument being that there shouldn't be
two sections of code generating blocks for one module. Essentially
duplicating each other's efforts). The good news is that in an attempt
to address the issue I added a welcome configuration option to the
block.module - but it wasn't enough to REALLY solve the problem.
As menesis pointed out, the problem is that when the block generation
is handed off to the menu module, the menu module doesn't have any way
of knowing that the blocks it is generating based on the menu structure
are 'books' - and hence there is no way to know that a particular book's
navigation block should only show up in a particular book - it simply
becomes a block like any other block and must follow the same rules.
Quite frankly I think people should just suck up the fact that in order
to move forward and offer improved functionality some other
functionality is deprecated. But, I suspect that that argument won't
fly in this case - its just too big a paradigm shift *wink*.
All kidding aside, I am going to try and find a solution. In the mean
time a REAL issue was raised by factoryjoe when he noticed the blocks
could be wiped out simply by 'resetting' menu's in the menu admin.
This is NOT desired and should be reasonably easy to fix by telling
menu module not to dump menu's generated by modules during a 'reset'.
{And no joe I didn't mind you messing up the blocks on the demo site -
it raised a very valid problem}.
If anyone is interested I am going to be placing pre-patched files in
my sandbox - so if people like the new functionality despite losing
traditional book block functionality they can just download the
pre-patched files. And if people want to monkey with the code and
contribute solutions there is a place to do it.
http://cvs.drupal.org/viewcvs/drupal/contributions/sandbox/andremolnar/book…
More to come.
andre
andremolnar
Previous comments:
------------------------------------------------------------------------
December 9, 2004 - 06:12 : nysus
Attachment: http://drupal.org/files/issues/book_19.patch (4.85 KB)
Attached is a patch for the book module that does the following:
1) Allows book blocks to appear on any page at any time, not just when
a node from the book is being viewed.
2) Allows multiple book blocks to appear on the same page.
This functionality is achieved by the automatic creation of individual
blocks for each book when the book is created. Simply enable the
book's block to enjoy the benefits of 1 & 2 above. If the blocks are
not enabled, the blocks will appear only when a node from that block is
being viewed (the same way it works now).
------------------------------------------------------------------------
December 9, 2004 - 12:35 : andremolnar
Attachment: http://drupal.org/files/issues/book_19_1.patch (4.84 KB)
+1 This is great. A good many people have asked for something like
this, and I think its a nice solution. But in the end this isn't up to
me.
One minor error in the patch...
+ $result = db_query('SELECT n.title, b.block, b.nid FROM {book} b
INNER JOIN {node} n on n.nid = b.nid WHERE b.parent = 0');
b.block is not a valid field in this query. this updated patch removes
reference to it.
andre
------------------------------------------------------------------------
December 9, 2004 - 13:54 : nysus
Glad you like it and thanks for fixing that up. It was left over from
an older version of my patch.
------------------------------------------------------------------------
December 9, 2004 - 13:54 : andremolnar
Steve,
If I apply this patch, and I attempt to configure one of the newly
created blocks. I noticed that for some reason the block.module is
returning "true" at line 249 (of the block module)- and is creating a
form for module-specific configuration. But all that shows up on the
screen is the word "array".
Can you trace this back to see why - and maybe update the patch.
I can continue to test your changes - anything to help this patch make
it into core.
andre
------------------------------------------------------------------------
December 9, 2004 - 15:29 : nysus
Hmmm...probably because I tested my patch on my version of Drupal,
version 4.5.1. I'm having no problems. Are you using a cvs version of
Drupal to test. If so, I'll set up cvs on my site and track this down.
------------------------------------------------------------------------
December 9, 2004 - 18:53 : drumm
See http://drupal.org/node/12347 for information on how the block system
has been updated. When I saw that the elseif ($op == 'view') was taken
out I knew immedaitely that there was something weird about this patch.
------------------------------------------------------------------------
December 9, 2004 - 18:58 : nysus
OK, thanks for the tip. Sorry for the confusion. Still kind of new to
making open source contributions and it's easy for me to overlook some
obvious stuff like this. I'll fix this up when I get a chance.
------------------------------------------------------------------------
December 9, 2004 - 19:06 : Dries
Please do, because this being a new feature, it has no chance getting
committed to the DRUPAL-4-5 branch. The DRUPAL-4-5 branch is in
bugfix-mode. New features go into CVS HEAD.
------------------------------------------------------------------------
December 9, 2004 - 22:32 : Dries
There is quite a bit of duplicated code in the patch. Maybe it can be
simplified (using a function)? Either way, it is a little weird. I
haven't tried the path, and I'm not sure I understood the description.
It's somewhat vague. Is the book module exporting multiple blocks that
are nearly identical, yet have different display behavior? If so, why
not add a simple block configuration setting to the original book
block?
------------------------------------------------------------------------
December 10, 2004 - 02:51 : nysus
Dries,
Yes, there is some code that can be factored out and some general
cleaning up that can be done. It was a little tricky to write so I
left it kind of ragged around the edges until I'm sure there are no
bugs. It has worked very well on 4.5.1 but I obviously need to update
it to work with cvs. I'll be on that soon.
As far as what it does:
1) For every new book that a user creates, a new block is associated
with it. So if you create "Book A", "Book B", "Book C", you will get
three new blocks visible on the block administration page called "Book
A", "Book B", "Book C". The original "Book Navigation" block is still
there, too. The functionality of the "Book Navigation" block is not
affected at all by this patch.
2) If Book A's block is enabled, the block containing its menu will
appear not only when a node within Book A is viewed, but at all times
(unless the user suppresses it on certain pages with the "path"
feature). When any node is that is NOT in Book A is viewed, Book A's
menu still appears but it is fully collapsed. When a node that DOES
belong to Book A is viewed, Book A's Book menu expands accordingly.
3) The user can also enable Book B & C's block, and have their menus
appear in a block at all times as well.
4) If none of the book's blocks are enabled by the user, the module
will behave just as it did without the patch. That is, when the "Book
Navigation" block is enabled, the only time any book menu will appear
is when a book node is being viewed.
5) It's important to note (and this was the tricky part to write) that
if both the "Book Navigation" block is enabled and "Book A" is enabled,
they will play nice with each other and not do nasty things like create
the same book menu twice.
------------------------------------------------------------------------
December 10, 2004 - 05:51 : nysus
Attachment: http://drupal.org/files/issues/book_20.patch (5.37 KB)
Andre,
Attached is a new patch that will resolve the problem of the
block-specific stuff showing on the block configuration form.
Let me know if you spot any other bugs. If it looks good to you, I'll
go to work making the code look leaner and prettier.
------------------------------------------------------------------------
December 10, 2004 - 07:26 : nysus
Attachment: http://drupal.org/files/issues/book_21.patch (4 KB)
Dries, Andre:
Here is a new and improved streamlined version of the patch. Have a
look if you get a chance.
------------------------------------------------------------------------
December 10, 2004 - 08:11 : nysus
Attachment: http://drupal.org/files/issues/book_22.patch (4.15 KB)
Found a bug in the last version that would cause the block to jump to a
different location. I think this should do it. Everything appear to
work well (famous last words).
------------------------------------------------------------------------
December 10, 2004 - 14:49 : andremolnar
Steve: bugs appear to be gone, and I didn't run across any other
errors. This is functioning exactly as described.
everyone: I personally would encourage support for this functionality.
Book is a powerful navigation building tool in a site, not only with
its ability to move next and back through a hierarchy of pages - but
also its ability to build the appropriate navigation block without
further user intervention (unlike the admin features in the menu module
or taxonomy).
The most frequently cited complaint about the book module is its
inflexibility when it comes to when and where the block shows up. I
also frequently hear requests for the ability to show multiple book
blocks at the same time. Up until now the best alternatives suggested
required users to do a hack (e.g. build a custom block that calls such
and such a hook). Most abandon their request at that point because its
over their heads.
With this patch all those requests are covered and more. Now all books
can automatically have their own block and admins can easily decide when
and where each of those individual blocks show up (left right, up down)
and coupled with the new configuration features of the block module -
its very easy for admins to decide on which individual pages a block
will show up.
I would be interested what other have to say about this feature.
My only reservation (which is minor compared to the benefits of the
functionality offered) is that there is no way to turn this
functionality off. i.e. The default behaviour is to build individual
blocks for each book. If there could be a way to toggle this feature
on and off somewhere - it would be perfect. Still, AS IS - this is a
major improvement and offers great flexibility to admins and site
creators.
andre
------------------------------------------------------------------------
December 10, 2004 - 15:04 : Anonymous
Andre,
Thanks for the feedback on the usefulness of this module. Glad I could
pitch in and help.
I agree about the inability to turn the feature on/off and I was
thinking about that myself. I think it could easily be accomplished
by creating a checkbox in the "book navigation" block individual
configuration's settings. Call it "Enable individual book blocks."
When enabled, the individual book blocks will appear on the block
administration menu.
One question: Where would the state of this checkbox get saved? Has
Drupal moved away from serializing data in the data base?
------------------------------------------------------------------------
December 10, 2004 - 18:36 : Dries
I'm afraid that 'Enable individual book blocks.' is not
descriptive/clear at all. Are you suggesting a setting to toggle
between 'show block on all pages' and 'show block on book pages only'?
------------------------------------------------------------------------
December 10, 2004 - 19:45 : nysus
Dries,
No. Andre and I suggest a setting within the "Book Navigation"
cofiguration page, that would toggle whether or not individual books
appear on the list of all blocks on the block administration page.
Hence the name 'Enable individual book navigation blocks.' The help
text for this checkbox might read something like: "By default, a book's
navigation block is visible only when a page from that book is being
viewed. Check this box if you want more control over where and when an
book's navigation block is visible. You will then be able to control
the book's navigation block location and visibility settings on the
"admin/block" page."
Hope this makes it pretty clear.
------------------------------------------------------------------------
December 10, 2004 - 20:08 : Dries
I understand what you are trying to do, but not how you are trying to do
it, or how the setting is supposed to work. I guess I'll have to try it
when a new patch lands.
------------------------------------------------------------------------
December 11, 2004 - 09:52 : nysus
Attachment: http://drupal.org/files/issues/book_23.patch (5.02 KB)
Alright, fellas, I'm proud to unveil my crowning achievement in the open
source development world (no big deal to most of you guys but pretty
good for a hack like me).
Thanks for all the input so far. It's been helpful. I've streamlined
the heck out of it per Dries suggestion and I've created an option to
turn this functionality on an off per Andre's suggestion. Does this
look good to you guys? Anything else I have to fix or improve?
Thanks.
------------------------------------------------------------------------
December 11, 2004 - 13:02 : Dries
I tried the patch.
It works great but to me, the 'Give books their own block' settings
seems to be redundant. Why not export the current book navigation
block, along with an additional block for each book? Looks a lot
simpler to me.
I think I spotted a bug: orphaned book pages (or possibly book pages
that are unpublished) appear to be getting book navigation blocks.
------------------------------------------------------------------------
December 11, 2004 - 17:34 : nysus
I'll see if I can fix the bug. Might be tricky.
But I don't understand your recommendation to "export the current book
navigation block, along with an additional block for each book". Can
you expand on this thought?
------------------------------------------------------------------------
December 11, 2004 - 18:06 : nysus
Dries,
I am unable to duplicate the bug. I have three orphaned pages. I also
tried unpublishing some pages. But as far as I can tell, the patch
works as expected.
------------------------------------------------------------------------
December 11, 2004 - 19:00 : Dries
If you can't reproduce the problem, chances are my node/book table is
somewhat fubar.
As for the configuration option. I suggest removing it and to always
make these new blocks available on the /admin/block configuration
screen.
------------------------------------------------------------------------
December 11, 2004 - 19:52 : moshe weitzman
I am hoping that we maintain the option to keep the behavior where the
appropriate book block only shows up when its book page viewed. this is
a nice, tidy arrangement.
------------------------------------------------------------------------
December 11, 2004 - 20:03 : nysus
Yes, if you don't enable any of the individual book blocks, the a book's
block (i.e. navigation menu) will only appear when a page in a book is
viewed. In other words, you have the option to have the book block act
like this patch isn't even installed.
------------------------------------------------------------------------
December 11, 2004 - 20:54 : Dries
I guess I'll have to try the patch again, because I don't understand why
it works like this -- or at least, why it can't be made simpler.
------------------------------------------------------------------------
December 11, 2004 - 21:13 : nysus
Can you be more specific? Why it works like what?
------------------------------------------------------------------------
December 11, 2004 - 21:24 : nysus
Attachment: http://drupal.org/files/issues/book_24.patch (4.1 KB)
This patch reverses a change made in the last patch which required a
user to enable individual book block before they could enable any
individual book blocks.
------------------------------------------------------------------------
December 11, 2004 - 21:41 : andremolnar
As I mentioned earlier I am *fine* with either version of this patch as
long as it makes it to core.
But, as I said earlier, I clearly think the preference for admins would
be to have the option to enable or disable this functionality.
BTW - if this does make it in, I would be happy to create a Handbook
page that describes the new features - something like "how to build
robust site navigation using the book module". (on or after December
17th).
andre
------------------------------------------------------------------------
December 12, 2004 - 12:11 : Anonymous
I am not at all happy with these features. They are incosistant,
confusing and should use exising methods and UIs.
May main concern is the incosistancy: it is confusing, will require
extra attention with each core code change, adds extra logic to the
core, and is not re-useable.
so here are my questions:
1) why do we not use the menu system and apis to build and adminster
the trees? Saves code, does not add extra UIs, and gives users more
power.
2) why do we need that extra showing logic? a book block should not get
exeptional if clauses, it should use the existing path setting methods
on block admin. extra logic is confusing for administrators (hey, i set
the path so that the book-block should show up here, but it does not,
why?) we should really not provide extra logic in the block hook, but
should rather use default settings in block admin (the book could fill
the bookblock sql cells with custom paths, for example)
3) we should avoid extra UIs. We already have far too much, and far too
much different ones. Please rather improve the block admin, than add new
separate interfaces.
4) why do book blocks need al these expeptions in the first place? If
they are so exeptional, we could consider not using blocks, but
something else, like in-line book layout (pages with the index etc)
5) why did you not choose for a general, standard, block gerneation
API? that way modules, such as taxonomy, image gallery, weblinks,
article, etc can reuse it and introduce block gernation.
All that sayd, i like the idea of this functionality, but i fear for a
great useability downfall if we start introducing all sorts of
exeptions for all sorts of modules. Because now chances are very big
that taxonomy, image gallery etc will need to introduce other UIs,
other code, new methods and new documentation, if they too want some
sort of better block handling.
so a -1 from me.
------------------------------------------------------------------------
December 12, 2004 - 12:12 : Bèr Kessels
^^--- That was me (bèr kessels) forgot to log in.....
------------------------------------------------------------------------
December 12, 2004 - 12:34 : nysus
I'm not going to pretend I can argue if my patch does or does not fit
well into Drupal's larger architecture. My motivation for writing it
is that I had an immediate need to create an easy way to make it easy
for users to create menus.
I'll let others decide whether or not the patch has merit from the big
picture perspective. But if it doesn't, why not just use it for its
immediate benefits and then throw it away when something better comes
along?
------------------------------------------------------------------------
December 12, 2004 - 13:01 : Dries
My summary is this: +1 on the functionality, -1 on the implementation.
The code itself is good, but the usability/integration is not.
------------------------------------------------------------------------
December 12, 2004 - 13:13 : nysus
When you say "usability" is that from the user's perspective or the code
maintainers? I'm guessing it's the latter but I'm unsure.
What about the idea of using the patch until a more permanent solution
comes along? Yes, it's much better to live in a home with indoor
plumbing but why not use the outhouse while you wait for a toilet to
get installed? Or are there other considerations I'm overlooking that
would make this a bad idea?
------------------------------------------------------------------------
December 12, 2004 - 13:20 : Goba
nysus it is just generally against the Drupal philosophy to add
improperly implemented functionality until something better comes
along. There even used to be ocassions in Drupal releases, when some
functionality was removed (not fixed) for a release, because its
implementation was not adequate.
------------------------------------------------------------------------
December 12, 2004 - 13:55 : Dries
Usability for the user. The extra setting on the block configuration
page is both confusing and awkward. I don't understand why things must
be configured/enabled that way (see my and Ber's previous comments on
this issue).
------------------------------------------------------------------------
December 12, 2004 - 14:03 : nysus
Well, just for the record, I reversed that functionality per your
suggestion and uploaded the patch. The indiviudal book blocks now
appear automatically.
------------------------------------------------------------------------
December 13, 2004 - 13:56 : Bèr Kessels
Hi,
I am sure you can make not only simpler, but better usefull for admins
and users.
All you need to do is use the menus for this. i.e. make a menu entry
for each book page.
For each book make a menu on level 0, without a parent. that way they
become a seoprate menu, each with an own block.
it saves code, makes things more consistent, and most important, uses
drupal functionality where it should.
------------------------------------------------------------------------
December 13, 2004 - 14:50 : nysus
Ber,
Are you suggesting that for every single book page that a menu item be
created? That's really not practical. That was my main motivation
for writing this patch: to make it easy to put links, not necessarily
related to one another, into a block. Any more pages than 10 and the
sheer tedium of the job would prevent anyone from ever doing that. The
menu.module is great, but adding new menu items is far from quick and
painless. I just added about 10 to my menu for different taxonomies on
my site and it wasn't fun.
Plus, if you do as you suggest, there is also the problem of the book
showing up twice. It will be generated by the menu and then it will be
generated again by the book module which is programmed to design a
block. You'd have to put some logic in the book.module _block hook to
try to anticipate if a user has enabled a book in the menu. That
wouldn't be pretty code.
I'm all for putting automatic generation of book navigation blocks as
part of the menu module. It does make more sense to have it there.
But it forces me to ask the question: "Then why do we currently have
code in the book module that generates a menu? Shouldn't that belong
in the menu.module, too?"
------------------------------------------------------------------------
December 13, 2004 - 22:31 : killes(a)www.drop.org
I think what Ber is trying to say is that you can write a contrib module
that monitors the changes to the book table and creates menu items
automatically. nodeapi is your friend. I would also prefer this
solution.
------------------------------------------------------------------------
December 15, 2004 - 16:39 : Anonymous
""Then why do we currently have code in the book module that generates a
menu? Shouldn't that belong in the menu.module, too?"
"
Because it's old code. It would be nice if book.module generated this
block using its _menu hook, so that the admin would have a few options
in terms of configuration.
"Plus, if you do as you suggest, there is also the problem of the book
showing up twice. It will be generated by the menu and then it will be
generated again by the book module which is programmed to design a
block.
"
No. The old code which manually builds a block in book.module would be
removed. Book blocks would only be generated by the menu.
This would also have the added benefit of allow the administrator to
easily place a book in an appropriate spot in the menu tree, while
still allowing the possibility of displaying it in a separate block.
Because of menu caching, I don't expect a large performance hit for
creating the menu items.
"That was my main motivation for writing this patch: to make it easy to
put links, not necessarily related to one another, into a block.
"
It sounds like instead of (mis)using book.module, your time would be
better spent in a usability improvement to menu.module so it's easier
to do this.
------------------------------------------------------------------------
December 16, 2004 - 06:55 : nysus
Thanks for the feedback and input. I appreciate it. However, I would
also appreciate if you took more care to avoid the condescending tone
in your post:
"It sounds like instead of (mis)using book.module, your time would be
better spent in a usability improvement to menu.module so it's easier
to do this.
"
It's really quite unnecessary and off-putting. Though it won't stop me
from contributing to Drupal in the future, I'm sure others would be
really turned off by such a patronizing comment and it could dissuade
them. I'd like the Drupal community to be a welcoming and friendly
place that will inspire people to contribute, not discourage them.
Thanks.
------------------------------------------------------------------------
December 16, 2004 - 10:07 : Bèr Kessels
nyesus,
Please do not start /that/ discussion here. :) Drupal community is
known fo being direct, maybe because of the big number of
western-Europeans attending, maybe because of other reasons.
No-one commented that you are wasting your time. But the commentor was
telling you somthing likethis:
"If you would follow the previous sugeestions, your added feature would
be much better appreciated, and will probably work much better for you
too".
He/she was by no means telling you to stop your silly coding, or
anything in that line. He/She only wanted to show you the obvious and
better direction.
We often deal with issues that add some feature, and a complete new UI,
because the author does not like, or cannot use the existing UIs and
features. This is nogt good, because if that same author would have
spend his/her time on improving that existing functionality or UI
(improving is not neccesarily the same as extending!!) that code and
time would benefit all much better.
Thats what the commentor tried to say. And so is it here: If you
dislike the way the books handle the blocks, and if you do not want to
use the menu, because you do not like its UI, then do not add another
UI and more features, but rather merge these, and improve the parts (in
the menu) you dislike.
------------------------------------------------------------------------
December 16, 2004 - 10:35 : Dries
We can worry about the menu integration later. Let's focus on the new
option's usability/interaction design first.
------------------------------------------------------------------------
December 16, 2004 - 14:51 : nysus
I understand what the commenter was saying and like I said, I appreciate
and understand it. I'm not upset and I'm not looking for an argument, I
was just being direct as well. :) As part of the Drupal community
(albeit a minor player), all I'm saying is that I would like to see
folks not have a tin ear to the humanity in all of us. It will help
make Drupal an even stronger community and attract even more talented
developers.
Human interaction is part of the development process. Whether we like
it or not, we must cope and deal with it.
------------------------------------------------------------------------
December 18, 2004 - 09:54 : Dries
I thought some more about this and am starting to believe that
integration with the menu system should take priority. Here are common
cool scenario's:
I want to create a separate navigation block for the 'Drupal handbook'.
I want to add a menu item called 'handbook' to the user block. That
is, I want the book navigation to be part of the existing user
navigation block.
I want to add a menu item called 'handbook' to the top-level navigation
menu.
How would that work from a user's point of view? What do I have to
click and where to configure this?
------------------------------------------------------------------------
December 21, 2004 - 18:47 : andremolnar
I was actually thinking about the same thing last night (must have been
something in the arctic air).
/
2. I want to add a menu item called 'handbook' to the user block. That
is, I want the book navigation to be part of the existing user
navigation block.
3. I want to add a menu item called 'handbook' to the top-level
navigation menu.
/
This is already possible (to a certain extent) with the current
Book.module and Menu.module - A 'Books' menu item is created in the
user navigation by having the Book.module enabled. Menu.module allows
you to enable/disable this menu item. Menu.module also allows you to
re-name this menu item. But, this only helps if you only intend to
have 1 book (or else the name 'Handbook' is misleading if the user
finds more than 1 book listed). - so this isn't good enough (or is it).
/1. I want to create a separate navigation block for the 'Drupal
handbook'./
This is what I was trying to figure out. Not just this, but a
different way to do what Nysus was attempting. i.e. create a menu
block for each and every book that is created. There is a way to write
code that would (re)build a 'custom menu' on every add/edit/update to a
book page - or book outline update. Custom menu's automatically have a
block created for them. But, this I think would be a misleading use of
the 'custom' menu - as the menu would not be custom if they are a part
of core.
So, I would think that two new constants could be added to the menu.inc
file - MENU_BOOK_MENU - and MENU_BOOK_ITEM - each would behave as custom
menu's, but would be reserved for books. These menu types should NOT
show up in the Menu.module administration - because the administration
of the book_menu items would be done by administering the book itself
(adding an item, removing an item, moving an item up/down in the
hierarchy, assigning parents etc.).
However, the blocks that the book_menus would create would show up in
the block administration (so users could enable/disable each block -
and decide where on the site they show up). The existing book block
logic would be removed.
So the logic would be:
If a creates a book in the book administration page - the Book.module
automatically creates a new MENU_BOOK_MENU
Any time a user adds to or updates or delets a book page - the entire
book menu is deleted and recreated based on the hierarchy defined by
the book itself.
The blocks for each book would show up in block administration.
Any thoughts - I know that this doesn't exactly address points 1 and 2
- but it could act as a first step.
Is this approach a bad idea? It would add special conditions for the
proposed book menu's - but books would be a special case.
Even if people don't like this solution, maybe it will give someone a
better idea. I'd love to hear them.
andre
------------------------------------------------------------------------
December 21, 2004 - 22:55 : Boris Mann
+1 to this andre
I had promised to put down my thoughts on this matter, as it relates to
1) primary and secondary links and how they are managed and 2)
auto-generation of primary/secondary navigation based on book outlines
So, for 1), we currently have functional-but-not-very-usable plain
textfields to manage primary and secondary links. I would like to see
menu.module used to control all navigation links, whether it is the
navigation block or primary/secondary links. What is needed:
a) default system menus labelled "primary" and "secondary" which would
store; this is where modules could insert navigation
b) support for full URLs (e.g. http://myexternaldomain.com) instead of
just path
2) if we got 1 working, and andre does his book menus, this could get
taken care of automatically. Basically, for brochureware/business/etc.
sites that have static content, you could have a root book as one of
the primary navigation links, and then the secondary links are
generated automatically.
------------------------------------------------------------------------
December 22, 2004 - 21:02 : Dries
I agree with Andre that the book module's integration with the menu
system needs to be worked on. I support any effort that makes it
easier to structure pages and that makes it easy to link pages/nodes
from within a menu.
However, I'm opposed to putting book module specific names in the menu
system (eg. MENU_BOOK_MENU and MENU_BOOK_ITEM). I can imagine a
handful of modules that want to maintain a menu tree (or part thereof)
so I'm in favor of generic names.
I'd have to read up on the menu system code, but last time I checked
there was a MENU_MODIFIABLE_BY_ADMIN flag. You could choose not to set
this flag for the menu items generated by the book module. Maybe it's
already possible to implement to implement Andre's suggestion without
having to modify/extend the menu system.
Are you exploring this path?
------------------------------------------------------------------------
December 24, 2004 - 10:01 : andremolnar
I've had a few spare hours to work on this.
I've started to cobble together a solution - but in doing so I
discovered a bug in the menu module (for which I will submit a seperate
issue - if one doesn't already exist).
The principal I suggested works. I added some code to the book module
that creates custom menu's (MENU_CUSTOM_MENU with MENU_CUSTOM_ITEMs)
for each Book that exists in a site. This is just as a proof of
concept - I chose this menu type to start with because they
automatically have a block created for them in admin/block (which is
ultimatly the functionality we want).
I ran a test and the menus are created as expected - the blocks are
also created. But when I tested the menu blocks by enabling them I ran
into a problem.
It seems as though the menu system does not expand/explode sub menu
items if the node type is book. I'm not sure why this is, and I
haven't traced the source code yet - I thought I would ask if anyone
has intimate knowledge of the menu system if they can point me in the
right direction.
No patch attached because until that problem is fixed this proposed
change won't fly :(
andre
------------------------------------------------------------------------
December 24, 2004 - 11:11 : Dries
Just a wild guess: maybe it doesn't work because the book module's URI
scheme is not hierarchical?
------------------------------------------------------------------------
January 7, 2005 - 10:45 : andremolnar
Attachment: http://drupal.org/files/issues/book_module_1.patch (5.1 KB)
I finally took some time out to do some work on this. As mentioned in a
post to dev the problem I was having with menus not
expanding/contracting properly was some crud in my database. Once that
was cleared up my changes worked fine.
I am attaching a patch for comments and for the brave willing to give
it a test drive.
History: This thread and http://drupal.org/node/15198 and
http://drupal.org/node/15153
node/15198 has a patch that is required for this patch to work.
What this does:
Pretty straight forward.
Any time a user adds/updates/deletes book or book pages (including via
outline) - a function is called to create a new menu for each book.
Any existing book menus are wiped out and then the new book menus are
inserted - and the system menu is rebuilt to reflect the changes.
The menus created consist of type MENU_MODULE_MENU and
MENU_MODULE_ITEM. These menus show up in the menu/admin page so that
admins can be aware of them, but the menu types are not editable via
menu/admin (all changes are handled by the book module).
Since the menus are in the menu table, the menu_block() hook handles
the creation of the blocks for each of them. The blocks can then be
administered in the usual ways via the block/admin interface.
KNOWN ISSUE: (suggested solutions welcome)
Since the menu table is updated on every change to books - the blocks
associated with the menus are also recreated with default settings
(i.e. disabled, and with no path or throttle settings) requiring a user
to take an extra step and re-configure the book blocks for viewing on
their site. I think this is unacceptable. For the casual user of the
book module that only has a single book that doesn't change often, this
would not be a big deal. But, if anyone wanted to make use of book
module to handle dynamic site navigation this would create more work
than it saves.
Looking forward:
If the block generation issue can be solved in a tidy way, this patch
could allow users to use book to handle all their site navigation
generation needs.
Also, this patch could allow for the removal of a large chunk of code
in the book module dedicated to building its own block via the block
system. I left it there for now because I suppose there may be those
out there that want to have book.module work the way book.module always
worked (only show the book block when viewing a book page). Even so,
since each book would have its own block, an admin could specify when
and where the block shows via admin/block.
I would appreciate feedback. If nothing else I hope this gives someone
some new ideas.
I'll continue to work on the block regeneration issue.
andre
------------------------------------------------------------------------
January 7, 2005 - 10:47 : andremolnar
Attachment: http://drupal.org/files/issues/book_module_2.patch (4.98 KB)
sorry - here's a patch with prefered line breaks.
andre
------------------------------------------------------------------------
January 7, 2005 - 16:47 : nysus
Andre,
I've been meaning to give this a throrough look when I get a chance.
Hopefully this weekend.
---Steve
------------------------------------------------------------------------
January 20, 2005 - 02:02 : andremolnar
Attachment: http://drupal.org/files/issues/book_module_3.patch (6.66 KB)
Here is an updated patch.
Same comments as followup 51 - except that the known issue has been
resolved.
This changes book module so that any action taken on a book, including
adding new books or book pages will create a menu in the menu system
for that book - and thus create blocks for those menus that can be
administered in the usual ways.
This is my first attempt at a major patch to core - comments are
welcome
I will be happy to update documentation once revisions to the code have
been taken care of.
andre
------------------------------------------------------------------------
January 20, 2005 - 02:53 : andremolnar
Attachment: http://drupal.org/files/issues/book_module_4.patch (6.17 KB)
Sorry - would be nice if I removed some debugging code - ;-)
also previous patch also would have introduced a need for a change to
the menu table that isn't required yet.
This patch is a correct version
andre
------------------------------------------------------------------------
January 20, 2005 - 19:16 : Dries
The menu is recreated every time a book page is updated. I believe this
is unwanted behavior because it requires the book block to be
reconfigured upon every update.
------------------------------------------------------------------------
January 20, 2005 - 19:32 : andremolnar
The menu is indeed re-created with every book page edit - because if the
book page title changes the menu needs to reflect this change.
The book block re-configuration is not required by the user. The code
stores this information and re-sets the block settings.
I will see if I can test for 'title change' before forcing the re-build
of the menu - It would save a bit of processing power.
andre
------------------------------------------------------------------------
January 20, 2005 - 20:21 : andremolnar
Took another at this - and it turns out that I already have a check to
see if title or weight change (rather - they already existed in the
module and I used them).
andre
------------------------------------------------------------------------
January 24, 2005 - 02:22 : andremolnar
Attachment: http://drupal.org/files/issues/book_module_6.patch (7.42 KB)
Feedback received indicated that the original block generation code in
this module should be removed - since this patch hands block generation
off to the menu and block system.
This patch removes that code. BUT - It should be noted, that in order
to have book blocks only show up on pages of node type book - an
additional patch found at http://drupal.org/node/16074 is required.
andre
------------------------------------------------------------------------
January 24, 2005 - 18:36 : andremolnar
Attachment: http://drupal.org/files/issues/book_module_7.patch (7.43 KB)
Yet another patch:
Brings this patch in line with - http://drupal.org/node/16074 (i.e. the
column name change in {block} table)
andre
------------------------------------------------------------------------
January 25, 2005 - 18:56 : andremolnar
Attachment: http://drupal.org/files/issues/book_module_8.patch (7.53 KB)
And another minor patch to cover coding style and variable names.
Just to bring everyone up to speed:
1) Each book and its children pages have a menu created for them (on
any add, edit, delete to a book or book page).
2) Those book menus automatically have a block created for them via
menu_block hook.
3) Block settings are preserved any time there is a change to a book
that requires the menu and its associated block to be re-built.
4) book_block hook is removed because it is redundant.
5) With the addition of the configuration option in blocks to only show
blocks on certain node types (see: http://drupal.org/node/16074)
administrators have full control over when and where a book block shows
up (including maintaining the status quo of only having book blocks show
up on book pages).
6) This patch does require http://drupal.org/node/15198
andre
------------------------------------------------------------------------
January 25, 2005 - 21:49 : Boris Mann
+1!!
Book-based automatic navigation for corporate/brochureware sites!
Fantastic! Chris Messina, get in here and add a +1 to this.
------------------------------------------------------------------------
January 25, 2005 - 22:26 : Dries
Boris, have you tested this patch extensively, or are you just giving
this +1 based on what you've read? If you want to see this committed,
take the time to review/test it.
------------------------------------------------------------------------
January 26, 2005 - 05:45 : andremolnar
Yes - please - testers are welcome.
Nysus (aka Steve) has already agreed to give this a test drive when he
had a spare moment. I hope for some feedback in the near future. But
if you have a moment Borris I would appreciate it.
OR - If someone would just like to demo this:
http://s92258948.onlinehome.us/greenbeach/
UN: drupaldev PW: drupaldev
Don't mind the mess - it is my test environment and there is a lot of
junk data and settings floating around - but this patch is running
there along with the additional block configuration settings.
andre
------------------------------------------------------------------------
January 31, 2005 - 19:12 : Boris Mann
You got me, Dries...
I have since spent time testing the module on andre's site, and it does
everything I can foresee needing at this point, with no functional
errors.
This functionality alone will make creating standalone sites that are
composed of mainly static pages very, very simple.
------------------------------------------------------------------------
February 3, 2005 - 08:58 : Dries
The demo-site appears to be down. Bummer.
------------------------------------------------------------------------
February 3, 2005 - 22:59 : andremolnar
Attachment: http://drupal.org/files/issues/book_module_9.patch (7.58 KB)
Sorry - demo site was down while database was being cleaned and latest
CVS modules were being installed (general site maintenence for
testing).
The site is up now with a fresh database and install of Drupal CVS.
UN drupaldev PW drupaldev (has access to manage blocks, books, and
menus to see this patch in action)
Attached is an updated patch to make use of db_rewrite_sql (instead of
node_rewrite_sql). Also fixes a minor bug that appeared if you were
creating the first book in the site.
andre
------------------------------------------------------------------------
February 3, 2005 - 23:13 : Anonymous
This patch seems to modify the blocks and menu tables directly from
within book.module. (in the new book_build_menu_module_menu function)
This sets a terrible precedent for other modules. IMO, these tables
should be modified by functions defined within the block module or menu
module (or menu.inc). Modifying the tables randomly throughout many
other points in the code makes changes to these tables difficult and
makes troubleshooting problems much trickier. Let's not sacrafice code
organization for the sake of making the patch as small as possible.
------------------------------------------------------------------------
February 4, 2005 - 06:25 : andremolnar
With regard to the blocks - the block module is doing all the block
building (with the call to _block_rehash) - the only thing that this
code does is preserve block settings (the select sql) before the menu
is updated - and then restores those block settings (with the update
sql).
"Modifying the tables randomly throughout...
"
While I appreciate the point you are making, I would hesitate to call
this random. After all the menu items being added to the menu table
'belong' to book module.
There is a little bit of a discussion about the best way to go about
doing this sort of thing (i.e. allowing modules to build their own
menus) over at http://drupal.org/node/15198 - which includes the patch
required to make this patch work. Right now there is no existing hook
or method of doing this. hook_menu does not have anything in place as
of yet.
I have suggested the introduction of a new hook (name yet to be
determined) that would be in charge of these menu_module_menu type
inserts. But, I haven't heard any feedback on whether that is a good
idea - or if anyone has a better idea.
Anyone else have thoughts on the approach taken here or suggestions for
a different/better approach? I'm willing to write the code, I would
just like a little bit of input.
andre
------------------------------------------------------------------------
February 4, 2005 - 06:46 : Dries
I added a test page and all book blocks dissapeared? I also got an SQL
error (check your watchdog messages) upon pressing the 'Submit' button.
------------------------------------------------------------------------
February 5, 2005 - 07:31 : Steven
Doesn't this patch still suffer from the inability to show the menu
block only on the relevant book(s)? I know we can now restrict blocks
per node type, but that still doesn't help with multiple books.
By the way, big code style violation:
$menu_block_settings[$menu_block->path][weight]
"weight" should be surrounded by quotes. Right now it is being treated
as an undefined constant. This is not a good idea. Other than that
there's a bunch of missing spaces... if the code looks cramped, it
usually violates the coding style.
+ $menu_block_settings[$result->path] =
array('status'=>$result->status, 'weight'=>$result->weight,
'region'=>$result->region, 'throttle'=>$result->throttle,
'visibility'=>$result->visibility, 'pages'=>$result->pages,
'types'=>$result->types);
+ db_query('DELETE FROM {menu} WHERE type=%d OR type=%d',
MENU_MODULE_MENU | MENU_MODIFIED_BY_MODULE, MENU_MODULE_ITEM |
MENU_MODIFIED_BY_MODULE);
//restore menu_module_menu block settings
There are several more examples. Please pay attention to this. It's
incredibly annoying to have to fix it later, and it makes the code
harder to read as you cannot make certain assumptions about how it is
layed out.
------------------------------------------------------------------------
February 5, 2005 - 22:56 : andremolnar
I am fixing up the code as we speak.
I actually made a bigger faux pas by not escaping my INSERT sql string
properly - (There is a quick fix, but I understand 'addslashes' is not
good enough for drupal ;-). (Thank you to Dries for catching this right
away on his test of the demo site).
As for multiple books - you actually have more flexibility to enable as
many book menus as you like - not only based on type but also by path.
e.g. Could allow for:
drupal.org/handbook (with some general book menu blocks enabled)
drupal.org/handbook/developer (with developer book menu blocks enabled)
drupal.org/handbook/developer/theme (with theme developer book menu
blocks enabled)
etc. (the sky is the limit).
I will resubmit a patch with all of the coding style fixes requested -
and I will be more careful with the coding style in the future.
andre
------------------------------------------------------------------------
February 6, 2005 - 00:05 : andremolnar
Attachment: http://drupal.org/files/issues/book_module_10.patch (7.7 KB)
Updated Patch,
Implemented code style improvements as per Steven.
Fixed unescaped sql INSERT string (turns out that addslashes is more
than enough in this situation, because the 'title' string has already
been valided and properly inserted into the database before any of this
code ever runs - i.e. this isn't coming directly from user input, but
rather from the drupal database).
Demo site is once again live and welcomes all testers (Thank you again
to those that have already tested this out).
andre
------------------------------------------------------------------------
March 13, 2005 - 22:11 : killes(a)www.drop.org
Still applies.
Andre: Please create patches from the Drupal root directory.
------------------------------------------------------------------------
March 15, 2005 - 10:42 : Paul Iliano
This is exactly the functionality I have been waiting for. As I can see
many uses for showing a book menu on all pages, I never really
understood why book menus could only be shown on book pages.
I'm still at DP 4.5, but as soon as 4.6 is out I will install and try
it out. I'd love to see this kind of functionality
in core!
------------------------------------------------------------------------
March 18, 2005 - 07:43 : Steven
Your visibility 'fix' requires that the entire handbook has clean,
hierarchical URL aliasing. This is often not the case.
I understand that for sites where the book is used to organise the main
structure, you might want the block visible everywhere. But it is not
good for sites where this isn't the case, like Drupal.org itself.
------------------------------------------------------------------------
April 3, 2005 - 17:12 : Paul Iliano
As Steven says, for some type of sites (like perhaps drupal.org) it
could not be desirable to show book menus on all pages. But for other
sites it could be very much wanted.
It seems to me a good solution would be to let administrators simply
choose which node types they want book menus to appear on, like we
currently can opt to switch off author/date info per node type.
------------------------------------------------------------------------
April 3, 2005 - 22:49 : factoryjoe
In general, +1 on the auto-updating aspect of this. It does seem to be a
welcome improvement to the book system, though I question Boris’
assertion that this is really a good solution for “brochure-ware”
sites.
For one thing, when I design a site, no matter who I am, I highly doubt
that I would think “ah ha, make a book to contain the pages of my
site... and the navigation will be generated from it!” While the
functionality is pretty much spot-on, the name is not. So what we end
up with is an overloaded book module or worse, a misnamed module.
I also wonder about moving the book-generated menus around. For
example, the way I would like this patch to work is for there to be
top-level “chapters” (like sections of a website) and then book
pages within each section, representing the individual pages. I would
like to be able to put the “chapters” horizontally in the header of
my site (like on OurMedia.org [1]) and then have the pages show up in
the sidebar when you navigate to each section. I guess I just wonder
about the flexibility of this approach and whether or not it will serve
the functional needs that Boris thinks it might. What if I want the page
titles to be different from the menu link titles? It doesn't seem that
this is something I can control with the current partial menu
integration.
Anyway, with a specific eyes towards improving book navigation, I do
agree that it functionally looks pretty good.
I did find one serious bug and one major usability issue. It has to do
with integration with the menu system. Andre will hate me for this, but
I clicked through the “reset menus” command in the menu system.
Doing so wiped out all the book navigation menus. If these menu items
were really “locked”, then why were the book menu items wiped out?
How do I restore them?
As for the usability issue, it is unclear to me where I would go
reorganize my book-generated navigation menus. I looked in menus, where
it should logically exist, but everything was locked. Does this mean I
have to go to each individual node to sort my content?
[1] http://www.ourmedia.org/
------------------------------------------------------------------------
April 5, 2005 - 23:24 : menesis
>From what i see on demo site, there is no way to configure the site to
act as it does now in case of multiple books - show book navigation
block only for current book. I could only configure a block to show up
on any book page, but it is shown while viewing other books, too.
IMHO the preferred way to modify a module is to introduce new
functionality while keeping it's behavior without any extra
configuration. In this case, when creating a new book, a menu would be
created, the block enabled, and configured to show up only on pages of
that book.
Visibility by path will not work, because all book pages have url like
node/1653 by default, need a block setting for that (true="Show on any
book's pages", false="Show only on current book's pages", false by
default). The tricky part is that menu module, which provides the block
and it's configuration, does not know which book is being displayed.
------------------------------------------------------------------------
April 17, 2005 - 21:38 : bobo
For those of us without linux, can someone please add the latest patch
to the Drupal 4.5 book.module. I would like to use it asap for a
website I'm creating for an animal welfare group. This is really cool,
I hope you guys find a way to get it put into the latest version of
Drupal. It should be a core peice of code. It seems strange to me that
an option to click wether or not you want a book to display on the main
page doesn't exist...
Bobo
------------------------------------------------------------------------
April 18, 2005 - 17:23 : bomarmonk
This functionality seems crucial to completing the organizational
website that I have developed with Drupal. Yet, I've applied the
book.module and menu.inc patches to Drupal 4.6 and can't seem to get by
book blocks to display on the front page. Why not? Is it because I'm
using the front_page.module? I'm still using a themed drupal page for
the front page. I definitely need help with this.
1
0
I just wrote myself a custom module that acts similar to
codefilter.module, except that it can syntax highlight any type of code
(at least any type of code that VIM knows how to highlight). The module
calls a small perl script in the module's directory to accomplish this.
I was wondering, would it be best to release this as I knew module
(vimfilter.module) or modify codefilter.module? The addition of the perl
script will make configuration harder for novices (escpecially since they
will need to install a Perl module or two), but it seems to me a very
useful thing to be able to highlight any type of code, not just php. For
a sample, here's the highlighting in action:
http://www.bluefeet.net/script_vimcolor
I'll tone the script down so that all someone needs to do is install
Text::VimColor and chmod the script.
Aran
1
0
Ok I uploaded the archive module to CVS.
http://cvs.drupal.org/viewcvs/drupal/contributions/modules/archive/
And I have it running on my new Drupal 4.6 site.
http://www.codemonkeyx.net/
It seems to be working pretty well at the moment, and seeing as it is
not a very complex module even the largest problem with it will not
take too long to fix. :) So please download it and give it a try.
3
2
> I personally like the 'third person' approach, but it should be far
> more nice if all helptexts of drupal were written from the same
> perspective..
> Currently the way helptexts are written is a little of both worlds and
> not in a very nice way.. It would be nice if we could get this
> consistent.
I am willing to do the translation/conversion of all those help texts in Core. What is the suggested format to do these changes in? From experience in the past, I learned that my diff program that runs on Windows, my patches aren't in the same format as the rest of the patches submitted, so I can post a plain text file with the changed text, if there isn't anyone else with the right tools who'd take this task.
Regards,
Kobus
4
3