Giter Club home page Giter Club logo

soosyze's Introduction

Build Status License PHP from Packagist CII Best Practices Download Soosyze CMS

About

Soosyze CMS is a content management system without a database. It's easy to create and manage your website easily with little or no technical knowledge. It is based on an MVC micro-framework in object-oriented PHP and on a noSQL library to ensure its stability and evolution.

To encourage us to continue the development of Soosyze CMS do not hesitate to put a star ⭐ Github. Thank you ❤️

Find us on the networks :

Summary

Screenshots

Screenshot of Soosyze CMS

Installation requirements

Web Server

Web server Soosyze 2.x
Apache HTTP Server 2.2+ ✓ Supported*
Ngnix 1+ ✓ Supported**
IIS ✓ Supported***

PHP version

PHP version Soosyze 2.x
<= 7.1 ✗ Unsupported
7.2 / 7.3 / 7.4 ✓ Supported
8.0 / 8.1 / 8.2 ✓ Supported

Required PHP extensions

  • date for the dates format,
  • fileinfo for file validation,
  • filter to validate your data,
  • gd for image processing,
  • json to save data and configurations,
  • mbstring for your emails,
  • openssl to query resources or flows in HTTPS,
  • session to store your data (server side) from one page to another.

These extensions are usually active by default. But if he missed an error message, he would come to inform you.

Required memory

Soosyze (excluding contributor modules) requires 8MB of memory.

Browsers support

IE / Edge
Edge
Firefox
Firefox
Chrome
Chrome
Safari
Safari
iOS Safari
iOS Safari
Samsung
Samsung
Opera
Opera
Edge last 10 versions last 10 versions last 2 versions last 2 versions last 2 versions last 2 versions

Installation

🚲 Simple download

To install the production version of the Soosyze CMS, download and uncompress the archive of the latest version of the CMS in the directory that will host your site.

🚗 Download via Composer

To install the production version of Soosyze CMS via Composer it is necessary to have:

  • The installer or the binary file Composer,
  • And the php command in your environment variables.

Go to the directory of your server, open a command prompt and run the command: (Remplacer le terme <my-directory> par le répertoire qui hébergera votre site.)

composer create-project soosyze/soosyze <my-directory> --no-dev

CMS installation

Now that the source files are in the right place, open a web browser (Firefox, Chrome, Opera, Safari, Edge ...) and in the address bar, enter the following value :

The next page will come to you. Follow the instructions to install the CMS.

Screenshot of Soosyze CMS installation page

That's it, the CMS is installed.

Configuration

Apache

Soosyze will not function properly if mod_rewriten is not enabled or .htaccess is not allowed. Be sure to check with your hosting provider (or your VPS) that these features are enabled.

Ngnix

If you use Nginx, add the following items to your server's configuration block to ensure the security of CMS Soosyze:

include /path/to/soosyze/.nginx.conf;

IIS

If you use IIS, you must block access to the following directories:

  • app/config,
  • app/data.

License

Soosyze CMS is under MIT license. See the license file for more information.

soosyze's People

Contributors

drblackapple avatar noelma avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

soosyze's Issues

Mise en conformité des vues.

La génération HTML dans les vues produise des espacements inutiles et illisibles. Pour une meilleure génération, les blocs PHP doivent être séparés du haut des balises HTML. Les espaces et retours chariots seront réduits pour une meilleure visibilité du DOM. Tous les blocs PHP doivent avoir une virgule de fin d'instruction même si elle n'est pas obligatoire.

Ajout d'appels aux hooks dans les contrôleurs utilisant le concept du CRUD.

Ajouter un appel aux hooks dans les contrôleurs dans les cas suivants :

  • Avant la génération d'un formulaire,
  • Après la génération d'un formulaire,
  • Avant la validation des données,
  • Après la validation et avant la mise à jour des données,
  • Après la validation et après la mise à jour des données.

Revue de code.

  • Suppression de plusieurs codes inutilisés,
  • Correction orthographique,
  • Mise en forme du code,
  • Peaufinage de l'interface utilisateur,
  • Factorisation du code,

Ajouter un service pour la gestion des fichiers.

Ce service a comme objectif d'être un appui à la gestion des fichier dans le CMS :

  • Aide à la création d'input file,
  • Aide à la validation de données,
  • Nettoyage du nom et chemin de fichier.

Ajout d'id pour les champs textarea et select.

Standardisation des noms des labels, légende, groupe et fieldset.
Le standard choisi : "nom_module-name_item-type"

Exemple :
Module Système, label pour le champ email donnera "system-email-label".

Ajout d'un logo et d'un favicon dans le module System.

Avec la mise à jour du framework en version 1.2.0, le composant validator nous permet de valider plus aisément les fichiers et les images.
Un champ logo et favicon seront ajoutés dans le formulaire d'édition de la configuration. Les fichiers devront être sauvegardés dans le répertoire public et leurs noms dans le fichier de configuration.

Correction du drag and drop dans le module Menu.

Les colonnes sont forcées avec une taille de 100% lors du drag and drop.
Cette façon de faire oblige à créer une entêtes vide supplémentaires pour les actions et force la taille du champ poids avec une valeur absolue. Le but et de redimensionner automatiquement la ligne dans la fonction JS permettant de drag and drop.

Création du module Config.

Ce module permet d'avoir un panneau d'édition utilisable via des hooks pour rassembler les configurations des autres modules.

  • Les pages du panneau seront soumissent à un droit utilisateur.
  • Le panneau et son menu offrent un affichage contextuel.
  • Ils sont visibles aux rôles utilisateurs possédant au minimum un droit sur les configurations.
  • Il prend à sa charge la gestion de tout types de données y compris les images.

