Implementing PHP snippets
Video: Implementing PHP snippetsThe main method for extending Drupal's functionality is through modules. That is, downloadable packages of code that add specific abilities to your site. But some tricks don't require an entire module. Small passages of PHP code called Snippets by the Drupal community will do the job just fine. We'll show you where to find such snippets, how to implement them on your own site and some traps to watch out for. The place to go for snippets is, as with everything else in Drupal, drupal.org. Once you're on the Drupal site, go to Documentation, scroll down and go to Beyond the basics.
Viewers: in countries Watching now:
Drupal is a free, open-source content management system (CMS) for a variety of platforms. It has a robust user community and easy-to-use administration features. Drupal Essential Training covers all the important aspects of installing, configuring, customizing, and maintaining a Drupal-powered website. Instructor Tom Geller explores blogs, discussion forums, member profiles, and other features while demonstrating the steps required to make Drupal perform. He also teaches fundamental concepts and skills along the way, including installation, backups, and updates; security and permissions; flexible page layouts and CSS; menu navigation; and performance monitoring and disaster recovery. He also discusses how to select and install the community-supported modules that further expand Drupal's capabilities, and gives experienced PHP programmers tips on customizing page templates. Example files accompany the course.
- Understanding the inner workings of Drupal
- Creating stories, pages, blogs, forums, and polls
- Managing users and comments
- Setting and customizing themes
- Exchanging content via RSS
- Stopping comment spam with a CAPTCHA
- Launching a site and joining the Drupal community
Implementing PHP snippets
The main method for extending Drupal's functionality is through modules. That is, downloadable packages of code that add specific abilities to your site. But some tricks don't require an entire module. Small passages of PHP code called Snippets by the Drupal community will do the job just fine. We'll show you where to find such snippets, how to implement them on your own site and some traps to watch out for. The place to go for snippets is, as with everything else in Drupal, drupal.org. Once you're on the Drupal site, go to Documentation, scroll down and go to Beyond the basics.
Beyond the basics is of the book type, so you see you can page back and forth through it. We're going to go directly to the chapter on Snippets. There are two main types or snippets, the first one is for themes and this is the biggest area. If you click on it, you see numerous tricks that you can perform on your own site. You could of course click on any of these that look interesting to you or page through them as this is a book. Let's scroll to the bottom and then go back up, so we see all of the snippets. The other kind of snippets is for content- that is, to change small bits of your site as we did on our site for our endorsements block.
In addition, there are SQL snippets, which let you change things in the database. There are so many of these and they're implemented through a different method. You can learn how to implement SQL snippets by clicking on this link, How to use an SQL snippet. But we're only going to focus on the PHP ones. Finally, some snippets happen outside of the Drupal interface. That is, it's PHP which is placed on your server for one reason or another. These are also contained in the PHP snippets chapter. If you click on it and scroll down, you'll see an example of this PHP snippet that happens on the server, this Remote posting and administration.
We're going to show you how to implement one of these PHP snippets. We'll go back up and enter Theme snippets. The one that we're going to implement is called Add an "Edit" Tab to Every Block, we scroll down to find it and there it is. Click on it, when you get to this page, read the instructions of how to implement it. In this case, it gives us a link to an earlier post, which we'll want to read. But let's pretend that we don't at this point. We look through and see here's the code that you'd include in your theme's block.tpl.php file and now we know the file we're going to affect.
Before we do anything else, we're going to find that file and make a backup of it, in case anything goes wrong with this snippet. We go back to our finder and hide everything else and then go to our Drupal installation folder. This will be the folder where you first put Drupal when you started out. We're using a theme that came installed with Drupal. So, our theme will be in the Themes folder. If you're using a theme that wasn't installed with Drupal, yours will be in the Sites folder either in All or the Default folder. But for us, we're going into Themes and then into bluemarine, which is our theme.
There's the block.tpl.php file. We'll highlight it, copy it either by hitting Command+C on the Mac or Ctrl+C on a Windows machine and just paste it somewhere else. I'm going to put it on the desktop. And then I'm just going to add a little bit of text here, so it's clear that this is the backup, call it BACKUP. There, now we're ready to work on this file. We open it up in a Text Editor. If this is the first time you've opened this file, you may get a warning because you downloaded this file from the internet. Because we know where it came from and we trust it, we're going to say Open. So, now we've the file open that we want to affect. We also have a backup made of that file for safekeeping.
Now, we go back to that snippet. We'll copy the text by hitting Command+C on the Mac or Ctrl+C on a Windows machine, go back to our text file and then click in it and since it didn't mention where we've to place it, I'm just going to put it anywhere, I'll put it at the end of the file by hitting Command+V on a Mac or Ctrl+V on a Windows machine and save it and close it. Let's see how that affected our site. We go back, we reload the page and now we see a little Edit box here, right underneath the endorsements. We also see what would be edited. Wait, I thought that would add the edit capability to all of my blocks. Let's go back and take a look. Aha! Maybe there are some tips in here.
Indeed, if we go back to the earlier conversation, we see that it only affects custom blocks. This just highlights why you've to read all the documentation when you use a snippet. But in this case, it looks like the snippet did exactly what we wanted. Let's try it out. Click on Edit and there we're, we can edit that particular block. I've decided I didn't like the change to my site, so I'm going to go back to the earlier version where we weren't able to edit those endorsements. I go to the finder, hide everything, throw away that block.tpl.php that we just changed. On the Mac you do that by dragging to the trash, on the PC by right clicking on the mouse and selecting Delete.
Now, I put that backup back into that folder. I drag it in and change the name back to what it was before, delete the extra PHP and Backup and let's go back to our site to make sure that took. I reload the site and indeed the Edit box disappeared. I've to give you a few caveats though when you use snippets. First of all, there is no central testing authority for testing snippets, where as the Drupal core project itself goes through a lot of quality control, there really isn't any for snippets except for those people who have used it and then commented on it. That leads us to the second part, read the documentation very well and be sure you understand it and read all of the comments.
Very often, somebody will submit a snippet and then the comment will say, you know there's a bug in it, I discovered it this way and then somebody will contribute a patch to it, so it works correctly. So, do read all of the comments. Next, make sure that you understand the code as best as you can. I'm not a programmer myself, but if you look through it enough times, you can start to see the logic of what's happening. Finally, always backup the effected files first. I can't stress that enough. If something goes wrong with the snippet, you want to be able to rollback to your situation before you applied it. I love Drupal Snippets, of course I like that they improve my sites, but just as importantly, they help me learn PHP and my SQL. I've come to understand how Drupal works from the inside out because I can see how programmers use some of its internal variables.
And I feel empowered by seeing how one can just reach into the code and make big changes with very small tweaks.
Find answers to the most frequently asked questions about Drupal 6 Essential Training .
Here are the FAQs that matched your search "" :
- Q: While following along to the installation instructions in the “Installing WAMP and Drupal on Windows” chapter in the Drupal Essential Training title, an error occurs when attempting to open the local host page. Nothing appears except for an error reading “WAMPSERVER server offline.” What is causing this?
- A: There is a known problem with some versions of WAMP that include a version of PHP (5.3) that some versions of Drupal is not compatible with. See http://tomgeller.com/content/tips-running-drupal-windows-using-wamp#comment-831 for more information.
If that is not causing the issue, reference the tips at http://tomgeller.com/content/tips-running-drupal-windows-using-wamp.
If you don't see the solution at either of those links, try using another AMP stack, such as XAMPP or the Acquia stack installer. See http://tomgeller.com/content/what-hells-wrong-drupal-wamp for discussion about these.
- Q: After installing XAMPP and running Drupal for the first time, the Administration menu does not appear. What is the reason for this?
- A: There are several possible problems. Here are some likely solutions. (These may also solve problems encountered with other AMP stacks.)
- Increase XAMPP's PHP allocation.
- Check to make sure all XAMPP's paths are correct and that permissions are correct. If the database information appears, but not Drupal's supporting files, and an included theme is being used, the supporting files will be in the /modules folder.
- Another solution is to not use WAMP or XAMPP. One option is to use Acquia's Drupal Stack Installer ("DAMP"), which can be found at http://www.acquia.com/downloads. However, that installs Acquia Drupal, which is a version of "normal" Drupal extended with additional modules. If only core Drupal is desired, see the instructions at http://acquia.com/blog/kieran/try-drupal-7-alpha-your-laptop-or-desktop. (The instructions are for Drupal 7, but will work for Drupal 6 as well.)
- Q: In the "Using the example files" movie, the method of importing information to the database is shown, using the backup in Chapter 10. When attempting to do this, the following error is shown: "No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16." The system is running the latest versions of Apache, PhP and MySQL, on Windows Vista. What could be causing the problem?
- A: This is probably caused because your AMP stack allocates too little memory to PHP.
That's especially true if you're using WAMP, which only gives PHP 2MB of memory, when it really needs at least 16MB.You'll see the issue if you go to the MySQL-controlling phpMyAdmin screen (probably at http://localhost/phpMyAdmin) and click "Import": The maximum file size allowed is 2,048K. That's only 2MB, and the databases for most Drupal sites are much larger than that. (The example site for Drupal Essential Training gets as big as 5MB.) The video "Installing WAMP and Drupal on Windows" shows (at around 3:30) where the php.ini file is, but here are some more-complete instructions to increase that memory limit.
- Click the WAMP icon in your system tray.
- Select "PHP". In the side menu, select "php.ini" to open a file containing PHP's configuration options.
- Search for the line, "upload_max_filesize = 2M".
- Change it to "upload_max_filesize = 32M" (or whatever you like).
- Save the file and restart WAMP. (Better yet, restart your computer entirely to be sure. I'm frankly not sure whether it makes a difference.)
- Now go back to that "Import" screen in phpMyAdmin: You should notice that the limit has changed.
- Q: I don't remember the default username and password used demonstrate Drupal.
- A: The default username used in the course is "admin"; the default password is "booth".
- Q: How can I change Drupal's administrative username and password?
- A: If for some reason the default exercise file username (admin) and password (booth) don't work, you can change them in the database itself using phpMyAdmin. (This technique is demonstrated in a video from Chapter 8, "Recovering from disasters".)
- Open your Drupal database with phpMyAdmin.
- Go to the "users" table. Click the Browse icon.
- For the row where uid = 1, click the Edit icon. (Note the value under the "Name" column: That's the administrator's username.)
- In the "pass" row, select "MD5" under the "Function" column
- In the same row, enter your new password under the "Value" column.
- At the bottom of the screen, click the "Go" button. You should now be able to log in with that username and new password.
- Q: In Windows Vista, the WAMP icon disappears from the system tray after a certain amount of time. How do I get it to reappear?
- A: To make the WAMP icon reappear (so that you can access localhost, phpmyadmin, php.ini, etc.), you have to activate the "start WAMP server" icon (from start menu, desktop or wherever). The system tray icon will reappear.
- Q: My .htaccess file disappeared. What caused this?
- A: A few times during the Drupal Essential Training video series, the instructor says to copy a Drupal installation by selecting all the files in the folder and then "dragging and dropping" them, either to a server or another location on your local computer. This is not the best way to do so, as the hidden file ".htaccess" will not be copied.
There are two ways to get around that problem:
Sorry for the error.
- When installing Drupal for the first time: Instead of copying files from the Drupal folder, move the entire folder to its target location and rename it. This is the easiest solution for those without experience with Unix.
- Use the command-line interface to copy the .htaccess file.
- Q: In the video, the instructor says the current version of Drupal is 6.3, but on the drupal.org site, the latest version is 6.17. Which is the newer version of Drupal?
- A: Drupal 6.17 is newer than version 6.3. For some reason, the the version numbers go 6.3, 6.4... 6.9, 6.10... 6.17. It’s counter-intuitive, but that’s the order.
- Q: My WAMP phpMyadmin will not allow me to upload the exercise files. It returns this message: "No data was received to import. Either no file name was submitted, or the file size exceeded the maximum size permitted by your PHP configuration. See FAQ 1.16." There was no previous database to drop, so what do I need to do to make this work?
- A: This is a common problem, caused not by Drupal, but by WAMP. WAMP only allows you to upload files of 2MB or smaller, which is much too small. The solution is detailed at http://tomgeller.com/cant-import-a-drupal-site-in-windows.
Sorry, there are no matches for your search "" —to search again, type in another word or phrase and click search.