Closed (fixed)
Project:
Drupal core
Component:
theme system
Priority:
Normal
Category:
Feature request
Assigned:
Reporter:
Created:
18 Apr 2005 at 23:42 UTC
Updated:
8 Jun 2005 at 06:15 UTC
Jump to comment: Most recent file
Here is a patch that allows a user to manually set the path to the "favicon.ico" file. It makes a single change to the user interface: it adds a text field to the "Logo image setting" section of the "themes/settings" page.
This is especially useful for sites sharing a single code base as you no longer need to create a new theme just so you can have a distinct favicon.ico.
| Comment | File | Size | Author |
|---|---|---|---|
| #8 | favicon3.patch | 6.59 KB | Steve Dondley |
| #2 | favicon2.patch | 6.01 KB | Steve Dondley |
| favicon.patch | 4.57 KB | Steve Dondley |
Comments
Comment #1
Steven commentedThere is a lot of mailing list discussion about this patch.
One more note though: the
<link />tags are missing the trailing slash for XHTML.Comment #2
Steve Dondley commentedHere is a revision to the patch based on the feedback received on the discussion list. You can now override the default favicon the same you way you can override the default site logo. There is one difference: When a logo is uploaded, it is checked to determine whether it is a valid image file using PHP's getimagesize function. Since this function does not work with .ico files, no validation of the uploaded file is performed. Advice on how (or if) validation needs to be done---or any other suggestions and corrections---is welcome.
Comment #3
Steven commentedThere is still a slash missing in bluemarine.
This patch appears to have per-theme favicons, but the setting to control this is in fact defined by the theme engine, not the template (through the list of support theme features). I was more thinking of simply checking for the presence of a favicon.ico in the theme's own directory. But I'm not sure if we really need this: it does make it very obvious to people editing a theme that there is an icon file they can change. On the other hand, few people will use a theme's default favicon. It's more useful as a customization, and the UI option is good enough for that.
Some text suggestions: "favorite icon" is not clear. I think the phrase "shortcut icon" is better (that's the standard name) if we accompany it with more text. Something like:
"Check this box to use the default shortcut icon or 'favicon'. This icon is displayed in the address bar and bookmarks in most browsers."
"The path to the icon file you would like to use as your custom shortcut icon."
(note: i replaced "image file" with "icon file" because for IE, favicons need to be .ico files)
'Shortcut icon settings'
Comment #4
Steve Dondley commented> I was more thinking of simply checking for the presence of a favicon.ico in the theme's own directory.
This wouldn't work very well for sites sharing the same code base. Using your suggestion, you would have to create a custom theme just to have a customized favorite icon.
> But I'm not sure if we really need this...
Can you please clarify to what "this" refers to? It's unclear to me what your suggestion is.
I'll incorporate your other suggestions and corrections into the next revision.
Comment #5
kbahey commentedThe patch as it stands is only for xtemplate. What about phptemplate? Will it work with phptemplate?
+1 on the concept though. I like a more generic solution, like what you proposed, that allows the favico to be added from an admin interface just like the logo.
As for the comment:
>> I was more thinking of simply checking for the presence of a
>> favicon.ico in the theme's own directory.
>
> This wouldn't work very well for sites sharing the same code base.
> Using your suggestion, you would have to create a custom theme
> just to have a customized favorite icon.
If the theme is installed under sites/sitename/themes then its favico will only show for the given site.
Comment #6
Steven commentedWhat I meant was to have the favicon default to themes/themename/favicon.ico if it exists, and use favicon.ico otherwise. I would still allow you to override the favicon regardless over the admin interface. But I'm not sure if default per-theme icons are useful anymore (that's what I meant with 'this').
Comment #7
Steve Dondley commented> The patch as it stands is only for xtemplate. What about phptemplate? Will it work with phptemplate?
xtemplate is the only templating engine in the Drupal core. This patch will not work with phptemplate until the maintainer of phptemplate engine incorporates favicon functionality into the phptemplate engine.
> If the theme is installed under sites/sitename/themes then its favico will only show for the given site.
Yes, I understand this, but it's a real hassle to have to create a new theme directory just to facilitate the creation of a favicon. I feel strongly that a customized favicon is a common enough task that it should be built into the Drupal user interface and should be made as easy as possible.
Comment #8
Steve Dondley commentedHere is a revision to the patch that incorporates some suggestions that have been made here. It also fixes a bug in the previous version of the patch.
Comment #9
junyor commentedWhy does this have to be part of the theme at all? I think others mentioned on the mailing list discussion that favicons are site-specific, not theme-specific. Thus, they are candidates for inclusion in drupal/sites/ rather than as part of a theme. Then, the LINK element can be included with drupal_set_head (or whatever it's called).
I like having the setting in the admin settings, similar to the site logo setting. And don't forget: favicons can be any image type these days. They won't necessarily by .ico files.
So, +1 for better customization of favicons and -1 for the implementation.
Comment #10
Steve Dondley commented> Why does this have to be part of the theme at all? I think others mentioned on the mailing list discussion that favicons are site-specific, not theme-specific.
I was actually the one who brought this point up. However, upon further reflection about the suggestion, some users may want to change the icon to match the color scheme of the different themes. Plus, since this is what was requested, this is what I delivered.
> And don't forget: favicons can be any image type these days. They won't necessarily by .ico files.
This is true, at least for FF and maybe for recent verision of IE, too. However, users may still try to upload .ico files. And, right now, the PHP function called to process images for the logo file will not work for .ico files. But, I'm not sure what your point is, here. This patch will work with any type of image file, including .ico.
Comment #11
Steven commentedI committed a modified patch to HEAD:
- The favicon should be implemented as a Theme Engine option. PHPTemplate already picked up shortcut icons if there was a favicon.ico in the theme directory.
- The favicon should use drupal_set_html_head() for adding itself. That way, it can be implemented like a proper theme engine feature which can be enabled and disabled.
Now it should do all the things mentioned before: per theme, user-configurable, optional favicons.
I also updated the contrib theme engines for this.
Comment #12
Steven commentedComment #13
(not verified) commented