Fork of Shimmie

Syfaro 7e4a2b7177 Merge remote-tracking branch 'upstream/master' 1 month ago
core 7e4a2b7177 Merge remote-tracking branch 'upstream/master' 1 month ago
ext 7e4a2b7177 Merge remote-tracking branch 'upstream/master' 1 month ago
lib 100f8d48af remove getID3 lib 11 months ago
tests a42c0106d2 un-confuse phpunit 5 months ago
themes 2d6b39670f Scrutinizer commets. 11 months ago
.buildpath 84b536a53a playing with eclipse... 5 years ago
.gitignore eda9ba0ab9 init composer 1 year ago
.htaccess b5d314739a linting 11 months ago
.project 84b536a53a playing with eclipse... 5 years ago
.scrutinizer.yml 80f8affe66 don't run linter on ext/*/lib/* 1 year ago
.travis.yml d4aa5a656f use multiline statements rather than multiple if statements 11 months ago
LICENSE.txt 08379ed667 Create LICENSE.txt 1 year ago
README.markdown 92f596761e remove composer dependency on composer-asset-plugin & use asset-packagist instead 11 months ago
composer.json 2429513605 rebuild composer.lock with php5.6 5 months ago
composer.lock 2429513605 rebuild composer.lock with php5.6 5 months ago
index.php 0ca1a87b3d throw error if vendor/ doesn't exist 1 year ago
install.php 2371dba3bf Add some PHPdoc comments as suggested by Scrutinizier 11 months ago

README.markdown

     _________.__     .__                   .__         ________   
    /   _____/|  |__  |__|  _____    _____  |__|  ____  \_____  \  
    \_____  \ |  |  \ |  | /     \  /     \ |  |_/ __ \  /  ____/  
    /        \|   Y  \|  ||  Y Y  \|  Y Y  \|  |\  ___/ /       \  
   /_______  /|___|  /|__||__|_|  /|__|_|  /|__| \___  >\_______ \ 
           \/      \/           \/       \/          \/         \/ 
                                                                

Shimmie

Build Status Scrutinizer Code Quality Code Coverage (master)

Build Status Scrutinizer Code Quality Code Coverage (develop)

This is the main branch of Shimmie, if you know anything at all about running websites, this is the version to use.

Alternatively if you want a version that will never have significant changes, check out one of the versioned branches.

Requirements

  • MySQL/MariaDB 5.1+ (with experimental support for PostgreSQL 9+ and SQLite 3)
  • Stable PHP (5.6+ as of writing)
  • GD or ImageMagick

Installation

  1. Download the latest release under Releases.
  2. Unzip shimmie into a folder on the web host
  3. Create a blank database
  4. Visit the folder with a web browser
  5. Enter the location of the database
  6. Click "install". Hopefully you'll end up at the welcome screen; if not, you should be given instructions on how to fix any errors~

Installation (Development)

  1. Download shimmie via the "Download Zip" button on the develop branch.
  2. Unzip shimmie into a folder on the web host
  3. Install Composer. (If you don't already have it)
  4. Run composer install in the shimmie folder.
  5. Follow instructions noted in "Installation" starting from step 3.

Upgrade from 2.3.X

  1. Backup your current files and database!
  2. Unzip into a clean folder
  3. Copy across the images, thumbs, and data folders
  4. Move old/config.php to new/data/config/shimmie.conf.php
  5. Edit shimmie.conf.php to use the new database connection format:

OLD Format:

$database_dsn = "<proto>://<username>:<password>@<host>/<database>";

NEW Format:

define("DATABASE_DSN", "<proto>:user=<username>;password=<password>;host=<host>;dbname=<database>");

The rest should be automatic~

If there are any errors with the upgrade process, in_upgrade=true will be left in the config table and the process will be paused for the admin to investigate.

Deleting this config entry and refreshing the page should continue the upgrade from where it left off.

Upgrade from earlier versions

I very much recommend going via each major release in turn (eg, 2.0.6 -> 2.1.3 -> 2.2.4 -> 2.3.0 rather than 2.0.6 -> 2.3.0).

While the basic database and file formats haven't changed completely, it's different enough to be a pain.

Custom Configuration

Various aspects of Shimmie can be configured to suit your site specific needs via the file data/config/shimmie.conf.php (created after installation).

Take a look at core/sys_config.inc.php for the available options that can be used.

Custom User Classes

User classes can be added to or altered by placing them in data/config/user-classes.conf.php.

For example, one can override the default anonymous "allow nothing" permissions like so:

new UserClass("anonymous", "base", array(
	"create_comment" => True,
	"edit_image_tag" => True,
	"edit_image_source" => True,
	"create_image_report" => True,
));

For a moderator class, being a regular user who can delete images and comments:

new UserClass("moderator", "user", array(
	"delete_image" => True,
	"delete_comment" => True,
));

For a list of permissions, see core/userclass.class.php

Development Info

ui-* cookies are for the client-side scripts only; in some configurations (eg with varnish cache) they will be stripped before they reach the server

shm-* CSS classes are for javascript to hook into; if you're customising themes, be careful with these, and avoid styling them, eg:

  • shm-thumb = outermost element of a thumbnail
    • data-tags
    • data-post-id
  • shm-toggler = click this to toggle elements that match the selector
    • data-toggle-sel
  • shm-unlocker = click this to unlock elements that match the selector
    • data-unlock-sel
  • shm-clink = a link to a comment, flash the target element when clicked
    • data-clink-sel

Documentation: http://shimmie.shishnet.org/doc/

Please tell me if those docs are lacking in any way, so that they can be improved for the next person who uses them

Contact

IRC: #shimmie on Freenode

Email: webmaster at shishnet.org

Issue/Bug tracker: http://github.com/shish/shimmie2/issues

Licence

All code is released under the GNU GPL Version 2 unless mentioned otherwise.

If you give shimmie to someone else, you have to give them the source (which should be easy, as PHP is an interpreted language...). If you want to add customisations to your own site, then those customisations belong to you, and you can do what you want with them.