Documentation Wiki

Site Tools


roadmap:glfusion120

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
roadmap:glfusion120 [2010/02/15 10:02]
Mark
— (current)
Line 1: Line 1:
-======= glFusion v1.2.0 Development Roadmap / Design Ideas ======= 
- 
-The purpose of this page is to document the features planned for glFusion v1.2.0. The release timeframe has yet to be determined.  ​ 
- 
-====== Theme Enhancement - Moved to v1.2.0 ====== 
- 
-Proposed by Mark Evans & Eric Warren 
- 
-===== Objective ===== 
- 
-Develop a method to allow the site administrator to manage themes for their site.  Enhance Site Tailor with a ‘Theme’ tab that will provide the following options: 
- 
-  * List available themes (with thumbnail and zoom) 
-  * Ability to select default theme 
-  * Ability to select if user can override 
-  * Ability to enable / disable themes 
-  * Ability to set permissions on who can use / view theme 
-  * Ability to upload new theme / Scan for new themes 
- 
- 
-===== Design Details ===== 
- 
-**Theme Database** 
- 
-To accomplish many of the goals, glFusion must implement a theme table in the database. ​ Proposed structure is: 
- 
-  Id 
-  Name 
-  Description 
-  Enabled 
-  Visible To 
- 
- 
-===== Core Modifications ===== 
- 
-Several core functions would be modified to pull theme data from the database: 
- 
-  * COM_getThemes() 
-  * configmanager_select_theme_helper() 
-  * lib-common.php – where it checks and sets the user’s theme. This will need to be enhanced to validate the theme is available (exists, is active, has permissions,​ etc.) 
- 
-Will leverage existing config.class.php functions to update default theme. 
- 
- 
-===== Site Tailor Enhancements ===== 
- 
-A new tab will be created labeled, Themes. ​ This tab will display a list of existing themes. ​ 
- 
-The thumbnail view will use some descriptive icons to provide a quick status. 
- 
-{{ :​roadmap:​themeeditor_mockup.png |Theme Editor Mockup}} 
- 
-  * Clicking on the thumbnail will open a larger view image. 
-  * The orange alert icon will display if the theme is not "​certified"​ for the current version of glFusion. This won't disable the theme, but will just be a visual reminder. 
-  * A panel either to the right or below the image will house some informational icons about the theme. 
-    * "​Running"​ status: green for site default, blue for available to be selected by users, and grey for disabled (no permissions for regular users). 
-    * "​Lightswitch"​ icon to go to expanded settings screen where they can edit permissions,​ etc. (see below for more info). 
-    * "​Info"​ icon which on hover displays the theme name, author, and description. 
-    * NEED TO ADD - Edit icon to send them into the online theme editor that will allow them to edit .thtml files and automatically save them in the appropriate /custom directory. 
-    * NEED TO ADD - Clone icon to create a clone of the theme. 
-    * NEED TO ADD - Delete icon on this panel? Or have the delete option within the Settings screen? 
-    * NEED TO ADD - Link to online theme documentation wiki. 
-At the bottom of the main theme thumbnail page will also be an upload box to allow the administrator the option to upload new themes. ​ Themes must be in the ‘glfusion’ format (described later). 
-\\ 
-\\ 
-Edit Settings Screen 
- 
-  * Theme Name    Theme Description ​  ​Enabled ​  ​Default ​  ​Visible To:    Delete 
-  * Theme Name – The actual name of the theme. - not configurable,​ just pulled from theme.ini or database. 
-  * Theme Description – A brief description of the theme. - not configurable,​ just pulled from theme.ini or database. 
-  * Theme Version – A version number for the theme. - not configurable,​ just pulled from theme.ini or database. 
-  * Supported glFusion version – What version of glFusion is this theme designed for? - not configurable,​ just pulled from theme.ini or database. 
-  * Enabled – A checkbox to denote if the theme is active or not 
-  * Default – A Radio button used to select the default theme 
-  * Visible To – A list of all glFusion groups with the visible to group selected. ​ NOTE: If the default radio button is selected, this value must be All. 
-  * Delete – A red X icon that allows the administrator to remove the theme. 
- 
- 
-Another option to consider is a clone or new option. This would allow the administrator to create a new theme interactively;​ they would specify the name, description,​ visible to options and then have the ability to choose a ‘source’ theme as the base. On save, this would add the theme to the database, create the new theme directory and copy over the ‘source’ files. ​ Eric wants to promote the practice he started with Nouveau 1.4.1 where you only need to copy the modified template files over.  The remaining templates stay in the base nouveau/ directory. ​ Given this objective, there may not be any source files copied during this operation. 
- 
-Ultimately, a directory listing to transverse the theme directory files and an online .thtml / .css editor screen would be valuable as well.  This would allow an admin to work on a layout live, without having to download local copies of the files, edit, save, re-upload, etc. This is meant more for tweaking, or copying to another theme like mentioned above, it's not intended for creating an entire theme from scratch. 
- 
-===== Theme Packaging ===== 
- 
-Themes must be packaged with a theme.ini file (we may need a better name) that will contain: 
- 
-  * Theme Name 
-  * Theme Description 
-  * Theme Version 
-  * Theme Author 
-  * Theme Support Site 
-  * glFusion version supported 
-  * Theme Thumbnail 
- 
- 
-This file will be used to populate the database when a new theme is uploaded. 
- 
-Themes should use a standard set of CSS class names. This will allow integration with Site Tailor for color customizations,​ etc.  Will need to document this standard. 
- 
-===== Impact ===== 
- 
-This should not have a great impact on the core code. Although a new database table will be created, a stock Geeklog install would not require this table and would not conflict with this implementation. 
- 
-Site Tailor will require some core modifications to become ‘theme aware’. ​ The goal will be to allow different menu colors, images based on the theme. ​ 
- 
-As glFusion continues to evolve, it will be more difficult to have themes that can work with both Geeklog and glFusion. ​ Since Site Tailor is glFusion only and the themes will become more reliant upon Site Tailor, the themes will not be compatible with Geeklog. 
- 
- 
-===== Theme Customizations ===== 
- 
-Site Tailor should have the ability to customize various attributes of a theme. ​ These should include: 
- 
-  * colors 
-  * fonts 
-  * font size 
-  * navigation block width 
-  * extra block width 
-  * fluid or fixed width 
-  * logo / slogan positioning adjustment 
- 
-We need to keep performance in mind, we don’t want to break this down to multiple .css files to minimize the number of calls a browser must make to initially load the page.  ​ 
- 
-A possible solution is to treat the style.css file as a template, build it dynamically from the various attributes defined in Site Tailor and then output to the browser. ​ We can create a ‘serial number’ for the style that can be passed in the <​link>​ statement, so it will look like: 
- 
-<link rel="​stylesheet"​ type="​text/​css"​ href="​http://​gll.ecsnet.org/​layout/​nouveau/​getstyle.php?​ver={serial_number}"​ title="​nouveau"​ /> 
- 
-This will allow the browser to recognize that a change has been made to the style sheet and force a reload. 
- 
-Leveraging instance caching, we can reduce the number of DB calls needed to build the styles. 
- 
-Need to validate that passing styles via PHP call will cache locally in the browser. 
- 
-==== Site Color Picker ==== 
- 
-In anticipation of creating a site-wide color picker in Site Tailor (functioning like the Menu Builder color picker), we've consolidated the css color information into one style-colors.css file. The intent in making it a separate css file is that it allows one to easily override the consolidated color for any given element simply by adding !important to the end of their css value in the regular stylesheet (where we've left all the individual color properties in tact). 
- 
-In addition to the color picker which will provide for a near infinite set of color combinations (and you thought Chameleon'​s 88 thousand possible combinations were a lot! :-) ) we want to provide a drop down selector box with some pre-defined color styles spanning a wide range of the color gamut. ​ 
-==== Site Theme Editor ==== 
- 
-We could continue to itemize out every available option, (like Chameleon did) but ultimately I (Eric) feel that allowing for complete control of editing files through an online interface to be the most flexible in allowing customizations. 
- 
-By providing an Edit screen that has a file tree browser, and a text editor window (that automatically styles html or css code for ease of readibility!) that allows live edits from the site to the .thtml / .css / .js files within the /layout directory, I think that this would help out a lot of admins, and give them a cutting edge interface to customize their site. Also look into [[http://​marijn.haverbeke.nl/​codemirror/​index.html|CodeMirror]],​ and [[http://​code.google.com/​p/​syntaxhighlighter/​|Google Syntaxhighlighter]],​ [[http://​www.cdolivet.net/​index.php?​page=editArea&​sess=0a26823c575ab651525688fcf9327fed|EditArea]],​ [[http://​www.mdk-photo.com/​Editor/​|MDKeditor]] and [[http://​dean.edwards.name/​my/​examples/​star-light/​|Dean Edwards highlighting scripts]] also this hack integration for FCKeditor [[http://​www.fckeditor.net/​forums/​viewtopic.php?​f=5&​t=8381&​hilit=syntax+highlighting|here]] and [[http://​en.wikipedia.org/​wiki/​Comparison_of_Javascript-based_source_code_editors|this comparison list]] of javascript based syntax highlighting. (A quick glance looks like CodeMirror, EditArea, and MDKeditor are the most promising.) 
- 
-Also, by automatically saving their changed files in the appropriate /custom directory, we basically auto-manage their customizations always leaving the base file in tact and just saving over the customized one! ...How cool could THAT be! If they go to open a file, the system should be smart enough to detect if they already have a custom version in place and ask to edit that, or the original one. 8-) 
- 
-==== vThemes Rolled In ==== 
-Also, incorporate base functionality from vThemes. See [[http://​tracker.glfusion.org/​view.php?​id=129]] and [[http://​tracker.glfusion.org/​view.php?​id=35]] for some reminder info. 
- 
-====== Additional Themes ====== 
-Proposed by Eric Warren 
- 
-Once the functionality in Site Tailor has matured, I would like to include additional themes in the default install of glFusion that use Site Tailor'​s features. These additional themes would only need a very small footprint, as they would only include files that were different from the default Nouveau theme. 
- 
-Remember when Nouveau 1.0 was released for Geeklog, and it depended upon the Caching Template Library to pull the other .thtml and image files from the default professional/​ directory? I want to continue this practice, and since we have control over the core now, we can fix all the direct calls to images in the core. 
- 
-I know what Joe is thinking, "This wasn't the intent of the CTL and it will actually slow down the template rendering..."​ :-) My response is that I think it is a fair tradeoff. I don't think there is much of a noticeable performance hit, and the benefits of eliminating redundant files on the server, (and shrinking the potential attack surface), making it easier to develop a theme, etc. make it worth while in my mind to pursue this path. 
- 
-As far as themes to be included goes, that is still being explored. I would like to have a variety of layouts geared towards different applications - blogs, e-commerce, social networking, business, etc. I have lots of ideas and inspiration,​ but if anyone has a theme that they would like to see in glFusion, feel free to [[http://​www.glfusion.org/​profiles.php?​uid=259|let me know]]. 
-====== Additional MooTools Widgets ====== 
-Proposed by Eric Warren 
- 
-Along with the additional themes above, I would like to beef up the MooTools based Widgets functionality in glFusion, and make it as user-friendly as possible to configure and deploy. This will probably mean some lib-common.php or lib-custom.php integration to plug deeper into the static pages plugin. 
- 
-I envision being able to create a static page or a block with a certain ID that would be "​Widget aware" that either by itself, or combined with other similar pages, be prepared for display by a particular widget. 
- 
-But regardless of this, I have lots of bookmarks of scripts that would make a great addition to glFusion: FIXME - list some of the highest priority. 
- 
-[[http://​www.astrog.be/​mootools/​boing/​index.html]]\\ 
-[[http://​www.phatfusion.net/​multibox/​]]\\ 
-[[http://​madhatted.com/​assets/​2008/​2/​22/​campaign_speeches_in_tag_clouds.html]]\\ 
-[[http://​www.phatfusion.net/​roundedcorners/​]]\\ 
-[[http://​www.phatfusion.net/​sortabletable/​]]\\ 
-[[http://​digitarald.de/​project/​roar/​]]\\ 
-[[http://​digitarald.de/​project/​fancyupload/​2-0/​showcase/​photoqueue/​]]\\ 
-[[http://​www.dirk-hoeschen.de/​temp/​keyboard/​table.html]]\\ 
-[[http://​zendold.lojcomm.com.br/​ifisheye/​]]\\ 
-[[http://​prototype.tangerinesmash.com/​ImageScrubber/​ImageScrubber.html]]\\ 
-[[http://​zendold.lojcomm.com.br/​icarousel/​]]\\ 
-[[http://​luistar15.byethost13.com/​datePicker/​]]\\ 
-the mooflow js integration with MG - [[http://​www.glfusion.org/​forum/​viewtopic.php?​showtopic=11587&​topic=11587#​11587]]\\ 
-[[http://​www.mibhouse.org/​pokemon_jojo/​public/​js/​pbb-magicwheel/​pbb-magicwheel.html]]\\ 
-[[http://​davidwalsh.name/​mootools-form-field-default-plugin]] 
-====== Add Poll Autotags to Poll Plugin ====== 
- 
-Proposed by Laugh & Eric Warren & Mark Evans 
- 
-Add a poll autotag to the native Polls plugin so that polls can be put in stories, static pages, etc. 
- 
-Autotags: 
- 
-poll:  Creates a text link to a poll. Parameters include ID and optional text string. 
- 
-poll-vote: Embeds a poll for voting. Parameters include ID, Width (optional) and ShowAll (optional) which shows all questions of poll. If poll is closed then results shown with message indicating status of poll. 
- 
-poll-result:​ Embeds a poll results. Parameters include ID, Width (optional), Type (optional) which allows for percentage or bar graph results. 
- 
-Feature Request: A flag on a poll that says it is EMBEDDED ONLY. Such polls do not display though public_html/​polls/​index.php. They only exist when displayed using the autotag. This way the context of an embedded poll is not violated by someone going to the polls plugin pages. It would also be nice if a polls.author feature were added so that anyone with polls.author could create hidden polls for embedding purposes. 
- 
-====== Limited Support for the IE6 Browser ====== 
- 
-Proposed by Eric Warren, Mark Evans, and Mark Howard 
- 
-For the standard layouts and other core functionality that ships with glFusion, we no longer intend to go out of our way to provide compatibility with the IE6 browser. We will continue to ship layouts with the option to enable or disable the [[glfusion:​widgets#​ie6_warning_javascript | ie6warning compatibility javascript]]. 
  
roadmap/glfusion120.1266249721.txt.gz · Last modified: 2015/07/11 17:18 (external edit)