Giter Club home page Giter Club logo

phyxo's Introduction

logo Phyxo

Simply share your images.

alt tag

Requirements

This project use severals librairies that need at least PHP 8.2.0

Phyxo PHPSTan level PHP 8

This project uses a database and support all database engines managed by DBAL like Mysql, PostgreSQL and SQLite engines.

Installation

From web browser

Download the latest stable version and unarchive it. Transfer the content to your web space with any FTP client. Open your website (https://example.com/phyxo/public/index.php or your domain name) and install database and first user through web interface.

You can found more informations on Installation from source page

From source

Clone this repository:

$ git clone [email protected]:nikrou/phyxo.git

Download the composer.phar executable or use the installer.

$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar composer

Update dependencies via composer:

$ composer install

Install Phyxo through web interface.

For both methods you can make installation process from command line:

$ ./bin/console phyxo:install

And create first user:

$ ./bin/console phyxo:user:create

Contributing

If you'd like to contribute, please read the CONTRIBUTING.md file. You can submit a pull request, or feel free to use any other way you'd prefer.

Running tests

You must have install phyxo first, and update base_url in behat.yml.dist

phyxo is tested using a BDD framework - Behat. To run test:

$ ./bin/behat

But there's also unit tests in phyxo runned with PHPUnit. To run tests:

$ ./bin/simple-phpunit --testdox

or

$ make unit-test

You can also get coverage report for tests by running:

$ ./bin/simple-phpunit --testdox --coverage-html=coverage

or

$ make unit-test-coverage

Static code analysis

Analysis is made using PHPStan :

$ composer phpstan

The analysis is made with level 5 but the idea is to increase that level and fix more and more possible issues.

Demo

You can find, discover and play with a demo

Documentation

Documentation is available on the wiki. Work in progress...

Todo

phyxo's People

Contributors

gitter-badger avatar nikrou avatar

Stargazers

 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

phyxo's Issues

little glitch updating from 1.6.4 to 1.6.5

Through admin, using automatic update (CentOS 7.3, php 7.0.16, Postgres 9.6.2).

Notice: Undefined property: SmartyException::$not_writable in /var/www/html/phyxo/admin/updates_core.php on line 122

Warning: implode(): Invalid arguments passed in /var/www/html/phyxo/admin/updates_core.php on line 122

Fatal error: Uncaught --> Smarty: Smarty_Internal_Template->_decodeProperties() undefined method <-- thrown in /var/www/html/phyxo/vendor/smarty/smarty/libs/sysplugins/smarty_internal_undefined.php on line 65

I then hit F5 and things seem fine, Phyxo telling it is up to date.

Keep up the good work :)

Move back index.php in public directory

Symfony standard installation create a public repository. The http server (usually apache but it works with any) must consider public directory as root directory for the application.
As a consequence, others directories are not accessible with a browser. So some refactoring is needed for themes to access assets (javascripts, stylesheets, images, ...). Some refactoring is also needed to access resizes images. Uploaded (in upload directory) will no more be accessible.

Use voters for permissions

Instead of define rules in many places use voters to manage persmissions for users : who can add comments, who can add/delete tags,...

Move global functions to Phyxo\Functions namespace

Instead of using global functions in all functions_*.php files, functions.inc.php, functions.php files move thme in static methods in classes.

Example :
move l10n and related functions to Phyxo\Functions\Language

Bug 150406-2 - Sous album

Sous album avec 4 photos – une seule s'affiche sur la page d'accueil et en cliquant sur celle-ci →

Warning: pg_query(): Query failed: ERREUR: syntaxe en entrée invalide pour l'entier : « 4,17 » LINE 1: ... name, permalink FROM phyxo_categories WHERE id IN('4,17') ^ in /var/www/html/phyxo/src/Phyxo/DBLayer/pgsqlConnection.php on line 53 Fatal error: Uncaught Phyxo\DBLayer\dbException: [0]: ERREUR: syntaxe en entrée invalide pour l'entier : « 4,17 » LINE 1: ... name, permalink FROM phyxo_categories WHERE id IN('4,17') ^ Query: SELECT id, name, permalink FROM phyxo_categories WHERE id IN('4,17') thrown in /var/www/html/phyxo/src/Phyxo/DBLayer/pgsqlConnection.php on line 59

