{"id":15,"date":"2010-12-22T18:26:04","date_gmt":"2010-12-22T23:26:04","guid":{"rendered":"http:\/\/xlinesoft.com\/blog\/?p=15"},"modified":"2010-12-23T01:36:09","modified_gmt":"2010-12-23T06:36:09","slug":"new-features-in-phprunner60asprunnerpro70","status":"publish","type":"post","link":"https:\/\/xlinesoft.com\/blog\/2010\/12\/22\/new-features-in-phprunner60asprunnerpro70\/","title":{"rendered":"New features in PHPRunner6.0\/ASPRunnerPro7.0"},"content":{"rendered":"<p>We are taking yet another step toward creating the best-in-class code generator. Here is what you can expect to see in the next release of PHPRunner6.0\/ASPRunner7.0.<\/p>\n<h2>New layouts<\/h2>\n<p>Let me start by introducing the layout elements.<\/p>\n<h3>Blocks<\/h3>\n<p>Blocks are high-level page elements. A typical List page consists of four blocks. Some blocks can be empty.<\/p>\n<p><a href=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/ThreeColumnLayout.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-28\" title=\"ThreeColumnLayout\" src=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/ThreeColumnLayout.png\" alt=\"\" width=\"600\" height=\"424\" srcset=\"https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/ThreeColumnLayout.png 600w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/ThreeColumnLayout-300x212.png 300w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p><!--more-->Here is a typical Amsterdam layout List page. Note that the right block is empty. (image is clickable)<\/p>\n<p><a href=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/Blocks.png\"><\/a><a href=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/Blocks.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-25\" title=\"Blocks\" src=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/Blocks.png\" alt=\"\" width=\"660\" height=\"302\" \/><\/a><\/p>\n<h3>Containers<\/h3>\n<p>Containers are visual elements within the blocks. Each container has a border, background color and other properties. Containers are always stacked inside the block one under another.<\/p>\n<p>On the pictur eabove\u00a0 the header block consists of two containers (buttons and  search), left block has one container and the center block has four  containers (buttons, message placeholder, grid and pagination).<\/p>\n<p><a href=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/Containers.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-27\" title=\"Containers\" src=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/Containers.png\" alt=\"\" width=\"700\" height=\"200\" srcset=\"https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/Containers.png 700w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/Containers-300x85.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><\/p>\n<h3>Bricks<\/h3>\n<p>Bricks are page elements that carry a certain functionality. Each container hasone or more bricks that are arranged either vertically or horizontally. A typical brick would be a search box, pagination control, the grid, CAPTCHA, &#8220;records found&#8221; etc.<\/p>\n<p><a href=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/Bricks.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-26\" title=\"Bricks\" src=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/Bricks.png\" alt=\"\" width=\"700\" height=\"200\" srcset=\"https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/Bricks.png 700w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/Bricks-300x85.png 300w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/a><\/p>\n<p>Container 2 of the Header block contains four bricks: search, details found, pages, and records per page.<\/p>\n<h3>Internal layout structure<\/h3>\n<p>The purpose of new layouts is to simplify and improve the page modifications. This will allow the users to easily create their own templates as well as import existing templates such as Wordspress or Joomla themes. Layout structure doesn&#8217;t contain any HTML code- only\u00a0 blocks, containers and bricks definition.<\/p>\n<p>Here is a standard Amsterdam layout page again.<\/p>\n<p><a href=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/amsterdam.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-24\" title=\"amsterdam\" src=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/amsterdam.png\" alt=\"\" width=\"690\" height=\"326\" srcset=\"https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/amsterdam.png 986w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/amsterdam-300x141.png 300w\" sizes=\"(max-width: 690px) 100vw, 690px\" \/><\/a><\/p>\n<p>Here is how this layout is represented in pseudocode.<\/p>\n<pre lang=\"python\">beginblock top\r\n   begincontainer 1\r\n      brick hl loggedas\r\n      brick hl toplinks\r\n   endcontainer\r\nendblock \r\n\r\nbeginblock left\r\n   begincontainer vertical 2\r\n      brick color1 vmenu\r\n      brick color2 vsearch1\r\n      brick color1 vsearch2\r\n      brick color2 details_found\r\n      brick color1 page_of\r\n      brick color1 recsperpage\r\n   endcontainer\r\nendblock \r\n\r\nbeginblock center\r\n   begincontainer horizontal 3\r\n       brick left addbuttons\r\n       brick left recordcontrols\r\n   endcontainer\r\n   begincontainer horizontal 4\r\n       brick center message\r\n   endcontainer\r\n   begincontainer grid 5\r\n       brick hgrid\r\n   endcontainer\r\n   begincontainer horizontal 6\r\n       brick center pagination\r\n   endcontainer\r\nendblock<\/pre>\n<p>A few notes:<\/p>\n<ul>\n<li>brick hl loggedas &#8211; login brick, horizontal, left aligned<\/li>\n<li>brick hc pagination &#8211; pagination, horizontal, centered<\/li>\n<li>begincontainer grid 5 &#8211; grid container ( a special type of container that stores the grid brick)<\/li>\n<\/ul>\n<p>Based on this pseudocode PHPRunner generates HTML files and uses it to build the pages. When you design a new layout you can either use the pseudocode or modify the HTML layout file.<\/p>\n<p>As you can see, the layout modification becomes very straightforward. You can easily move any container or brick to another block. For instance, you can rename &#8220;beginblock left&#8221; to &#8220;beginblock right&#8221; to move the menu and the search panel to the right.<\/p>\n<h2>Style Editor<\/h2>\n<p>New version is going to introduce the Style Editor where you can modify the visual appearance of each layout element and instantly preview the results.\u00a0 Each style can be applied to any layout.<\/p>\n<h2>Mobile Template<\/h2>\n<p>In this day and age not having a mobile version of your website should be considered a crime. We&#8217;ll be addressing this issue in PHPRunner 6\/ASPRunnerPro 7. There are still some unanswered questions like &#8216;should we generate a mobile version of the website automatically or there needs to be a separate project that uses mobile template&#8217;. We&#8217;ll keep you posted on the progress in this area.<\/p>\n<h2>New Enterprise Edition features<\/h2>\n<p>We plan to extend the Enterprise Edition by adding a couple of heavily requested features:<\/p>\n<p>&#8211; Active Directory integration. Dynamic permissions tied directly to AD.<br \/>\n&#8211; Option to encode the data in selected tables and fields<\/p>\n<h2>Miscellaneous<\/h2>\n<p>There will be other new features and improvements in this version as well.<\/p>\n<p>One of them is intellisense in the Events Editor. For those who are not familiar with modern IDEs, intellisense is a convenient way to access the functions&#8217; descriptions and variables. The Events Editor recognizes the functions and variables and will pop up the function description or the list of available variables to choose from.<\/p>\n<p>Here are a few examples:<\/p>\n<p><strong>Data Access Layer, database field names<\/strong><\/p>\n<p><a href=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/dal.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-40\" title=\"dal\" src=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/dal.png\" alt=\"\" width=\"625\" height=\"461\" srcset=\"https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/dal.png 781w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/dal-300x221.png 300w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/dal-150x110.png 150w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/dal-400x295.png 400w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a><\/p>\n<p><strong>PHP functions<\/strong><\/p>\n<p><strong><a href=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/phpcalltips.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-42\" title=\"phpcalltips\" src=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/phpcalltips.png\" alt=\"\" width=\"625\" height=\"461\" srcset=\"https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/phpcalltips.png 781w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/phpcalltips-300x221.png 300w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/phpcalltips-150x110.png 150w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/phpcalltips-400x295.png 400w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a><br \/>\n<\/strong><\/p>\n<p><strong>Javascript API functions<\/strong><\/p>\n<p><strong><a href=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/jscontrols.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-41\" title=\"jscontrols\" src=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/jscontrols.png\" alt=\"\" width=\"625\" height=\"461\" srcset=\"https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/jscontrols.png 781w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/jscontrols-300x221.png 300w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/jscontrols-150x110.png 150w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/jscontrols-400x295.png 400w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a><br \/>\n<\/strong><\/p>\n<p><strong>Field names<\/strong><\/p>\n<p><strong><a href=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/values.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-43\" title=\"values\" src=\"http:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/values.png\" alt=\"\" width=\"625\" height=\"461\" srcset=\"https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/values.png 781w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/values-300x221.png 300w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/values-150x110.png 150w, https:\/\/xlinesoft.com\/blog\/wp-content\/uploads\/2010\/12\/values-400x295.png 400w\" sizes=\"(max-width: 625px) 100vw, 625px\" \/><\/a><br \/>\n<\/strong><\/p>\n<h2>Localization<\/h2>\n<p>We have started the translation of PHPRunner\/ASPRunnerPro to other languages. If you are PHPRunner or ASPRunnerPro customer and willing to help us translate software into your language drop us a note at <a href=\"http:\/\/support.xlinesoft.com\">http:\/\/support.xlinesoft.com<\/a>.<\/p>\n<h2>Release date<\/h2>\n<p>The exact dates of the new release have not been finalized and will be announced as soon as become available. <a href=\"http:\/\/feeds.feedburner.com\/XlinesoftBlog\">Subscribe to RSS feed<\/a> to stay in touch. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are taking yet another step toward creating the best-in-class code generator. Here is what you can expect to see in the next release of PHPRunner6.0\/ASPRunner7.0. New layouts Let me start by introducing the layout elements. Blocks Blocks are high-level page elements. A typical List page consists of four blocks. Some blocks can be empty.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[6,5,7],"_links":{"self":[{"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/posts\/15"}],"collection":[{"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/comments?post=15"}],"version-history":[{"count":39,"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/posts\/15\/revisions"}],"predecessor-version":[{"id":33,"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/posts\/15\/revisions\/33"}],"wp:attachment":[{"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/media?parent=15"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/categories?post=15"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xlinesoft.com\/blog\/wp-json\/wp\/v2\/tags?post=15"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}