Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

HArtisan - The CMS for Habbo artisans [Laravel 5/MVC/OOP/Multi-language]

Status
Not open for further replies.
Experienced Elementalist
Joined
Jan 17, 2012
Messages
229
Reaction score
132
Emetophobic - HArtisan - The CMS for Habbo artisans [Laravel 5/MVC/OOP/Multi-language] - RaGEZONE Forums

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):
7735e8e6f1b83e5d64b579609ae99780 - HArtisan - The CMS for Habbo artisans [Laravel 5/MVC/OOP/Multi-language] - RaGEZONE Forums

a1532c2fcdcbbc2727d7b183618ca0c8 - HArtisan - The CMS for Habbo artisans [Laravel 5/MVC/OOP/Multi-language] - RaGEZONE Forums

70d4cf0441ef1b0530806f275d87ed21 - HArtisan - The CMS for Habbo artisans [Laravel 5/MVC/OOP/Multi-language] - RaGEZONE Forums

(When a model or a file is not found)
9be03e221fc4a706a0991fdc806f2b37 - HArtisan - The CMS for Habbo artisans [Laravel 5/MVC/OOP/Multi-language] - RaGEZONE Forums

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:

PR0

Legendary Battlemage
Joined
Mar 3, 2007
Messages
690
Reaction score
85
Thanks for the detailed comments! This will help me learn a lot. I'm way behind in the times, so laravel would be a great framework for me to slowly learn about by just browsing through your project!


Cheers ^.^
 
Experienced Elementalist
Joined
Jan 17, 2012
Messages
229
Reaction score
132
ugh so much bloat

what's bloating?

Thanks for the detailed comments! This will help me learn a lot. I'm way behind in the times, so laravel would be a great framework for me to slowly learn about by just browsing through your project!


Cheers ^.^

Some code comments were already there, but I'll make my possible to comment every functions of this.
 
  • Like
Reactions: PR0
Experienced Elementalist
Joined
May 30, 2013
Messages
288
Reaction score
242
what's bloating?
Like, uhm, everything?

Code:
[COLOR=#007700]use [/COLOR][COLOR=#0000BB]Illuminate[/COLOR][COLOR=#007700]\[/COLOR][COLOR=#0000BB]Auth[/COLOR][COLOR=#007700]\[/COLOR][COLOR=#0000BB]UserTrait[/COLOR][COLOR=#007700];
use [/COLOR][COLOR=#0000BB]Illuminate[/COLOR][COLOR=#007700]\[/COLOR][COLOR=#0000BB]Auth[/COLOR][COLOR=#007700]\[/COLOR][COLOR=#0000BB]UserInterface[/COLOR][COLOR=#007700];
use [/COLOR][COLOR=#0000BB]Illuminate[/COLOR][COLOR=#007700]\[/COLOR][COLOR=#0000BB]Auth[/COLOR][COLOR=#007700]\[/COLOR][COLOR=#0000BB]Reminders[/COLOR][COLOR=#007700]\[/COLOR][COLOR=#0000BB]RemindableTrait[/COLOR][COLOR=#007700];
use [/COLOR][COLOR=#0000BB]Illuminate[/COLOR][COLOR=#007700]\[/COLOR][COLOR=#0000BB]Auth[/COLOR][COLOR=#007700]\[/COLOR][COLOR=#0000BB]Reminders[/COLOR][COLOR=#007700]\[/COLOR][COLOR=#0000BB]RemindableInterface[/COLOR][COLOR=#007700];

class [/COLOR][COLOR=#0000BB]User [/COLOR][COLOR=#007700]extends [/COLOR][COLOR=#0000BB]Eloquent [/COLOR][COLOR=#007700]implements [/COLOR][COLOR=#0000BB]UserInterface[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]RemindableInterface
[/COLOR]
 
Status
Not open for further replies.
Back
Top