Ready to watch this entire course?
Become a member and get unlimited access to the entire skills library of over 4,900 courses, including more Developer and personalized recommendations.Start Your Free Trial Now
- View Offline
Starting with the what and why of CodeIgniter, Jon introduces key concepts such as the MVC pattern and libraries by demonstrating how to create static pages, then storing and displaying magazine info in a database. Advanced topics like classes and helpers are explored to validate user input, upload files, and much more. By creating a complete system, you'll have the foundation to build your own applications with CodeIgniter.
- What is CodeIgniter?
- Creating a static page controller
- Generating output with a view
- What is a model?
- Saving data with Active Records
- Creating forms
- Validating user input
- Listing records in tables
- Uploading images
- Viewing and deleting records
Skill Level Intermediate
The HTML table class, generates HTML tables from arrays or database results sets. The table class is initialized in the controller, using this load library table. Once it's loaded it can be accessed using this table. While I can technically call the library class from within the controller, it's best practiced to keep display in the view. Going back to the IDE, I'm going to take a look again at the magazine controller index method. Right now there's a bunch of hard coded stuff, instead I'm going to replace it with something a lot more flexible.
I'll start by loading the library for table. This load, library, table. Next, I'm going to build an array of magazines for table library to render, magazines equals array, I will load the models for both the issue and the publication by passing in a array, this load model then a array containing issue and publication. Then I'll get all the issues that are known in the database.
Issues, equals, this, issue, get, foreach, issues as issue, instantiate a publication, publication equals new (SOUND) . Publication. Load it with a publication ID from the issue. So, publication load, issue, location ID. Then, add an array to the magazine's array with the values in the following order. So, magazines equals array, publication.
Publication name, the issue, issue number and issue, issue date publication. Finally, pass the magazines view a variable with the magazines you can remove all this data, and then pass magazines in array containing magazines and the contents of magazines. We no longer need a single display of the magazine so just delete it and save. Next, I'll go to the magazines view.
I don't have to do anything to initialize the table, it's already been done. However, I do want to set a header row and I'll use a method called set heading to do that. It just sets th elements with a string that I specified. Open up, php, this table set heading Publication, issue, and date. I'll pass the magazines variable to the table generation method and echo the result. Echo, this, table, generate, magazines. That's all that's needed.
Save, and then go to the browser and refresh. I see a nice table of issues listed. View the source. Notice that it's even creating a proper t head and t body using th for the headers. You can probably believe the number of times that I've written that markup by hand. This is very convenient. Close the source. The application is coming along nicely. And building it in some increasingly usable functionality, but it's still looking kind of well, unstyled/g.
Lets add Twitter bootstrap to the mix to improve the look and feel. To save time, I performed a little customization at Twitter bootstrap to separate things out in implemented at bare bones navigation system. Open up your exercise files, and copy the folder named bootstrap to sandbox, into application, views. Then copy css, image, and js.
And put that in the web root. Going back to the IDE, let's take a look at the magazine control. Note that since I put the bootstrap into a folder, I'm going to start the view name with the name of the folder, slash, then the name of the actual view. This, load, view, bootstrap slash header and then add at the very end the footer. I'm going to do the same for the add method. For the header and the footer. Save.
Then reload the browser. Things should look a lot better now with standardized styling. If I go to add a magazine, the error messages will look properly styled. I'll try adding a magazine. Sandy Shore issue number 4, published in 2013, 04-01. And save. Cool. The success message is also properly assigned. In this chapter I've defined what CodeIgniter libraries are and how to use them. I then created a form to add magazines. With that form, I validated user input using the form validation library. Then, securely took user input and saved it in data base. Finally, i listed the saved magazines using (INAUDIBLE) tables. libraries are useful collection of tools in coding but they are not the only collection there are also helpers which serve different purpose