Skip to content

redCOMPONENT-COM/redSHOP

Repository files navigation

redSHOP 3.x

Build Status Scrutinizer Code Quality

redSHOP 3.x is a major release and breaking change version, including a lot of enhancement in core and bugs fixes. The new version is opened for people to contribute new features, bugs fixes, improvements.

Requirement

  • For redSHOP version <= 2.1.4: PHP Version: >= 5.6
  • For redSHOP version >= 2.1.5: PHP Version: >= 7.0

Code Standard

redSHOP >= 2.1.5 follow PSR-12 code standard for PHP development instead of Joomla standard which is outdated and not work with PHP_Codesniffer 3.x

IDE integration

Documentation

https://github.com/redCOMPONENT-COM/documentation

DB Change

There are an MySQL Workbench DB Model file in src/db/redshop.mwb. When need some changes in DB structure:

  • Use MySQL Workbench open this src/db/redshop.mwb file.
  • Add some necessary changes in MySQL Workbench
  • Go to File > Export > Forward Engineer SQL Create Script...
  • Choose path for output script file (admin/sql/mysql/install.sql)
  • Check on 2 option Generate DROP Statements Before Each CREATE Statement and Omit Schema Qulifier in Object Names.
  • Open generated install.sql file and remove the comments from MySQL Workbench
  • In install.sql, remove this line at top:

SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

  • In install.sql, remove this line at bottom:

SET SQL_MODE=@OLD_SQL_MODE;

Twig template engine support

  • Twig library is ready and embeded into redSHOP.
  • Almost tags system of redSHOP using Twig template instead of PHP inline
  • Remaining layouts, views of redSHOP is moving to Twig and PHP Inline will be deprecated soon.

How to avoid twig confliction with an other component

Using Gulp build system

Before you can run any Gulp command you need to:

  • download and install NodeJS https://nodejs.org/download/
  • install npm: sudo npm install
  • install Gulp: npm install --save gulp-install
  • install joomla-gulp-release: sudo npm install --save-dev joomla-gulp-release

Using NodeJS version >= 10 on redSHOP

  • download and install NodeJS https://nodejs.org/download/. If you need to update NodeJS do as bellow:
  • install: npm install -g n
  • update Node to version you want, example NodeJS 2: sudo n 12
  • npm install: npm install --save-dev
  • rebuild node-sass: npm rebuild node-sass

Gulp 4 support

  • Currently, redSHOP support GULP 4 with all updated dependencies.

Following tasks and switches are available:

Setup gulp config file. Copy and rename gulp-config.sample.json file into gulp-config.json

Version and other information can be set in gulp-config.json file.

To Release component and create .zip file

Use this command to release component. Version and other information can be set in gulp-config.json file.

gulp release:component

To Release modules and create .zip file

gulp release:module

To Release plugins and create .zip file

gulp release:plugin

This command will read the base directory and create zip files for each of the folder.

=== Switches ===

Pass an argument to choose different folder

--folder {source direcory}  Default: "./plugins"

Pass an argument to change suffix for extension

--suffix {text of suffix}   Default: "plg_"

Example Usage:

 gulp release:extensions --folder ./modules --suffix ext_

Languages & translation

Extensions

Plugins

  • Check if any plugin has been changed in this last release:

$ git log --oneline --after={2013-04-18} --no-merges --name-only | grep 'plugins/.*' | cut -d/ -f2,3 | sort | uniq

Or Compare across versions

git log --oneline 1.4/dev19...develop --no-merges --name-only | grep 'plugins/.*' | cut -d/ -f2,3 | sort | uniq > /var/www/packages/plugins.log

Note: to match the plugins with it's compatible core version see #1548

Modules

  • Check if any module has been changed in this last release:

$ git log --oneline --after={2013-04-18} --no-merges --name-only | grep 'modules/.*' | cut -d/ -f2,3 | sort | uniq

Or Compare across versions

git log --oneline 1.4/dev19...develop --no-merges --name-only | grep 'modules/.*' | cut -d/ -f2,3 | sort | uniq > /var/www/packages/modules.log

  • if modules have been modified:
  • Update the release number in their manifest .xml file in the same way you have done it with plugins https://github.com/redCOMPONENT-COM/redSHOP-1.2#plugins
  • execute the modules_packager.xml PHING file and upload the new release to redCOMPONENT.com

Test

  • test the packages to ensure that everything works properly.
  • share the package in the redSHOP testing chat, so others can do some testing.
  • add fast fixes if issues has been identified during testing
  • Generate the final packages and contact the Product Owner (Ole) and ask him to upload the packages to redCOMPOPNENT.com

Update Changelog

  • Create the Changelog list of commits:

git log --oneline 1.4/dev25...develop --no-merges --format="* %s ( %h )" > /var/www/packages/changelog2.log

Testing

See: testing redSHOP