Featured

LivelyCart PRO – Laravel E-Commerce Platform | Shopping Cart

Based on Laravel 5.8

This is our major release after LivelyCart 2 with lots of new features & functionality also compatible with LivelyCart 2.

Features:

  • Translation / Localization Supported you can easily convert this store into your own language. without changing code
  • Laravel 5.8
  • Bootstrap 4
  • Responsive Layout
  • Search Engine Friendly URLs
  • Installation (Server Requirements) Verification Script
  • Ready to use.
  • Well documented
  • Robust Admin Section for Managing Store
  • Percentage & Flat Country based Shipping Rules
  • Search Product Functionality
  • Thumbnail & Multiple Images for Product
  • Slider for product images on details page
  • Submit Order by Email – Options for Bank Transfer, COD, Check, Online Payments etc
  • Multi-level Unlimited Categories
  • Multiple Product categories
  • Product Brands
  • Unlimited Product Options with add-on price support and Value Based Images
  • Discount Coupons – Can have percentage, flat discount coupons
  • Custom Pages Support
  • Social Login Support
  • Guest Login
  • Quick Login
  • Ratings & Reviews
  • Allow customer to cancel order
  • Multiple Display Currencies
  • Add to Wish list
  • Product specific discount & cart discount with/without coupon
  • Shipping Methods eg. Normal, Express etc
  • Specification Preset
  • Product Specification
  • Products comparison based on Specifications
  • Product Filters
  • Attractive details page with Product image Zoom
  • Product FAQs
  • Dynamic User Roles
  • Dynamic Email Templates
  • Many Configuration right from the admin section
  • Multiple Payment Gateways: PayPal / Stripe (Card Payments) /Razorpay /Iyzico /Paytm / Instamojo, PayStack, payment gateways
  • Footer & Slider Configuration
  • Landing Page.
  • Products & Orders Reports using the graphs etc

Please Note:

To see responsive demo & working PayPal Link in preview you need to remove CodeCanyon Frame or use direct link http://pro-demo.livelycart.com

LivelyCart PRO

CHANGELOG:

CHANGELOG #3.2.4 - 05 APR 2019
------------------------------------------------------------------------
Minor issues fixes & Improvements

CHANGELOG #3.2.0 - 03 APR 2019
------------------------------------------------------------------------
Added Option Value Based Images Feature
Minor issues fixed & Improvements

------------------------------------------------------------------------
CHANGELOG #3.1.0 - 31 MAR 2019
------------------------------------------------------------------------
Added PayStack Africa Payment Gateway
Minor issues fixed
------------------------------------------------------------------------
CHANGELOG #3.0.0 - 27 MAR 2019
------------------------------------------------------------------------
Released Major Version
------------------------------------------------------------------------

Server Requirements:

  • PHP version 7.1.3
  • MySQL 5.x
  • Fileinfo PHP Extension
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • GD PHP Extension
  • JSON PHP Extension
  • XML PHP Extension
  • ctype PHP Extension
  • ZIP PHP Extension
  • BCMath PHP Extension
  • Curl PHP Extension

Keywords: html5, CSS3, responsive, e-commerce, store, PayPal, Stripe, shop, Shopping Cart, localization, Multilingual, angular, angularjs, Laravel, multilevel categories, paytm, razorpay, Iyzico, instamojo, Indian payment gateway, snapdeal, flipkart, amazon, PayStack Africa Payment Gateway



Buy it Now

Whats new in PHP 7.4

PHP core team possibly release PHP 7.4 somewhere on December 2019. Today we take a look at some new upcoming features and improvements.

Preloading:

This feature can resolve performance related issues in PHP. In Short if you are using the framework then it’s file loaded and recompiled on each and every request. Preloading allow us to store files in memory on startup and then available for each and every request. If files are changed then server will be restart.

FFI:

FFI means Foreign Function Interface, it is allow us to call C code from userland. This means that PHP extensions can be written in pure PHP. This is complex topic and you need C code knowledge to use this feature.

For more information refer the https://react-etc.net/entry/php-ffi-allows-embedding-raw-c-code-in-php-scripts-php-7-3

Null Coalescing Assignment Operator:

// Now
$dateTime = $dateTime ?? new DateTime();

// in PHP 7.4
$dateTime ??= new DateTime();

ext-hash always enable:

This extension is permanently available for all PHP installations.

Password Hashing Registry:

Internal changes to how hashing libraries are used, so that it’s easier for userland to use them.

Type Property:

Class variable can be type hinted.

class Test
{
    public string $demo;
    
