- Joined
- Sep 2, 2011
- Messages
- 2,371
- Reaction score
- 1,361
Project H - A bit of the past! [PHP, MySQLi, APC, WinCache, Multilingual]
What is Project H?
Project H is an advanced Habbo content management system built upon an older version of Project Baal. The goal of this project is to bring back the old Habbo design but remain up to date with the current release of Habbo. Project H is going to be released completely open source for anyone to make modifications to, however I request that the original copyright be remained intact but feel free to add yourself to the contributors list. Throughout the development cycle there will be a live test, link(s) will be posted in the future, the live test will also allow people to access the client so it's not just a website viewing. Project H is built upon an older source of Project Baal's CMS from around October 2011 that TheJacob and I worked on. I have been working on this project, slowly and on and off for about a month now and I thought it would be time to post a thread about it.
On a side note, some of the code in Project H may be out dated due to when Project Baal was released, around about 2012, this will be updated in patches that shall be released. Also, on some of the screenshots features may not be enabled at the time of taking them so it may not show the features you are looking for. If you have any requests for features then feel free to reply to the thread.
This will also, hopefully, be my final release in the Habbo section - I'll still roam around and post occasionally but that's about it. Once this is released, I'll release patches and updates for it but there will be no more projects from me.
Current Features
The list below are features that have been coded and completed. This list will always be kept up to date.
Green - Completed
Orange - In progress
Red - Planned
Frontpage
Quick-register
Hot campaign
Hot rooms
News items
News comments
Account settings
Community
Random Habbos
Staff
Badge shop
Client access
FAQ / Help
Installation system
Homes
Social
Article likes
Groups
Privacy Policy
Terms of Service
Contact Us
Error page
Habbo Way
Safety Tips
Minimail
Maintenance
Different Languages
Note: The Administrative panel will be locked to people rank 6 or above, this can also be user defined - meaning the Hotel owner can choose.
Updating to the latest theme
Updating to the latest theme will be done nearer the end of the development process, it will be a completely separate theme (yes, it has a multi-theme selection feature). Pretty much right at the end once most, if not all, features have been completed.
Credits / Contributors
TheJacob
Joopie
FAQ
Some questions I have recently been asked, decided to put this here to clear things up with people wondering - and to stop people bugging me.
Q: When will Project H be released?
A: Quite a while from now, I estimate probably about a month or two since there are currently still a lot of features missing and I need to document, organise and make sure it is safe to use.
Q: Will it be completely bug free upon release?
A: Of course not, you try and find a CMS which is completely bug free. There are thousands of lines of code powering Project H making it what it is. I'll work my butt off trying to make sure the bugs are minimal however.
Q: What languages will it be available in?
A: Hopefully about 9 different languages to choose from; ranging from English all the way to Finnish.
Q: How many different styles will there be available?
A: As many as the community would like since it's up to them to use their creativity. Upon release there will only be Habbo 2011 style available, I shall be working on the 2014/15 version though.
Screenshots / Code previews
Here is 229 lines out of 1204 lines of the template system:
Project H is an advanced Habbo content management system built upon an older version of Project Baal. The goal of this project is to bring back the old Habbo design but remain up to date with the current release of Habbo. Project H is going to be released completely open source for anyone to make modifications to, however I request that the original copyright be remained intact but feel free to add yourself to the contributors list. Throughout the development cycle there will be a live test, link(s) will be posted in the future, the live test will also allow people to access the client so it's not just a website viewing. Project H is built upon an older source of Project Baal's CMS from around October 2011 that TheJacob and I worked on. I have been working on this project, slowly and on and off for about a month now and I thought it would be time to post a thread about it.
On a side note, some of the code in Project H may be out dated due to when Project Baal was released, around about 2012, this will be updated in patches that shall be released. Also, on some of the screenshots features may not be enabled at the time of taking them so it may not show the features you are looking for. If you have any requests for features then feel free to reply to the thread.
This will also, hopefully, be my final release in the Habbo section - I'll still roam around and post occasionally but that's about it. Once this is released, I'll release patches and updates for it but there will be no more projects from me.
Current Features
The list below are features that have been coded and completed. This list will always be kept up to date.
Green - Completed
Orange - In progress
Red - Planned
Frontpage
Quick-register
Hot campaign
Hot rooms
News items
News comments
Account settings
- Modify motto
- Enable friend requests
- Disable friend requests
- Change online status
- Change your trading settings
- Change who can follow you
- Change your password
- Change your email
- Friend Management
Community
Random Habbos
Staff
Badge shop
Client access
FAQ / Help
Installation system
Homes
Social
Article likes
Groups
Privacy Policy
Terms of Service
Contact Us
Error page
Habbo Way
Safety Tips
Minimail
Maintenance
Different Languages
- Norwegian
- English
- Dutch
- Brazilian
- Swedish
- Finnish
- French
- German
- Spanish
- Post a news item
- Ban a user
- Submit an issue
- Check for an update
- Standalone package
Note: The Administrative panel will be locked to people rank 6 or above, this can also be user defined - meaning the Hotel owner can choose.
Updating to the latest theme
Updating to the latest theme will be done nearer the end of the development process, it will be a completely separate theme (yes, it has a multi-theme selection feature). Pretty much right at the end once most, if not all, features have been completed.
Credits / Contributors
TheJacob
Joopie
FAQ
Some questions I have recently been asked, decided to put this here to clear things up with people wondering - and to stop people bugging me.
Q: When will Project H be released?
A: Quite a while from now, I estimate probably about a month or two since there are currently still a lot of features missing and I need to document, organise and make sure it is safe to use.
Q: Will it be completely bug free upon release?
A: Of course not, you try and find a CMS which is completely bug free. There are thousands of lines of code powering Project H making it what it is. I'll work my butt off trying to make sure the bugs are minimal however.
Q: What languages will it be available in?
A: Hopefully about 9 different languages to choose from; ranging from English all the way to Finnish.
Q: How many different styles will there be available?
A: As many as the community would like since it's up to them to use their creativity. Upon release there will only be Habbo 2011 style available, I shall be working on the 2014/15 version though.
Screenshots / Code previews
Here is 229 lines out of 1204 lines of the template system:
Code:
[COLOR=#000000] /*[/COLOR] *
* Public Function buildFact.
*
* Builds the did you know fact HTML from the database.
*
* @[I][B][URL="http://forum.ragezone.com/members/850422.html"]return[/URL][/B][/I]: $result string Fact HTML.
*
*/
final public function buildFact()
{
global $ir;
$result = null;
$query = $ir->db->executeQuery("SELECT f.fact
FROM " . TABLE_PREFIX . "facts f
ORDER BY RAND() ASC;");
if ($ir->db->numRows($query) > 0)
{
$result = $ir->db->fetchObject($query)->fact;
}
return $result;
}
/*
*
* Public Function buildTopNavigation.
*
* Builds the top navigation HTML from the database.
*
* @[I][B][URL="http://forum.ragezone.com/members/850422.html"]return[/URL][/B][/I]: $result string Top navigation HTML.
*
*/
final public function buildTopNavigation()
{
global $ir;
$result = '';
$query = $ir->db->executeQuery("SELECT n.id AS id, n.name AS name, n.url AS url
FROM " . TABLE_PREFIX . "navigation n
WHERE n.type = '1'
AND n.rank <= '{$ir->habbo->getField('rank', H_USER)}'
ORDER BY n.order_number ASC;");
if ($ir->db->numRows($query) > 0)
{
while ($row = $ir->db->fetchObject($query))
{
if ($row->id == THIS_PARENT_ID)
{
$result .= '<li class="metab selected">
<strong>' . $row->name . '</strong>
<span></span>
</li>';
}
elseif ($row->id == 1)
{
$result .= '<li class="metab">
<a href="' . SITE_URL . $row->url . '">' . $row->name . '</a>
<span></span>
</li>';
}
else
{
$result .= '<li>
<a href="' . SITE_URL . $row->url . '">' . $row->name . '</a>
<span></span>
</li>';
}
}
}
return $result;
}
/*
*
* Public Function buildSubNavigation.
*
* Builds the sub navigation HTML from the database.
*
* @[I][B][URL="http://forum.ragezone.com/members/850422.html"]return[/URL][/B][/I]: $result string Sub navigation HTML.
*
*/
final public function buildSubNavigation()
{
global $ir;
$result = '';
$query = $ir->db->executeQuery("SELECT n.id AS id, n.name AS name, n.url AS url, n.new AS new
FROM " . TABLE_PREFIX . "navigation n
WHERE n.parent_id = '" . THIS_PARENT_ID . "'
AND n.type = '2'
AND n.rank <= '{$ir->habbo->getField('rank', H_USER)}'
ORDER BY n.order_number ASC;");
if (($count = $ir->db->numRows($query)) > 0)
{
$loopcount = 1;
while ($row = $ir->db->fetchObject($query))
{
if ($row->id == THIS_SUB_ID)
{
if ($count == $loopcount)
{
$result .= '<li class="selected last">
' . $row->name . '
</li>';
}
else
{
$result .= '<li class="selected">
' . $row->name . '
</li>';
}
}
elseif ($count == $loopcount)
{
$result .= '<li class="last">
<a href="' . SITE_URL . $row->url . '">' . $row->name . '</a>' . (($row->new == 0) ? '' : ' <span style="float: right; color: red; font-size: 8px;"> new</span>') . '
</li>';
}
else
{
$result .= '<li>
<a href="' . SITE_URL . $row->url . '">' . $row->name . '</a>' . (($row->new == 0) ? '' : ' <span style="float: right; color: red; font-size: 8px;"> new</span>') . '
</li>';
}
$loopcount++;
}
}
return $result;
}
/*
*
* Public Function buildEvents.
*
* Builds the events HTML from the database.
*
* @[I][B][URL="http://forum.ragezone.com/members/850422.html"]return[/URL][/B][/I]: $result string Events HTML.
*
*/
final public function buildEvents()
{
global $ir;
$result = '';
$result = '<li class="small" id="feed-hc-reminder">This feature is currently disabled.</li>';
return $result;
}
/*
*
* Public Function buildImageSelect.
*
* Builds the image select HTML from the database.
*
* @[I][B][URL="http://forum.ragezone.com/members/850422.html"]return[/URL][/B][/I]: $result string Image Select HTML.
*
* @[I][B][URL="http://forum.ragezone.com/members/6887.html"]Tod[/URL][/B][/I]o: take out the caching and use the handler object.
*
*/
final public function buildImageSelect()
{
global $ir;
$result = '';
$spath = CWD . '/images/top_stories/';
$wpath = SITE_URL . '/images/top_stories/';
$result .= '<select name="n.image_url">';
if ($ir->cache->existsCache('ts_Images') == false)
{
$folder = opendir($spath);
$pic_types = array('gif', 'png');
$index = array();
while ($file = readdir($folder))
{
if (in_array(substr(strtolower($file), strrpos($file, '.') + 1), $pic_types) == true)
{
array_push($index, $file);
}
}
closedir($folder);
$ir->cache->addCache('ts_Images', $index, 0);
}
else
{
$index = $ir->cache->fetchCache('ts_Images');
}
foreach ($index AS $value)
{
$result .= '<option value="' . ($wpath . $value) . '">' . $value . '</option>';
}
$result .= '</select>';
return $result;
}
/*
*
* Public Function buildHotCampaigns.
*
* Builds the hot campaigns HTML from the database.
*
* @[I][B][URL="http://forum.ragezone.com/members/2000120221.html"]Par[/URL][/B][/I]am: $max int Maximum number of results to return.
*
* @[I][B][URL="http://forum.ragezone.com/members/850422.html"]return[/URL][/B][/I]: $result string Hot campaigns HTML.
* [COLOR=#000000] */[/COLOR]
Attachments
You must be registered for see attachments list
Last edited: