HybridCMS [OOP-MVC][DEV-W/Source]

Status
Not open for further replies.

GarettM

Posting Freak
Aug 5, 2010
833
136
Is there any screenies ? and is this stable to use on live playform?
No this is still deep in development.
That looks sharp^
Thanks that is just a mockup i made this morning to show how it would work and how modules (plugins) could be loaded or intergrated in.

Question:
Should i intergrate voting api into the core code or make it a plugin?
 

LeChris

https://habbo.codes/
Sep 30, 2013
2,786
1,395
It's getting there! I'm proud of your progress so far, and you're doing a lot better than I am.
 

Zephyrus

Wanderer
Sep 28, 2011
336
21
This is amazing, will there be groups or any other features that Habbo have? I would definitely vouch for this if you added Groups or somewhat "custom feature", something that I would expect is a Mailing system like the Minimail, I think the theme would definately fit with Minimails :) <3
 

LeChris

https://habbo.codes/
Sep 30, 2013
2,786
1,395
This is amazing, will there be groups or any other features that Habbo have? I would definitely vouch for this if you added Groups or somewhat "custom feature", something that I would expect is a Mailing system like the Minimail, I think the theme would definately fit with Minimails :) <3
Minimails is so basic though...
 

GarettM

Posting Freak
Aug 5, 2010
833
136
Message me, because I need a good design to base CerberusMS on.
What are you talking about
 
Hey i wanted to ask the community a quick question??
I can make HybridCMS available faster but the first usable release would lose these features
  • Multi-Emulator
  • Plugin System
  • Multi-Account System ( Maybe )
  • Multi-Language Support Via 3rd Party Service
  • Multi-Language Support Via internal service
  • An Advanced Administering System ( id be more like ase the first release )
  • No Theming Support in the beginning ( Habbo Theme would be used )
  • No Installer or Upgrading Script
That is a lot of code that needs to be implemented into HybridCMS, Not implementing these features would speed up development by 3 months with my schedule.

For those who are interested this is what would be implemented
  • Support for multiple PDO drivers, I never clarified this and people misunderstood the multi - database support. no mysqli support just PHP Data Objects.
  • Administration of accounts, Hotel settings and Client settings.
  • Full support for Habbo Theme
  • Login, Register, Logout, Account Settings, ..ect
 

LeChris

https://habbo.codes/
Sep 30, 2013
2,786
1,395
What are you talking about
 
Hey i wanted to ask the community a quick question??
I can make HybridCMS available faster but the first usable release would lose these features
  • Multi-Emulator
  • Plugin System
  • Multi-Account System ( Maybe )
  • Multi-Language Support Via 3rd Party Service
  • Multi-Language Support Via internal service
  • An Advanced Administering System ( id be more like ase the first release )
  • No Theming Support in the beginning ( Habbo Theme would be used )
  • No Installer or Upgrading Script
That is a lot of code that needs to be implemented into HybridCMS, Not implementing these features would speed up development by 3 months with my schedule.

For those who are interested this is what would be implemented
  • Support for multiple PDO drivers, I never clarified this and people misunderstood the multi - database support. no mysqli support just PHP Data Objects.
  • Administration of accounts, Hotel settings and Client settings.
  • Full support for Habbo Theme
  • Login, Register, Logout, Account Settings, ..ect
I don't see what the big deal is about the multi-account feature? I literally coded mine in under a hour, it's pretty simple to do, and doesn't even require any database modification for the most part...
 

GarettM

Posting Freak
Aug 5, 2010
833
136
I don't see what the big deal is about the multi-account feature? I literally coded mine in under a hour, it's pretty simple to do, and doesn't even require any database modification for the most part...
Du hell? Maybe i am over thinking it then. I know the unique key is there email address but making it work with multiple emulator database structures is not like just using phoenix/ubers structure by itself. RevDB has 2 tables for user data `habbo` and `users` i believe while SnowDB has no table structure for user account information ( authication/privileges )

Do you think i could take a peek at your code and see how you achieved multi account support?
 

LeChris

https://habbo.codes/
Sep 30, 2013
2,786
1,395
Du hell? Maybe i am over thinking it then. I know the unique key is there email address but making it work with multiple emulator database structures is not like just using phoenix/ubers structure by itself. RevDB has 2 tables for user data `habbo` and `users` i believe while SnowDB has no table structure for user account information ( authication/privileges )

Do you think i could take a peek at your code and see how you achieved multi account support?
Nobody uses SnowDB, or RevDB for the most part. Uber, Phoenix, IDK, and Sierra are the only important database structures in my opinion. I just used the email address, and gave it an account unique id added to the structure, and it fetches your accounts based on if the email, and unique id matches yours.
 

GarettM

Posting Freak
Aug 5, 2010
833
136
Nobody uses SnowDB, or RevDB for the most part. Uber, Phoenix, IDK, and Sierra are the only important database structures in my opinion. I just used the email address, and gave it an account unique id added to the structure, and it fetches your accounts based on if the email, and unique id matches yours.
Yeah but the reason for this project is multi-emulator support a Hybrid content management system loll.