    public Bar $bar;
}

Ng-notify – a simple and lightweight library for AngularJs

Ng-notify is a simple and lightweight notification library for AngularJs apps. This library doesn’t required any dependencies except angular.js. Animation is achieved with pure JS & lightweight module (~5.5 kBs. js and css combine). You can use HTML in your message. Set a global configuration for each and every notification in your app.

Installation :

Install using bower

bower install ng-notify --save

Install using npm

npm install ng-notify --save

As of v0.6.0, ng-notify is now available via the jsDelivr CDN if you’d prefer to go down that route.

//cdn.jsdelivr.net/angular.ng-notify/{version.number.here}/ng-notify.min.js
//cdn.jsdelivr.net/angular.ng-notify/{version.number.here}/ng-notify.min.css

Example :

//cdn.jsdelivr.net/angular.ng-notify/0.6.0/ng-notify.min.js
//cdn.jsdelivr.net/angular.ng-notify/0.6.0/ng-notify.min.css

Aways you can direct download the source file from this repository – files are located in dist folder, be sure to use minified version of both js and css.

Usage :

After adding ng-notify.min.js and ng-notify.min.css inject ng-notify provider into your module.

var app = angular.module('demo', ['ngNotify']);

Now you can show notification from anywhere in your app, just use set method.

ngNotify.set('Your notification message goes here!');

If you want to specify the type of notification (success, warning, info etc.) then specify it as second parameter.

ngNotify.set('Your error message goes here!', 'error');

Default Configuration :

ngNotify.config({
    theme: 'pure',
    position: 'bottom',
    duration: 3000,
    type: 'info',
    sticky: false,
    button: true,
    html: false
});

You can override the default configuration by using config method, you can also set the individual configuration for each and every notification.

ngNotify.set('Your first message.', {
    position: 'top',
    sticky: true
});

ngNotify.set('Your second message.', {
    type: 'error',
    duration: 2000
});

Sticky Notification :

This allows you to set a notification which is does not fade away, to do simply set sticky attribute to true,

ngNotify.set('This is sticky.', {
    sticky: true
});

HTML Notification :

This allows you to show html content in notification, to do this set the html attribute to true.

ngNotify.set('This has HTML content!', {
    html: true
});

Callbacks :

After a notification is completed then you can add a callback for further logic. This callback only set through set method and is passed an optional third parameter.

ngNotify.set('This message has a callback.', {}, function() {
   // your logic here
});

For more info please visit following url :

ng-notify: https://github.com/matowens/ng-notify

github: https://github.com/matowens/ng-notify

jQuery File Upload Plugin

Wow…!! File Uploader with well documentation and many unexpected features with multiple file selection, drag and drop support, progress bars, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads and client-side image resizing.

Server Side Platform Support

  • PHP
  • Python
  • Ruby on Rails
  • Java
  • Node.js and Go

Available Features

  • Multiple file upload:
    Allows to select multiple files at once and upload them simultaneously.
  • Drag & Drop support:
    Allows to upload files by dragging them from your desktop or file manager and dropping them on your browser window.
  • Upload progress bar:
    Shows a progress bar indicating the upload progress for individual files and for all uploads combined.
  • Cancelable uploads:
    Individual file uploads can be canceled to stop the upload progress.
  • Resumable uploads:
    Aborted uploads can be resumed with browsers supporting the Blob API.
  • Chunked uploads:
    Large files can be uploaded in smaller chunks with browsers supporting the Blob API.
  • Client-side image resizing:
    Images can be automatically resized on client-side with browsers supporting the required JS APIs.
  • Preview images, audio and video:
    A preview of image, audio and video files can be displayed before uploading with browsers supporting the required APIs.
  • No browser plugins (e.g. Adobe Flash) required:
    The implementation is based on open standards like HTML5 and JavaScript and requires no additional browser plugins.
  • Graceful fallback for legacy browsers:
    Uploads files via XMLHttpRequests if supported and uses iframes as fallback for legacy browsers.
  • HTML file upload form fallback:
    Allows progressive enhancement by using a standard HTML file upload form as widget element.
  • Cross-site file uploads:
    Supports uploading files to a different domain with cross-site XMLHttpRequests or iframe redirects.
  • Multiple plugin instances:
    Allows to use multiple plugin instances on the same webpage.
  • Customizable and extensible:
    Provides an API to set individual options and define callback methods for various upload events.
  • Multipart and file contents stream uploads:
    Files can be uploaded as standard “multipart/form-data” or file contents stream (HTTP PUT file upload).
  • Compatible with any server-side application platform:
    Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.