Ajouter une pagination aux articles.

L'un des meilleurs moyens de réduire le temps de réponse reste encore la réduction des résultats d'une requête.
Une pagination sur la page des articles affichera les résultats par tranche de 10.

Ajout du nouveau thème Quiet Blue par défaut.

Le thème par défaut Bootstrap 3 est beaucoup trop sobre et impersonnel.
Suite aux nouveautés apportées dans le service Template, le nouveau thème Quiet Blue devient le nouveau thème par défaut de Soosyze CMS.

Changement d'algorithme de hash pour les mots de passe utilisateur.

L'utilisateur aura son mot de passe géré avec les fonctions passwor_*() qui sont bien plus efficaces en termes de sécurité.
L'édition d'un utilisateur a été mis à jour en conséquence.
Ajout du projet password_compat pour respecter le support de la version 5.4 de PHP du CMS.

Standardisation de l'upload d'image dans le service File.

Pour enregistrer des images dans plusieurs modules, le service File doit proposer un ensemble de méthodes pour simplifier le traitement. Ces nouvelles méthodes devront être mises en place dans le module système pour le logo et la favicon.

Correction de la maintenance du site.

Suppression du contrôleur System et de ces routes. La gestion de maintenance passe par le code HTTP 503 catché avec le hook app.503 De plus, la connexion utilisateur ne peut-être réalisée que par un utilisateur ayant le droit d'utiliser le site en maintenance.

Ajout d'un champ key dans la structure du menu.

Pour simplifier la vérification du droit utilisateur en fonction du lien, le menu doit sauvegarder la clé de la route si elle existe à la création et édition d'un lien. De cette façon il sera possible de ne plus parser la route à chaque lien du menu pour en connaître la clé.

Mise à jour du framework à la version 1.2.

La nouvelle version du framework repense la façon dont le composant de validation fonctionne tout en ajoutant des nouvelles fonctionnalités.
De plus, certaines fonctions ont changées, il faut mettre le CMS à jour en fonction de cette nouvelle version.

Revue de code.

  • Suppression de commentaire inutiles,
  • Ajout d'espace dans le code,
  • Factorisation du code,
  • Suppression des doublons dans les modules requis.

Modification de la structure des nodes en base de données.

Le stockage actuel des nodes se réalise grâce aux fonctions serialize() et unserialize() ce qui pose un problème de sécurité.
Bien plus largement que le problème de sécurité, ces données risques d'être difficilement exploitable en cas d'une bascule full API.
Le but est qu'une node représente une table dans la base de données à la place du champ des données stockées dans le champ field.
Les tables des champs d'une node, leurs propriétés et règles de validation reste inchangées.

Convention de nommage des templates page et formulaire.

Suite à l'écriture du tutoriel de développement d'un module, une convention de nommage fut créée.
À l'avenir toutes les pages devront suivre la convention suivante :
page-'nom_controller|nom_objet_CRUD'-'nom_fonction'
Toutes le formulaire devront suivre la convention suivante :
form-'nom_controller|nom_objet_CRUD'-'nom_fonction'

Gestion multi-utilisateur.

  • Voir, créer, modifier, supprimer des utilisateurs,
  • Formulaire d'inscription et d'activation des comptes utilisateurs,
  • Voir, créer, modifier et supprimer des rôles,
  • Octroyer des rôles aux utilisateurs, octroyer des permissions aux rôles,
  • Voir tous les utilisateurs, rôles et permissions,
  • Configurations pour ouvrir l'inscription et la récupération de mots de passes.

Correction des hooks menu dans le module Node.

Plusieurs bugs fonctionnels et techniques à corriger pour que la procédure suivante fonctionne :

  • Si une node est créée, mais pas de lien de menu, le lien ne sera pas créé.
  • Si une node est créée avec un lien de menu, mais non publié, le lien est créé inactif.
  • Si une node est créée avec un lien de menu, mais publié, le lien est créé est actif.
  • Si une node est modifiée en étant dé-publiée, le lien de menu devient inactif.
  • Si une node est modifiée en étant publiée, le lien menu deviens actif.
  • Si une node est supprimée, le lien de menu est supprimé.

Manipuler un lien de menu depuis le module Node.

  • L'utilisateur pourra manipuler un lien de menu en relation avec une Node.
  • Un champ 'lien de menu' devra être proposé dans le formulaire de création et modification d'une Node.
  • Lorsque la Node est supprimée, le lien de menu l'ai également.
  • Si le lien de menu est supprimé, la relation entre les deux l'ai également.
  • Ce champ doit apparaître uniquement si le module menu est installé.

Mise à jour de php-cs-fixer

  • Mise à jour de la version 2.12.* à 2.13* de php-cs-fixer.
  • Ajout de nouvelles règles,
  • Nettoyage des fichiers.

Ajout d'un lien compte utilisateur.

Pour simplifier l'accès au compte utilisateur, une nouvelle route est ajoutée au module User.
Cette route vérifiera si un utilisateur et actuellement connecté et il sera redirigé automatique à sa page de compte. Dans le cas ou l'utilisateur est anonyme, il sera redirigé à la page de connexion.

Correction du script de debug.

Pour plus de sécurité le script de debug sera désactivé par défaut.
Prise en compte de l'erreur d'objet __PHP_Incomplete_Class.
Correction d'erreurs d'affichages des paramètres.

Les modules pourront posséder plusieurs contrôleurs.

Le module manager installe un seul contrôleur par module. Dans le cas d'un module devant manipuler plusieurs objets, il serait plus visible de posséder un contrôleur par CRUD. Exemple : le module menu doit pouvoir manipuler des objets menu et objets liens.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.