title
Build A CodeIgniter PHP App - Part 2
description
We will be building a PHP Codeigniter blog application with CRUD functionality. In this video we will create the Posts model, database table and create functionality to read and manage posts
Code For This Application - https://github.com/bradtraversy/ciblog
10 project PHP Frameworks course - https://www.eduonix.com/affiliates/id/16-10371
PHP 7 Developers Guide - https://www.eduonix.com/affiliates/id/16-10399
detail
{'title': 'Build A CodeIgniter PHP App - Part 2', 'heatmap': [{'end': 1208.826, 'start': 1159.682, 'weight': 0.891}], 'summary': 'Tutorial covers setting up codeigniter, creating controllers, models, and views for handling posts, form field updates, form validation in php, form submission, database record insertion, database operations, editing post functionality, php crud functionality, and integrating ckeditor for text editing, aiming to achieve full functionality by allowing editing and submission of posts, and adding the ability to create new posts, with a focus on achieving proper functionality and security.', 'chapters': [{'end': 185.855, 'segs': [{'end': 60.26, 'src': 'embed', 'start': 0.745, 'weight': 0, 'content': [{'end': 7.407, 'text': 'hey guys, welcome to part two of the code igniter blog freestyle coding series.', 'start': 0.745, 'duration': 6.662}, {'end': 9.628, 'text': 'in the last video we set up code igniter.', 'start': 7.407, 'duration': 2.221}, {'end': 15.17, 'text': 'we created the pages controller with some views so we could add static pages.', 'start': 9.628, 'duration': 5.542}, {'end': 17.431, 'text': 'we also created a post controller.', 'start': 15.17, 'duration': 2.261}, {'end': 26.174, 'text': 'we created a model database table for our posts and we made it so that we can list them on the post page and we can also click,', 'start': 17.431, 'duration': 8.743}, {'end': 28.795, 'text': 'read more and we can read the individual post.', 'start': 26.174, 'duration': 2.621}, {'end': 34.217, 'text': 'So what I want to do now is make it so that we can add them through our application.', 'start': 30.396, 'duration': 3.821}, {'end': 47.562, 'text': "All right, so let's go to our post controller and we're going to go down here and let's create a function called create.", 'start': 34.797, 'duration': 12.765}, {'end': 60.26, 'text': "For right now let's just take that we'll have a title and then we'll take all the views and we'll paste that in.", 'start': 52.383, 'duration': 7.877}], 'summary': 'Code igniter blog series: created controllers, models, and added functions to create posts.', 'duration': 59.515, 'max_score': 0.745, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ745.jpg'}], 'start': 0.745, 'title': 'Adding post functionality', 'summary': 'Covers setting up codeigniter, creating controllers, models, and views for handling posts, and adding a function to create posts through the application.', 'chapters': [{'end': 185.855, 'start': 0.745, 'title': 'Codeigniter blog: adding post functionality', 'summary': 'Covers setting up codeigniter, creating controllers, models, and views for handling posts, and adding a function to create posts through the application.', 'duration': 185.11, 'highlights': ['Creating a function to add posts through the application The chapter focuses on adding a function called create in the post controller to enable adding posts through the application.', 'Setting up CodeIgniter and creating controllers, models, and views for handling posts The chapter includes setting up CodeIgniter, creating controllers for pages and posts, creating a model database table for posts, and setting up views to handle static and individual post pages.']}], 'duration': 185.11, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ745.jpg', 'highlights': ['Setting up CodeIgniter and creating controllers, models, and views for handling posts The chapter includes setting up CodeIgniter, creating controllers for pages and posts, creating a model database table for posts, and setting up views to handle static and individual post pages.', 'Creating a function to add posts through the application The chapter focuses on adding a function called create in the post controller to enable adding posts through the application.']}, {'end': 411.609, 'segs': [{'end': 297.673, 'src': 'embed', 'start': 186.376, 'weight': 2, 'content': [{'end': 188.417, 'text': 'Get rid of the for attribute and label.', 'start': 186.376, 'duration': 2.041}, {'end': 191.399, 'text': 'And this is going to be title.', 'start': 189.097, 'duration': 2.302}, {'end': 194.921, 'text': "And let's make it a text.", 'start': 193.4, 'duration': 1.521}, {'end': 197.643, 'text': 'Get rid of the ID.', 'start': 196.502, 'duration': 1.141}, {'end': 202.186, 'text': "Placeholder We'll say add title.", 'start': 198.484, 'duration': 3.702}, {'end': 205.388, 'text': 'We also want to give it a name.', 'start': 204.107, 'duration': 1.281}, {'end': 207.89, 'text': "We're going to give it a name of title.", 'start': 205.408, 'duration': 2.482}, {'end': 213.393, 'text': 'And then the next field is going to be for the body.', 'start': 209.11, 'duration': 4.283}, {'end': 218.036, 'text': "And that's going to be a text area.", 'start': 216.575, 'duration': 1.461}, {'end': 222.78, 'text': "So we'll change that.", 'start': 221.419, 'duration': 1.361}, {'end': 225.802, 'text': 'And that has to have a closing tag.', 'start': 223.4, 'duration': 2.402}, {'end': 229.324, 'text': "For the placeholder, we'll say add body.", 'start': 226.702, 'duration': 2.622}, {'end': 233.287, 'text': "We don't need an ID, but we do need a name.", 'start': 230.285, 'duration': 3.002}, {'end': 238.692, 'text': 'the type is going to be.', 'start': 237.15, 'duration': 1.542}, {'end': 240.974, 'text': "actually, we don't need a type because it's a text area.", 'start': 238.692, 'duration': 2.282}, {'end': 251.584, 'text': "okay, and then we'll get rid of this and this.", 'start': 240.974, 'duration': 10.61}, {'end': 255.448, 'text': "and let's take a look.", 'start': 251.584, 'duration': 3.864}, {'end': 261.814, 'text': "now I want to use the form helper, so let's go ahead and add that to autoload.", 'start': 255.448, 'duration': 6.366}, {'end': 268.169, 'text': "So right after URL we'll say form.", 'start': 264.528, 'duration': 3.641}, {'end': 269.549, 'text': 'All right.', 'start': 269.249, 'duration': 0.3}, {'end': 277.911, 'text': "And then back in the create, instead of using a form tag like this, we're going to say PHP echo form underscore open.", 'start': 269.649, 'duration': 8.262}, {'end': 286.013, 'text': 'And we want to pass in here post slash create.', 'start': 280.632, 'duration': 5.381}, {'end': 290.414, 'text': "Okay And then down here, we want to actually, we'll just keep that.", 'start': 286.033, 'duration': 4.381}, {'end': 291.054, 'text': "That's fine.", 'start': 290.434, 'duration': 0.62}, {'end': 297.673, 'text': "let's make sure that still shows up.", 'start': 294.471, 'duration': 3.202}], 'summary': 'Remove for attribute and label, add title and body fields, use form helper.', 'duration': 111.297, 'max_score': 186.376, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ186376.jpg'}, {'end': 411.609, 'src': 'embed', 'start': 332.29, 'weight': 0, 'content': [{'end': 339.852, 'text': "now we're gonna go back to the controller, to the create method, and we want to load the form validation library.", 'start': 332.29, 'duration': 7.562}, {'end': 343.233, 'text': "we could do it here, but I'm just gonna do it in the autoload.", 'start': 339.852, 'duration': 3.381}, {'end': 349.675, 'text': "so where it says libraries, we're just gonna put in form validation.", 'start': 343.233, 'duration': 6.442}, {'end': 352.416, 'text': "okay, we'll save that.", 'start': 349.675, 'duration': 2.741}, {'end': 360.852, 'text': 'and now what we want to do is create our rules for validation.', 'start': 355.61, 'duration': 5.242}, {'end': 370.836, 'text': "so let's do this form validation and we want to use set rules.", 'start': 360.852, 'duration': 9.984}, {'end': 386.697, 'text': 'okay, so this is going to be a rule for the title And then we want to put basically a readable form of the name here.', 'start': 370.836, 'duration': 15.861}, {'end': 390.379, 'text': "So we're just going to put an uppercase T.", 'start': 386.757, 'duration': 3.622}, {'end': 392.781, 'text': 'And the rule that we want to set is required.', 'start': 390.379, 'duration': 2.402}, {'end': 395.042, 'text': 'It has to be required.', 'start': 392.801, 'duration': 2.241}, {'end': 397.544, 'text': "And we're going to do the same thing for the body.", 'start': 395.883, 'duration': 1.661}, {'end': 405.988, 'text': 'All right.', 'start': 405.808, 'duration': 0.18}, {'end': 411.609, 'text': 'Now what we want to do is check to see if the validation has ran.', 'start': 406.308, 'duration': 5.301}], 'summary': 'In the create method, form validation library is loaded and rules for title and body are set as required.', 'duration': 79.319, 'max_score': 332.29, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ332290.jpg'}], 'start': 186.376, 'title': 'Form field update and form validation in php', 'summary': "Covers updating form fields by removing unnecessary attributes, adding a form helper, and making specific changes, focusing on 'title' and 'body' fields, as well as setting up form validation in php, including defining form action and method, displaying validation errors, loading form validation library, and creating validation rules in a controller.", 'chapters': [{'end': 269.549, 'start': 186.376, 'title': 'Form field update', 'summary': "Discusses updating form fields by removing unnecessary attributes, adding a form helper, and making specific changes like updating the type and adding a name and placeholder, with a focus on the 'title' and 'body' fields.", 'duration': 83.173, 'highlights': ['The chapter discusses updating form fields by removing unnecessary attributes, adding a form helper, and making specific changes like updating the type and adding a name and placeholder.', 'The chapter emphasizes the importance of adding a form helper by autoloading it after the URL.', "Specific changes like updating the type and adding a name and placeholder are made to the 'title' and 'body' fields."]}, {'end': 411.609, 'start': 269.649, 'title': 'Setting up form validation in php', 'summary': 'Discusses setting up form validation in php by showing how to define form action and method, display validation errors, load form validation library, and create rules for validation in a controller.', 'duration': 141.96, 'highlights': ['The chapter explains how to define form action and method using PHP echo form underscore open and post slash create, respectively.', 'It demonstrates how to display validation errors by inserting PHP echo validation errors in the template above the form.', 'The chapter shows how to load the form validation library in the controller by adding it to the autoload, under libraries.', 'It outlines the process of creating rules for validation using form validation and set rules, specifying rules for the title and body fields.']}], 'duration': 225.233, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ186376.jpg', 'highlights': ['The chapter outlines the process of creating rules for validation using form validation and set rules, specifying rules for the title and body fields.', 'The chapter shows how to load the form validation library in the controller by adding it to the autoload, under libraries.', 'The chapter explains how to define form action and method using PHP echo form underscore open and post slash create, respectively.', 'The chapter emphasizes the importance of adding a form helper by autoloading it after the URL.', "Specific changes like updating the type and adding a name and placeholder are made to the 'title' and 'body' fields.", 'The chapter discusses updating form fields by removing unnecessary attributes, adding a form helper, and making specific changes like updating the type and adding a name and placeholder.']}, {'end': 701.313, 'segs': [{'end': 491.102, 'src': 'embed', 'start': 411.649, 'weight': 0, 'content': [{'end': 413.649, 'text': 'So basically if the form has been submitted.', 'start': 411.649, 'duration': 2}, {'end': 419.73, 'text': 'If it has, then we want to move along and call a model function to insert.', 'start': 413.809, 'duration': 5.921}, {'end': 423.511, 'text': "So we're going to put an if statement here.", 'start': 419.75, 'duration': 3.761}, {'end': 432.393, 'text': "And let's say this form validation run.", 'start': 426.452, 'duration': 5.941}, {'end': 443.353, 'text': "Okay, so we're going to say if it's equal to false, so if it doesn't run, then we just want to load the template.", 'start': 436.988, 'duration': 6.365}, {'end': 446.835, 'text': "So we'll just copy or cut that out and put that up here.", 'start': 443.573, 'duration': 3.262}, {'end': 454.961, 'text': "All right, and if it does run that means the form submitted then we're going to call.", 'start': 446.855, 'duration': 8.106}, {'end': 470.869, 'text': "and if the form submitted and the validation is passed, then we're going to say this post model And we're going to have a function called set post.", 'start': 454.961, 'duration': 15.908}, {'end': 474.171, 'text': 'All right.', 'start': 470.889, 'duration': 3.282}, {'end': 477.913, 'text': 'And then we want to load a success view.', 'start': 474.251, 'duration': 3.662}, {'end': 483.897, 'text': "So we're going to say this load view.", 'start': 478.093, 'duration': 5.804}, {'end': 491.102, 'text': "And then we'll pass in here post slash success.", 'start': 486.018, 'duration': 5.084}], 'summary': 'Code checks form submission, validates, and inserts into model if successful.', 'duration': 79.453, 'max_score': 411.649, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ411649.jpg'}, {'end': 569.244, 'src': 'embed', 'start': 534.15, 'weight': 3, 'content': [{'end': 537.811, 'text': 'Now before we actually insert into the database, we need to create the slug.', 'start': 534.15, 'duration': 3.661}, {'end': 544.313, 'text': 'So slug, and we want to wrap this in URL title.', 'start': 538.911, 'duration': 5.402}, {'end': 552.755, 'text': "We're going to pass in this input post.", 'start': 544.333, 'duration': 8.422}, {'end': 557.196, 'text': 'This is how we get the form values, and we want the value of title.', 'start': 552.775, 'duration': 4.421}, {'end': 564.04, 'text': "All right, so we're just wrapping the title in this URL title function, which turns it into a slug.", 'start': 557.935, 'duration': 6.105}, {'end': 569.244, 'text': "All right, then we're going to create an array called data.", 'start': 565.481, 'duration': 3.763}], 'summary': 'Creating slug for database entry using url title function.', 'duration': 35.094, 'max_score': 534.15, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ534150.jpg'}, {'end': 663.663, 'src': 'embed', 'start': 617.82, 'weight': 5, 'content': [{'end': 626.164, 'text': "We're going to say return this DB insert.", 'start': 617.82, 'duration': 8.344}, {'end': 629.266, 'text': 'Okay, so we want to insert.', 'start': 626.184, 'duration': 3.082}, {'end': 635.569, 'text': 'We need the table name, which is posts, and then we need to just pass in the data.', 'start': 630.386, 'duration': 5.183}, {'end': 639.37, 'text': 'All right, and that should create the record for us.', 'start': 635.589, 'duration': 3.781}, {'end': 640.531, 'text': "So let's save that.", 'start': 639.49, 'duration': 1.041}, {'end': 654.779, 'text': "Okay And actually, you know what, instead of doing a success page, let's just, we'll just load the index.", 'start': 644.275, 'duration': 10.504}, {'end': 656.86, 'text': "Let's copy that.", 'start': 655.92, 'duration': 0.94}, {'end': 663.663, 'text': "Okay, so we'll just paste that in.", 'start': 656.88, 'duration': 6.783}], 'summary': "Insert data into 'posts' table to create a record and redirect to index page.", 'duration': 45.843, 'max_score': 617.82, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ617820.jpg'}], 'start': 411.649, 'title': 'Form submission and database record insertion', 'summary': "Discusses the process of form submission, including form validation, and calling a model function to insert data. it also covers creating a slug for the url, inserting form data into the database table 'posts', and redirecting to the 'post' page upon successful submission.", 'chapters': [{'end': 522.976, 'start': 411.649, 'title': 'Form submission and model function', 'summary': 'Discusses the process of form submission, including form validation and calling a model function to insert data, as well as the conditions for loading templates and success views.', 'duration': 111.327, 'highlights': ['The process involves checking if the form has been submitted and then calling a model function to insert data.', 'Form validation is checked, and if it fails, the template is loaded.', "If the form is submitted and the validation passes, a success view is loaded after calling the 'create post' function in the model."]}, {'end': 701.313, 'start': 534.15, 'title': 'Database record insertion and redirect', 'summary': "Covers the process of creating a slug for the url, inserting form data into the database table 'posts', and redirecting to the 'post' page upon successful submission.", 'duration': 167.163, 'highlights': ['The slug is created by wrapping the title in the URL title function, turning it into a slug. The process involves using the URL title function to convert the title into a slug for the URL.', "Creating an array containing the title, slug, and body data to be inserted into the database table 'posts'. An array is created with the title, slug, and body data extracted from the form to be inserted into the 'posts' table.", "Inserting the data array into the database table 'posts' using DB insert to create the record. The data array is inserted into the 'posts' table using DB insert, creating a new record in the database.", "Redirecting to the 'post' page upon successful submission of the form data. Upon successful submission, the page is redirected to the 'post' page to display the newly created post."]}], 'duration': 289.664, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ411649.jpg', 'highlights': ['The process involves checking if the form has been submitted and then calling a model function to insert data.', 'Form validation is checked, and if it fails, the template is loaded.', "If the form is submitted and the validation passes, a success view is loaded after calling the 'create post' function in the model.", 'The slug is created by wrapping the title in the URL title function, turning it into a slug.', "Creating an array containing the title, slug, and body data to be inserted into the database table 'posts'.", "Inserting the data array into the database table 'posts' using DB insert to create the record.", "Redirecting to the 'post' page upon successful submission of the form data."]}, {'end': 1192.657, 'segs': [{'end': 801.883, 'src': 'embed', 'start': 702.114, 'weight': 0, 'content': [{'end': 704.817, 'text': "Actually, you know what? Let's try submitting it without the data first.", 'start': 702.114, 'duration': 2.703}, {'end': 706.939, 'text': "And there's our errors.", 'start': 705.838, 'duration': 1.101}, {'end': 708.461, 'text': 'The title field is required.', 'start': 706.999, 'duration': 1.462}, {'end': 709.442, 'text': 'Body is required.', 'start': 708.541, 'duration': 0.901}, {'end': 712.606, 'text': 'If we just do the title, we get body good.', 'start': 709.842, 'duration': 2.764}, {'end': 716.37, 'text': "So let's say post three.", 'start': 714.187, 'duration': 2.183}, {'end': 729.094, 'text': "We'll submit and there it is post 3 Now I'd like to have the latest up top.", 'start': 722.712, 'duration': 6.382}, {'end': 746.78, 'text': "So I believe, if we go to post model and to get posts, Let's see, I think we can go up here and then just say this DB and then do order.", 'start': 729.474, 'duration': 17.306}, {'end': 760.271, 'text': "underscore by and Okay, we want to order by ID and let's see desk.", 'start': 746.78, 'duration': 13.491}, {'end': 766.175, 'text': "It's also, yeah, that should do it.", 'start': 763.713, 'duration': 2.462}, {'end': 767.656, 'text': "So let's go ahead and reload.", 'start': 766.315, 'duration': 1.341}, {'end': 769.897, 'text': 'And now we have post three up at the top.', 'start': 768.136, 'duration': 1.761}, {'end': 774.153, 'text': 'I want to be able to delete them as well.', 'start': 771.67, 'duration': 2.483}, {'end': 778.177, 'text': 'so on this page, here I want to have a delete button.', 'start': 774.153, 'duration': 4.024}, {'end': 783.083, 'text': "so let's close all this out for now and then we'll go to.", 'start': 778.177, 'duration': 4.906}, {'end': 788.129, 'text': "let's see views, post view.", 'start': 783.083, 'duration': 5.046}, {'end': 789.63, 'text': "let's go down at the bottom.", 'start': 788.129, 'duration': 1.501}, {'end': 799.361, 'text': "we'll put an HR here, And I think what I'm gonna do is, instead of having a link that goes to a get request, which is extremely unsafe,", 'start': 789.63, 'duration': 9.731}, {'end': 801.883, 'text': "we're gonna have a form with just a delete button.", 'start': 799.361, 'duration': 2.522}], 'summary': 'Developing a web page to submit, display, and delete posts, with focus on ordering and safety measures.', 'duration': 99.769, 'max_score': 702.114, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ702114.jpg'}, {'end': 921.843, 'src': 'embed', 'start': 867.239, 'weight': 2, 'content': [{'end': 878.626, 'text': "delete three okay, let's make sure that the method is post, which it is all right.", 'start': 867.239, 'duration': 11.387}, {'end': 897.662, 'text': "so now we're gonna go to our post controller and let's say public function, delete, and we should be getting that ID as a parameter through here.", 'start': 878.626, 'duration': 19.036}, {'end': 903.046, 'text': "so let's do echo ID.", 'start': 897.662, 'duration': 5.384}, {'end': 903.827, 'text': 'okay, so there it is.', 'start': 903.046, 'duration': 0.781}, {'end': 919.242, 'text': "Now we're going to call this post model and we'll say delete post.", 'start': 909.716, 'duration': 9.526}, {'end': 921.843, 'text': "Okay, and we'll pass along that ID.", 'start': 920.002, 'duration': 1.841}], 'summary': 'Creating a post deletion method that takes an id as a parameter and calls the post model to delete the post.', 'duration': 54.604, 'max_score': 867.239, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ867239.jpg'}, {'end': 1129.621, 'src': 'embed', 'start': 1095.862, 'weight': 4, 'content': [{'end': 1097.063, 'text': 'And that will take in the ID.', 'start': 1095.862, 'duration': 1.201}, {'end': 1110.257, 'text': "Now this is going to, we want to load an edit view, so let's go to views, posts, create a file, call it edit.php.", 'start': 1102.15, 'duration': 8.107}, {'end': 1115.783, 'text': "Okay, and let's copy everything we have in the create for the edit.", 'start': 1111.519, 'duration': 4.264}, {'end': 1120.587, 'text': "Okay, we'll save that.", 'start': 1115.803, 'duration': 4.784}, {'end': 1125.892, 'text': "And now back in the controller, we're going to copy what we have.", 'start': 1121.708, 'duration': 4.184}, {'end': 1129.621, 'text': "Let's see.", 'start': 1129.161, 'duration': 0.46}], 'summary': 'Creating an edit view for posts in the controller and views.', 'duration': 33.759, 'max_score': 1095.862, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ1095862.jpg'}, {'end': 1192.657, 'src': 'embed', 'start': 1159.682, 'weight': 5, 'content': [{'end': 1165.765, 'text': "Alright you know what this isn't going to work actually because we're looking for a slug right here.", 'start': 1159.682, 'duration': 6.083}, {'end': 1169.468, 'text': 'So I mean I guess we could pass the slug instead of the ID.', 'start': 1166.486, 'duration': 2.982}, {'end': 1173.03, 'text': "Yeah let's do that.", 'start': 1169.488, 'duration': 3.542}, {'end': 1183.176, 'text': 'So slug and then we have to go back to the view right here and change this to slug.', 'start': 1173.17, 'duration': 10.006}, {'end': 1188.694, 'text': 'There we go.', 'start': 1188.234, 'duration': 0.46}, {'end': 1192.657, 'text': 'So now we want to put the values in the form.', 'start': 1189.735, 'duration': 2.922}], 'summary': 'Changing from id to slug for better functionality in form.', 'duration': 32.975, 'max_score': 1159.682, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ1159682.jpg'}], 'start': 702.114, 'title': 'Database operations and editing post functionality', 'summary': 'Covers implementing database operations like ordering, deleting, and form submission in a web application using php and mysql, aiming to achieve proper functionality and security. it also details the process of adding an edit button, creating an edit view file, and modifying the controller to support editing of a post, including the change from using id to slug as a reference.', 'chapters': [{'end': 986.218, 'start': 702.114, 'title': 'Database operations and form handling', 'summary': 'Covers implementing database operations such as ordering, deleting, and submitting forms in a web application using php and mysql, aiming to achieve proper functionality and security measures.', 'duration': 284.104, 'highlights': ['Implementing ordering of posts by ID to display the latest post at the top The speaker demonstrates how to order posts by ID to have the latest post displayed at the top for better user experience and engagement.', 'Developing a secure form for deleting posts using a form with a delete button instead of an unsafe link The chapter explains the importance of using a form with a delete button instead of an unsafe link for deleting posts to enhance security and prevent unauthorized access.', 'Executing the delete operation on a post by ID from the database The speaker provides a step-by-step guide on executing the delete operation on a post by ID from the database, ensuring the proper handling of database queries and data deletion.', 'Submitting a form for creating a new post and handling required fields validation The tutorial showcases the process of submitting a form for creating a new post and handling required fields validation, ensuring data integrity and completeness.']}, {'end': 1192.657, 'start': 987.198, 'title': 'Editing post functionality', 'summary': 'Details the process of adding an edit button, creating an edit view file, and modifying the controller to support editing of a post, including the change from using id to slug as a reference.', 'duration': 205.459, 'highlights': ['The chapter details the process of adding an edit button, creating an edit view file, and modifying the controller to support editing of a post It covers the steps of adding an edit button, creating an edit view file, and modifying the controller to support editing of a post.', 'Change from using ID to slug as a reference The chapter discusses the change from using ID to slug as a reference for editing a post.']}], 'duration': 490.543, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ702114.jpg', 'highlights': ['Implementing ordering of posts by ID to display the latest post at the top', 'Developing a secure form for deleting posts using a form with a delete button instead of an unsafe link', 'Executing the delete operation on a post by ID from the database', 'Submitting a form for creating a new post and handling required fields validation', 'The chapter details the process of adding an edit button, creating an edit view file, and modifying the controller to support editing of a post', 'Change from using ID to slug as a reference']}, {'end': 1542.685, 'segs': [{'end': 1290.939, 'src': 'embed', 'start': 1192.657, 'weight': 4, 'content': [{'end': 1208.826, 'text': "so we'll go to edit PHP and let's say right here value equals PHP echo and we should be able to do post title.", 'start': 1192.657, 'duration': 16.169}, {'end': 1217.631, 'text': "Okay, we'll grab that and then put that down in the body and change the title to body.", 'start': 1208.846, 'duration': 8.785}, {'end': 1221.615, 'text': 'There we go.', 'start': 1221.155, 'duration': 0.46}, {'end': 1230.238, 'text': 'Now I want this to be submitted somewhere else.', 'start': 1221.635, 'duration': 8.603}, {'end': 1235.119, 'text': 'I want it to be submitted to post slash update.', 'start': 1230.498, 'duration': 4.621}, {'end': 1262.057, 'text': "Alright so let's go over to our controller and we'll add in public function update and for now let's just echo Post slash update.", 'start': 1237.28, 'duration': 24.777}, {'end': 1265.619, 'text': 'All right, so I think we need to add a route for that.', 'start': 1263.258, 'duration': 2.361}, {'end': 1269.9, 'text': "So let's just copy this.", 'start': 1268.52, 'duration': 1.38}, {'end': 1274.082, 'text': 'Say post update.', 'start': 1272.441, 'duration': 1.641}, {'end': 1288.959, 'text': "now this is going to be let's see, we want this to go to post slash update and it's going to be a post request.", 'start': 1278.937, 'duration': 10.022}, {'end': 1290.939, 'text': "so i'm not sure if that will do.", 'start': 1288.959, 'duration': 1.98}], 'summary': 'Editing php to update post title and submitting to post/update route.', 'duration': 98.282, 'max_score': 1192.657, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ1192657.jpg'}, {'end': 1512.317, 'src': 'embed', 'start': 1477.244, 'weight': 0, 'content': [{'end': 1479.923, 'text': "Okay, so let's see we want to edit post two.", 'start': 1477.244, 'duration': 2.679}, {'end': 1486.196, 'text': "Let's click edit and we'll just add right here.", 'start': 1482.073, 'duration': 4.123}, {'end': 1493.643, 'text': 'This has been edited and submit and this has been edited.', 'start': 1486.317, 'duration': 7.326}, {'end': 1500.128, 'text': 'All right, so our application can now do full CRUD functionality, create, read, update and delete.', 'start': 1493.663, 'duration': 6.465}, {'end': 1504.332, 'text': "Now we're gonna wanna link to create a post.", 'start': 1501.069, 'duration': 3.263}, {'end': 1512.317, 'text': "So let's go to our, let's see, we'll go to our header And I'm going to go under this UL and put another UL.", 'start': 1504.652, 'duration': 7.665}], 'summary': 'Application achieved full crud functionality, can now create, read, update, and delete posts.', 'duration': 35.073, 'max_score': 1477.244, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ1477244.jpg'}], 'start': 1192.657, 'title': 'Php crud functionality', 'summary': "Involves editing php code to include an update function and route, with a focus on echoing values and submitting to 'post/update'. it also includes discussion about adding a route for the update function. additionally, the chapter demonstrates the development of a php application capable of performing crud (create, read, update, delete) operations, achieving full functionality by allowing editing and submission of posts, and adding the ability to create new posts, enabling the user to manage their content effectively.", 'chapters': [{'end': 1290.939, 'start': 1192.657, 'title': 'Php update functionality', 'summary': "Involves editing php code to include an update function and route, with a focus on echoing values and submitting to 'post/update'. it also includes discussion about adding a route for the update function.", 'duration': 98.282, 'highlights': ["Edited PHP code to include an update function and route, with a focus on echoing values and submitting to 'post/update'.", 'Discussed the addition of a route for the update function.', "Implemented 'echo' and 'post' functionalities in PHP code."]}, {'end': 1542.685, 'start': 1290.939, 'title': 'Php crud functionality', 'summary': 'Demonstrates the development of a php application capable of performing crud (create, read, update, delete) operations, achieving full functionality by allowing editing and submission of posts, and adding the ability to create new posts, enabling the user to manage their content effectively.', 'duration': 251.746, 'highlights': ['The application can now do full CRUD functionality, create, read, update, and delete. The application achieves full CRUD functionality, allowing users to create, read, update, and delete posts.', 'The chapter demonstrates the development of a PHP application capable of performing CRUD operations. The chapter focuses on developing a PHP application with CRUD capabilities, enabling efficient content management.', 'The application allows editing and submission of posts. The application enables users to edit and submit posts, enhancing the content management process.', 'The chapter adds the ability to create new posts, enabling the user to manage their content effectively. The chapter introduces the capability to create new posts, empowering users to efficiently manage their content.']}], 'duration': 350.028, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ1192657.jpg', 'highlights': ['The application achieves full CRUD functionality, allowing users to create, read, update, and delete posts.', 'The chapter focuses on developing a PHP application with CRUD capabilities, enabling efficient content management.', 'The application enables users to edit and submit posts, enhancing the content management process.', 'The chapter introduces the capability to create new posts, empowering users to efficiently manage their content.', "Edited PHP code to include an update function and route, with a focus on echoing values and submitting to 'post/update'.", 'Discussed the addition of a route for the update function.', "Implemented 'echo' and 'post' functionalities in PHP code."]}, {'end': 1816.569, 'segs': [{'end': 1573.586, 'src': 'embed', 'start': 1542.705, 'weight': 0, 'content': [{'end': 1547.488, 'text': 'Okay, so now we have a link to create post.', 'start': 1542.705, 'duration': 4.783}, {'end': 1554.4, 'text': 'So what I would like to do now, before we end this part?', 'start': 1550.018, 'duration': 4.382}, {'end': 1563.463, 'text': "I'd like to have an HTML editor, because right now we just have a regular text area and we can't really do much in terms of formatting and all that.", 'start': 1554.4, 'duration': 9.063}, {'end': 1568.624, 'text': "So let's look into CKEditor and I haven't used this for a long time.", 'start': 1564.103, 'duration': 4.521}, {'end': 1573.586, 'text': "So let's see, we're going to go ahead and download it.", 'start': 1568.644, 'duration': 4.942}], 'summary': 'Plans to enhance website with an html editor, specifically ckeditor, to improve formatting capabilities.', 'duration': 30.881, 'max_score': 1542.705, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ1542705.jpg'}, {'end': 1816.569, 'src': 'embed', 'start': 1765.721, 'weight': 3, 'content': [{'end': 1771.953, 'text': 'so that way, when we go to edit, we also get the editor get rid of that.', 'start': 1765.721, 'duration': 6.232}, {'end': 1772.474, 'text': 'submit awesome.', 'start': 1771.953, 'duration': 0.521}, {'end': 1777.629, 'text': 'So hopefully you guys enjoyed this.', 'start': 1775.928, 'duration': 1.701}, {'end': 1780.451, 'text': "There are some other things I'd like to do.", 'start': 1778.59, 'duration': 1.861}, {'end': 1782.632, 'text': "I'd like to add comment functionality.", 'start': 1780.511, 'duration': 2.121}, {'end': 1785.414, 'text': "I'd also like to implement a user login.", 'start': 1782.732, 'duration': 2.682}, {'end': 1788.595, 'text': 'So I will look into that.', 'start': 1786.234, 'duration': 2.361}, {'end': 1793.238, 'text': "I'm not going to get to it right this second, but hopefully I will soon.", 'start': 1788.615, 'duration': 4.623}, {'end': 1797, 'text': 'So please leave a like, subscribe, whatever you can do.', 'start': 1794.179, 'duration': 2.821}, {'end': 1802.964, 'text': "I'm also going to leave a link to my PHP Frameworks project course at Eduonix.", 'start': 1797.02, 'duration': 5.944}, {'end': 1810.367, 'text': "I think it's 10 projects using frameworks like CodeIgniter, Symfony, CakePHP, and so on.", 'start': 1803.584, 'duration': 6.783}, {'end': 1813.508, 'text': 'Alright, so I would suggest that you check that out as well.', 'start': 1810.847, 'duration': 2.661}, {'end': 1816.569, 'text': "Alright, so thanks for watching, and I'll see you next time.", 'start': 1814.068, 'duration': 2.501}], 'summary': 'Plans to add comment functionality and user login. promotes php frameworks project course at eduonix.', 'duration': 50.848, 'max_score': 1765.721, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ1765721.jpg'}], 'start': 1542.705, 'title': 'Integrating ckeditor', 'summary': 'Discusses integrating ckeditor for text editing, covering downloading, adding to html, creating and updating posts, and future plans for adding comment functionality and user login, concluding with a promotion for a php frameworks project course at eduonix.', 'chapters': [{'end': 1816.569, 'start': 1542.705, 'title': 'Integrating ckeditor for text editing', 'summary': 'Discusses integrating ckeditor for text editing, including downloading, adding it to the html, using it for creating and updating posts, and future plans for adding comment functionality and user login, concluding with a promotion for a php frameworks project course at eduonix.', 'duration': 273.864, 'highlights': ['Integrating CKEditor for text editing The chapter revolves around the process of integrating CKEditor for text editing.', 'Downloading and adding CKEditor to the HTML The process of downloading CKEditor and adding it to the HTML is discussed, highlighting the use of the standard package and CDN.', 'Using CKEditor for creating and updating posts The usage of CKEditor for creating and updating posts is detailed, showcasing the ability to format text, view source code, and implement it for both creating and editing posts.', 'Future plans for adding comment functionality and user login Future plans for adding comment functionality and user login are mentioned, indicating the intention to implement these features in the future.', 'Promotion for a PHP Frameworks project course at Eduonix The chapter concludes with a promotion for a PHP Frameworks project course at Eduonix, encouraging the audience to check it out.']}], 'duration': 273.864, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/jOKTjE6Q5QQ/pics/jOKTjE6Q5QQ1542705.jpg', 'highlights': ['Integrating CKEditor for text editing The chapter revolves around the process of integrating CKEditor for text editing.', 'Using CKEditor for creating and updating posts The usage of CKEditor for creating and updating posts is detailed, showcasing the ability to format text, view source code, and implement it for both creating and editing posts.', 'Downloading and adding CKEditor to the HTML The process of downloading CKEditor and adding it to the HTML is discussed, highlighting the use of the standard package and CDN.', 'Future plans for adding comment functionality and user login Future plans for adding comment functionality and user login are mentioned, indicating the intention to implement these features in the future.', 'Promotion for a PHP Frameworks project course at Eduonix The chapter concludes with a promotion for a PHP Frameworks project course at Eduonix, encouraging the audience to check it out.']}], 'highlights': ['The application achieves full CRUD functionality, allowing users to create, read, update, and delete posts.', 'Creating a function to add posts through the application The chapter focuses on adding a function called create in the post controller to enable adding posts through the application.', 'The process involves checking if the form has been submitted and then calling a model function to insert data.', 'The chapter outlines the process of creating rules for validation using form validation and set rules, specifying rules for the title and body fields.', 'Integrating CKEditor for text editing The chapter revolves around the process of integrating CKEditor for text editing.']}