A noter que lors de l'import des 4 photos dans le sous-album, l'écran est resté sur la barre d'avancement à 100 % !

Warning on session start

When trying to log in the following message can be displayed (or at least be in log file) :
Warning: session_start(): Failed to read session data: user (path: /var/lib/php/sessions)

Remove ephemeral_key and secret_key

config key secret_key is only used by ephemeral_key mechanism to manage comments contribution.
Use APP_SECRET provided by symfony and csrf_token instead.

Link to gallery from administration area

The 'visit gallery' link from admin panel doesn't point the gallery.
<a class="navbar-brand mr-auto" href="../../admin/index.php" title="Visiter la galerie"><i class="fa fa-home"></i> Une galerie Phyxo de plus</a>

Use routing

symfony routing is a project dependency but many routes (almost all) use the include/section_init.inc.php file. Remove that file and move logic in appropriate location controllers and other services.

existing albums are not listed when trying to upload photos in admin area

CentOS 7, PHP 7.0.14, Postgres 9.6.1, Phyxo 1.6.1.

In admin area, no albums are listed when trying to upload new photos.

Moreover, an error message appears at the bottom of the page:
Fatal error: Uncaught RuntimeException: Unclosed string at position: 67069 in /var/www/html/phyxo/vendor/tedivm/jshrink/src/JShrink/Minifier.php:476 Stack trace: #0 /var/www/html/phyxo/vendor/tedivm/jshrink/src/JShrink/Minifier.php(231): JShrink\Minifier->saveString() #1 /var/www/html/phyxo/vendor/tedivm/jshrink/src/JShrink/Minifier.php(144): JShrink\Minifier->loop() #2 /var/www/html/phyxo/vendor/tedivm/jshrink/src/JShrink/Minifier.php(110): JShrink\Minifier->minifyDirectToOutput('/\n * mOxie - ...', Array) #3 /var/www/html/phyxo/src/Phyxo/Template/FileCombiner.php(212): JShrink\Minifier::minify('/\n * mOxie - ...') #4 /var/www/html/phyxo/src/Phyxo/Template/FileCombiner.php(196): Phyxo\Template\FileCombiner::process_js('/**\n * mOxie - ...', 'admin/themes/de...') #5 /var/www/html/phyxo/src/Phyxo/Template/FileCombiner.php(129): Phyxo\Template\FileCombiner->process_combinable(Object(Phyxo\Template\Script), true, false, NULL) #6 /var/www/html/phyxo/src/Phyxo/Template/FileCombiner.php(109): Phyxo\Template\FileCombiner->fl in /var/www/html/phyxo/vendor/tedivm/jshrink/src/JShrink/Minifier.php on line 476

Latest version doesn’t work in admin area

CentOS 7, php 7.0.14, postgresql 9.6.1, phyxo 1.6.1.

Willing to upgrade to 1.6.2, in admin area, « Dernière version ? » link does not work ( admin/index.php?action=check_upgrade ).

Opening in a new tab gives « Impossible de connaître la dernière version ».

Keep up the good work !

Bug 150404-2 - User

Suite à la création d'un nouvel user, il n'ya pas de date d'enregistrement et le statut affiché est user_status_ et impossible à modifier

A noter qu' aucune ligne n'est ajoutée dans la table phyxo_user_info suite à la création d'un nouvel utilisateur

Cannot active a theme

In admin area, in release 1.6.0, all themes are deactivated and activate button does not work as expected !

Array-style access of non-arrays

Trying to use values of type null, bool, int, float or resource as an array (such as $null["key"]) will now generate a notice.

