- Joined
- Jan 17, 2012
- Messages
- 229
- Reaction score
- 132
HArtisan is an advanced and flexible Content Management System built on latest release of Laravel PHP Framework (Laravel 5) and made to work with The General's Habbo Emulator project. His aim is to provide hotel owners the security and the features their hotel needs through the framework features and possibilities.
Notable features (for developers):
- HTTP RESTful API, route your files through Laravel machinary and never use a htaccess or a web.config file again.
- Blade Templating, use a simple syntax to includes files and php code into your views
- Blowfish Cipher, no more crappy password hash, nobody found a cryptanalysis method for it to date.
- Localization, copy and paste a file and start translating on-the-go.
- Composer integration, browse packagist and install a plugin in a matter of seconds
- SSH, send commands through SSH to a remote machine using PHP
- Helpers, create aliases of functions you need and make your code cleaner and cleaner.
- Symphony, Laravel is built itself on Symphony components.
Notable features (for hotel owners) done at the moment:
- Advanced filtering, info going through forms are filtered and prevent mass assignments
- Decent design framework, based on Habbo4Tablets release and some habbo web beta nifty things.
- Caching, sessions and views are stored in temporary files, but Laravel support famous backend cache drivers such as Memcached or Redis out-of-the-box, making your hotel fast *zoom zoom*
- Profiles, let your users have a personal space they can customize as much as they want.
Planned features:
- Housekeeping as a module, roles and permissions system of HArtisan will make the creation of an external housekeeping module possible, so you'll be able to install it on another server.
- Web Furni Shop, a furni shop is planned using habbo tablet app catalog design (included in Habbo4Tablets release)
- Mobile payment and PayPal IPN, trace your users subscriptions purchases.
- Embedded Forum, make the CMS useful again! Let your community start general topics about everything.
This list exclude any formal and standard stuff such as community pages, automatic subscription support, FAQ page, forgot password form etc.. which will be obviously coded into the project.
Screenshots (in french atm, will be localized in english real soon):
(When a model or a file is not found)
Snippet (User model):
PHP:
<?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
use UserTrait, RemindableTrait;
/**
* The database table used by the model.
*
* [USER=1333430648]Var[/USER] string
*/
protected $table = 'users';
/**
* Fillable fields.
*
* [USER=1333430648]Var[/USER] array
*/
protected $fillable = [
'username', 'email', 'password'
];
/**
* The attributes excluded from the model's JSON form.
*
* [USER=1333430648]Var[/USER] array
*/
protected $hidden = array('password', 'remember_token');
public function setPasswordAttribute($password)
{
$this->attributes['password'] = Hash::make($password);
}
public static function generateSSOTicket($length = 16)
{
$characterPool = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
return "HABBOEUCOM-" . substr(str_shuffle(str_repeat($characterPool, 5)), 0, $length);
}
public static function onlineUsersCount()
{
$onlineCount = DB::table('users')->where('online', '1')->count();
return $onlineCount;
}
public function profile()
{
return $this->hasOne('Profile');
}
}
Routes file:
PHP:
<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the Closure to execute when that URI is requested.
|
*/
Route::get('/', ['as' => 'landing', 'uses' => 'PagesController@index']);
Route::get('/welcome/register', 'RegistrationController@create');
Route::post('/welcome/register', ['as' => 'registration.store', 'uses' => 'RegistrationController@store']);
Route::get('/me', ['as' => 'home', 'uses' => 'PagesController@me']);
Route::get('/client', ['as' => 'client', 'uses' => 'PagesController@client']);
Route::get('logout', 'SessionsController@destroy');
Route::resource('sessions', 'SessionsController', ['only' => ['create', 'store', 'destroy']]);
Route::get('/home/{profile}', 'ProfilesController@show');
Route::get('/home/{profile}/edit', ['as' => 'profile.edit', 'uses' => 'ProfilesController@edit']);
Route::get('/support/faq', ['as' => 'faq', 'uses' => 'PagesController@faq']);
I know it's probably another CMS dev thread for most of you, sorry if you took it that way. Once main CMS features are done this project will be moved to a public git repo where updates will be pushed.
Don't forget to subscribe to the thread if you're interested in and want to get new updates.
Attachments
You must be registered for see attachments list
Last edited: