CINXE.COM
A new publishing workflow for Joomla - Google Summer of Code 2017
<!DOCTYPE html> <html lang="en-gb" dir="ltr"> <head><script type="text/javascript" src="https://web-static.archive.org/_static/js/bundle-playback.js?v=7YQSqjSh" charset="utf-8"></script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/wombat.js?v=txqj7nKC" charset="utf-8"></script> <script>window.RufflePlayer=window.RufflePlayer||{};window.RufflePlayer.config={"autoplay":"on","unmuteOverlay":"hidden"};</script> <script type="text/javascript" src="https://web-static.archive.org/_static/js/ruffle/ruffle.js"></script> <script type="text/javascript"> __wm.init("https://web.archive.org/web"); __wm.wombat("https://community.joomla.org/gsoc-2017/3119-publishing-workflow-for-joomla.html","20170715232853","https://web.archive.org/","web","https://web-static.archive.org/_static/", "1500161333"); </script> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/banner-styles.css?v=p7PEIJWi" /> <link rel="stylesheet" type="text/css" href="https://web-static.archive.org/_static/css/iconochive.css?v=3PDvdIFv" /> <!-- End Wayback Rewrite JS Include --> <meta charset="utf-8"/> <base href="https://web.archive.org/web/20170715232853/https://community.joomla.org/gsoc-2017/3119-publishing-workflow-for-joomla.html"/> <meta name="twitter:image" content="https://web.archive.org/web/20170715232853im_/https://community.joomla.org/images/blogs/gsoc-jan-2017-06-25/gsoc-header.jpg"/> <meta name="twitter:description" content="This projects aims to replace the current states in the Joomla! with a more flexible version of workflows."/> <meta name="twitter:title" content="A new publishing workflow for Joomla - Google Summer of Code 2017"/> <meta name="author" content="Jan Jaracz"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <meta name="apple-mobile-web-app-capable" content="yes"/> <meta name="apple-mobile-web-app-status-bar-style" content="blue"/> <meta name="twitter:card" content="summary_large_image"/> <meta name="twitter:site" content="@joomla"/> <meta name="referrer" content="unsafe-url"/> <meta property="og:image" content="https://web.archive.org/web/20170715232853im_/https://community.joomla.org/images/blogs/gsoc-jan-2017-06-25/gsoc-header.jpg"/> <meta property="og:description" content="This projects aims to replace the current states in the Joomla! with a more flexible version of workflows."/> <meta property="og:title" content="A new publishing workflow for Joomla - Google Summer of Code 2017"/> <meta property="og:type" content="article"/> <meta property="og:url" content="https://web.archive.org/web/20170715232853/https://community.joomla.org/gsoc-2017/3119-publishing-workflow-for-joomla.html"/> <meta property="og:site_name" content="Joomla! Community Portal"/> <meta name="description" content="This projects aims to replace the current states in the Joomla! with a more flexible version of workflows."/> <meta name="generator" content="Joomla! Community Portal"/> <title>A new publishing workflow for Joomla - Google Summer of Code 2017</title> <link href="https://web.archive.org/web/20170715232853/https://community.joomla.org/gsoc-2017/3119-publishing-workflow-for-joomla.html" rel="canonical"/> <link href="/web/20170715232853im_/https://community.joomla.org/templates/joomla/images/apple-touch-icon-180x180.png" rel="apple-touch-icon" sizes="180x180"/> <link href="/web/20170715232853im_/https://community.joomla.org/templates/joomla/images/apple-touch-icon-152x152.png" rel="apple-touch-icon" sizes="152x152"/> <link href="/web/20170715232853im_/https://community.joomla.org/templates/joomla/images/apple-touch-icon-144x144.png" rel="apple-touch-icon" sizes="144x144"/> <link href="/web/20170715232853im_/https://community.joomla.org/templates/joomla/images/apple-touch-icon-120x120.png" rel="apple-touch-icon" sizes="120x120"/> <link href="/web/20170715232853im_/https://community.joomla.org/templates/joomla/images/apple-touch-icon-114x114.png" rel="apple-touch-icon" sizes="114x114"/> <link href="/web/20170715232853im_/https://community.joomla.org/templates/joomla/images/apple-touch-icon-76x76.png" rel="apple-touch-icon" sizes="76x76"/> <link href="/web/20170715232853im_/https://community.joomla.org/templates/joomla/images/apple-touch-icon-72x72.png" rel="apple-touch-icon" sizes="72x72"/> <link href="/web/20170715232853im_/https://community.joomla.org/templates/joomla/images/apple-touch-icon-57x57.png" rel="apple-touch-icon" sizes="57x57"/> <link href="/web/20170715232853im_/https://community.joomla.org/templates/joomla/images/apple-touch-icon.png" rel="apple-touch-icon"/> <link href="/web/20170715232853im_/https://community.joomla.org/templates/joomla/favicon.ico" rel="shortcut icon" type="image/vnd.microsoft.icon"/> <link href="https://web.archive.org/web/20170715232853/https://community.joomla.org/component/search/?Itemid=683&catid=94&id=3119&format=opensearch" rel="search" title="Search the Joomla! Community Portal" type="application/opensearchdescription+xml"/> <link href="/web/20170715232853cs_/https://community.joomla.org/media/joomlarrssb/css/rrssb.css" rel="stylesheet"/> <link href="/web/20170715232853cs_/https://community.joomla.org/media/joomlarrssb/css/joomla.css" rel="stylesheet"/> <link href="/web/20170715232853cs_/https://community.joomla.org/templates/joomla/css/template.min.css?2.2.0" rel="stylesheet"/> <link href="/web/20170715232853cs_/https://community.joomla.org/templates/joomla/css/custom.css?e31650a5ea3817ce23fb09391898229d" rel="stylesheet"/> <link href="https://web.archive.org/web/20170715232853cs_/https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet"/> <link href="/web/20170715232853cs_/https://community.joomla.org/media/mod_responsivemenu/css/theme4.css.php?maxMobileWidth=800&menuBG=%233474a6&textColor=%23ffffff&textColor2=%23247eab" rel="stylesheet"/> <style> h1, h2, h3, h4, h5, h6 { font-family: 'Open Sans', sans-serif; } </style> <script type="application/json" class="joomla-script-options new">{"system.paths":{"root":"","base":""},"system.keepalive":{"interval":3540000,"uri":"\/component\/ajax\/?format=json"}}</script> <script src="/web/20170715232853js_/https://community.joomla.org/media/jui/js/jquery.min.js?e31650a5ea3817ce23fb09391898229d"></script> <script src="/web/20170715232853js_/https://community.joomla.org/media/jui/js/jquery-noconflict.js?e31650a5ea3817ce23fb09391898229d"></script> <script src="/web/20170715232853js_/https://community.joomla.org/media/jui/js/jquery-migrate.min.js?e31650a5ea3817ce23fb09391898229d"></script> <script src="/web/20170715232853js_/https://community.joomla.org/media/joomlarrssb/js/rrssb.min.js"></script> <script src="/web/20170715232853js_/https://community.joomla.org/media/system/js/caption.js?e31650a5ea3817ce23fb09391898229d"></script> <script src="/web/20170715232853js_/https://community.joomla.org/media/system/js/core.js?e31650a5ea3817ce23fb09391898229d"></script> <script src="/web/20170715232853js_/https://community.joomla.org/media/jui/js/bootstrap.min.js?e31650a5ea3817ce23fb09391898229d"></script> <script src="/web/20170715232853js_/https://community.joomla.org/templates/joomla/js/template.js?e31650a5ea3817ce23fb09391898229d"></script> <script src="/web/20170715232853js_/https://community.joomla.org/templates/joomla/js/blockadblock.js?e31650a5ea3817ce23fb09391898229d"></script> <script src="/web/20170715232853js_/https://community.joomla.org/templates/joomla/js/js.cookie.js?e31650a5ea3817ce23fb09391898229d"></script> <!--[if lt IE 9]><script src="/media/jui/js/html5.js?e31650a5ea3817ce23fb09391898229d"></script><![endif]--> <!--[if lt IE 9]><script src="/media/system/js/polyfill.event.js?e31650a5ea3817ce23fb09391898229d"></script><![endif]--> <script src="/web/20170715232853js_/https://community.joomla.org/media/system/js/keepalive.js?e31650a5ea3817ce23fb09391898229d"></script> <script src="/web/20170715232853js_/https://community.joomla.org/modules/mod_responsivemenu/js/jquery.easing.1.3.js" defer></script> <script src="/web/20170715232853js_/https://community.joomla.org/templates/joomla/html/mod_responsivemenu/js/theme4.js" defer></script> <script src="/web/20170715232853js_/https://community.joomla.org/media/system/js/html5fallback.js?e31650a5ea3817ce23fb09391898229d"></script> <script> jQuery(window).on('load', function() { new JCaption('img.caption'); }); jQuery(function($){ $(".hasTooltip").tooltip({"html": true,"container": "body"}); }); </script> </head> <body class="site com_content view-article layout-default task-display itemid-683"> <!-- Google Tag Manager --> <noscript><iframe src="//web.archive.org/web/20170715232853if_/https://www.googletagmanager.com/ns.html?id=GTM-WQNG7Z" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='//web.archive.org/web/20170715232853/https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-WQNG7Z');</script> <!-- End Google Tag Manager --> <!-- Top Nav --> <nav class="navigation" role="navigation"> <div id="mega-menu" class="navbar navbar-inverse navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a> <div class="nav-collapse collapse"> <ul id="nav-joomla" class="nav"> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#"> <span dir="ltr"><span aria-hidden="true" class="icon-joomla"></span> Joomla!<sup>®</sup></span> <span class="caret"></span> </a> <ul class="dropdown-menu"> <li> <a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/"> <span aria-hidden="true" class="icon-joomla"></span> <span dir="ltr">Joomla!</span> Home </a> </li> <li class="divider"><span></span></li> <li class="nav-header"><span>Support <span dir="ltr">Joomla!</span></span></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/contribute-to-joomla.html">Contribute</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://community.joomla.org/the-joomla-shop.html">The <span dir="ltr">Joomla!</span> Shop</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/sponsorship">Sponsorship</a></li> <li class="divider"><span></span></li> <li class="nav-header"><span>Try <span dir="ltr">Joomla!</span></span></li> <li><a href="https://web.archive.org/web/20170715232853/https://demo.joomla.org/">Demo</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.com/">Free Hosted Website</a></li> </ul> </li> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">About <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/about-joomla.html">About <span dir="ltr">Joomla!</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/core-features.html">Core Features</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/about-joomla/the-project.html">The Project</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/about-joomla/the-project/leadership-team.html">Leadership</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://opensourcematters.org/">Open Source Matters</a></li> </ul> </li> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">Download & Extend <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="https://web.archive.org/web/20170715232853/https://downloads.joomla.org/">Joomla! Downloads</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://extensions.joomla.org/">Extensions Directory</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://community.joomla.org/translations.html">Language Packages</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://showcase.joomla.org/">Showcase Directory</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://certification.joomla.org/">Certification Program</a></li> </ul> </li> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">News <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/announcements.html">Announcements</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://community.joomla.org/blogs.html">Blogs</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://magazine.joomla.org/">Magazine</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://community.joomla.org/connect.html"><span dir="ltr">Joomla!</span> Connect</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/mailing-lists.html">Mailing Lists</a></li> </ul> </li> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">Community <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="https://web.archive.org/web/20170715232853/https://community.joomla.org/">Community Portal</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://community.joomla.org/events.html"><span dir="ltr">Joomla!</span> Events</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://tm.joomla.org/">Trademark & Licensing</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://community.joomla.org/user-groups.html">User Groups</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://showcase.joomla.org/">Showcase Directory</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://volunteers.joomla.org/">Volunteers Portal</a></li> </ul> </li> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">Support <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="https://web.archive.org/web/20170715232853/https://forum.joomla.org/">Forum</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://docs.joomla.org/">Documentation</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://issues.joomla.org/">Issue Tracker</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://resources.joomla.org/">Resources Directory</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://community.joomla.org/joomla-training.html"><span dir="ltr">Joomla!</span> Training</a></li> </ul> </li> <li class="dropdown"> <a class="dropdown-toggle" data-toggle="dropdown" href="#">Developers <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="https://web.archive.org/web/20170715232853/https://developer.joomla.org/">Developer Network</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://docs.joomla.org/">Documentation</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://docs.joomla.org/Bug_Squad">Bug Squad</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://developer.joomla.org/security.html">Security Centre</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://api.joomla.org/">API Documentation</a></li> <li><a href="https://web.archive.org/web/20170715232853/http://joomlacode.org/">JoomlaCode</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://framework.joomla.org/"><span dir="ltr">Joomla!</span> Framework</a></li> </ul> </li> </ul> <div id="nav-search" class="navbar-search pull-right"> <div class="moduletable"> <div class="search"> <form action="/web/20170715232853/https://community.joomla.org/gsoc-2017.html" method="post" class="form-inline"> <label for="mod-search-searchword184" class="element-invisible">Search ...</label> <input name="searchword" id="mod-search-searchword184" maxlength="200" class="inputbox search-query input-medium" type="search" placeholder=" Search ..."/> <input type="hidden" name="task" value="search"/> <input type="hidden" name="option" value="com_search"/> <input type="hidden" name="Itemid" value="402"/> </form> </div> </div> </div> </div> </div> </div> </div> </nav> <!-- Header --> <header class="header"> <div class="container"> <div class="row-fluid"> <div class="span7"> <h1 class="page-title"> <a href="/web/20170715232853/https://community.joomla.org/">Joomla! Community Portal</a> </h1> </div> <div class="span5"> <div class="btn-toolbar pull-right"> <div class="btn-group"> <a href="https://web.archive.org/web/20170715232853/https://downloads.joomla.org/" class="btn btn-large btn-warning">Download</a> </div> <div class="btn-group"> <a href="https://web.archive.org/web/20170715232853/https://demo.joomla.org/" class="btn btn-large btn-primary">Demo</a> </div> </div> </div> </div> </div> </header> <nav class="subnav-wrapper"> <div class="subnav"> <div class="container"> <div id="responsiveMenuTheme4Cnt" style="float: left;"> <a class="responsiveMenu4 toggleMenu " href="#"><span>MOD_RESPONSIVEMENU_MENU</span></a> <ul id="responsiveMenu300" class="responsiveMenuTheme4 nav nav-pills "><input type="hidden" name="maxMobileWidth" value="800" class="maxMobileWidth"/> <li id="item-101" class="first"><a href="/web/20170715232853/https://community.joomla.org/"><span class="linker">Home</span></a></li><li id="item-342" class="deeper parent"><a href="/web/20170715232853/https://community.joomla.org/blogs.html"><span class="linker">Blogs</span><span class="opener">>open</span></a><ul><li id="item-343"><a href="/web/20170715232853/https://community.joomla.org/blogs/community.html"><span class="linker">Community Blog</span></a></li><li id="item-344"><a href="/web/20170715232853/https://community.joomla.org/blogs/leadership.html"><span class="linker">Leadership Blog</span></a></li><li id="item-684" class="active"><a href="/web/20170715232853/https://community.joomla.org/gsoc-2017.html"><span class="linker">GSOC - 2017</span></a></li><li id="item-527"><a href="/web/20170715232853/https://community.joomla.org/gsoc-2016.html"><span class="linker">GSOC - 2016</span></a></li><li id="item-705"><a href="/web/20170715232853/https://community.joomla.org/archive.html"><span class="linker">Archive</span></a></li></ul></li><li id="item-108" class="deeper parent"><a href="/web/20170715232853/https://community.joomla.org/user-groups.html"><span class="linker">User Groups </span><span class="opener">>open</span></a><ul><li id="item-228"><a href="/web/20170715232853/https://community.joomla.org/user-groups/find-a-user-group.html"><span class="linker">Find a User Group</span></a></li><li id="item-393"><a href="https://web.archive.org/web/20170715232853/https://docs.joomla.org/Joomla_User_Group/Terms_of_Service" target="_blank"><span>User Groups Terms of Service</span></a></li><li id="item-389"><a href="https://web.archive.org/web/20170715232853/https://docs.joomla.org/Joomla_User_Group/FAQs_and_Rules_for_Submission" target="_blank"><span>Rules & FAQs</span></a></li><li id="item-469"><a href="/web/20170715232853/https://community.joomla.org/helpdesk/user-groups-support.html"><span class="linker">Helpdesk</span></a></li><li id="item-747" class="parent"><a href="/web/20170715232853/https://community.joomla.org/user-groups/africa.html"><span class="linker">Africa</span></a></li><li id="item-748" class="parent"><a href="/web/20170715232853/https://community.joomla.org/user-groups/asia.html"><span class="linker">Asia</span></a></li><li id="item-749" class="parent"><a href="/web/20170715232853/https://community.joomla.org/user-groups/caribbean.html"><span class="linker">Caribbean</span></a></li><li id="item-750" class="parent"><a href="/web/20170715232853/https://community.joomla.org/user-groups/europe.html"><span class="linker">Europe</span></a></li><li id="item-751" class="parent"><a href="/web/20170715232853/https://community.joomla.org/user-groups/middle-east.html"><span class="linker">Middle East</span></a></li><li id="item-752" class="parent"><a href="/web/20170715232853/https://community.joomla.org/user-groups/north-america.html"><span class="linker">North America</span></a></li><li id="item-753" class="parent"><a href="/web/20170715232853/https://community.joomla.org/user-groups/oceania.html"><span class="linker">Oceania</span></a></li><li id="item-754" class="parent"><a href="/web/20170715232853/https://community.joomla.org/user-groups/south-america.html"><span class="linker">South America</span></a></li><li id="item-780"><a href="https://web.archive.org/web/20170715232853/https://docs.joomla.org/Portal:Joomla_User_Groups"><span class="linker">Resources for Organisers</span></a></li><li id="item-918"><a href="/web/20170715232853/https://community.joomla.org/user-groups/start-a-jug.html"><span class="linker">Start a JUG</span></a></li></ul></li><li id="item-575" class="deeper parent"><a href="/web/20170715232853/https://community.joomla.org/events.html"><span class="linker">Events</span><span class="opener">>open</span></a><ul><li id="item-583"><a href="/web/20170715232853/https://community.joomla.org/events/joomladays.html"><span class="linker">JoomlaDays</span></a></li><li id="item-585"><a href="/web/20170715232853/https://community.joomla.org/events/user-group-meetings.html"><span class="linker">User Group Meetings</span></a></li><li id="item-587"><a href="/web/20170715232853/https://community.joomla.org/events/joomla-conferences.html"><span class="linker">Joomla! Conferences</span></a></li><li id="item-706"><a href="/web/20170715232853/https://community.joomla.org/events/joomlacamps.html"><span class="linker">JoomlaCamps</span></a></li><li id="item-707"><a href="/web/20170715232853/https://community.joomla.org/events/pizza-bugs-fun.html"><span class="linker">Pizza, Bugs & Fun</span></a></li><li id="item-581"><a href="/web/20170715232853/https://community.joomla.org/events/official-joomla-events-charter.html"><span class="linker">Official Joomla! Events Charter</span></a></li><li id="item-579"><a href="/web/20170715232853/https://community.joomla.org/events/event-resources-list.html"><span class="linker">Event Resources List</span></a></li><li id="item-621"><a href="/web/20170715232853/https://community.joomla.org/helpdesk/event-directory-support.html"><span class="linker">Helpdesk</span></a></li><li id="item-589" class="parent"><a href="/web/20170715232853/https://community.joomla.org/events/archive.html"><span class="linker">Event Archive</span></a></li></ul></li><li id="item-366" class="deeper parent"><a href="/web/20170715232853/https://community.joomla.org/translations.html"><span class="linker">Translations</span><span class="opener">>open</span></a><ul><li id="item-387"><a href="/web/20170715232853/https://community.joomla.org/translations/joomla-3-translations.html"><span class="linker">Joomla! 3.x Translations</span></a></li><li id="item-386"><a href="/web/20170715232853/https://community.joomla.org/translations/joomla-2-5-translations.html"><span class="linker">Joomla! 2.5 Translations</span></a></li><li id="item-367"><a href="/web/20170715232853/https://community.joomla.org/translations/joomla-1-5-translations.html"><span class="linker">Joomla! 1.5 Translations</span></a></li></ul></li><li id="item-495" class="deeper parent"><a href="/web/20170715232853/https://community.joomla.org/joomla-training.html"><span class="linker">Joomla! Training</span><span class="opener">>open</span></a><ul><li id="item-548"><a href="/web/20170715232853/https://community.joomla.org/joomla-training.html"><span class="linker">Joomla! Courses</span></a></li><li id="item-496"><a href="https://web.archive.org/web/20170715232853/http://forum.joomla.org/viewforum.php?f=799"><span class="linker">Training Forum</span></a></li></ul></li></ul> </div> </div> </div> </nav> <!-- Body --> <div class="body"> <div class="container"> <div class="row-fluid"> <main id="content" class="span9"> <!-- Begin Content --> <div id="system-message-container"> </div> <div class="item-page" itemscope itemtype="https://schema.org/Article"> <meta itemprop="inLanguage" content="en-GB"/> <div class="page-header"> <h1 itemprop="name headline"> A new publishing workflow for Joomla - Google Summer of Code 2017 </h1> </div> <div class="pull-none item-image"> <img src="/web/20170715232853im_/https://community.joomla.org/images/blogs/gsoc-jan-2017-06-25/gsoc-header.jpg" alt="A new publishing workflow for Joomla - Jan Jaracz" itemprop="image"/> </div> <div itemprop="articleBody"> <p class="lead">My name is Jan Jaracz and I'm from Poland. Maybe some of you meet me on the JAB conference in Cracow. I'm 20 years old and I just start studying on AGH University in Krakow. I'm part of Google Summer of Code project and joined the Joomla! community.</p> <p>Besides, I’m the team leader of developers group at GóraDobra (Mountain of Good). We are creating portal for volunteers to basically manage tasks. It is like facebook for volunteers. First version of that was working at the WYD (World Youth Day) but we are decided to rewrite whole app into more flexible and functionality version. Maybe you will hear about in the future (I hope so).</p> <p>Ok, that’s about me. Let’s got to the project that I’m working on.</p> <figure class="center"><img src="/web/20170715232853im_/https://community.joomla.org/images/blogs/gsoc-jan-2017-06-25/gsoc.png" alt="Google Summer of Code"/></figure> <h3>What is the Google Summer of Code? </h3> <p>This is a project from Google which supports open source organization. This Organizations create a description of a projects and students choose it. After that we create something called project proposals and then mentors (for specific project) and admins choose the best student for project.</p> <h3>What is the project about?</h3> <p>It is named Publishing Workflow. In a few words: I will replace the current states in the Joomla! with a more flexible version.</p> <p>At the moment, we have a few disadvantages with the current states that I am working on to improve it.</p> <ul> <li>First of all, there are only 4 predefined main states (published, unpublished, archived and trashed) which you cannot change.</li> <li>There is no difference between the states in terms of ACL. Everyone with core.edit.state rights can change the state from one state to another even publish uncompleted or buggy article.</li> </ul> <h3>Terminology of project.</h3> <ul> <li><strong>Workflow”</strong> - Container of transition and states.</li> <li><strong>States”</strong> - Like now published, unpublished etc. but you would create it by yourself</li> <li><strong>Transition”</strong> - Defines, which state can be changed to another one</li> <li><strong>Condition”</strong> - Its describe when it is published (public accessed), unpublished (only accessed from dashboard) and trashed.</li> </ul> <h3>What is the point of the project?</h3> <p>The point of the project is to improve convenience of use states.</p> <h3>Why you will love it?</h3> <p>You will be able to create very complex workflows that would be helpful for every admin.</p> <p>So if you have many of defined rules on the dashboard then that component is for you.</p> <p>Main features that you will be able to use:</p> <ul> <li>Create unlimited states with custom name and condition.</li> <li>Create unlimited transition between states that would be performed by specific rules.</li> <li>Create unlimited workflows for every component.</li> </ul> <p><strong>That is the first article of series of the Publishing Workflow project. If you want to know more, just stay in touch.</strong></p> <figure class="center"><img src="/web/20170715232853im_/https://community.joomla.org/images/blogs/gsoc-jan-2017-06-25/flowchart-311347_640.png" alt="Publishing Workflow chart"/></figure> <div class="share-container"> <ul class="rrssb-buttons clearfix"> <li class="rrssb-email"> <a href="https://web.archive.org/web/20170715232853/mailto:/?subject=A+new+publishing+workflow+for+Joomla+-+Google+Summer+of+Code+2017&body=https%3A%2F%2Fjoom.la%2Fihl"> <span class="rrssb-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewbox="0 0 28 28"> <path d="M20.11 26.147c-2.335 1.05-4.36 1.4-7.124 1.4C6.524 27.548.84 22.916.84 15.284.84 7.343 6.602.45 15.4.45c6.854 0 11.8 4.7 11.8 11.252 0 5.684-3.193 9.265-7.398 9.3-1.83 0-3.153-.934-3.347-2.997h-.077c-1.208 1.986-2.96 2.997-5.023 2.997-2.532 0-4.36-1.868-4.36-5.062 0-4.75 3.503-9.07 9.11-9.07 1.713 0 3.7.4 4.6.972l-1.17 7.203c-.387 2.298-.115 3.3 1 3.4 1.674 0 3.774-2.102 3.774-6.58 0-5.06-3.27-8.994-9.304-8.994C9.05 2.87 3.83 7.545 3.83 14.97c0 6.5 4.2 10.2 10 10.202 1.987 0 4.09-.43 5.647-1.245l.634 2.22zM16.647 10.1c-.31-.078-.7-.155-1.207-.155-2.572 0-4.596 2.53-4.596 5.53 0 1.5.7 2.4 1.9 2.4 1.44 0 2.96-1.83 3.31-4.088l.592-3.72z"/> </svg> </span> <span class="rrssb-text">email</span> </a> </li> <li class="rrssb-facebook"> <a href="https://web.archive.org/web/20170715232853/https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fjoom.la%2Fihl" class="popup"> <span class="rrssb-icon"> <svg xmlns="http://www.w3.org/2000/svg" preserveaspectratio="xMidYMid" width="29" height="29" viewbox="0 0 29 29"> <path d="M26.4 0H2.6C1.714 0 0 1.715 0 2.6v23.8c0 .884 1.715 2.6 2.6 2.6h12.393V17.988h-3.996v-3.98h3.997v-3.062c0-3.746 2.835-5.97 6.177-5.97 1.6 0 2.444.173 2.845.226v3.792H21.18c-1.817 0-2.156.9-2.156 2.168v2.847h5.045l-.66 3.978h-4.386V29H26.4c.884 0 2.6-1.716 2.6-2.6V2.6c0-.885-1.716-2.6-2.6-2.6z" class="cls-2" fill-rule="evenodd"/> </svg> </span> <span class="rrssb-text">facebook</span> </a> </li> <li class="rrssb-twitter"> <a href="https://web.archive.org/web/20170715232853/https://twitter.com/intent/tweet?text=A+new+publishing+workflow+for+Joomla+-+Google+Summer+of+Code+2017%3A+https%3A%2F%2Fjoom.la%2Fihl" class="popup"> <span class="rrssb-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewbox="0 0 28 28"> <path d="M24.253 8.756C24.69 17.08 18.297 24.182 9.97 24.62c-3.122.162-6.22-.646-8.86-2.32 2.702.18 5.375-.648 7.507-2.32-2.072-.248-3.818-1.662-4.49-3.64.802.13 1.62.077 2.4-.154-2.482-.466-4.312-2.586-4.412-5.11.688.276 1.426.408 2.168.387-2.135-1.65-2.73-4.62-1.394-6.965C5.574 7.816 9.54 9.84 13.802 10.07c-.842-2.738.694-5.64 3.434-6.48 2.018-.624 4.212.043 5.546 1.682 1.186-.213 2.318-.662 3.33-1.317-.386 1.256-1.248 2.312-2.4 2.942 1.048-.106 2.07-.394 3.02-.85-.458 1.182-1.343 2.15-2.48 2.71z"/> </svg> </span> <span class="rrssb-text">twitter</span> </a> </li> <li class="rrssb-googleplus"> <a href="https://web.archive.org/web/20170715232853/https://plus.google.com/share?url=https%3A%2F%2Fjoom.la%2Fihl" class="popup"> <span class="rrssb-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewbox="0 0 28 28"> <path d="M14.703 15.854l-1.22-.948c-.37-.308-.88-.715-.88-1.46 0-.747.51-1.222.95-1.662 1.42-1.12 2.84-2.31 2.84-4.817 0-2.58-1.62-3.937-2.4-4.58h2.098l2.203-1.384h-6.67c-1.83 0-4.467.433-6.398 2.027C3.768 4.287 3.06 6.018 3.06 7.576c0 2.634 2.02 5.328 5.603 5.328.34 0 .71-.033 1.083-.068-.167.408-.336.748-.336 1.324 0 1.04.55 1.685 1.01 2.297-1.523.104-4.37.273-6.466 1.562-1.998 1.187-2.605 2.915-2.605 4.136 0 2.512 2.357 4.84 7.288 4.84 5.822 0 8.904-3.223 8.904-6.41.008-2.327-1.36-3.49-2.83-4.73h-.01zM10.27 11.95c-2.913 0-4.232-3.764-4.232-6.036 0-.884.168-1.797.744-2.51.543-.68 1.49-1.12 2.372-1.12 2.807 0 4.256 3.797 4.256 6.24 0 .613-.067 1.695-.845 2.48-.537.55-1.438.947-2.295.95v-.003zm.032 13.66c-3.62 0-5.957-1.733-5.957-4.143 0-2.408 2.165-3.223 2.91-3.492 1.422-.48 3.25-.545 3.556-.545.34 0 .52 0 .767.034 2.574 1.838 3.706 2.757 3.706 4.48-.002 2.072-1.736 3.664-4.982 3.648l.002.017zM23.254 11.89V8.52H21.57v3.37H18.2v1.714h3.367v3.4h1.684v-3.4h3.4V11.89"/> </svg> </span> <span class="rrssb-text">google+</span> </a> </li> <li class="rrssb-linkedin"> <a href="https://web.archive.org/web/20170715232853/http://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fjoom.la%2Fihl&title=A+new+publishing+workflow+for+Joomla+-+Google+Summer+of+Code+2017&summary=My+name+is+Jan+Jaracz+and+I%27m+from+Poland.+Maybe+s..." class="popup"> <span class="rrssb-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewbox="0 0 28 28"> <path d="M25.424 15.887v8.447h-4.896v-7.882c0-1.98-.71-3.33-2.48-3.33-1.354 0-2.158.91-2.514 1.802-.13.315-.162.753-.162 1.194v8.216h-4.9s.067-13.35 0-14.73h4.9v2.087c-.01.017-.023.033-.033.05h.032v-.05c.65-1.002 1.812-2.435 4.414-2.435 3.222 0 5.638 2.106 5.638 6.632zM5.348 2.5c-1.676 0-2.772 1.093-2.772 2.54 0 1.42 1.066 2.538 2.717 2.546h.032c1.71 0 2.77-1.132 2.77-2.546C8.056 3.593 7.02 2.5 5.344 2.5h.005zm-2.48 21.834h4.896V9.604H2.867v14.73z"/> </svg> </span> <span class="rrssb-text">linkedin</span> </a> </li> <li class="rrssb-pinterest"> <a href="https://web.archive.org/web/20170715232853/https://www.pinterest.com/pin/create/button/?url=https%3A%2F%2Fjoom.la%2Fihl&media=https%3A%2F%2Fcommunity.joomla.org%2Fimages%2Fblogs%2Fgsoc-jan-2017-06-25%2Fgsoc-header.jpg&description=A+new+publishing+workflow+for+Joomla+-+Google+Summer+of+Code+2017"> <span class="rrssb-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewbox="0 0 28 28"> <path d="M14.02 1.57c-7.06 0-12.784 5.723-12.784 12.785S6.96 27.14 14.02 27.14c7.062 0 12.786-5.725 12.786-12.785 0-7.06-5.724-12.785-12.785-12.785zm1.24 17.085c-1.16-.09-1.648-.666-2.558-1.22-.5 2.627-1.113 5.146-2.925 6.46-.56-3.972.822-6.952 1.462-10.117-1.094-1.84.13-5.545 2.437-4.632 2.837 1.123-2.458 6.842 1.1 7.557 3.71.744 5.226-6.44 2.924-8.775-3.324-3.374-9.677-.077-8.896 4.754.19 1.178 1.408 1.538.49 3.168-2.13-.472-2.764-2.15-2.683-4.388.132-3.662 3.292-6.227 6.46-6.582 4.008-.448 7.772 1.474 8.29 5.24.58 4.254-1.815 8.864-6.1 8.532v.003z"/> </svg> </span> <span class="rrssb-text">pinterest</span> </a> </li> </ul> </div> </div> <dl class="article-info muted"> <dt class="article-info-term"> Details </dt> <dd class="createdby" itemprop="author" itemscope itemtype="https://schema.org/Person"> Written by <span itemprop="name">Jan Jaracz</span> </dd> <dd class="published"> <span class="icon-calendar" aria-hidden="true"></span> <time datetime="2017-07-11T05:05:00+00:00" itemprop="datePublished"> Published: 11 July 2017 </time> </dd> </dl> </div> <ul itemscope itemtype="https://schema.org/BreadcrumbList" class="breadcrumb"> <li class="active"> <span class="divider icon-location"></span> </li> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a itemprop="item" href="/web/20170715232853/https://community.joomla.org/" class="pathway"><span itemprop="name">Home</span></a> <span class="divider"> > </span> <meta itemprop="position" content="1"> </li> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a itemprop="item" href="/web/20170715232853/https://community.joomla.org/gsoc-2017.html" class="pathway"><span itemprop="name">GSOC - 2017</span></a> <span class="divider"> > </span> <meta itemprop="position" content="2"> </li> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" class="active"> <span itemprop="name"> A new publishing workflow for Joomla - Google Summer of Code 2017 </span> <meta itemprop="position" content="3"> </li> </ul> <!-- End Content --> </main> <aside class="span3"> <!-- Begin Right Sidebar --> <div class="well "><form action="https://web.archive.org/web/20170715232853/https://community.joomla.org/gsoc-2017.html" method="post" id="login-form" class="form-inline"> <div class="userdata"> <div id="form-login-username" class="control-group"> <div class="controls"> <div class="input-prepend"> <span class="add-on"> <span class="icon-user hasTooltip" title="Username"></span> <label for="modlgn-username" class="element-invisible">Username</label> </span> <input id="modlgn-username" type="text" name="username" class="input-small" tabindex="0" size="18" placeholder="Username"/> </div> </div> </div> <div id="form-login-password" class="control-group"> <div class="controls"> <div class="input-prepend"> <span class="add-on"> <span class="icon-lock hasTooltip" title="Password"> </span> <label for="modlgn-passwd" class="element-invisible">Password </label> </span> <input id="modlgn-passwd" type="password" name="password" class="input-small" tabindex="0" size="18" placeholder="Password"/> </div> </div> </div> <div id="form-login-secretkey" class="control-group"> <div class="controls"> <div class="input-prepend input-append"> <span class="add-on"> <span class="icon-star hasTooltip" title="Secret Key"> </span> <label for="modlgn-secretkey" class="element-invisible">Secret Key </label> </span> <input id="modlgn-secretkey" autocomplete="off" type="text" name="secretkey" class="input-small" tabindex="0" size="18" placeholder="Secret Key"/> <span class="btn width-auto hasTooltip" title="If you have enabled two factor authentication in your user account please enter your secret key. If you do not know what this means, you can leave this field blank."> <span class="icon-help"></span> </span> </div> </div> </div> <div id="form-login-remember" class="control-group checkbox"> <label for="modlgn-remember" class="control-label">Remember Me</label> <input id="modlgn-remember" type="checkbox" name="remember" class="inputbox" value="yes"/> </div> <div id="form-login-submit" class="control-group"> <div class="controls"> <button type="submit" tabindex="0" name="Submit" class="btn btn-primary login-button">Log in</button> </div> </div> <ul class="unstyled"> <li> <a href="/web/20170715232853/https://community.joomla.org/register.html"> Create an account <span class="icon-arrow-right"></span></a> </li> <li> <a href="/web/20170715232853/https://community.joomla.org/register.html?view=remind"> Forgot your username?</a> </li> <li> <a href="/web/20170715232853/https://community.joomla.org/register.html?view=reset"> Forgot your password?</a> </li> </ul> <input type="hidden" name="option" value="com_users"/> <input type="hidden" name="task" value="user.login"/> <input type="hidden" name="return" value="aHR0cHM6Ly9jb21tdW5pdHkuam9vbWxhLm9yZy9nc29jLTIwMTcvMzExOS1wdWJsaXNoaW5nLXdvcmtmbG93LWZvci1qb29tbGEuaHRtbA=="/> <input type="hidden" name="8b13da520bd49808424d308d2666a424" value="1"/> </div> </form> </div> <!-- End Right Sidebar --> </aside> </div> </div> </div> <!-- Footer --> <footer class="footer center"> <div class="container"> <hr/> <div class="social"> <ul class="soc"> <li><a href="https://web.archive.org/web/20170715232853/https://twitter.com/joomla" target="_blank" class="soc-twitter2" title="Joomla! on Twitter"><span class="element-invisible">Joomla! on Twitter</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.facebook.com/joomla" target="_blank" class="soc-facebook" title="Joomla! on Facebook"><span class="element-invisible">Joomla! on Facebook</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://plus.google.com/+joomla/posts" target="_blank" class="soc-google" title="Joomla! on Google+"><span class="element-invisible">Joomla! on Google+</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.youtube.com/user/joomla" target="_blank" class="soc-youtube3" title="Joomla! on YouTube"><span class="element-invisible">Joomla! on YouTube</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.linkedin.com/company/joomla" target="_blank" class="soc-linkedin" title="Joomla! on LinkedIn"><span class="element-invisible">Joomla! on LinkedIn</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.pinterest.com/joomla" target="_blank" class="soc-pinterest" title="Joomla! on Pinterest"><span class="element-invisible">Joomla! on Pinterest</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.instagram.com/joomlaofficial/" target="_blank" class="soc-instagram" title="Joomla! on Instagram"><span class="element-invisible">Joomla! on Instagram</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://github.com/joomla" target="_blank" class="soc-github3 soc-icon-last" title="Joomla! on GitHub"><span class="element-invisible">Joomla! on GitHub</span></a></li> </ul> </div> <div class="footer-menu"> <ul class="nav-inline"> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/"><span>Home</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/about-joomla.html"><span>About</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://community.joomla.org/"><span>Community</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://forum.joomla.org/"><span>Forum</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://extensions.joomla.org/"><span>Extensions</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://resources.joomla.org/"><span>Resources</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://docs.joomla.org/"><span>Docs</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://developer.joomla.org/"><span>Developer</span></a></li> <li><a href="https://web.archive.org/web/20170715232853/https://community.joomla.org/the-joomla-shop.html"><span>Shop</span></a></li> </ul> <ul class="nav-inline"> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/accessibility-statement.html">Accessibility Statement</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://www.joomla.org/privacy-policy.html">Privacy Policy</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://crowdin.com/projects/Joomla">Help Translate</a></li> <li><a href="https://web.archive.org/web/20170715232853/https://github.com/joomla/joomla-websites/issues/new?title=[jcomm]%20&body=Please%20describe%20the%20problem%20or%20your%20issue">Report an Issue</a></li> <li><a href="/web/20170715232853/https://community.joomla.org/login.html">Log in</a></li> </ul> <p class="copyright">© 2005 - 2017 <a href="https://web.archive.org/web/20170715232853/https://opensourcematters.org/">Open Source Matters, Inc.</a> All Rights Reserved.</p> <div class="hosting"> <div class="hosting-image"><a href="https://web.archive.org/web/20170715232853/https://www.rochen.com/joomla-hosting" target="_blank"><img class="rochen" src="https://web.archive.org/web/20170715232853im_/https://cdn.joomla.org/rochen/rochen_footer_logo_white.png" alt="Rochen"/></a></div> <div class="hosting-text"><a href="https://web.archive.org/web/20170715232853/https://www.rochen.com/joomla-hosting" target="_blank"><span dir="ltr">Joomla!</span> Hosting by Rochen</a></div> </div> </div> <div id="adblock-msg" class="navbar navbar-fixed-bottom hide"> <div class="navbar-inner"> <a class="close" data-dismiss="alert" href="#">×</a> <i class="icon-warning"></i> We have detected that you are using an ad blocker. The Joomla! Project relies on revenue from these advertisements so please consider disabling the ad blocker for this domain. </div> </div> </div> </footer> <script async src="//web.archive.org/web/20170715232853js_/https://ads.joomla.org/www/delivery/asyncjs.php"></script> </body> </html> <!-- FILE ARCHIVED ON 23:28:53 Jul 15, 2017 AND RETRIEVED FROM THE INTERNET ARCHIVE ON 08:50:07 Feb 27, 2025. JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE. ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C. SECTION 108(a)(3)). --> <!-- playback timings (ms): captures_list: 0.764 exclusion.robots: 0.04 exclusion.robots.policy: 0.023 esindex: 0.012 cdx.remote: 13.494 LoadShardBlock: 264.094 (3) PetaboxLoader3.datanode: 186.925 (4) PetaboxLoader3.resolve: 144.541 (2) load_resource: 149.556 -->