{"id":1198059,"date":"2016-11-27T16:10:26","date_gmt":"2016-11-28T00:10:26","guid":{"rendered":"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/"},"modified":"2016-11-27T16:10:26","modified_gmt":"2016-11-28T00:10:26","slug":"separation-of-logic-and-display-layers-in-next-rebuild","status":"closed","type":"topic","link":"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/","title":{"rendered":"Separation of logic and display layers in next rebuild"},"content":{"rendered":"<p>In the next rebuild could you please separate the display layer and hooks\/logic (aka separate concerns in programming terms) and move to an MVC or MVVM or alike app structure.<\/p>\n<p>I think this would make maintenance of your app a lot easier for your team, and allow for custom hooks to be applied much easier by developers (it would be a dream events set of plugins).<\/p>\n<p>so you could just disable features with something like:<\/p>\n<p>globally:<br \/>\n<code>tribe_events_disable_feature(&#039;feature-one,feature-two&#039;);<\/code><\/p>\n<p>by section<br \/>\n<code>tribe_events_disable_feature(&#039;feature-one,feature-two&#039;,&#039;\/events\/category\/&#039;);<\/code><\/p>\n<p>per page:<br \/>\n<code>tribe_events_disable_feature(&#039;feature-one,feature-two&#039;,&#039;\/events\/page-one\/&#039;);<\/code><\/p>\n<p>and have functionality like:<\/p>\n<p><code>tribe_include_feature(&#039;tec-tickets&#039;)<\/code><\/p>\n<p>to make sure the wiring is there for the interface to grab it (aka it could already be active so it will nonse the code)&#8230; that way we can just drop features in and out of pages like magicians and write of your greatness all over the internet!<\/p>\n<p>Also would be great have complete &#8216;easy&#8217; access to replace functionality or extend functionality:<\/p>\n<ul>\n<li>Completely replace your code with ours (backend\/frontend\/both)<\/li>\n<li>Add our own plugins to yours (easily) to add functionality (eg: ticket types there are rsvp and ticket atm but extending that requires a degree in how your developer thinks &#8211; it&#8217;s very complex)<\/li>\n<li><\/li>\n<\/ul>\n<p>We can do all of these things now, but it takes many hours or days of code review, instead of simply dropping in a customisation from a skeleton template, or simply cloning an existing object and adding a few &#8216;different&#8217; settings. I can see where this is developing over time (and the efforts you have already made are great), but I think the code needs to be simplified so it can be customised easily so that more people will purchase and buy these plugins.<\/p>\n<p>Would also be great to have ignitiondeck eccommerce support&#8230; will add that to user voice. as they are getting 100-300 downloads a day and gathering steam now that automatic has bought woocommerce (and it&#8217;s plugins are rediculous expensive on their site, unless go to a GPL club to get it). Ignitedeck would also be a good play for you if you want to be seen as a &#8216;premium&#8217; expensive plugin as their pricing is also up in the hundreds of dollars for the paid versions. It would be an awesome integration, as we are now moving from woo to ignitiondeck for our ecommerce platform. (would be happy to test it also)<\/p>\n","protected":false},"template":"","class_list":["post-1198059","topic","type-topic","status-closed","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Separation of logic and display layers in next rebuild -<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Separation of logic and display layers in next rebuild -\" \/>\n<meta property=\"og:description\" content=\"In the next rebuild could you please separate the display layer and hooks\/logic (aka separate concerns in programming terms) and move to an MVC or MVVM or alike app structure. I think this would make maintenance of your app a lot easier for your team, and allow for custom hooks to be applied much easier [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/\",\"url\":\"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/\",\"name\":\"Separation of logic and display layers in next rebuild -\",\"isPartOf\":{\"@id\":\"https:\/\/theeventscalendar.com\/support\/#website\"},\"datePublished\":\"2016-11-28T00:10:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/theeventscalendar.com\/support\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Topics\",\"item\":\"https:\/\/theeventscalendar.com\/support\/topics\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Calendar Products\",\"item\":\"https:\/\/theeventscalendar.com\/support\/forums\/forum\/events\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Events Calendar PRO\",\"item\":\"https:\/\/theeventscalendar.com\/support\/forums\/forum\/events\/events-calendar-pro\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Separation of logic and display layers in next rebuild\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/theeventscalendar.com\/support\/#website\",\"url\":\"https:\/\/theeventscalendar.com\/support\/\",\"name\":\"\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/theeventscalendar.com\/support\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Separation of logic and display layers in next rebuild -","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/","og_locale":"en_US","og_type":"article","og_title":"Separation of logic and display layers in next rebuild -","og_description":"In the next rebuild could you please separate the display layer and hooks\/logic (aka separate concerns in programming terms) and move to an MVC or MVVM or alike app structure. I think this would make maintenance of your app a lot easier for your team, and allow for custom hooks to be applied much easier [&hellip;]","og_url":"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/","url":"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/","name":"Separation of logic and display layers in next rebuild -","isPartOf":{"@id":"https:\/\/theeventscalendar.com\/support\/#website"},"datePublished":"2016-11-28T00:10:26+00:00","breadcrumb":{"@id":"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/theeventscalendar.com\/support\/forums\/topic\/separation-of-logic-and-display-layers-in-next-rebuild\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/theeventscalendar.com\/support\/"},{"@type":"ListItem","position":2,"name":"Topics","item":"https:\/\/theeventscalendar.com\/support\/topics\/"},{"@type":"ListItem","position":3,"name":"Calendar Products","item":"https:\/\/theeventscalendar.com\/support\/forums\/forum\/events\/"},{"@type":"ListItem","position":4,"name":"Events Calendar PRO","item":"https:\/\/theeventscalendar.com\/support\/forums\/forum\/events\/events-calendar-pro\/"},{"@type":"ListItem","position":5,"name":"Separation of logic and display layers in next rebuild"}]},{"@type":"WebSite","@id":"https:\/\/theeventscalendar.com\/support\/#website","url":"https:\/\/theeventscalendar.com\/support\/","name":"","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/theeventscalendar.com\/support\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/theeventscalendar.com\/support\/wp-json\/wp\/v2\/topic\/1198059","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/theeventscalendar.com\/support\/wp-json\/wp\/v2\/topic"}],"about":[{"href":"https:\/\/theeventscalendar.com\/support\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":0,"href":"https:\/\/theeventscalendar.com\/support\/wp-json\/wp\/v2\/topic\/1198059\/revisions"}],"wp:attachment":[{"href":"https:\/\/theeventscalendar.com\/support\/wp-json\/wp\/v2\/media?parent=1198059"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}