Desktop Browser Support

  • Google Chrome
  • Apple Safari 4.0+
  • Mozilla Firefox 3.0+
  • Opera 11.0+
  • Microsoft Internet Explorer 6.0+

MObile Browser Support

  • Apple Safari Mobile on iOS 6.0+
  • Google Chrome on Android 4.0+
  • Opera Mobile 12.0+

File Upload DemoGihubURL

RowReorder extension for DataTables

DataTables has an extensive API’s which can be used to access the data contained in a table and manipulate the table after the table initialisation has completed. The DataTables API is designed to reflect the structure of the data in the table and how you will typically interact with the table through the API. It can also be extended by the extensions and plug-ins providing additional features and operations.

The API can be accessed through the following methods:

  • $( selector ).DataTable();
  • $( selector ).dataTable().api();
  • new $.fn.dataTable.Api( selector );

The result from each, is an instance of the DataTables API object which has the tables found by the selector in its context. It is important to note the difference between $( selector ).DataTable() and $( selector ).dataTable(). The former returns a DataTables API instance, while the latter returns a jQuery object.

For general information of DataTables listed API which operates Data Tables tables are listed below.

  • DataTable Tables
  • RowRecorder
  • Scroller
  • DataTable Rows
  • DataTable Columns
  • Col Recorder
  • Fixed Columns
  • Fixed Header
  • Editor
  • Row Group 

In this post shown the example of RowReorder extension for DataTables being used with Editor. RowReorder provides the ability for end users to quickly and easily reorder items in the table by click and drag. The integration with Editor that it provides (rowReorder.editor) makes use of Editor’s multi-row editing abilities to update all rows to take account of the row ordered data.

This can make really for easy to use interface for end users, where they have data that they can place into a custom order.

Initialisation

RowReorder can be initialised on a DataTable by using the rowReorder option in the DataTables options object. This is simply a boolean true to indicate that rows should be reorderable, although it is also possible to use an object for fine grained control (see the reference documentation for full details):

$('#myTable').DataTable( {rowReorder: true} );

Features

RowReorders presents the following features:

  • Row reordering for DataTables with click and touch support
  • Full integration with Editor
  • Customisable drag start handle
  • Drag snapping
  • Full integration with Bootstrap, Foundation and the other styling libraries supported by DataTables

Further documentation is available at https://datatables.net/extensions/rowreorder/

NG-ZORRO-MOBILE – A Mobile UI Components

Today we are take a short look at NG-ZORRO-MOBILE, it is an enterprise-class UI design for Angular mobile web app. You can use this UI in any kind of product because it is scalable & easily adaptable. It Provides the “Components are loaded on demand” / “Web page HD display” / “SVG Icon” optimisation features and integrated development. It also support to running in ionic.

Environment Support:

iOS 7.0+
Android 4.4+

Angular Support:

Angular 6.0.0^.

Installation:

NG-ZORRO-MOBILE recommended to use @angular/cli to install.

$ npm install -g @angular/cli

Create Project using following command:

$ ng new PROJECT-NAME

Initialize Configuration:

$ ng add ng-zorro-antd-mobile

Development and Debugging:

$ ng serve --port 0 --open

Build and Deploy:

$ ng build --prod

Add Modules and Styles to your angular app:

import { NgZorroAntdMobileModule } from 'ng-zorro-antd-mobile';
...
...
...
@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    ...
    ...
    ...
    NgZorroAntdMobileModule
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

and add styles to your angular.json file

{
  ...
  ...
  "styles": [
    "node_modules/ng-zorro-antd-mobile/src/ng-zorro-antd-mobile.min.css",
    "src/styles.css"
  ],
}

Done! now you can use ng-zorro-mobile for your angular mobile app. You also used in ionic. For using in ionic please check following link.

used in ionic:  http://ng.mobile.ant.design/#/docs/running-in-ionic/zh

Some other links are following:

NG-ZORRO-MOBILE : http://ng.mobile.ant.design

Laravel : Helpful Gems, Shortcuts Syntax and Many More

In our regular development life we are trying to do more better and efficient code. But the thing is that many developers don’t know the proper shortcuts & efficient helpers and many more things which helps to make more better coding. I listed here some shortcut of syntax which are helpful for you.

Common Syntax Vs Shorter Syntax

Some of Laravel Eloquent hidden gems

  • Conditional DB Query

Sometimes we need conditional query but when the both result (or none ) returns true, then we generally do separate eloquent calls as like  

Another better way to repeat eloquent call

  • Use where() on a with() by using whereHas()