The problem occurs when accessing configuration from global $conf in legacy code.

Logo Proposal

Hi...
Came across your fantastic project and I find it really amazing. I am a logo/icon designer and I want to help create a logo/icon for your project as my free contribution and love for contributing to amazing open source projects.

Currently working on some idea concept, I will update it here when I finish it up, so you can give your feedback on the design and also suggest any tweak or changes to suit your needs.

Will really appreciate your response...

Regards!

Improve admin

Make admin more responsive : for example collapse menu on small screens.
Reorganize some menu items.

Replace Smarty by Twig

Smarty is closed to end of life. Twig is more integrated with symfony. So remove Smarty and switch to Twig.

Use Doctrine

Use Doctrine as database abstraction layer through Doctrine::DBAL and Object Relation Mapper through Doctrine::ORM

List of models/tables :

  • Albums (Categories)
  • Images
  • Users
  • Groups
  • Comments
  • Favorites
  • History
  • HistorySummary
  • Tags
  • Caddie
  • Config
  • GroupAccess
  • ImageAlbum (ImageCategory)
  • Languages
  • Themes
  • Plugins
  • Rate
  • Search
  • Sessions
  • Sites
  • Upgrade
  • UserCache
  • UserCacheAlbum (UserCacheCategories)
  • UserFeed
  • UserGroup
  • UserInfos
  • UserAccess
  • UserMailNotification
  • ImageTag

Installation error

On web installation:

Fatal error: Uncaught Symfony\Component\Dotenv\Exception\PathException: Unable to read the "/home/clients/89bc9bd72e54950241bd9b1e083c63a4/phyxo/.env" environment file. in /home/clients/89bc9bd72e54950241bd9b1e083c63a4/phyxo/vendor/symfony/dotenv/Dotenv.php:465Stack trace: #0 /home/clients/89bc9bd72e54950241bd9b1e083c63a4/phyxo/vendor/symfony/dotenv/Dotenv.php(50): Symfony\Component\Dotenv\Dotenv->doLoad(false, Array) #1 /home/clients/89bc9bd72e54950241bd9b1e083c63a4/phyxo/index.php(24): Symfony\Component\Dotenv\Dotenv->load('/home/clients/8...') #2 {main} thrown in /home/clients/89bc9bd72e54950241bd9b1e083c63a4/phyxo/vendor/symfony/dotenv/Dotenv.php on line 465

=> no file ".env"

Improve core upgrade

Upgrade between minor or major release a better user experience can be given.

PHP 7 compatibility

Hi,

CentOS 7, Phyxo 1.5.2, recently upgraded to PHP 7 via remi repo. Since then, upon login, I get
Catchable fatal error: session_regenerate_id(): Failed to create(read) session ID: user (path: /var/lib/php/session) in /var/www/html/phyxo/src/Phyxo/Model/Repository/Users.php on line 316

PHP7 does work correctly, as several other php apps run flawlessly.

Thanks and keep up the good work :)

Lien 'Visiter la gallerie'

A partir du menu administration il y a un lien 'Visiter la gallerie' qui renvoie à la visualisation des photos.

Ce lien renvoie à la racine du site, cad :

  • pour le site démo à dev.phyxo.net qui fonctionne
  • et pour mon site à .../phyxo/ qui ne fonctionne pas car il faudrait .../phyxo/index.php

Je pense que la solution serait de rajouter index.php et que cela fonctionnera dans les 2 cas de figure.

Fatal error on install

Just tried to install Phyxo 2.0.2 on a server with mysql / php 7.4 and got that error just after creating the user:
PHP Fatal error: Uncaught PDOException: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected in /home/lafr3189/galerie/vendor/symfony/http-foundation/Session/Storage/Handler/PdoSessionHandler.php:622

Thanks.

Improve database upgrade

When database upgrade are needed after an upgrade, process finishes with an almost blank page. Need to really improve that.

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.