It’s Sogudi

This doesn’t really fall into the category of development for ExpressionEngine, but some developers may appreciate a new feature of the Safari plugin Sogudi.  (Get it?  Sa-fa-ri So-gud-i).  If you haven’t been introduced to Sogudi until now (it’s been out since 2003), you’ve missed out.  This browser plugin is hands-down the best implementation of a shortcut-site-search-in-an-address-bar out there.  It was recently updated to be a Universal Binary, but best of all in a brand new feature: you can now view Unix manual pages directly in Safari, formatted nicely, and instantly at your fingertips.

The syntax?  man:command screenshot (popup link)

Soooo good...ee.

Styling External Links in Your Wiki

In order for people to easily distinguish external links from article links in the ExpressionEngine wiki, you can use CSS3 substring matching selectors to identify whether the link is local or external.  Internet Explorer 5.5/6, does not support this feature of CSS3. The good news is that for people using IE5.5/6, they are no worse off than before implementing these style rules, and everyone else using a modern browser will benefit. In your CSS for your wiki, and order of the rules is important, you should already have some default link styles (which will vary based on the theme you are using):

  1.  
  2. a, a:visited { text-decoration: none; color: #3B6CB5; background-color: transparent; }
  3. a:hover { color: #8AD5F5; text-decoration: underline; background-color: #000; }
  4. a.noArticle, a.noArticle:visited {
  5. background: url(http://www.example.com/themes/wiki_themes/azure/images/broken_link.gif) center left no-repeat;
  6. padding-left: 10px;
  7. color: #973030;
  8. }

Following these rules, apply substring selected styles. First, we style all URL links to be external. This will style anything that begins with “http” as an external link. Your relative and absolute path links will not be altered:

  1. div#content a[href^="http:"] {
  2. padding-left: 8px;
  3. background: url(http://www.example.com/themes/wiki_themes/azure/images/ext_link.gif) center left no-repeat;
  4. }

Now we override that styling for the special case of links using URLs that are still pointing at your own domain:

  1. div#content a[href^="http://www.example.com"] { background: inherit; padding-left: 0; }

Lastly, we override the style rules with the “.noArticle” class selector so that they remain styled like we want them:

  1. div#content a.noArticle[href^="http://www.example.com"], div#content a.noArticle:visited[href^="http://www.example.com"] {
  2. background: url(http://www.example.com/themes/wiki_themes/azure/images/broken_link.gif) center left no-repeat;
  3. padding-left: 10px;
  4. color: #973030;
  5. }

Filter by Author

The download for the Filter by Author extension can now be found here.

If you have a large number of content publishers on your site, it can be beneficial to quickly view all entries made by a particular member in the Edit page of your control panel.  Filter By Author is an extension that enables just that.  An additional drop down field is added to the form, populated by a list of only members who have posted entries.  A language file has been incorporated to allow localization of the drop down menu’s default text, so you can match it to the language and verbiage of the rest of the form elements.

[UPDATE: Extension updated to work alongside other extensions and to include pagination (requires Javascript).]

Installation:

  1. Unzip the file
  2. Copy ext.filter_by_author.php to your /system/extensions/ folder
  3. Copy lang.filter_by_author.php to your /system/lanaguage/english/ folder
  4. In the control panel go to the Extensions Manager (Admin > Utilities > Extensions Manager) and click the “Enable?” link for the Filter By Author extension.

Now you can go to the Edit page, and select the author you wish to filter your search by in the new Filter By Author drop down.  Members who have not posted entries are not shown in the drop down list, which keeps the list as small as possible by only showing members that would yield results.