[Music]
Lea Alcantara: You are listening to the ExpressionEngine Podcast Episode #65 where we will discuss time saving tricks for creating, updating and working with ExpressionEngine. I’m your host, Lea Alcantara, and I’m joined by my fab co-host, Emily Lewis. This episode is sponsored by Mijingo. Securing ExpressionEngine 2 by…
[Music]
Lea Alcantara: You are listening to the ExpressionEngine Podcast Episode #65 where we will discuss time saving tricks for creating, updating and working with ExpressionEngine. I’m your host, Lea Alcantara, and I’m joined by my fab co-host, Emily Lewis. This episode is sponsored by Mijingo. Securing ExpressionEngine 2 by Mark Huot is a 30-page eBooklet that details steps you can take to make your installation of ExpressionEngine even more secure. Mark shares his experience from building dozens of high-profile ExpressionEngine-powered websites. Mijingo recently released the second edition of the eBook that has been updated for ExpressionEngine 2.4, and as a bonus for everyone, the eBooklet comes with a free HD video of one of the techniques discussed in the eBooklet. To get secure, go to mijingo.com/secure today. That’s mijingo.com/secure.
Emily Lewis: The ExpressionEngine Podcast would also like to thank Pixel & Tonic for being our major sponsor of the year. [Music ends] Hi Lea, how are you doing?
Lea Alcantara: Happy that we are getting more sunlight these days.
Emily Lewis: Yeah.
Lea Alcantara: I guess this is the upside of daylight saving time. Even though we lost an hour, but my mood has improved because of the sunlight. Also, I’m very excited about EECI’s announcement the other day…
Emily Lewis: Yes.
Lea Alcantara: Of it being in Austin. I think I told you once that EECI has become kind of like my SXSW, and so when they said it was in Austin, it feels like it became more literal. How about you?
Emily Lewis: Yeah, I’m also really excited about EECI in Austin this November. I didn’t go to SXSW this year, so I’m excited to go in November because I’ve got so many friends and colleagues who live there. I think I’m going to make a long stay of it and catch up with people.
Lea Alcantara: Cool.
Emily Lewis: Oh, I also wanted to say I am still really psyched about our last episode on Selling EE. Since we talked to Brad and Marcus, I’ve actually been incorporating some of their suggestions into my weekly activities. And while I can’t say that sales as a term or a concept is my favorite thing, but since our discussion with them, I’m starting to appreciate the importance of keeping sales a priority and really working on that prospect relationship.
Lea Alcantara: [Agrees]
Emily Lewis: I think it was Marcus who said at the end, “You know, you kind of have to accept this and embrace it.”
Lea Alcantara: Yeah.
Emily Lewis: And I think that’s what I’ve been doing. I gave a demo, an EE demo, to a prospect over Skype last week. I’ve never done that before. I’ve usually used conference calls and emails to sort of sell my services, but this one was more one-on-one intimate experience with the demo, and they were not only blown away by EE, but just all the time that I took with them, it just really hit home that sales isn’t this sleazy thing that I always thought it was.
Lea Alcantara: Yeah, I think it’s really all about building that relationship and having that type of conversation. To me I think the sales episode is quickly becoming one of my all time favorite podcasts.
Emily Lewis: Yeah.
Lea Alcantara: And it looks like our listeners agree, too. I was just checking out our stats and even though it’s only been out a couple of weeks, it’s already the third most popular page on our site since the relaunch.
Emily Lewis: Wow!
Lea Alcantara: So only two weeks, already the third most popular page. [Laughs] I think it’s because Brad and Marcus gave really actionable advice, so it was a really useful episode.
Emily Lewis: Yeah, I agree. So let’s try and continue that trend today. [Laughs]
Lea Alcantara: It sounds good.
Emily Lewis: So working efficiently with EE cannot only mean the difference between making a profit or not, but also whether you give your customers a truly user-friendly experience with their CMS. So you and I have gathered some of our own time-saving tips and tricks for working with ExpressionEngine and we got some suggestions from Twitter, too.
Lea Alcantara: Let’s get started. I think generally speaking when we first get started on our site before we even start with prepping and planning and it all starts off with the actual ExpressionEngine download, right?
Emily Lewis: [Agrees]
Lea Alcantara: So there are a lot of upgrades and a lot of people get intimidated by the upgrade process for many reasons, but one of the reasons that upgrading is a bit of a pain is that it takes so long, right?
Emily Lewis: Right.
Lea Alcantara: It takes so long to update ExpressionEngine, so after you download the latest ExpressionEngine version, how do we get to make the upgrade process a lot faster?
Emily Lewis: [Agrees]
Lea Alcantara: And one of the tips I saw on Twitter, and this was a while back so I’m not a 100% sure it’s actually from Hambo Development, but it’s sticking in my mind that it was him who tweeted about it. But he basically suggested that when you download the latest EE version before you update your repo and Git, before you upload via FTP, just delete all the unnecessary files from that upgrade and what I mean by that is for most of us upgrading, we don’t need certain control panel themes.
Emily Lewis: [Agrees]
Lea Alcantara: We don’t need the Agile Records website demo because we have our own site, and also there is a lot of modules that come with EE that we will never really use, so it’s such a simple tip, but just deleting all those extra files makes the upgrade process and the uploading process and syncing process so much faster simply because there is less files to deal with.
Emily Lewis: [Agrees and laughs] It seems so simple, and I’m like, “How come I haven’t done this yet?” [Laughs]
Lea Alcantara: Yeah. I know for sure, for sure. Yeah, when I first heard the tip it was kind of one of those “duh” moments. [Laughs]
Emily Lewis: [Laughs]
Lea Alcantara: Like the moment I read it, I was like, “Oh, why haven’t I been doing that the entire time I’ve ever used ExpressionEngine?” [Laughs] And then so recently I’ve been using this technique, and it’s so simple, but it really does save you a lot of time because if you do the traditional way, if you don’t have the Git repo or whatever and you are dealing with just uploading via FTP, it takes a lot of time.
Emily Lewis: [Agrees]
Lea Alcantara: So just waiting and just staring at the screen, and when you just have less files, it’s just so much faster.
Emily Lewis: I also noticed that you mentioned something, and you’ve talked about this with me before, uploading a zip file.
Lea Alcantara: Yeah, so Ryan Battles wrote this article on his site, EE Spotlight called A Better Way to FTP Your ExpressionEngine Site Using Zip Files, and this was the first time I’ve heard of it. I know that some people in the community have been doing this for a long time.
Emily Lewis: [Agrees]
Lea Alcantara: But it’s not one of those obvious things, especially if you are not a developer, specifically a developer. But essentially, instead of just uploading an expanded version of the files where you download ExpressionEngine version, unzip it, do your config things and backups and blah, blah, blah, and then you just drag and drop to your FTP to upload, instead of doing that, make sure you just zip up the files in its own little sections, then upload it to your FTP. Once you’ve done that, you essentially go through, if you’ve got cPanel in your host, you can go through the file manager and just use Expand Zip File.
Emily Lewis: Oh nice.
Lea Alcantara: Yeah, and if you do that, then the zip automatically expands and overwrites wherever you placed the zip almost seemingly instantaneously which is a much, much, much faster way to update certain files. Obviously, there is a lot of risks with doing that, so make sure you know what you are doing if you decide to do this.
Emily Lewis: [Agrees]
Lea Alcantara: If you don’t have cPanel access or if you got a really secure host who won’t let you do a bunch of things, Ryan’s specific article actually goes through a PHP script that runs, that helps expand the zip file server side as well.
Emily Lewis: Nice.
Lea Alcantara: So yeah, I think those couple of tips right away, the first one being delete unnecessary files from the install.
Emily Lewis: [Agrees]
Lea Alcantara: Then zip it up and upload and then use the server to expand that zip so much faster. [Laughs]
Emily Lewis: All right, I’m definitely going to try those things. I think my issue why I haven’t is I typically encounter something that is a user error based problem when I do an upgrade or an update.
Lea Alcantara: Yeah.
Emily Lewis: So I tend to just not want to stray.
Lea Alcantara: Yeah.
Emily Lewis: But it does. I can say when we recently did the upgrade for EE Podcast site and it took a solid hour just a transferring all the files.
Lea Alcantara: Yeah.
Emily Lewis: If I could have saved some time, that would have been nice.
Lea Alcantara: Yeah, sure.
Emily Lewis: So I’m going to make the commitment to try some of these tips. They seemed simple as long as you take your time.
Lea Alcantara: Yeah, yeah, which is kind of like almost a paradox.
Emily Lewis: [Laughs]
Lea Alcantara: Take your time, but it will save you time.
Emily Lewis: Right. [Laughs]
Lea Alcantara: But at the end of the day, really what it really means is be careful and like double check what you are doing.
Emily Lewis: [Agrees]
Lea Alcantara: But once it’s actual, the zip file itself is smaller to upload obviously.
Emily Lewis: [Agrees]
Lea Alcantara: So A, that’s faster, and then B, once you expand it to server side, that’s so much faster, too. Yeah, it’s something that normally would take ten minutes of you just staring at the screen or trying to do other work while that uploads.
Emily Lewis: Yeah.
Lea Alcantara: It’s halved or even faster than that.
Emily Lewis: [Agrees]
Lea Alcantara: Yeah.
Emily Lewis: And I imagine that the more you take these approaches, the faster they will be just because you are more comfortable with it and you do know what you are doing.
Lea Alcantara: Yes, exactly, exactly.
Emily Lewis: So those are some good tips for upgrades. One of the tips that I think is really important is before you begin development, once you’ve done your install or maybe even before you’ve done your install, I usually do this before I install anything, is my pre-development planning.
Lea Alcantara: Sure.
Emily Lewis: This is truly something that once again it seems so simple and almost common sense, but it didn’t occur to me until I saw Leevi Graham’s presentation at EECI 2010 in San Francisco.
Lea Alcantara: [Agrees]
Emily Lewis: And he described how his agency Newism starts every project. It’s an extremely detailed approach which doesn’t always lend itself to all project’s timelines and budgets, but some kind of preplanning, I think, is essential. One of the things I think the reason it’s really essential is not only can it make development faster when you are actually in the mindset of development because everything is already planned out, but if you have to bring someone else on board or if you are already working on another team, if you’ve documented things like what the channels are, the contents that’s going in the channels, categories, even the custom fields down to what file or field type it’s going to be, how many characters it might support, that sort of stuff is invaluable because when you are developing, you don’t necessarily want to be deciding those things at that time.
Lea Alcantara: Yeah, because there is a lot of that hesitation before you actually do it, but if you’ve planned it all out, it’s just execution, execution, execution.
Emily Lewis: [Agrees]
Lea Alcantara: And I just also want to say that I’ve been trying to incorporate this more and more into my workflow as well as my deliverables for clients.
Emily Lewis: Yes.
Lea Alcantara: Mostly because not because they need to understand the technical nitty-gritty of things, but say, especially now that I’m doing a lot more or trying to do a lot more local development before try to do and push it into a development environment, et cetera, and making it live.
Emily Lewis: [Agrees]
Lea Alcantara: So they don’t exactly see what you are doing or they can’t poke around to a URL, right?
Emily Lewis: Right.
Lea Alcantara: So because of that, if I have a document stating, “Well, here is the plan. This is going to happen.”
Emily Lewis: [Agrees]
Lea Alcantara: Then there is a little bit more confidence, especially if they are just… you know, a lot of client want to see.
Emily Lewis: [Agrees]
Lea Alcantara: Like they just want to see, “Oh, why can’t I see an in progress thing?” It’s because they don’t quite understand that sometimes it needs to all happen at one time, right?
Emily Lewis: [Agrees]
Lea Alcantara: Having at least a paper plan for them to just see, “Well, here is what we are going to be doing, but you don’t see like live, but this is the plan.”
Emily Lewis: Right. Yeah.
Lea Alcantara: Yeah.
Emily Lewis: Now, if you don’t mind me asking, do you charge for that deliverable, or is it just sort of in your project costs?
Lea Alcantara: It’s part of my project cost.
Emily Lewis: [Agrees]
Lea Alcantara: Yeah, yeah.
Emily Lewis: Yeah. I definitely think that I’d like to take that approach. I’m not currently working with clients that I think they would even want that in the budget.
Lea Alcantara: Yeah, yeah.
Emily Lewis: It might not allow for it.
Lea Alcantara: [Agrees]
Emily Lewis: But I’m still doing it on my own.
Lea Alcantara: Yes, yeah.
Emily Lewis: I think one of the reasons it’s important to take this big picture planning time before you start development is it really lets you identify not only the common things where you can save time by reusing things.
Lea Alcantara: [Agrees]
Emily Lewis: But also those weird situations that the site has that are really going to require perhaps a special add-on or a special layout for a content author or whatever. You can see all the pieces most of the time, I think you can see all the pieces before you go into development so that you can make your development as speedy as possible.
Lea Alcantara: Yeah, for sure, for sure. Because I’ve noticed that in the past I did kind of develop on the fly, which is maybe I should be embarrassed to say that, but…
Emily Lewis: We all do it, though.
Lea Alcantara: Yeah.
Emily Lewis: I mean, we’ve all done it.
Lea Alcantara: Yeah, yeah. But the moment I started having something more formalized and just planned it out, like it just seems more confident when you actually do it.
Emily Lewis: Yes.
Lea Alcantara: And because of that, it is really a situation where it’s like, “Here is the plan. Here is the execution. Bam, bam, bam, bam.” Right?
Emily Lewis: [Agrees]
Lea Alcantara: So because of that, it just speeds up the entire process of getting things up and running.
Emily Lewis: [Agrees]
Lea Alcantara: So on top of the preplanning for that, what else is involved when you are trying to figure out what should be standardized?
Emily Lewis: One of the things I like to do, and this is something I’ve heard lots of folks talk about at EECI and also on Twitter, even in the forums, but using common conventions across your projects.
Lea Alcantara: [Agrees]
Emily Lewis: Because you will get used to how you are, for example, naming things. One thing that I do, and I can’t remember who I picked it up from, but it definitely wasn’t my original idea, but when I’m naming my snippets and global variables, I prefix each with sn_ or gv_.
Lea Alcantara: Yeah, yeah.
Emily Lewis: But beyond that, if I’m commonly creating a global variable for an HTML piece that’s a footer, I’m going to consistently name it in that fashion.
Lea Alcantara: [Agrees]
Emily Lewis: Even my templates and template groups and even channels, I mean not all projects lend themselves, but there are common names.
Lea Alcantara: Yeah, absolutely. And I think this gets even more important if you have an MSM project.
Emily Lewis: Oh, absolutely.
Lea Alcantara: A multi-site manager, because I remember one of our past podcast with John Rogerson when he was talking about the Sewanee website. Having a proper naming convention enables you to have multiple sites using the same template.
Emily Lewis: Yes.
Lea Alcantara: So it becomes so important. As you know, I’m using MSM as an obvious example, but even normal non-MSM websites, generally speaking a lot of interior pages use a similar layout structure, right?
Emily Lewis: [Agrees]
Lea Alcantara: So instead of having to create a duplicate template group or just a duplicate template, just having a common naming convention allows you to perhaps use one template and just the segment variables auto-populating the common naming template and then that saves you so much time because you don’t have to administer ten different templates that are essentially duplicates.
Emily Lewis: [Agrees]
Lea Alcantara: They are all on one template and because of the naming convention, it’s applied to everything.
Emily Lewis: [Agrees] I think this is true whether you are dealing with or working with ExpressionEngine or you are writing CSS or you are writing HTML.
Lea Alcantara: Yes, yeah.
Emily Lewis: Just using a common convention can speed development individually and within a team. One thing I will say, and this is a bit of pet peeve for me, but I think it’s worth mentioning because it definitely wasted some time in the last project I worked with another developer on, with casing and combinator conventions.
Lea Alcantara: Yeah, yeah.
Emily Lewis: For whatever my own reasons are, I tend to do a camel-casing approach.
Lea Alcantara: Okay.
Emily Lewis: And I don’t use a combinator. I know a lot of people do, but I don’t. But I was working with another developer and he was using like three different approaches.
Lea Alcantara: Okay.
Emily Lewis: And so some things had camel-casing, some things were separated with an underscore, some things were separated with a hyphen or a dash.
Lea Alcantara: Yeah.
Emily Lewis: And it takes time to then go through that if I can’t get a hold of him and look up what he’s named things, and this is one of those items that I think you can just standardize at the beginning. Everyone agrees on a certain fashion and that’s how you move forward, period, with no changes.
Lea Alcantara: Yeah. Yeah, absolutely. And it’s interesting you pointed that out because I teach at a local university here, beginner’s web design, and obviously we can use whatever we want, if it’s camel casing or just a lower case or dashes or whatever, but I always tell beginners to just deal with everything with lower case. Just lower-case everything and don’t even have spaces. The reason why is beginners, especially makes so many mistakes in terms of capitalization and spaces and all these kind of things and just saying everything lower-case, no spaces…
Emily Lewis: It solves the problem.
Lea Alcantara: Oh yeah. Exactly, it solves the problem. Exactly, exactly. So in the professional setting, you do whatever you want as long as you understand what you are doing and that it’s standardized across all the files that you are working with.
Emily Lewis: [Agrees] Oh, this is another thing. This is nothing new, and it may not be efficient for everyone, but I really like to save my templates as files.
Lea Alcantara: Yeah.
Emily Lewis: And that’s because I can use an external file editor, which for me I developed faster in that environment because you get all the efficiencies of the file editor, and so that’s something that I just do across the board. But then when I started using snippets and global variables, I then had to just sort of in my mind suffer through dealing with developing in the control panel for those because they don’t immediately allow that option to save them as external files.
Lea Alcantara: [Agrees]
Emily Lewis: But there is this add-on called SnippetSync which lets you do that.
Lea Alcantara: [Agrees]
Emily Lewis: It lets you save your snippets and global variables as external files and that means you can edit them in your preferred file editor and you can version them if you are using version control.
Lea Alcantara: Yeah, for sure, and I also wanted to point out that one of my favorite add-ons, Low Variables also has an opportunity for you to save their variables into text files as well.
Emily Lewis: Nice.
Lea Alcantara: So that’s pretty cool. For me though I kind of go back and forth between like… I mean, I default save things as templates as files, I mean. But I go back and forth depending on what I’m currently administering at the moment. For example, if I’m already at the CP and I’m administering something else like in the edit page or something like that, it just seems faster to me if I made it to do a quick change to just go straight into the control panel templates as opposed to opening up FTP, opening up the file or opening up the code and like have me log in, those kinds of things.
Emily Lewis: [Agrees]
Lea Alcantara: If all those things aren’t open already, then I’m just going to edit everything straight on the control panel because that to me is just faster.
Emily Lewis: Yeah, I think that’s a good distinction. I can certainly think back, when I’m developing a site for the first time or adding some new functionality or feature, I am working in my external file editor. But if some change comes up or something not too intensive, I usually do make the change directly in the control panel.
Lea Alcantara: Yeah, and then as long as you are, again, careful and make sure that you sync your templates after you’ve made all of that…
Emily Lewis: [Agrees] Good point.
Lea Alcantara: Yeah. To make sure that, “Okay, so I made that really quick control panel template change.” If you do like the majority of the time edit in an external file editor, then make sure that you sync your control panel template files with your external files.
Emily Lewis: A good reminder. Thank you for mentioning that.
Lea Alcantara: Yeah. So what else can we do to make working with ExpressionEngine much faster, the development faster?
Emily Lewis: I think this next one is probably the biggest thing for me lately, and it’s making a huge difference. It’s getting your head around parse order.
Lea Alcantara: [Agrees]
Emily Lewis: I found that if you like me didn’t really have a good sense of how EE parses conditionals and tags, you can spend a lot of time trying to figure out why your template is running really slow or why you are not seeing some data show up on the front end because you’ve incorrectly nested something.
Lea Alcantara: [Agrees]
Emily Lewis: And so ever since you mentioned that Low had put together that PDF resource about parse order a while back.
Lea Alcantara: [Agrees] Yeah.
Emily Lewis: I keep it up on my screen, on my browser, the entire time I’m working in my templates. This is sort of a constant check to see if I’m taking the right approach to have the best performance and get the information that I want out of my tags.
Lea Alcantara: I think this is pretty good tip there just having it open because sometimes I just work on it and then I inevitably try to find the file and everything like that to double check my work.
Emily Lewis: [Laughs]
Lea Alcantara: I might as well just have it open.
Emily Lewis: [Agrees]
Lea Alcantara: And I’m sure a lot of us have either two screens or a giant screen while we are working. We should just have it open off to the side to double check while we are working.
Emily Lewis: [Agrees] I think it can take time. I know, at least for me when I’m in the middle of something, my mind is kind of focused and so if I then go back after the entire page is developed, I may not have the same focus for the particular area that might be a problem.
Lea Alcantara: [Agrees] Something that is a little bit different, but I guess the same just in terms of referencing. If you had a piece of software called Alfred on your Mac, you can set up Alfred so that you can auto-search either Devot:ee or the ExpressionEngine docs.
Emily Lewis: Oh.
Lea Alcantara: And so if you need a quick, again, if you are using the EE parse order like always at the top, well, if you want a quick way to do some searches instead of opening a new tab and then going to your bookmarks and going to the docs or whatever, if you have something like Alfred to just launch the search and you’ve set up the protocols to search Devot:ee or the docs, then you could just do the search immediately through Alfred and that’s gives you a couple of seconds or a couple of minutes, I guess.
Emily Lewis: Oh, cute. I just opened up their site. It’s very cute. [Laughs]
Lea Alcantara: Yeah.
Emily Lewis: That’s alfredapp.com. I’m going to try that.
Lea Alcantara: I don’t have the links in front of me, but we will add the little bit of tutorial, I believe that gives you information on how to add those autosearches with Alfred and Devot:ee and the docs. It’s awesome.
Emily Lewis: Cool. Another thing that I think is time saving and perhaps we should have mentioned this when we were talking about doing updates to EE.
Lea Alcantara: Yeah.
Emily Lewis: Keeping track of the add-ons you have and what version they are at.
Lea Alcantara: [Agrees]
Emily Lewis: Perhaps you are already doing this, but I wasn’t when we had to do the update to 2.4 for the EE Podcast site.
Lea Alcantara: [Agrees] Yeah.
Emily Lewis: And it took me about 20 minutes. We don’t have a lot of add-ons, but to hunt down what time we had installed them because it’s been several months since we’ve done an upgrade.
Lea Alcantara: Yeah.
Emily Lewis: And there had been a couple of version of the add-ons.
Lea Alcantara: Yeah.
Emily Lewis: So anyways, just keeping a handy reference of the add-on and the exact version it is so that when you are doing an EE install, you can do a quick check to see if your add-on is supported in the latest version in text file or you could use whatever your preferred documentation tool is, but I think that can save a little bit of time and then just keep it updated as you update your add-on.
Lea Alcantara: I’m not 100% sure if it was Mark Huot who suggested this, but besides the documenting, actually upload the zip file of the add-on and older versions of the ExpressionEngine software in a secure place so if you do a botched upgrade, which happens, and need to rollback, you already have the older version of the add-on somewhere readily available for that particular project.
Emily Lewis: Very good suggestion.
Lea Alcantara: Yeah. So that would save a lot of time and headaches that allows you to see all the things in one place as opposed to having to go back and forth between different add-on sites and different sites in general and then looking through your own computer for a repository or whatever, and I know if I had this advice sooner, this would have saved me from one of my major issues a few months ago. I remember asking everyone on Twitter if they had, “Oh, do you guys have an older version of EE this, this, and this. Please, please, please.” [Laughs]
Emily Lewis: [Laughs]
Lea Alcantara: “I need it. I need it to rollback something.” [Laughs]
Emily Lewis: I’ve never done this, and it’s such a great idea.
Lea Alcantara: For sure, and I mean, also it’s kind of double documentation.
Emily Lewis: [Agrees]
Lea Alcantara: So if you had a document actually listing the add-ons, then you have a physical folder in a secure place.
Emily Lewis: [Agrees]
Lea Alcantara: So nowhere anyone can download it, so not on public_html.
Emily Lewis: [Laughs] Right.
Lea Alcantara: So if you have it somewhere on your client’s site, then it’s just a quick and easy way to see what’s already been installed and being able to rollback as quickly as possible if needed.
Emily Lewis: Good suggestion.
Lea Alcantara: Yeah.
Emily Lewis: So we had two other suggestions that we got from Twitter.
Lea Alcantara: [Agrees]
Emily Lewis: The first one I want to talk about is, so Dan Diemer on Twitter, he simply responded to our inquiry about any time saving tricks. He said you structure it.
Lea Alcantara: Okay.
Emily Lewis: And so I thought that brings up a good area that could be time consuming and that’s building navigation.
Lea Alcantara: [Agrees]
Emily Lewis: I know personally I’ve used structure, and for certain types of projects, it’s really great. I will say the first time I used it maybe even the second time. I wouldn’t have called it time saving because it was something new that I had never worked with and I really had to sort of change my mindset because I hadn’t built site navigation the way that they do it.
Lea Alcantara: [Agrees]
Emily Lewis: But ultimately in the long run, it made adding pages to the navigation structure really easy and then the big bonus, it’s really easy for my clients. What about you? I appreciate an add-on that can make building navigation the easy bit. Have you been using add-on, or do you take an approach that has saved you time?
Lea Alcantara: Well, generally speaking, in terms of navigation, I’m old school so I generally don’t use something like structure. I have the structure and it is pretty cool, but it’s not relevant for every single project that I use.
Emily Lewis: Right.
Lea Alcantara: For those that don’t use structure, I’ve used essentially anything, and like pretty much every option that you could use. The first one I always try to do is how can I just do this natively.
Emily Lewis: [Agrees]
Lea Alcantara: If I am using something like categories or entries, then that’s pretty straightforward with just the entry’s tag or the category’s tag. And if it’s a simple site, then that’s that. The problem with using that is, let’s say, your client asks you to reorder things.
Emily Lewis: [Agrees]
Lea Alcantara: Yeah, generally speaking, we tend to do an order based on the title or the date that it was entered in, but sometimes you don’t always have the organization to actually do that in the right order while you are entering things in.
Emily Lewis: [Agrees]
Lea Alcantara: And your client might change their mind over the order of how the navigation is. So how I actually address that was when I implemented a site using native channel entries or categories for navigation, if the client wants to reorder it, I actually use an add-on from Low called Low Reorder.
Emily Lewis: [Agrees]
Lea Alcantara: And so it’s a drag and drop interface. Essentially, you plug it in and then you point it to the channel that you want your client to be able to reenter, and what’s also not as documented to, my friend James who runs Bright Rocket, he wrote an article about using Low Reorder. Low Reorder also allows you to reorder category entries as well in a drag and drop interface.
Emily Lewis: Yes.
Lea Alcantara: So you just again point to the channel, configure the add-on and then I just tell my client, “If you need to reorder your entries or reorder the navigation or reorder this, this is where you go,” and they just drag and drop, drag and drop. So that’s something that saved them a lot of time, my client a lot of time and me, instead of having to say, “Well, go to the entry and change the date,” which is pretty cumbersome.
Emily Lewis: [Agrees]
Lea Alcantara: Or what some other people use to do was they would just create a new custom field and they would call it order and then you would have to place like 1, 2, 3 manually, which isn’t really…
Emily Lewis: [Agrees]
Lea Alcantara: I mean, it works, but it’s just not user friendly, especially for clients in order to figure out like what’s the proper order for this.
Emily Lewis: [Agrees]
Lea Alcantara: That’s what I use.
Emily Lewis: Yeah, I think when it comes to navigation, I don’t think there is a go-to solution for saving time because like you’ve said, every project is different, so not all add-ons or approaches are going to work for that particular client. Maybe the time saving trick here is knowing the different options that you do have so that you can quickly make the decision on what to implement for a given project.
Lea Alcantara: Yeah, for sure, and we will link to the EE Insider article asking readers, how do you nav?
Emily Lewis: [Agrees]
Lea Alcantara: Because all the comments, they will give you a little bit of information of the different add-ons that people use, whether they are hard code or not. It’s quite interesting.
Emily Lewis: The last suggestion we got from Twitter was basically about a base install. Jason Siffring, I think that’s how you pronounce his last name, he suggested, “Put your base EE install in a Git repo. Have a good few default add-ons and user account set up to save time on every project.” I’ve never done this. I’ve heard lots of folks talking about this, a standard install that they do including the add-ons and everything. Do you do that?
Lea Alcantara: Currently, I don’t really have a basic install package simply because I feel like at least it would… this can be argued. A lot of people say, “Well, everyone is going to have a home page and this and blah, blah, blah.” That kind of stuff.
Emily Lewis: [Agrees]
Lea Alcantara: I don’t have a basic install package. I feel like I have more of the basic standard approach which is based on the planning, the preplanning and stuff that I do and I mean, there is the basic install package that I’m starting to pare down and delete all those extra modules and stuff.
Emily Lewis: [Agrees]
Lea Alcantara: But generally speaking, no, I don’t do like one with default add-ons on there. If I do have a base install, it’s basically the main ExpressionEngine install with less stuff.
Emily Lewis: [Laughs] Right.
Lea Alcantara: That’s my base install and that’s where I start off with, and I don’t start adding add-ons until later.
Emily Lewis: [Agrees] That’s pretty much what I’ve done so far. I could see having a base install if I had more common clients.
Lea Alcantara: Yes.
Emily Lewis: But my clients are really all over the place and the kind of projects that I’m doing, they are also different that, yeah, I mean I’ve kind of know what add-ons I maybe using based on my planning, but there isn’t some standard thing that I install. I just start with EE from scratch and go from there.
Lea Alcantara: Yeah, yes. So EE from scratch, that’s my base install.
Emily Lewis: [Laughs]
Lea Alcantara: Yeah. Another tip that someone mentioned, Andy Banksuk, hopefully I’m saying that properly, on Twitter, reminded us to use config files in our workflow.
Emily Lewis: [Agrees]
Lea Alcantara: So this probably especially important for those that have Git repos and dev and staging environments and especially on much larger sites.
Emily Lewis: [Agrees]
Lea Alcantara: But it also is relevant to smaller sites, too, generally speaking. The config file can help with quick installs as well because you are starting to put a lot of default information like this is where my file upload directories are. This is where my third-party directories are, especially if you start securing your ExpressionEngine install, you are going to be moving a lot of your folders in different places and so it’s not easily accessible or if you are just going to manipulate where folders are in general for workflow uses. And I know a lot of people in EECI do this.
Emily Lewis: [Agrees]
Lea Alcantara: Like they move their third-party folder outside of the ExpressionEngine system folder and then they just have it off somewhere so they need to use the config file to point to that section right away and it’s important to have all of that kind of pre-configured in your config file even before you do an install.
Emily Lewis: [Agrees]
Lea Alcantara: Because if it doesn’t know where the themes folder is, especially if you move things around from where it is in default, then definitely having a default config file where all those things are set up based on your workflow speeds things up really quickly and more importantly for those that decide to move between domain names and between hosting situations are really helpful.
Emily Lewis: I wanted to ask you real quickly. I know you said that after we had our episode with Ian and Adam on Version Control that you were installing Git.
Lea Alcantara: [Agrees]
Emily Lewis: Have you gone ahead and done that already?
Lea Alcantara: No.
Emily Lewis: [Laughs]
Lea Alcantara: No, unfortunately, I haven’t.
Emily Lewis: Me either, so don’t feel bad. [Laughs]
Lea Alcantara: Yeah, yeah. So like I looked at it and I’m still doing it the old school way.
Emily Lewis: [Agrees]
Lea Alcantara: But I am working locally more than I’ve ever done.
Emily Lewis: Nice.
Lea Alcantara: Like I usually just started working on a dev environment that no one can see, but it’s like a dev sub-domain.
Emily Lewis: [Agrees]
Lea Alcantara: And instead now, I’m going to start locally first because it’s so much faster, and then I’m going to do that entire process in making other things live later on, but I haven’t taken that leap to signing up for Git yet and doing the repos and all that fun stuff yet.
Emily Lewis: Yeah, and same here. I kind of told myself and promised myself I would, and it’s at the top of the list of things to do that I don’t have deadlines.
Lea Alcantara: Yeah, yeah, yeah.
Emily Lewis: But I do think what I’ve been doing as well is basically what you said, I’m trying to do my development locally which is a new thing for me. So I’m looking at it as baby steps. I’m going to start getting comfortable working local and pushing to a development server and then I’d get into the version control aspects of it.
Lea Alcantara: Yeah, for sure.
Emily Lewis: And definitely take that suggestion about the config files when I get to that point.
Lea Alcantara: I think sometimes when as I’m looking back at all the stuff that we were talking about for time saving, it takes a little bit of time to…
Emily Lewis: Be time saving.
Lea Alcantara: Yeah, exactly. To save time. But the thing is that there is a time investment upfront.
Emily Lewis: [Agrees]
Lea Alcantara: So when we were talking about Git or we were talking about planning and all the stuff, so there is a time investment upfront, but in the future and moving forward it saves so much time moving on.
Emily Lewis: I agree, and I think that that’s one of the things that I know for myself I have to sort of bite the bullet and take that initial time investment, but we all do this though.
Lea Alcantara: Yeah.
Emily Lewis: We just don’t necessarily do it with our workflows or our project management approaches. We do it with, “Oh, we picked up a new add-on. We want to see how it works and how it might make this client better.” There is a time investment with that.
Lea Alcantara: Yeah, for sure.
Emily Lewis: Learning a new technique in CSS, there is a time investment. But once you’ve done it, then you know that the next time it’s going to be faster and that’s just how it goes.
Lea Alcantara: Yeah, for sure.
Emily Lewis: So take and embrace that part of it. Embrace the learning curve so that you can get the best return on your time investment upfront.
Lea Alcantara: I think that’s a good place to end it for today. [Music] So we’d like to thank our sponsors for this podcast, Mijingo and Pixel & Tonic.
Emily Lewis: We would also like to thank our partners, EllisLab, EngineHosting and Devot:ee.
Lea Alcantara: Also, thanks to our listeners for tuning in. If you want to know more about the podcast, make sure you follow us on Twitter @eepodcast or visit our website, ee-podcast.com.
Emily Lewis: And don’t forget to tune in to our next episode when we will be talking about building image galleries in ExpressionEngine. Be sure to check out our schedule on our site at ee-podcast.com/schedule for more upcoming topics.
Lea Alcantara: This is Lea Alcantara.
Emily Lewis: And Emily Lewis.
Lea Alcantara: Signing off for the ExpressionEngine Podcast. See you next time.
Emily Lewis: Cheers.
[Music stops]