Month: October 2019

  • WordPress Form Builder

    What is Forms in WordPress?

    Forms are used to facilitate feedback from visitors, and enrich the functionality of your website or blog. WordPress.org provides various form plugin to manage and build all kind of form for your websites or blog.

    WordPress Form Builder Plugins

    WordPress.org provides many form plugins for build and managing websites or blog, some plugins are as:

    • Visual Form Builder.
    • Contact Form by WPForms – Drag & Drop Form Builder for WordPress.
    • Ninja Forms – The Easy & Powerful Forms Builder.
    • Contact Form for WordPress – Ultimate Form Builder Lite etc…

    These plugins are used to build and manage forms on your website or blog. So, in this article, I will discuss how you can use the Visual Form Builder plugin to create a form on your website. Before starting Form builder in WordPress, you should have to install WordPress first and then login to dashboard.

    Visual Form Builder:

    Visual Form Builder is a plugin that allow user to build and manage all kinds of form for your website in a single place. Building a fully functional contact form takes few minutes and you don’t have to write any PHP, CSS or HTML codes.

    Features Provided By Visual Form Builder

    • Easy Interface: Creating and managing your forms is as easy as clicking a button. Provide drag and drop interface, you will be able to setup and organize your forms in no time.
    • Simple, logic-based anti-SPAM system.
    • Upload Attachments: Easily upload multiple files through you form with File Upload field.
    • Automatically stores form entries in your WordPress database.
    • Manage form entries in the WordPress dashboard.
    • Export entries to a CSV file.
    • Send form submissions to multiple emails.
    • Shortcode works on any Post or Page.
    • Embed Multiple Forms on a Post/Page.
    • Use your own CSS (if you want).
    • Standard Fields.
    • Required Fields.
    • Multiple field layout options. Arrange your fields in two, three, or a mixture of columns.

    For knowing more information about Visual Form Builder, visit this link: https://wordpress.org/plugins/visual-form-builder/

    How to make a Form using Visual Form Builder

    In this article, I will create a Contact form using Visual Form Builder, so, just follow the steps:

    1. Install:

    First install and activate the visual form builder from plugins.

    2. Add New:

    Once the plugin is activated you can see the Visual Form Builder in your dashboard menu. Then click on Add New form of Visual Form Builder.

    3. Create a Form:

    Next, create the form by giving the form name, company name and email.

    4. Visual Form Builder:

    After clicking on create form, you will get some created field (like Fieldset, Verification and submit etc…) and as well you get shortcode with an id.

    5. Create Form (Contact Form):

    Next, add fields according to your requirements of form. In this article, I have created contact form so, I have added some fields like this. After this, copy the shortcode and save the form.

    6. Add Form Page:

    Next, we have to add the form to our website, so click on the Add New option of Dashboard Pages options.
    6.1. Add New Pages: After clicking on Add New page, add the form title and paste the shortcode that has been copied from the form page.

    6.2. Publish Form Page: After adding the title and shortcode of form then publish the form.

    7. After publishing the page, your form will be added to your website like this:

  • Laravel Media Library

    Why Media Library?

    Medialibrary is a Laravel5.5+ package that can associate all sorts of files with the Eloquent models. And it provides a simple, fluent API to work with.

    Features of Media Library

    • It can directly handle your uploads
    • It can store some large files on another filesystem because the storage of the files is handled by Laravel’s Filesystem, so you can plug in any compatible filesystem.
    • The package can generate derived images such as thumbnails for images, video’s and pdf’s.

    Requirements for Media Library v7/

    • PHP version should be 7.1+
    • Laravel version requires 5.5.0+
    • MySQL required 5.7 or higher

    If you have an older version of PHP and Laravel, then you should use a media library with a lower version.

    In this article, I have used the spatie/laravel-medialibrary package. Now, I will show you how to install the media library package in Laravel with the few steps. And with this, I will show you a simple example of this package.

    1. Installation & Setup of Media Library

    Step1: Install Laravel

    First install the Laravel project using composer commands:
    composer create-project –prefer-dist laravel/laravel LaravelMedia

    Step2: Install Medialibrary Package

    After this, go to your Laravel project directory and run this composer command:
    composer require “spatie/laravel-medialibrary:^7.0.0”
    This command will install medialibray package in your Laravel project.

    Step3: Database configuration

    First, create the database for this media library package. Open phpMyAdmin and create database like this:
    Next we need to configure database with your Laravel project. So, open .env file and configure like this:

    Step4: Publish & Run migration

    Next, we need to publish and run the migration for the medialibrary. Run this artisan command:
    php artisan vendor:publish –provider=”Spatie\MediaLibrary\MediaLibraryServiceProvider” –tag=”migrations”
    This command will create media table for your media library. You can see the migration table in your project database/migrations/create_media_table.php directory like this:
    Next, run the artisan migrate command: php artisan migrate

    Step5: Publish configuration file

    Next, we need to publish the configuration file for media library. So run the command in you terminal:
    php artisan vendor:publish –provider=”Spatie\MediaLibrary\MediaLibraryServiceProvider” –tag=”config”
    This command will create configuration file for media library and create medialibrary.php file at your config directory.
    Default content of this config/medialibrary.php file:

    2. Basic Usage:

    Preparing your model
    To associate media with a model, the model must implement the following interface and trait like this:
    For example, I have use this trait in our default User.php model like this:
    Make Basic Layouts and Routes for media library
    Create authentication for your Laravel project. Run the make:auth artisan command in your terminal:
    php artisan make:auth
    Next, open default resources/views/layouts/app.blade.php file and add write code for adding an extra profile link.
    You will get output like this:
    Create view file for media library:
    Create profile.blade.php view file under resources/views/ directory and write a line of code for your profile views file.
    Define route for views and controller in routes/web.php file like this:
    After this register the user and navigate the URL 127.0.0.1:8000/profile in your browser, you will get output like this:
    Associating files:
    For associating the file, create a controller and define media function in your controller.
    Create resource controller using make artisan command: php artisan make:controller AvatarController –r. This will create a controller file at app/Http/Controller/ directory.
    Next, open AvatarController.php file and associate the file in different function like this:
    Write code in index function like this:
    Write code in store function like this:
    Defining Media Collections:
    A media collection can be more than just a name to group files. By defining a media collection in your model you can add certain behavior collections.
    To get started with media collections add a function called registerMediaCollections to your prepared model like User.php model. Inside that function you can use addMediaCollection to start media collection.
    Open User.php model and define media collection like this:
    Defining Conversion
    You should add a method called registerMediaConversions to your model. In that model you can define the media conversion. Here is an example.
    Open User.php model and define the media conversion:

    3 Results

    Open browser and navigate the URL: 127.0.0.1:8000
    Register the user first: 127.0.0.1:8000/register
    Next, click to profile and upload images, you will get output like this:
    Note:
    • To learn more about this media library package, visit this link:
    https://docs.spatie.be/laravel-medialibrary/v7/introduction/.
    • Source code for this project is available on GitHub: https://github.com/digitalcrm/LaravelMedia.

  • Role Management

    What is Role Management/Permission?
    With the help of tables, we will understand the basic concept of role and permission. What they are actually:
    Role Table:

    S/N

    Role

    Permission

    1

    Admin

    Create,
    Edit, Delete, Users

    2

    Stakeholder

    Create,
    Edit

    Permission Table:

    S/N

    Permission

    Description

    1

    Create

    Grants
    authorization to create any type of record except users

    2

    Edit

    Grants
    authorization to edit any record except users.

    3

    Delete

    Grants
    authorization to delete any record except users.

    4

    Users

    Grants
    permission to display, create, edit, assign user roles, and delete users.

    Role: Basically role represents a group of tasks that a user that is assigned the role is allowed to perform. For example: a user role that allows user to edit their own listing page. And the system admin can be regarded as owner of the system and as such, is permitted to perform all the tasks in the system. Admin has power to create users, delete, assigning role to user and edit products etc…
    Permission: The ability to do actions on your site like viewing, create, delete and edit etc is governed by permissions. Permission grants authorization to a role to perform a specific task. A user must be granted a permission in order to do the corresponding action on the site.
    In this article, with simple demo of role based, we have implemented a role based authentication in Laravel along with its native authentication system. So, just follow the steps and see how the role permission works in Laravel.
    Note: Source code for this is available on GitHub: https://github.com/digitalcrm/Role-Management

    1. Install Laravel Project:

    composer create-project –prefer-dist laravel/laravel RoleManagement “5.8.*”

    2. Database Configuration:

    2.1. Create database: Open phpMyAdmin and create database, like this:

    2.2. Configure with Laravel: After database has been created, next open .env file and add database credentials, like this:

    3. Create Models and Migrations

    3.1. Create a Role model and migration to running this command: php artisan make:model Role –m

    3.2. Create a role_user migration:
    php artisan make:migration create_role_user_table

    3.3. Modify Role migration table: Open database/migrations/create_roles_table.php

    3.4. Modify create_role_user_table migration table:
    Open database/migrations/create_role_user_table.php.

    3.5. Running the migration: After the migration table has been setup you can create the roles and role_user tables by running the migrations: php artisan migrate.

    will create the following tables in your database.

    4. Make Authentication Scaffolding

    Run the artisan command: php artisan make:auth

    5. Database Entries:

    5.1. After running the migration command, now we need to fill the data manually for testing the role permission, So, fill the data in roles and role_users table:
    5.1.1. Open and fill the data manually in roles table:

    5.1.2. Open and fill the data manually in role_user table:

    5.1.3. Also register user in users table using authentication, go to /register url and register the users:

    6. Model Setup

    6.1. Open app/Role.php model and define Many to Many relationship, like this:

    6.2. Open default created app/User.php model file and define Many to Many relationship, like this:

    6.3. Also, open User.php and include these methods which will be used to check if user has a particular role or roles:

    7. Create Controller:

    Now we need two controllers for admin and superadmin, so let’s create:
    7.1. Run the artisan command: php artisan make:controller AdminController

    Open AdminController and add code like this:

    7.2. Run the artisan command: php artisan make:controller SuperAdminController

    Open SuperAdminController and add code like this:

    h4>8. Create View:

    Next, we have to create views files for admin and super admin.
    8.1. Create view for admin: resource/views/admin/home.blade.php

    8.2. Create view for superadmin: resource/views/superadmin/home.blade.php

    9. Define Routes:

    Open routes/web.php and create routes for admin and superadmin:

    10. Create Middleware:

    Next, we need a middleware for our role. So, run the artisan command for creating middleware:
    php artisan make:middleware CheckRole

    Open app/Http/CheckRole.php file and add code:

    11. Register The Middleware:

    Open app/Http/kernel.php file and include role middleware under $routeMiddleware array, like this:

    12. Results:

    Only authorized users can have privileged to access the certain part of your applications:
    Admin Login:

    After admin login if super admin wants access:

    If admin access this:
    Note: For the source code, you can visit the GitHub directory: https://github.com/digitalcrm/Role-Management
    GitHub link:
    Laravel-Media-Library: https://github.com/digitalcrm/LaravelMedia
    Role Management: https://github.com/digitalcrm/Role-Management
    Newsletter Package: https://github.com/digitalcrm/pkg-newsletter
    Form-Package: https://github.com/digitalcrm/Form-Contact-Package

  • Newsletter Package

    In this article, I will show you how to create a Newsletter Package in Laravel and how to use this. You can check the source code from GitHub link: https://github.com/digitalcrm/pkg-newsletter and package in packagist.org link: https://packagist.org/packages/digitalcrm/newsletter

    Creating a Package:

    In this article, I have created a Newsletter package which will manage the newsletter in Laravel. So just follow the steps:
    1. First, install fresh Laravel Project:
    Run command in your terminal: Composer create-project –prefer-dist laravel/laravel PkgNewsletter “5.8.*”

    2. Create a package folder in the root directory and under this create a subfolder newsletter, like this:

    3. Next, for package, we have needed two main files: one composer.json and second is Service Provider file.
    3.1. Creating composer.json file: Select package path in your terminal and run the composer init command which will create the composer.json file in your newsletter package but after running this command, this will ask various question like package name and vendor, description and author etc… So fill this information.

    After completion of init command, you can see composer.json file is created under your package directory. So, open package/newsletter/composer.json file:

    3.2. Creating Service Provider: After setup the composer.json file, then we have needed a Service Provider for your package, so create a “src” folder under package/newsletter/, like this:

    Create NewsletterServiceProvider.php file under this package/newsletter/src/ directory and add code under boot() and register() function for load, publishing and registering the services of packages file.

    4. Modify the composer.json file:
    4.1. Open your package composer.json file and add require field, autoload psr-4 and package discovery in your package/newsletter/composer.json file, like this:

    Open main composer.json file and add your package path in autoload-dev. Because this will tell your Laravel project that there is a package inside the Laravel project.

    4.3. Open your terminal, select the project path and run the composer command: composer dump-autoload. This command will help to recognize the package.

    5. Create files for newsletter package: All required files for packages will be created under the src folder. You can visit the GitHub directory for this source code: https://github.com/digitalcrm/pkg-newsletter/tree/master/src.

    For this package, I have used the Mailchimp for mail services. To know more about Mailchimp visit https://mailchimp.com/. So, I have configured MailChimp in our package, like this;
    src/config/newletter.php

    src/Exception/InvalidNewList.php

    src/NewsletterFacade.php

    src/NewsletterList.php

    src/NewsletterCollection.php

    src/NullDriver.php

    src/Newletter.php

    Note: When using this newsletter package, you should have to integrate Mailchimp (MAILCHIMP_APIKEY and MAILCHIMP_LIST_ID) in your .env file. For getting the API key and List Id, you should have to create an account in Mailchimp first, where you will get your API Key and List Id.

    Upload in packagist.org

    Here with few steps, you can upload your package in packagist.org. Just follow the steps:

    Step1:

    First you need to open packagist.org and create your account using GitHub and sign in:

    Step2:

    After “sign in” in Packagist.org, then you have to upload your package in GitHub repository.

    Step3:

    After uploading the package in GitHub, copy the link address and go to the packagist.org then click on submit and paste the address link:

    Step4:

    Finally, after submitting package, your package has been uploaded and you will get your composer require command for this package.

    How To Use fincrm/newsletter Package:

    Here, I will discuss how to use this newsletter package. Just follow the steps given below:

    Step1:

    First download the Laravel project. Run this composer command:
    composer create-project –prefer-dist laravel/laravel NewsLetterPackage

    Step2:

    After downloading the Laravel project, next run this composer command:
    composer require fincrm/newsletter. This command will download the newsletter package in your Laravel project.

    Step3:

    Publishing the configuration file run:
    php artisan vendor:publish –provider=“Fincrm\Newsletter\NewsletterServiceProvider”
    This command will publish the config file to config/newsletter.php.

    Step4:

    Next, we need view, controller and routes for running the newsletter package. So let’s create a view, controller and routes for this newsletter package.
    View file: Create view file under resources/views/subscriber.blade.php and add code:

    Controller: For creating controller run the command:
    php artisan make:controller NewsLetterController –r.

    This command will create a resource controller under app/Http/Controllers/NewsLetterController.php. Then open this file and add code:

    Finally create routes under routes/web.php.

    Step5:

    Open .env file and integrate MailChimp API_KEY and LIST_ID. You get your own MailChimp API key and List ID from mailchimp.com.

    Step6:

    Navigate the URL: http://127.0.0.1:8000/subs in your browser.
    • Newsletter page:

    • After Submitting

    • Open your mail account and you will get subscription page, like this

  • Form-Package

    this article, I will show you how to create a form package in Laravel and how to use this package. You can check the source code from GitHub directory link: github.com/digitalcrm/Form-Contact-Package.

    1. Create Form Package

    In this article, I have created a contact form package which will send an email and save the contact query in database. So just follow the steps:

    Step1: First, install the Fresh Laravel Project:

    Run the command: composer create-project –prefer-dist laravel/laravel BuildForm

    Step2:

    Create a folder package in the root directory and create a subfolder contact under this package. This package will do a simple thing which is just sending the email and save the contact details and the messages in the database.

    Step3:

    We need at least two things for our form package; one is package.json (composer.json) file and second is service provider (ContactServiceProvider.php). So, run the composer init command which will create the composer.json file in your contact form but after running this command, this will ask various question like package name and vendor, description and author etc… So fill this information.

    • After completion of command, you can see composer.json file is created under your package (contact) directory:

    • Next define your package under main composer.json file and as well as add autoload psr-4 under package/contact/composer.json file which will tell our composer to there is a package inside Laravel Project.
    composer.json

    package/contact/composer.json

    • After adding autoload psr-4 also add Package Discovery which will help to automatically register its service provider. And this package discovery creates a convenient installation experience for your package’s users.

    • Then Run the composer dump-autoload command, which will help to recognize the packages.

    Step4:

    Next, we need a service provider for our package, so create a src folder and under this folder create ContactServiceProivder.php file and load the routes, views, migrations and configurations package under boot function like this:

    Step5:

    After loading packages, we need to create all files separately under package/contact/src directory as your Form requirements, like this:

    • Create src/routes/web.php file and add code like this:

    • Create Views file: src/views/contact.blade.php file and code like this:

    • Create Controller: src/Http/Controllers/ContactController.php and add code like this:

    Step6:

    Create Model and Migrations:
    Run the command for creating model and migrations: php artisan make:model Contact –m. This command create model and migration in your laravel project so you have to cut model and migration file and paste under your packages and edit and add code like this:
    src/database/migrations/create_contact_table.php

    • Open src/Models/Contact.php file and add code like this:

    Step7:

    Creating Database and Configuration:
    • Create database: open your phpMyadmin and create the database:

    • Next, open .env file and configure database with your laravel project

    • As well as configure your mail driver with your laravel projects: Browse mailtrap.io and login in mailtrap.io, you will get your credentials like this:

    • Then Configure with your .env file, like this:

    • After setting up databases, then run the migrate command: php artisan migrate

    Step8:

    Create Mailable system for sending mail:
    Run php artisan make:mail ContactMailable –markdown=contact.email. This command will create a ContactMailable.php and email.blade.php file in your main Laravel project. You should have to cut these file along with folder and paste it into your package/contact/src directory.
    • Open Mail/ContactMailable.php file and add code like this:

    • Open views/contact/email.blade.php file and add code like this:

    Step9:

    Under your package/contact/src directory create config/contact.php file:
    • Open the config/contact.php file and add code like this:

    • For publishing the package, run the commands: php artisan vendor:publish.

    • After running this command you will get same contact.php file under your main laravel project config folder like this:

    2. Publish in Packagist

    Here with a few steps, I will discuss how you can submit your package in packagist.org, just follow the steps:

    Step1:

    First you need to open packagist.org and create your account using GitHub:
    Packagist.org

    • Sign in

    Step2:

    Next, Upload your package in GitHub directory like this:

    Step3:

    Afer moving your package in GitHub.com, then submit your package in packagist.org. So, copy the link address from GitHub library and paste it packgist.org like this:

    • After submitting the package in packagist.org, you will get your “composer require” command for using this package:

    3. How to use or download this Package:

    After uploading and creating the package, with few steps, I will show you how to download and use this package:

    Step1:

    Download the fresh Laravel project:
    Run the composer command: composer create-project –prefer-dist laravel/laravel TESTPACKG

    Step2:

    Download the package:
    Run composer require command: composer require fincrm/contact. This command will download the contact form in your Laravel project.

    Step3:

    After Package installation, publish config file. Run the command:
    php artisan vendor:publish –provider=”Fincrm\Contact\ContactServiceProvider”
    This command will publish a file contact.php in your config directory.

    Step4:

    You can see the package is installed in your project. Go to your vendor directory and you will see the contact form with package like this:

    Step5:

    Setup Package in your Laravel project:
    • After installing package, create database and configure database with .env file.
    • Browse mailtrap.io and logged in mailtrap.io then configure with it .env file.
    • Next, run the php artisan migrate command.
    • Finally navigate URL: http://127.0.0.1:8000/contact in your browser. Then you will get output like this:

  • Laravel vs WordPress CMS

    Differences between Framework & CMS?

    Framework is a user written, custom code within a predefined set of rules. This allows developers to develop application and modules using library functions and primary programming language. Working with framework developers can build and customized website.
    CMS is stands for Content Management System. CMS gives you the business owner, the ability to manage the content of your website. Working with this you can change text on specific page, add new items, manage inventory, change pricing and perform any number of functions. Once you get into the back-end of your CMS based website, then you do not have to completely rely on your developers to make changes to the website.

    Differences between Laravel & WordPress?

    Laravel is an open source PHP framework. This is based on Model View Controller and developed for the development of web applications. Working with Laravel there must be need of technical knowledge.
    WordPress is open source but as well as it is a Content Management System. It is mainly used for blogs, newspaper and websites. In WordPress, it is not necessary to have a programming knowledge.

    Comparison Laravel Vs WordPress CMS?

    If we compare our Laravel CMS with WordPress CMS, then comparison are like:

     

    Laravel
    CMS

    WordPress
    CMS

    Simplicity

    It
    is complex as compared to WordPress.

    It
    is simpler to Laravel. Simplicity makes it possible for you to get online and
    get publishing, quickly.

    Architecture

    It
    is based on Model View Controller.

    It
    is a Content Management System, and has more features like plugins.

    Framework

    Laravel
    is open source PHP framework.

    Not
    a framework. It is open source and CMS.

    Flexibility

    Using
    Laravel, you can build a data-based website, developed a custom made web
    application with complex features and create a large scale e-commerce
    solution.

    Using
    WordPress, you can create any type of website you want like: a personal blog,
    a photo blog and a business website or website or more.

    Theme System

    In
    Laravel, you have to create your own theme system. It does not provide easily
    theme system like WordPress.

    WordPress
    easily provide theme system for client, other WordPress users or yourself.

    Built-in

    It
    has great built-in capabilities.

    In
    WordPress, functionality extended with help of plugins.

    Language

    In
    Laravel, building a website in different languages is complex task for developers.
    It is not easier like WordPress.

    In
    WordPress building a website in different languages is easier task. WordPress
    provide building a website in 70 or more languages.

  • New Laravel 6.x

    Laravel Releases the new version of Laravel 6 (LTS) in 3rd September 2019. For Laravel 6 (LTS) releases, bug fixes are provided for 2 years and security fixes are provided for 3 years. And for general releases, bug fixes are provided for 6 months and security fixes are provided for 1 year. Here, I will show you the updated table with versions and dates of the latest versions of Laravel:

    Version

    Release

    Bug
    Fixes Until

    Security
    Fixes Until

    5.5
    (LTS)

    August
    30th, 2017

    August
    30th, 2019

    August
    30th, 2020

    5.6

    February
    7th, 2018

    August
    7th, 2018

    February
    7th, 2019

    5.7

    September
    4th, 2018

    March
    4th, 2019

    September
    4th, 2019

    5.8

    February
    26th, 2019

    August
    26th, 2019

    February
    26th, 2020

    6
    (LTS)

    September
    3rd, 2019

    September
    3rd, 2021

    September
    3rd, 2022

    What’s New in Laravel 6?

    In this article, I will discuss the new features in Laravel 6:
    1. Semantic Versioning:
    Semantic versioning is a kind of giving the number Major, Minor and Patch, increment the:

    • Major version when you make incompatible API changes,
    • Minor version when you add functionality in a backwards compatible manner, and
    • Patch version when you make backwards compatible bug fixes.

    So, The Laravel framework (laravel/framework) package follows the versioning standards. This makes the framework consistent with the other first-party Laravel packages which already followed this versioning standard and the Laravel release cycle will remain unchanged.

    2. Ignition Error Page:
    It is a new error page or a new open source exception page for Laravel 6. This is contributed by the team behind Spatie and Beyond code. Ignition is a gorgeous and extensible error page for Laravel application. It is the default error page for all Laravel 6 applications.
    For example: Install Laravel6 and just change the view name in web.php file and run the project. You will get error page like this:
    Ignition offers many benefits over previous release, such as improved Blade error file and line number handling, runnable solutions for common problems, code editing, exception sharing, and an improved UX.
    For example: Install ignition code editor: composer require facade/ignition-code-editor –dev
    And run the project, you will notice code editor in error page, like this:

    3. Improved Authorization Responses:
    In Laravel 6, there is new Gate::inspect method introduced, which make easier the authorization response message. Whereas in previous release of Laravel, it was difficult to retrieve and expose custom authorization messages to end users. The authorization policy’s response and message may be easily retrieved using the Gate::inspect method:

    4. Job Middleware:
    This feature is implemented by Taylor Otwell. Job middleware allow you to wrap custom logic around the execution of queued jobs, reducing boilerplate in the jobs themselves.
    In Laravel 6, Job Middleware allows jobs to run through middleware. The middleware will help you avoid custom logic in the body of your job’s handle() method.

    5. Lazy Collections:
    Laravel 6 introduced a LazyCollection, which is a game-changer for working with an extensive collection of data, including Eloquent model collections. A new Illuminate\Support\LazyCollection class leverages PHP’s generators to allow you to work with very large datasets while keeping memory usage low.
    For example: Imagine you need to iterate through 10,000 Eloquent models. When using traditional Laravel collections, all 10,000 Eloquent models must be loaded into memory at the same time:

    6. Eloquent Subquery:
    This Eloquent Subquery Enhancement is contributed by Jonathan Reinink. Laravel 6 ships with improved support for eloquent subqueries. In this you may now add subqueries by using the new addselect() method, or by passing a closure to the orderBy() and from() method of the query builder.
    For example: Suppose we have a table of flight destinations and a table of flights to destinations. The flights table contain an arrived_at column which indicates when the flight arrived at the destination.
    So, In Laravel 6 using a single query we can select all of the destinations and the name of the flight that most recently arrived at that destination: addSelect().
    In addition, we can use new subquery features added to the query builder orderBy() function to sort all destinations based on when the last flight arrived at that destination. This may be done while executing a single query against the database, like this:

    7. Frontend Scaffolding or Laravel UI:
    In Laravel 6, the frontend scaffolding is now extracted into separate laravel/ui composer package. Means that no Bootstrap or Vue code is present in default framework scaffolding, and the make:auth command has been extracted from the framework as well. When installing a fresh larvel6 application, you will notice that the login and registration scaffolding, as well as the Vue/jquery/bootstrap in your app.js file have been extracted to a new composer package (laravel/ui).
    For example: Install Laravel6 and Laravel5 and open the app.js file of both file. You will get the difference between them:
    • Laravel5.x: open resources/js/app.js file:
    • Laravel6.x: open resources/js/app.js file:
    In Laravel 6, you may install the laravel/ui package and use ui Artisan command to install and restore the traditional Vue/Bootstrap and frontend scaffolding present in previous release of Laravel.
    Installing laravel/ui package: Run composer require laravel/ui –dev
    After installing laravel/ui package then install Authentication scaffolding: Run php artisan ui vue –auth

  • What is CRM software?

    CRM stands for Customer Relationship Management. It is the strategy for managing a company’s relationship and interactions with its customers and prospective customers.

    Goal

    The goal of CRM software is improving the customer service or assisting customer retention, using analytics and increasing sales.

    Benefits

    • CRM often involves using technology to organize, automate and synchronize service, sales and marketing functions of the company.
    • Resolve customer complaints, track leads, close opportunities, and automate sales process and present complete view of your customers’ life cycle.
    • CRM software consolidates customer information into a single database, so companies can more easily access and manage sales and marketing.

    Features

    CRM software provides following features:

    CRM Dashboard

    In this dashboard, you can view entire sales funnel, reports, lead status, customers, sales, users, map etc on a interactive graphical dashboard on monthly/yearly basis.

    Contact Management

    This management helps you to maintain your contacts, leads, accounts, customers, phone numbers, emails etc in a centralized place.

    Web to Lead

    This feature is used to directly collect and capture the lead from your websites- contact us page and add into CRM Software in leads management’s module.

    Database Management

    This is used to manage your contact, leads, accounts, customers, phone numbers, emails etc in a centralized place.

    Accounts Management

    This features provides you to View and manage your accounts such as company information, contacts, phone numbers, emails etc in a centralized place and view sales information.

    Leads Management

    This is used to capture leads from various sources like website, web to lead form, CSV, mobile, contacts, email and easily categorize them as per lead status.

    Deals Management

    In this you can view sales pipeline and online status of leads in their respective stage like customer lost, customer won, leads, negotiation, proposal, prospects in a drag and drop format.

    Customers Managements

    In this, this management provide you to view and manage your customer’s database such as contacts, phone numbers, emails etc.

    Sales Management

    This feature provide View Company sales- monthly, quarterly or yearly basis, view sales target vs achievement. It helps in sales automation, sales force management and analysis.

    Forecast Management

    This feature provides View details of sales vs forecast, percentage quota achieved, top achievers, amount in pipeline etc. It helps the organization to achieve the sales targets efficiently.

    Reports and Analytics

    In this you can View customers, deals, leads, sales, pipeline, forecast, sales by users, map on a- day/week/month, reports online. It helps in business process management, i.e. to discover, analyze, improve and automate sales process.

    Notifications

    This features get alerts when web to lead form is filled, appointment, lead generated or any other activity, also receive email alerts based various CRM module activation like form submission, daily report etc.

    Newsletter

    Launch an email marketing campaign and send email newsletters to customers, accounts, leads etc and track the mail response.

    Mail

    This is an internal messaging system to send emails to customers, accounts, and leads etc via CRM Software.

    Document Management

    In this you can upload, track, manage and store documents. In this product literature, presentations and other sales and marketing documents can be stored online and shared with prospects.

    Product Management

    In this you can add products and view the sales related data of the product at all stages of the sales cycle.

    Invoice Management

    In this features, you can create and send invoices, add product information, pricing, discount, delivery charges etc. Also save invoice as PDF file, send invoice by email to prospects and view Reports.

    User Management

    This features enables admin or sales manager to control user access and on board and disable users from using the CRM Software. It can also be used as sales management module to manage sales staff.

    Admin Control Panel

    CRM provides this functionality where dashboard of all company related settings like add/edit/delete users, view analytics, add API settings, send newsletter, view reports, change logo, CSS and do any other administrative function.

    File Manager

    CRM provides File Manager functionality such as it provides a user interface to manage files. Admin can upload files such as product literature, brochure, documents, PDF etc, and these files can be viewed by users and used for sales and marketing purpose.

    Calendar

    CRM software provides setup appointment using Online Calendar and use it as a scheduling application that lets sales staff to keep track of events, appointments, meetings etc.

    Facebook CRM

    CRM software provides complete integration with Facebook Ads. It is easy to setup and automates the lead generation process.

    FinCRM.com is the best CRM Software which has all the above features
    Pl. check – www.fincrm.com

  • What is job board software

    Job Board software is a web-based application that enables you to quickly deploy functional advanced job board.
    It provides end-to-end solutions for the recruitment industry. It can be used in setting up Job sites for regional Job site, general Job site and for specific countries. It has the most advanced features like advance job search, job alert, Applicant Tracking, a premium membership that results in better response for job seeker.

    Benefits of Job Board:

    Job board provides benefits to all three stakeholders, i.e. Job seekers, employers and administration

    1. Job Seekers:

    When candidates are actively searching for their next job and they want to be able to set the ideal criteria, Then, Job Board Software offers a system with advanced functionality to enables candidate’s to set specific filters like job searches with keywords, by location, by job categories, by company, experience, by recently posted jobs or by Zip code.

    2.Employers:

    Ejobsitessoftware offers end-to-end solution to recruitment business or employers which can reduce the administrative burden streamline processes and speed up their capability to deliver with accuracy and speed. Functionality provided by Ejobsitessoftware as follows:

    • Manage the registration and accounts for all colleagues involved in recruiting.
    • It allows companies to set up their own profiles and add their company logo.
    • Functionality, a system that manages job postings and adverts, gives access to resume databases.
    • It provides applicant tracking system that automates the online job application and resume tracking process.
    • It provides the ability to set up autoresponder emails.

    3. Admin:

    In admin site, Job Board Software is easy to use, completely automated and requires no technical skills to administer. It has the flexibility to change the look and feel of the home page and the site through its theme management system and its fully customizable CSS-based design and layout.

    Advantages:

    • It enables career site companies to successfully achieve their objectives.
    • It is customizable to meet the specific need of particular industry or location and provides all the tools required to easily manage a profitable job board business.
    • In a short duration it has become the preferred choice for organizations, employers, recruiters, internet entrepreneurs, webmasters and consultants who wanted to add value to existing applications or create benchmark Job Board.

    Features of Job Board:

    Job Board Software has included many features, some features are as:

    1. Job Seeker: Job board has included the most advanced features like advance job search, job alert and following things that result in better response for job seeker.

    Search Jobs: job seeker can search jobs by location, category and company, and this provides the advanced job search with keywords, experience.
    Job Seeker Profile: This feature provides quick registration using email and password, new account notification, retrieve password by automated email, update profile at any time etc…
    Job Seeker Control Panel: Job seeker can view list of applications- jobs applied for, save Jobs- add jobs to inbox for later viewing, get automated job application response and add, edit, delete job search agent etc…
    Resume Management: In this, resume builder using a step-by-step resume building wizard, submit resume to any employer with one click, add multiple Resumes and add video Resume via YouTube link etc…
    Job Management: In this job seeker can view job detail, view job response, apply job, share job, email job to a friend, view the profile of any company and view all jobs by a specific company.
    Premium Job Seeker: In this feature job seeker resume will be prominently featured in search resume.
    Newsletter: Job seeker can subscribe or unsubscribe to opt-in mail list.


    2. Employer: Job Board Software has the most advanced features like advance resume search, resume alert, Applicant tracking system, premium membership, contact management that result in better hiring for companies and has included following features for employer such as:

    Search Resumes: This feature provide following things as:
    Search resumes Search resumes by job category, rating, name, email experience, keywords and also search resume by location.
    Search Applicants: This feature is used to search applicant by first name, last name and using email id.
    Employer Report: In this employer can view job status, view total jobs posted, active jobs, expired jobs and view total applicants and selected applicants.
    Employer Profile: This feature provides quick employer registration using email and password, buy job postings or resume database access, Retrieve passwords by automated email and update profile at any time.
    Manage Users: Employer can setup multiple accounts for colleagues within company and create and manage sub-accounts.
    Applicant Tracking: Using this employer can view applicants, track, qualify, rate and view the hiring status of candidates, send interview request and select candidate.
    Recruiter Control Panel: It provides graphical display of job status and applicant pipeline and also add contact list or database of people and companies.
    Job Management: In this employers can post, edit, delete, import multiple jobs, activate or deactivate jobs, and view list of active jobs, expired jobs, deleted jobs etc…


    3. Admin: In this feature, admin has full control over global site configurations. This feature has include following things some feature are as:

    Dashboard: This provide the view reports of total jobseeker, featured jobseeker, recruiters, active recruiters, featured recruiters, jobs, active jobs, expired jobs, deleted jobs, featured jobs, sales etc. And view the yearly report, monthly report and latest orders. In this admin has full control over global site configuration.
    Recruiters: In this admin can view list of recruiters, add/edit/delete recruiters, quick disable recruiter status to inactive and sort recruiters by name, email id and company, and view recruiter details like jobs posted, control panel, list of orders.
    Job Seekers: Admin can view list of jobseekers, view list of paid jobseekers, add/edit/delete jobseekers, sort Recruiters by name, email id, quick disable jobseeker status to inactive and view jobseeker details from control panel.
    Themes: Job Board Software provide the theme management system for add/edit/delete themes and change the look of the site. In Job Board Software, eighteen themes are built-in the software with fully customizable CSS based design and layout.
    Mobile: Job Board Software provide Mobile/Responsive view of job board and provide six mobile themes are built in software. Admin can change theme, edit logo, edit mobile theme CSS or text. The mobile theme is built for Android and iPhone app.
    Setting: There are following settings included for admin such as:
    Location Management: add, edit, and delete – continent, country, zone and zip code.
    Job Type: add, edit, delete job type like full time, part time, freelance etc.
    Job Category: add, edit, delete job category.
    Job Seeker Language: add, edit, and delete language like English, French, and German etc.
    Career Level: add, edit, and delete career level.
    Social:LinkedIn, Google and Facebook Plugin: For login using LinkedIn username and password.
    Google Captcha: add Google captcha to avoid spam.
    Tools: In this following features are included such as:
    Database Backup: Automatic backup of database in- .sql, .zip format.
    Restore database Restore site backup.
    Take site backup Take site backup.
    Page Manager: edit text of pages like about us, advertise, FAQ, privacy statement, service, terms & conditions.
    Block IP:Block IP address of spammer etc…
    Import Jobs: In admin can Backfill/Import jobs from indeed.com into Job Board database. And can import jobs by campaign name, publisher id, recruiter id, location, country, job type, channel, active inactive, keyword like banking, construction etc.
    Configuration: In this admin can edit site configuration like default site title, left box width, right box width, site owner, admin email, jobsite address, char set, job duration, change minimum values and maximum values in fields, change default image width and height and edit, enable, disable various modules in job board like Twitter, Facebook, Banner manager setting, default language etc…

    Job Board Software is the best Job Board Software with all the above features
    Pl. check www.ejobsitesoftware.com for more details

  • What is WordPress Theme?

    WordPress Theme:

    In WordPress, a theme changes the design of your website and including its layout, meaning that, a theme is a collection of templates and style sheets used to define the appearance and display the WordPress websites. Changing your theme in WordPress define the changes how your site looks on the front-end. There are thousands of free and paid WordPress themes in the WordPress.org Theme Directory.
    In WordPress, Themes can be changed, managed and added from the WordPress dashboard area under Appearance/Themes:

    Each theme comes with different features, layouts, and design. A user can choose different themes according to their requirements for their website.

    What can Themes do?

    Basically, WordPress themes are more than color and layouts, which improve your website content and as well as make websites beautiful. Themes take the data and content stored by WordPress and display it in the browser. In WordPress, Themes can do many things as follows:

    • Theme can display content anywhere you want it to be displayed.
    • Theme can have different layouts, such static or responsive, using one column or two.
    • Theme can customize its typography and design elements using CSS.
    • Theme can specify which devices or actions make you content visible.

    In WordPress theme, you can modify the theme by adding plugins (plugin is used to control the behaviour and features of your WordPress site) or by adding code to the function.php file.

    Themes Made of?

    WordPress themes are made of distinct files that work together to create what you see, as well as how your site behaves. Under the theme directory, WordPress theme consists of two main required files, as well as additional files.

    Main Required files:

    • index.php: main template file.
    • style.css: main style file.

    Additional files:

    • PHP file: including template files
    • CSS files
    • Graphics
    • JavaScript
    • Text files: usually licence info, readme.txt instruction, and a changelog file.

    Default Theme (twentyseventeen): The default theme is used to showcase the features of WordPress and as well as used to create basic website. WordPress comes with a default theme to display the front-end of the website. Files included under the theme as follows:

    Note: Download WordPress themes locally in the https://wordpress.org/themes/ directory.