If you’re not in need of a tool like Structure, which allows you to override how pages and the site structure is created in ExpressionEngine, but would still like a dead simple way of creating and managing multiple navigations for your EE-powered website, you should give NavEE from Booyant a look.
NavEE is a module available only for ExpressionEngine 2 and it “takes the typically painful task of managing navigation, and make it simple and (dare we say) enjoyable.” With NavEE you can manage multiple navigations, re-order items with drag and drop, apply classes to nav items, create breadcrumbs and use any HTML you want (NavEE uses nested unordered lists by default). There are a lot of ways to manage navigation in EE but I found NavEE enjoyable to use. It’s probably because of the playful interface and user messages but also because it is just so simple to use.
Playful welcome message in NavEE.
Nav Groups and Navs
Following along with how ExpressionEngine handles statuses and custom fields, you first create a navigation group and then individual navigation items inside of the group. Individual navigations are displayed in a tree view, so you can set hierarchy and order.
Viewing the items in a navigation.
Your existing navigations are always at easy reach at the top of the NavEE module screen.
Listing of existing navigations. Click one to edit it.
Click on a navigation group gives you a tree view of the navigation. You can easily drag and drop nav items to reorder them or click on their icons to edit them. Each item has a simple editing interface and a toggle to show advanced editing options. These options include whether the nav item is show in the navigation, CSS id and class, target and even regular expression matching. Very cool stuff.
Simple editing of NavEE navigation item.
Template Code
Displaying your NavEE navigation is just a matter of adding one EE tag.
This tag is the simple way of adding your navigation. It outputs a nested unordered list. The NavEE tag accepts several different parameters (like id shown above) and they’re all listed out in the documentation. The parameters give you all of the control you need to make the nav look exactly how you want.
Unlike Structure, NavEE doesn’t create site pages for you. You have to create all of your content and pages on your own and then create a navigation with them using NavEE. This isn’t necessarily a bad thing, it’s just the scope of the NavEE module. Some people don’t all of the extras that a module like Structure offers; they just want to create navigations and drop them in the templates.
To get started with NavEE I would suggest you watch the quick screencast Booyant put together. It’s helpful it getting that initial run-down of how NavEE works and what you can do with it.
I wanted to make a quick broadcast to third party developers about a potential issue in the upcoming ExpressionEngine 2.1 release with your add-ons, depending on how you were building file paths with CodeIgniter. If affected, your add-ons will break in ExpressionEngine 2.1, so it is very important for users of your add-ons to have updated code prior to its launch. If you have been building your file paths with PATH_THIRD or APPPATH*, you should not be affected.
The ExpressionEngine Support Forum Board, as you see it now, will be placed into an archive, read-only mode at a new URL. The forum board will still be searchable and accessible, but no new content will be added.
A new forum board will be present at the current location, expressionengine.com/forums. This new forum board places the emphasis on our Community and ExpressionEngine 2 while providing the legacy support EE 1.x deserves.
This seems like a simple way to keeping all of the resources so many depend on while also focusing on EE 2. With 99% of the information in the current forums being about EE 1, it could be difficult to find EE 2 information and problematic for newcomers.
The first step in this was last week when the forums went through a pruning. This is a clean up of old threads to keep the information in the forums current and relevant. Unfortunately, the pruning also deleted threads that were still being referenced, especially add-on threads. EllisLab reacted quickly and restored the Third Party Development area of the forums so add-ons that do not exist anywhere but in the forums are still available.
In general, I think it’s a bad idea to kill links on the internet. But as Leslie Camacho pointed out, almost all of the forum threads that were deleted were no longer being used (resolved support threads, etc.). This also isn’t the first time they’ve pruned the forums; it’s just the first time it hit some threads people still use.
Because of that, it’s great to hear that the old forums will be archived and searchable while the new forums will be a clean slate to post information and questions about EE 2. To make sure existing links to forum threads don’t break (like those on this site but more so those on devot:ee), EllisLab will be taking steps to do redirects and notifications:
We have worked with our Community Partners to ensure that important resources on their sites are preserved. We are also implementing 301 Redirects to ensure that links and bookmarks for EE 1.x support continue to function as expected.
In order to ease this transition, links will appear at the top of each forum; and a search on the primary Support Forums can easily be sent, via a link we will present on the Search Results page, to the archive.
No word yet on when the change will take place, but be prepared.
What do you think about this move away from the current forums and into a clean environment for final release of EE 2?
It’s about time we got serious and defined this relationship. You know the one where we pair a couple of ExpressionEngine entries together like an eHarmony match made in nerd heaven. If you’ve never dabbled in the ways of Cupid, then it’s time you learn. Relationships or Related Entries in ExpressionEngine are a simple and powerful way to reuse existing data and avoid the ultimate no-no: duplicate data.
One of the best bits of advice that I received as a young developer was to make sure that my data was only in the database once. Database optimization, only editing data in one place, the reasons go on and on, and are perhaps best saved for an article in _DBA’s Rule The World_ magazine. What about us EE users though? How can we be cautious about duplicate data by taking advantage of EE Relationships? How does it benefit us, and more importantly our end users?
The new themes are Inspire, originally released as a WordPress theme, a business theme and Headlines, a magazine theme.
Inspire theme
Installing a Theme
I haven’t installed or used themes for ExpressionEngine (several years ago I did customize a couple for WordPress) so I was interested to see what the process was like. I downloaded the Coffee Break theme, which is “built specifically to showcase your business, services or products.”
WooThemes account dashboard
WooThemes made some themes available to me to test with, so I logged into my account and downloaded the Coffee Break theme. The download bundle consists of
a series of templates and assets that make up the theme. The entire directory is uploaded to the themes/site_themes directory in your EE 2 installation. The theme templates use standard EE tags, so you should be able to quickly understand what is happening in a template and adjust as needed.
a third_party directory, which contains some add-ons needed to make this theme run properly. You drop the contents of this directory into the third_party directory on your site.
Each theme comes with complete instructions on installing it, including a video guide and other documentation. I didn’t see any mention of documentation in the download, so I had to hunt around the site to find it. When I did, it was thorough and easy to follow.
Installing a theme is very simple. When you install ExpressionEngine 2 using the wizard, you simply choose that theme before installing.
The Themes
In addition to the two themes I mentioned at the beginning, WooThemes also has 8 other themes for ExpressionEngine. All of these, I believe, are themes originally created for WordPress and migrated over to ExpressionEngine 2.
I found all of the themes to be really nice. My personal favorites were Delegate and the new Inspire themes.
The Cost
ExpressionEngine themes are only available as single purchases (you can do a monthly subscription to WordPress themes). There are two different prices for EE themes: Standard and Developer. The Standard package ($60) allows you to use the theme on a single site and includes just the theme files. The Developer package ($100) is a multi-site license and also include the Photoshop file of the theme design. As I mentioned earlier these prices were recently lowered.
Why a theme?
That’s a great question. I don’t have any real data to support this but my hunch is that the majority of the ExpressionEngine community creates and builds their own site designs for each project. The idea of themes, while commonplace in the WordPress community, is very new to ExpressionEngine. I’m sure some people didn’t even realize you could one-click install a theme during installation.
But as the community grows and more people make the switch to ExpressionEngine, the number of people needing and wanting themes will grow. Just because you or I don’t use themes doesn’t mean other people don’t have the need. If I wanted to set up a quick blog for a family member, I might choose a theme. There are a lot of usage scenarios out there. All in all, I think it’s great to have nice, well-designed themes available for those people who need them.
Scott Robbin from Weightshift posted a spot-on article about how front-end developers can improve the performance of the websites they build. He has three basic concepts you should follow (fewer file requests, download files concurrently and keep cache as long as you can) and shows examples for each one. His write-up came out of his talk at WordCamp Chicago but the techniques apply to any CMS.
Though, the talk itself was WordPress-specific, the underlying concepts are applicable to any client site, whether it be coded in WordPress, Expression Engine, MovableType or none-of-the-above. At Weightshift, we have made performance tweaking a standard part of our development cycle on all projects. I’d like to take a moment to share our process, and some of the tools that we use.
It’s not just up to backend developers and server admins to make sites run faster. The performance concerns should be addressed throughout the entire project—from IA to design to development.
My first reaction: this is great. A simple way to pull in external data without relying on a different add-on for each data source. Very, very cool. Some of this, of course, could be handled with other tools (like MagPie) or even with a wee bit of PHP in the template, but Phil’s module looks to be much more flexible. I’m looking forward to playing with this when it’s available. Update: this module is now available and costs $30 US.
Recently, Noah Stokes discovered that his hosting account on Dreamhost had been hacked. It’s a good story of why you should always keep your software up-to-date as well as how to triage and treat this common type of hacking (they didn’t delete or destroy his site. The hack was only noticeable to the googlebot).
On June 23, my server on Dreamhost was hacked and 5 websites that I host were compromised with Pharmaceutical spam. Below is an overly detailed account of how I discovered the intruision, what I did to find the offensive code on the server, and how I gained a little bit of respect for the hacker who paid attention to the details. I think I’d like to hire this guy.
Noah used a solid debugging methods and a handy grep command to track down the affected files and disinfect his sites. Well done, sir.
Read the entire story (it’s a great read and very informative): My Server Was Hacked
This one has been making the rounds on Twitter but I wanted to make mention of it here on EE Insider. Kyle Cotter emailed me a while back asking if it was okay to use the EE Insider logo on his new site. Of course it was and I’m excited to see the useful site he’s put together: EE Hash.
EE Hash is all about streaming the latest ExpressionEngine news in an organized efficient way. Why visit your ugly feed reader sifting through non ExpressionEngine related content when you have EE Hash?
EE Hash streams a bunch of different EE information into one space. It’s an unfiltered look at what’s going on online in the world of ExpressionEngine. The stream includes headlines from this site, latest add-ons from devot:ee, showcases from Show-EE, Twitter mentions of EE and more.
Sometimes it is quite handy to pull in the last segment of a URI. EE makes it easy to grab the first segment by using {segment_1} but there is no {last_segment}. With a little help from PHP and path.php we can change that.
Erik includes the code you need as well as a couple of links to some last_segment add-ons. Read the whole EE Insider Tip: Add a {last_segment} global variable
If you want to add your own tips and share you expertise and knowledge with the community, create an EE Insider account and add your own tips.
When I first saw Director-ee I was struck by the gorgeous design but left wondering where it fits in and the idea behind it. So, during my conversation with Ryan at EECI, I told him that and invited him and Andy to do an interview here at EE Insider.
Interview with Ryan Battles and Andy Johnson
Q. Let’s start with the basics. What is Director-ee?
Andy: It’s an easy way for ExpressionEngine developers and designers to find and get to know each other better. We’d look for other EE users on Twitter and in the forums, and thought that it would be nice if there was a central location for the community to gather.
Ryan: With sites like Devot:ee, Show-ee, Train-ee, and EE Insider already providing various third-party services to the community, we noticed that nobody was focusing on individual profiles. We wanted to create something that would have that focus and mesh well with these other sites.
The site is gorgeous. Who’s responsible for the design and development?
Ryan: Andy is the mastermind behind the design, and I was spearheading the development. We had been brainstorming this project for a while and one Monday he fired up Photoshop and showed me what he had been working on over the weekend. When I saw the elegance of his design, a fire was immediately lit. We gave ourselves deadlines and launched the site less than a month later, just in time for EECI2010 in San Francisco.
Andy: I just reworked a Geocities template that I use for all my clients.
From what I can tell, almost 300 EE professionals added themselves to Director-ee. Has the reception surprised you?
Andy: Yes, we have been surprised. We didn’t really know what to expect, but we just knew that it would be fun to do, regardless of the response. But we’re happy so many people have been enjoying the site!
Ryan: I was excited when we had three members, and had no clue that it would grow this big so fast. We have found that the number of members raise some scalability issues. For example, our new Google maps feature has to place pins on the map for everyone registered on the site. As soon as we hit 22 members we had to completely rewrite that programming because Google was limiting us to a certain number of API calls at once. It certainly has been a learning experience as we go along.
Why should someone sign up with Director-ee?
Andy: If you want to make it easier for other EE professionals to find you, it’s a good way to go. It also gives you a place to promote your shameless plugs to the rest of the community.
Ryan: We were just looking for a service that would benefit the community, and posting a member profile provides links back to your own site, an opportunity to tell the world about yourself, and just a tool to find out who else lives near you, has the same interests, etc.
Are you aiming to make Director-ee a third party version of the official ExpressionEngine Pro Network?
Andy: Our intent isn’t to replace the Pro Network. Director-ee is more about connecting people WITHIN the community, rather than connecting companies with clients. We might have some of those features in the future, but our first priority is helping individuals within the EE community connect with one another.
Ryan: While we were inspired by some of the features that we wanted to see in the Pro Network, like Andy said, we realized that our target audience was going to be individuals within the community, not companies, and not clients. This makes us fundamentally different from the Pro Network.
Do you have any plans to commercialize the site with premium services?
Andy: We’re not sure. At this point we’d like to keep as many services as possible free for our members.
Ryan: From the beginning our goal has always been to simply make something awesome, that people will love. If we can successfully do that, then we can worry about finding a way to monetize it. We truly have no official plans to charge for anything on the site, and if we ever do, it will be in the spirit of providing a quality service to the ExpressionEngine community.
—
Thank you to Ryan and Andy for taking the time to answer the questions and share their vision, inspiration and thoughts on Director-ee. If you haven’t signed up yet, it’s free. So, what are you waiting for?
You can see screenshots of the new Structure on their website. The price remains at $65 and the download will support both EE 2 and EE 1.6. Existing Structure license holders can download Structure for EE 2 for free for that license (new sites would require, of course, a new license).
The download comes with two directories (ee1 and ee2) along with some instructions for adding in a temporary hack pending the release of EE 2.1.
There is also a warning about upgrading your EE 1.6 site running Structure to EE 2: don’t do it yet. You should wait until the Structure guys have had more time to test the upgrade process. This shouldn’t be a problem, however, because I suspect most people are building new sites in EE 2 and not upgrading old ones.
If you have an EE 1.6 site running Structure and you would like to help Travis and Jack test the upgrade process, please get in touch with them. They want to make sure the upgrade from EE 1.6 to EE 2 is safe and smooth.
Yesterday, Solspace released a new version of their popular Tag module. The new Tag 3.0 has several changes (including a few new variables) but the most important is that they added support for Solspace Bridge, which means Tag will now run on your EE 2 websites.
This is just one more step towards all of the add-ons you need being available for EE 2. There aren’t many major ones left, so the momentum towards EE 2 replacing EE 1.6 is picking up steam.
Here’s the full changelog for Tag 3.0:
Added a simple search ability to the Manage Tags area of the Tag control panel.
Added a “cloud-like” clickable list of Tags to the UI (for EE 1.6.x) to easily add existing common Tags to an entry.
Added {count} and {total_results} variables to the Tag:Tags tag.
Added {subscribe_link} and {unsubscribe_link} variables to the Tag:Subscribed tag.
Changed wording for removing of tags from “Bad” status.
Upgraded module to use Solspace Bridge 1.0 with CodeIgniter, therefore allowing compatibility with EE 2.x.
Fixed a bug where Bad Tags were still being shown in the Tag:Tags tag.
Fixed a bug where the Tag_Name tag was ignoring the websafe_separator=”” parameter completely.
Fixed a bug where the inclusive=“yes” with multiple tags in tag=”” was sometimes treated as OR instead of AND in Tag:Entries.
At EECI in San Francisco, EllisLab announced a new mini CMS product called MojoMotor. Okay, I know you’ve heard about it already. My question to you is this:
Is MojoMotor something that appeals to you? Would you use it for projects?
It’s Wednesday so that means it is time for the weekly EE Help Chats. It’s a great way to spend an hour getting help, talking shop and meeting some other EE users.
European EE Help Chat
The first one is our new European EE Help Chat, a self-moderated chat for people who are usually sleeping during the original chat time. It takes place at 19:00 GMT and if you follow @eeinsider on Twitter, I post a reminder about 15 minutes before. To access the chat visit this URL at the time of the chat to gain access to the room: http://eescreencasts.com/europe-chat
EE Help Chat
The original chat still takes place at the regular time of 9 PM Eastern at http://eescreencasts.com/go-chat. As with the other chat, I typically post a reminder on Twitter about 15 minutes before.
In my talks last year at the EE Roadshow and EECI, I highlighted how you can make your config.php file more powerful and your site more portable by overriding settings values that are typically stored in the database (Jamie Pittock at Erskine also covered this in his great talk at EECI in San Francisco). But this behavior can come back to bite you if you don’t remember that you set the variables in the config.php file (or someone else did it before you).
I’m able to change the “Custom Message”, but whenever I try to change any of these 4 fields (Enable Throttling, Maximum Number of Page Loads, Time Interval (in seconds) & Lockout Time (in seconds)), I get a success message at the top of the screen but the field values don’t change from the defaults.
Any time you change a setting and it doesn’t take (the page reloads with the old setting), then the first thing you should look for is if that settings value is being set in the config.php file. If it is, either change it there or remove it and store it in the database.
On their blog Signal vs Noise, 37Signals featured WooThemes as part of the “Bootstrapped, Profitable and Proud” series, “which profiles companies that have $1MM+ in revenues, didn’t take VC, and are profitable.”
Adii from WooThemes was the subject of the write-up (you may have seen him speak at EECI in San Francisco; he is also an advertiser on this site) and talked about the history of WooThemes and how they’ve grown slowly from a side gig while doing freelance work to a profitable business with several employees.
The article is worth a read and we should be proud to have another successful start-up company in the EE community.