Categories
General

Black Friday Sale

Hey, hurry up!!

Black Friday Sale is here Flat 40% off on all our products for limited period to grab this opportunity visit at https://codecanyon.net/user/livelyworks/portfolio

Categories
General

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

Categories
General PHP

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;
}

Categories
AngularJS General JavaScript

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/

Categories
General

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

Categories
General Laravel

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) 

Categories
General

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.

Categories
Angular AngularJS General JavaScript

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/

Categories
General

What is Laravel-websockets?

Laravel WebSockets is a php package for Laravel 5.7 and up, which handles the server-side of WebSockets for you. It has a web-server, implemented in PHP, that handles incoming WebSocket connections. Laravel WebSockets has been built on top of Ratchet. Also there is support for multi-tenancy, which let you set up a webSockets server and use it for many different applications.

Laravel WebSockets also has a real-time dashboard, that shows you all incoming connections, events and disconnects the moment they happen on your WebSocket server, powered by a real-time chart that gives you key-insights into your WebSocket application metrics, like the number of peak connections, the amount of messages sent and the amount of API messages received.

This package also supports existing packages and applications out there that support Pusher and all the features offered by Pusher, such as private channelspresence channels and even the Pusher HTTP API.

Usage:

1. First, require it with Composer

composer require beyondcode/laravel-websockets

2. Publish the migration file

php artisan vendor:publish–provider=”BeyondCode\LaravelWebSockets\WebSocketsServiceProvider”–tag=”migrations”

3. Run Migrations command

php artisan migrate

4.  publish the config file

php artisan vendor:publish –provider=”BeyondCode\LaravelWebSockets\WebSocketsServiceProvider”–tag=”config”

5. The last step is to fill some environment variables. Make sure that APP_NAMEPUSHER_APP_IDPUSHER_APP_KEYPUSHER_APP_SECRET are filled in your .env

6. start the server by executing this command.

php artisan websockets:serve

Now you can use a library like laravel-echo to connect to the server. To get started with the client side check out docsthe laravel-echo docs and this demo application.

Categories
Angular AngularJS ES6 General JavaScript TypeScript

Dragula – A simple drag and drop library

In this article, we will take quick look at the process of creating drag and drop in AngularJs and Angular application using Dragula. For AngularJs and Angular there are two different Dragula library are available, i added link of all those libraries at the end of this article. Dragula gives you simple way to add advance drag and drop in your application.

Dragula includes a services, directives, events and options for easily
implementation in you application. You can easily drag and drop from one container to another also you can sort a list of order and many more are available in Dragula.

Installation : 

AngularJs : 

You can get it on npm.

npm install angularjs-dragula --save

Or bower, too.

bower install angularjs-dragula --save


Angular: 

npm install ng2-dragula# 
or
yarn add ng2-dragula

For more info please visit following links.

AngularJs: 

https://github.com/bevacqua/angularjs-dragulah

https://bevacqua.github.io/angularjs-dragula/

Angular: 

https://github.com/valor-software/ng2-dragula

https://valor-software.com/ng2-dragula/