If you want to need of constraints on models’s relationship then return those result whose relationship match that constraint,  hahahahah… It’s much better solution

->whereHas() checks that 

  • The relationship exists
  • Allows you to pass a closure that you can use to add constraints to the query being called
  • Using the shorter where method for date column

The below method is most important, it’s a recommendation to use those filter for date column intend of where clauses or looping through the returned collection to breakdown the date and grab only ones from a particular month.

  • Only return models if they have a particular relationship using has().

The below example says required ->has(‘specification’) means return those eloquent model whose records exist in DB. 

  • Use of (skip / take) instead of offset and limit

To limit the number of results returned from the query or to skip a given number of results in the query. It is easy to read & sort as like skip(10) users and take(5) 

MySQL 8.0 and comparison with MySQL 5.7

What Is New in MySQL 8.0

Feature Mysql 5.7 Mysql 8.0
Data Dictionary Stored in metadata files and non-transactional tables Transactional data dictionary that stores information about database objects.
Atomic Data Definition Statements (Atomic DDL) ————- Dictionary updates, storage engine operations, and binary log writes associated with a DDL operation into a single, atomic transaction combined by an atomic DDL statement.
Security and Account management 1. MyISAM (nontransactional) grant tables 1. InnoDB (transactional) grant tables.
2. Account-management statements (such as CREATE USER or DROP USER) for naming multiple users could succeed for some users and fail for others. 2. Each statement is transactional and either succeeds for all named users or rolls back and no effect if any error occurs.
3. mysql_native_password plugin. 3.caching_sha2_password authentication plugin is available. Like the sha256_password plugin.
4. Not supported. 4. MySQL now supports roles, which are named collections of privileges.
5. Single password for each account. 5. Accounts are now permitted to have dual passwords.
Resource management Not supported 1. Creation and management of resource groups.

2. Threads can be assigned to particular groups running within the server so that threads execute according to the resources available to the group.

Character Set support Default character set :  latin1 Default character set :  utf8mb4
Data Type support Use of expressions as default values for the BLOB, TEXT, GEOMETRY, and JSON data types.
Indexes Visibility Supports only visible indexes. Now supports invisible indexes.

And many more features and enhancements.

Flowjs – Angular HTML5 Uploader

Flow.js is javascript library which is provides multiple simultaneous, stable and resumable uploads via the HTML5 File API. This library allows automatic resume uploading file when internet connection is lost
either locally or to the server. Additionally its provide a facility to pause, resume and recover uploads without losing any data because flow.js upload file in chunks so only currently chuck is aborted not entire upload.

Flow.js does not depends on third party library, its use HTML 5 API. Flow.js have a ability to break / chunks file in smaller pieces, that’s why currently flow.js support is limited to Firefox 4+, Chrome 11+, Safari 6+ and Internet Explorer 10+.

  1. Flow.js is currently available for angular.js (ng-flow)
  2. JQuery and node.js backend (link). 

How to install?

Download latest build from

http:// https://github.com/flowjs/flow.js/releases

or bower :

http://bower install flow.js#~2

or use git clone http://git clone https://github.com/flowjs/flow.js

How to use Flow.js?

var flow = new Flow({
  target:'/api/photo/redeem-upload-token', 
  query:{upload_token:'my_token'}
});
// Flow.js isn't supported, fall back on a different method
if(!flow.support) location.href = '/some-old-crappy-uploader';

User can either selected and drag-dropped, just assign drop target and a DOM item to be clicked for browsing:

flow.assignBrowse(document.getElementById('browseButton'));
flow.assignDrop(document.getElementById('dropTarget'));

After this, interaction with Flow.js is done by listening to events:

flow.on('fileAdded', function(file, event){
    console.log(file, event);
});
flow.on('fileSuccess', function(file,message){
    console.log(file,message);
});
flow.on('fileError', function(file, message){
    console.log(file, message);
});

Read full documentation on below link:

Flow.js : https://flowjs.github.io/ng-flow/

Laravel Certification

   It’s a great opportunity… 

Stand out. Get Certified

Yaaaa, You can become globally recognized certified developer or the certified team for your expertise in creating modern web applications with Laravel. The Board of Advisors provides good knowledge & high-quality exams. For more information related links are here.

Certified Developer


Stand out in a stack of resumes. Differentiate yourself from your peers by proving your in-depth Laravel knowledge.

Certified Team


Your company has the best Laravel experts. Do your customers know it? Certify your team and gain your customer’s trust.

 

Related Links – 

Laravel Certification

laravel-news