I believe this should do for phoenix authorization [testing]
PHP:
public static function Login()
    {
        if(isset($_POST['email'], $_POST['password']) || isset($_POST['username'], $_POST['password']))
        {
            $useEmail = isset($_POST['email']) ? TRUE : FALSE;
          
            if($useEmail)
            {
                $account = filter_input(INPUT_POST, 'email');
            } else {
                $account = filter_input(INPUT_POST, 'username');
            }
            $password = filter_input(INPUT_POST, 'password');
          
            if(isset($account, $password))
            {
                $emulator = \application\model\emulator\Emulator::fetch();
                $database = Adapter::getInstance();
              
                if($emulator['character']['table'] == $emulator['account']['table'] && $emulator['emulator'] == 'phoenix')
                {
                    $query = sprintf('SELECT id FROM %s WHERE %s="%s" OR %s="%s" AND %s="%s" LIMIT 1',
                                $emulator['account']['table'],
                                $emulator['character']['username'], $account,
                                $emulator['account']['email'], $account,
                                # MD5 WILL NOT BE THE ENCRYPTION METH0D THIS IS FOR TESTING ONLY
                                $emulator['account']['pass'], md5($password));
                  
                    $success = $database->query($query);
                  
                    if($result = $success->fetch(PDO::FETCH_NUM))
                    {
                        $object = new accountMap();
                      
                        if($user = $object->find( $result[0] ))
                        {
                            # return user object. then from there load character object.
                            return $user;
                        }
                    }
                }
                // TODO: Validate Account 4 None Phoenix Emulators
            }
            return FALSE;
        }
        return FALSE;
    }
Emulator File for those wondering the array $emulator
Code:
{ 
    "emulator":"phoenix",
    "fields":{ 
        "account":{ 
            "table":"users",
            "id":"id",
            "email":"mail",
            "pass":"password",
            "rank":"rank"
        },
        "characters":{ 
            "table":"users",
            "parent":"id",
            "username":"username",
            "motto":"motto",
            "figure":"look",
            "credits":"credits",
            "pixels":"activity_points",
            "timeLastUsed":"last_online",
            "timeCreated":"account_created"
        },
        "articles":{ 
            "table":"cms_news",
            "id":"id",
            "title":"title",
            "author":"author",
            "image":"image",
            "summary":"shortstory",
            "content":"longstory",
            "category":null,
            "tags":null
        },
        "system":{ 
            "table":""
        }
    }
}
 

LeChris

https://habbo.codes/
Sep 30, 2013
2,786
1,395
Yeah but the reason for this project is multi-emulator support a Hybrid content management system loll.

I believe this should do for phoenix authorization [testing]
PHP:
public static function Login()
    {
        if(isset($_POST['email'], $_POST['password']) || isset($_POST['username'], $_POST['password']))
        {
            $useEmail = isset($_POST['email']) ? TRUE : FALSE;
         
            if($useEmail)
            {
                $account = filter_input(INPUT_POST, 'email');
            } else {
                $account = filter_input(INPUT_POST, 'username');
            }
            $password = filter_input(INPUT_POST, 'password');
         
            if(isset($account, $password))
            {
                $emulator = \application\model\emulator\Emulator::fetch();
                $database = Adapter::getInstance();
             
                if($emulator['character']['table'] == $emulator['account']['table'] && $emulator['emulator'] == 'phoenix')
                {
                    $query = sprintf('SELECT id FROM %s WHERE %s="%s" OR %s="%s" AND %s="%s" LIMIT 1',
                                $emulator['account']['table'],
                                $emulator['character']['username'], $account,
                                $emulator['account']['email'], $account,
                                # MD5 WILL NOT BE THE ENCRYPTION METH0D THIS IS FOR TESTING ONLY
                                $emulator['account']['pass'], md5($password));
                 
                    $success = $database->query($query);
                 
                    if($result = $success->fetch(PDO::FETCH_NUM))
                    {
                        $object = new accountMap();
                     
                        if($user = $object->find( $result[0] ))
                        {
                            # return user object. then from there load character object.
                            return $user;
                        }
                    }
                }
                // TODO: Validate Account 4 None Phoenix Emulators
            }
            return FALSE;
        }
        return FALSE;
    }
Emulator File for those wondering the array $emulator
Code:
{
    "emulator":"phoenix",
    "fields":{
        "account":{
            "table":"users",
            "id":"id",
            "email":"mail",
            "pass":"password",
            "rank":"rank"
        },
        "characters":{
            "table":"users",
            "parent":"id",
            "username":"username",
            "motto":"motto",
            "figure":"look",
            "credits":"credits",
            "pixels":"activity_points",
            "timeLastUsed":"last_online",
            "timeCreated":"account_created"
        },
        "articles":{
            "table":"cms_news",
            "id":"id",
            "title":"title",
            "author":"author",
            "image":"image",
            "summary":"shortstory",
            "content":"longstory",
            "category":null,
            "tags":null
        },
        "system":{
            "table":""
        }
    }
}
I understand you're wanting to achieve multi-emulator support, but you're adding emulators that haven't been touched in ages. The last time somebody used an unmodified version of SnowDB for a live hotel, was, well I don't think anyone has ever done it. Nobody has ever used RevDB, because the emulator was just dropped. Don't waste time even adding a minuscule of code referring to those two.
 

GarettM

Posting Freak
Aug 5, 2010
833
136
I understand you're wanting to achieve multi-emulator support, but you're adding emulators that haven't been touched in ages. The last time somebody used an unmodified version of SnowDB for a live hotel, was, well I don't think anyone has ever done it. Nobody has ever used RevDB, because the emulator was just dropped. Don't waste time even adding a minuscule of code referring to those two.
Again @Leader that is the whole reason for this project though if i dropped RevDB and SnowDB then i defeat the purpose for this project and then there wouldn't be a reason for me to even continue it.
 

LeChris

https://habbo.codes/
Sep 30, 2013
2,786
1,395
Again @Leader that is the whole reason for this project though if i dropped RevDB and SnowDB then i defeat the purpose for this project and then there wouldn't be a reason for me to even continue it.
So a Hybrid CMS which has code wasted on old projects which will never be revived.
 
Status
Not open for further replies.

Users who are viewing this thread

Top