{"action":"created","issue":{"url":"https://api.github.com/repos/joomla/joomla-cms/issues/22254","repository_url":"https://api.github.com/repos/joomla/joomla-cms","labels_url":"https://api.github.com/repos/joomla/joomla-cms/issues/22254/labels{/name}","comments_url":"https://api.github.com/repos/joomla/joomla-cms/issues/22254/comments","events_url":"https://api.github.com/repos/joomla/joomla-cms/issues/22254/events","html_url":"https://github.com/joomla/joomla-cms/issues/22254","id":361827656,"node_id":"MDU6SXNzdWUzNjE4Mjc2NTY=","number":22254,"title":"[4.0] Revisit Multi-site Design Options, IMPLEMENT SQL VIEWS TECHNOLOGY in the Joomla core as well as implement a Multisite concept based on SQL VIEWS to share same php codebase and master tables in slave sites","user":{"login":"ArchitektBerlin","id":39699860,"node_id":"MDQ6VXNlcjM5Njk5ODYw","avatar_url":"https://avatars0.githubusercontent.com/u/39699860?v=4","gravatar_id":"","url":"https://api.github.com/users/ArchitektBerlin","html_url":"https://github.com/ArchitektBerlin","followers_url":"https://api.github.com/users/ArchitektBerlin/followers","following_url":"https://api.github.com/users/ArchitektBerlin/following{/other_user}","gists_url":"https://api.github.com/users/ArchitektBerlin/gists{/gist_id}","starred_url":"https://api.github.com/users/ArchitektBerlin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ArchitektBerlin/subscriptions","organizations_url":"https://api.github.com/users/ArchitektBerlin/orgs","repos_url":"https://api.github.com/users/ArchitektBerlin/repos","events_url":"https://api.github.com/users/ArchitektBerlin/events{/privacy}","received_events_url":"https://api.github.com/users/ArchitektBerlin/received_events","type":"User","site_admin":false},"labels":[{"id":138443932,"node_id":"MDU6TGFiZWwxMzg0NDM5MzI=","url":"https://api.github.com/repos/joomla/joomla-cms/labels/No%20Code%20Attached%20Yet","name":"No Code Attached Yet","color":"ededed","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":12,"created_at":"2018-09-19T16:25:02Z","updated_at":"2018-09-19T19:05:40Z","closed_at":null,"author_association":"NONE","body":"### Is your feature request related to a problem? Please describe.\r\nThere is a need by hundred-thousands of Joomla users to have a multisite feature, to share the same codebase and to have different databases per domain or subdomain. In 2011-2012 the core team had organized a Group to check possibilities on multisite. No conclusion was reached. Following is the link on this issue published by the core team:\r\n\r\nhttps://docs.joomla.org/Multi-site_Design_Options\r\n\r\nOn one side the Joomla website claims two million installations. On the other side, the core team has not reopened the issue of multisite in the last six to seven years. This burning need has not been properly evaluated in context of new technologies developed in the last years.\r\n\r\nSome vendors have implemented some basic multisite concept. The component Mightysites implements multisite based on configuration.php. Logically, one cannot have too many variables of multiple slave sites in one configuration.php. On the other hand, JMS2Win implements multisite concept by hacking the core! It forces to have an installation directory and applies patches for each component and the core. SEBLOD organises groups based on ACL and with this demarcation, different views are generated for different sites. \r\n\r\nNone of these solution has substantial value as the extensive one hacks the core and the other, which does not hack, offers a very restrictive function or possibility.\r\n\r\nThus, this issue requires to be urgently revisited.\r\n### Describe the solution you'd like\r\n\r\n- Creating directory links on a different domain/subdomain that resides on the same server is a very simple thing. Php scripts could create this to share the same php codebase of Joomla installation.\r\n\r\n- Now, the MySQL VIEWS technology is highly advanced, is stable and is fully functional. It offers sharing of tables in-between databases without any problems. Further infos are here:\r\n\r\nhttp://www.mysqltutorial.org/mysql-views-tutorial.aspx\r\n\r\n- With this VIEWS SHARING TECHNOLOGY, one could share User tables in master on all other slave sites. Likewise, if there are other tables that could be shared, like jos_countries, jos_states and jos_cities, then all slave databases could use the same geo_ids from these master database tables.\r\n\r\n- The first installation of Joomla should become the master installation with master database. This will have administrator directory protected by htaccess.\r\n\r\n- All other sites will have shared code based i.e. only sharing data of directory links with views connecting to master database as well as slave database tables for slave site specific data.\r\n\r\n- Create Global parameters in the Joomla Framework to handle global for slave sites and make available to all components, modules and plug-ins. This requires implementation of \"site_id\" as a field in the framework.\r\n\r\n- In table jos_sites, one could have many global configuration specific to a site, like language, extensions used, modules used, etc. If there is a field in any component \"site_id\", then it will make queries accordingly and provide global to interface to slave sites, from the shared table jos_sites.\r\n\r\n### Additional context\r\nThe Multi-site Group identified four fundamental strategies to make multisite.\r\n\r\nWith this concept, all the problems discussed by the Multi-site Group before six years will be addressed because the above solution is not based on a concept like SEBLOD to organise groups per site but creates a field to map it as well as creates a real SQL VIEW for sharing across sites.\r\n\r\nIn contrast to those four concepts discussed by the Multi-site Group, the concept proposed above addresses a unique combination of these four concept and takes into consideration the SQL VIEWS technology.\r\n\r\nImplement a system of 0 for global sharing that field or table for all sites and a different value for a particular site. This means if the value in field of site_id in user group is 0, that group will be shared with all the slave sites. If the value is - for e.g. 7, then it will be mapped to the site_id 7 only. This creates a one-many and many-many relations.\r\n\r\nConsequently, one could have different slave sites for different languages or for different subdomains for different categories, which will totally differentiate articles, templates, etc. based on site_id detection."},"comment":{"url":"https://api.github.com/repos/joomla/joomla-cms/issues/comments/422922258","html_url":"https://github.com/joomla/joomla-cms/issues/22254#issuecomment-422922258","issue_url":"https://api.github.com/repos/joomla/joomla-cms/issues/22254","id":422922258,"node_id":"MDEyOklzc3VlQ29tbWVudDQyMjkyMjI1OA==","user":{"login":"alikon","id":181681,"node_id":"MDQ6VXNlcjE4MTY4MQ==","avatar_url":"https://avatars0.githubusercontent.com/u/181681?v=4","gravatar_id":"","url":"https://api.github.com/users/alikon","html_url":"https://github.com/alikon","followers_url":"https://api.github.com/users/alikon/followers","following_url":"https://api.github.com/users/alikon/following{/other_user}","gists_url":"https://api.github.com/users/alikon/gists{/gist_id}","starred_url":"https://api.github.com/users/alikon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alikon/subscriptions","organizations_url":"https://api.github.com/users/alikon/orgs","repos_url":"https://api.github.com/users/alikon/repos","events_url":"https://api.github.com/users/alikon/events{/privacy}","received_events_url":"https://api.github.com/users/alikon/received_events","type":"User","site_admin":false},"created_at":"2018-09-19T19:05:40Z","updated_at":"2018-09-19T19:05:40Z","author_association":"CONTRIBUTOR","body":"nice to have for me, as it is now, not more not less\r\n"}}
{"actor":{"display_login":"alikon"}}