In the Control Panel change your theme to "beech - pale"
Tutorial:
Views:
Beech is available for download but does not ship with MindTouch as a default theme. As development continues the documentation will be updated to reflect the latest capabilities.
2/23/10 - New beech.zip available for download. Added PageRss(), PageRssComments(), PageViewSource() and some minor fixes. Documentation being updated shortly..
2/16/10 - Documented new Beech Functions. PageHasFiles(), PageSavePdf(), SiteTemplateTarget(), PageToc, PageHasToc() and more.... New beech.zip will be uploaded shortly. 1/21/10 - Beech.php updated - Added Templates to PageAdd(). Added $linkClass param to most link functions. Added comments throughout. Alphabetized all functions. Download beech.zip available.
1/13/10 - Beech Documentation is updated and the new beech.zip is available for download.
12/15/09 - Beech Documentation is undergoing an update, the latest Beech .zip will be available once the documentation is complete.
Provide much more granular control over the layout
Make PHP skinning functions understandable
Provide a more bare-bones HTML layout for designers to customize as they see fit
Require designers to modify just one CSS file
Make navigating the theme file system more intuitive
Implemented Changes
Separated most of the PHP & HTML Formerly only one markup file existed for each theme and its name matched that of the theme, ace.php, fiesta.php, deuce.php. Each of the aforementioned files were saturated with markup, PHP and JavaScript, much of which was not important to a designer. Additionally because these files were so cluttered visually parsing them was difficult, even for the trained eye. To solve this problem I moved the HTML content from the markup file to a new file called HTML.php. The new separated file is intended to provide designers with a more accurate and manageable skinning experience. I also located HTML.php inside the skin folder to provide more granular control over each skin. With this change now each skin can have custom markup that is independent of other skins.
Restructured the theme files When creating this new theme I wanted to make accessing its files more intuitive. With the other themes there are multiple files in numerous folders that are inserted into the skin. Custom CSS modifications were always stacked on top of a large underlying layer of MindTouch prescribed CSS. This approach limited flexibility and forced a very sculpted look & feel upon designers. In order to solve this problem I removed the base CSS files (_common.css, _style.css) in exchange for one CSS file, _style.css, which resides in the skin folder. I also shifted the _print.css, html.php and all images to the skin level. Again, this provides much more granular control over the look & feel of each individual skin and also eliminates any MindTouch defined CSS dependencies.
Renamed all the PHP skinning functions When I set out to change the theming process I immediately noticed that the PHP skinning functions in each markup file were inconsistent and could be challenging to a non-developer. For instance there were references to wfMsg(), $this->html(), $this->haveData(), $wgTitle, $wgUser and many more. While programmatically these functions all make sense they add an unnecessary burden on a designer. As an alternative I gave these functions new pseudo names that follow a simple pattern and consistent naming schema. For instance:
$this->SiteLogo();
$this->PageTags();
$this->PageEdit();
$this->PageAdd();
$this->PageTitle();
Consolidated CSS files Initially when we built MindTouch themes we planned for CSS modifications to be made as an addition to the existing CSS. While this enabled very rapid theme development it also limited the flexibility of the design and greatly raised the skill level required to completely customize MindTouch. Additionally it also made many assumptions about how MindTouch should look and generally limited the scope of customization to aesthetic CSS such as colors, fonts, etc. As a solution I decided to completely remove the base CSS files (_common.css and _style.css) and only reference the _style.css in the skin folder. I will add, however, that _content.css will remain, as content styling has proven to be the most challenging portion of creating a new MindTouch skin. The _content.css file is pre-populated with default content CSS but can be modified on a per skin basis.
Eliminated unnecessary structure In order to make theming more flexible there were some deeper consideration required for the PHP skinning functions. Whereas the older PHP skinning functions contained a large amount of predefined HTML I opted to remove most of this HTML and place it directly in HTML.php. This may seem fairly useless but it does shift the control of the HTML into the hands of the designer. For instance I removed extra wrapper <div>, <li> and <span> elements that were added for CSS identification or to meet some assumed function. Ultimately now you can decide if your logout button is in a dropdown list, wrapped in <div class=”logout-wrapper”> or just by itself.
Thank you very much Howleyda! I've yet to take an inside look at beech, but all of the development/design thinking which went into gets resounding applause. It answers, or at least speaks to, many of the complaints I've muttered to myself as I attempt to learn my way around the skinning arena.
There is one itch not scratched, perhaps outside the purvue of this project: how does one develop and test a new skin with impacting users?
@maphew - Ok, I guess I cave and add a screenshot. You bring up an excellent question about testing a new skin without impacting existing users. There isn't a preview mode so for now I would recommend simply testing it locally on a MindTouch VM installation. This is the approach that I use for testing, customizing and creating MindTouch skins
maybe just in my own download, but in the revision from 23:24, 18 Sep 2009 the SiteUserAuth function in beech.php is missing while being used in html.php. This results in a more or less empty page. I checked an older revision( 20:57, 17 Sep 2009) for that function but couldn't find it. I can build one myself, but it would be nice if the file here can be updated by the "offical" one...
@baum, Unfortunately I removed SiteUserAuth() in favor of separating it into more granular functions. I added in UserLogin(), UserLogout(), UserName() and UserAnonymous() which were all utilized in SiteUserAuth. If you still need the function I will post it on the php page would I would recommend using this functions as SiteUserAuth is most likely gone.
I can work just fine with UserLogin(), UserLogout(), ... just when you download the beech.zip it comes with a html.php that still uses the SiteUserAuth() function. You might want to update the html.php attached. Unless i am totally wrong of course. Anyways a good skin (i am working to modify it a bit) and even better documentation. Thanks!
@baum, I believe that I fixed the UserAuth() issue. I have uploaded the newest files to this page. In addition to removing the UserAuth() I also added two new functions: UserUri() and UserRegister(). I will document them first thing tomorrow. If you get the opportunity to download the latest beech files can you let me know if you run into any issues.
Howleyda, the skin break a few (important) templates. Namely the ones (at least the bug and issue tracker template) with creating, updating and reading page properties. Any idea where to look for the bug?
@baum, how is it breaking the functionality? Do they just look peculiar or do they not work? Is it common across all beech skins or just the windjammer skin? Let me know if you find any answers to these questions, it will really help me troubleshoot.
@Howleyda, when using Columbia or windjammer (haven't tested the rest yet) page properties are neiter read, created or updated at all. The test scenario i use is the bug and issue tracker (from blakeh) but also simpler examples didnt work while all work under ace and fiesta (others not tested). And yes, they do not work at all, because page properties are essential to those templates.
Ok, just tested... pale works fine, while Columbia doesn't.
@Howleyda As of today, the beech skin doesn't display images attachments. I added this line in beech.php at line 548 <code start> protected function PageGallery() {
$this->html('gallerytext');
}
</code end>
This will add the "old" image gallery view. I would like to have images also included in the filelist as it is in MindTouch 9.12. Is it possible, what function does I have to modify?
@intertesto, thank you for bringing that to my attention. I am not really a fan of the image gallery and have often opted for utilizing the filelist to display all attachments. I will ensure that the PegeGallery() functions gets into beech for future updates. As far as the filelist including images, you will need to upgrade to 9.12. Displaying the images in the filelist is now the default behavior.
Just out of curiosity, what sort of stuff are you doing with beech? Is it working well for you?
@Howleyda Beech is a great work! I think the last code *require* an upgrade to 9.12, for example the popup menu with file command didn't show up. Unlucky I had to swith to an old version of beech that is compatible with 9.08.3. I will document what I did, a short description is: add an url to any request that I could intercept from dekiscript (added this at the top of b<?php $_GET["beechuri"]=$_SERVER['REQUEST_URI'];?>) html.php. Added some div and inject a dekiwiki page ( <div id="menu-right"> <?php $at = new Article(Title::newFromUrl("Web/Xsys/SkinRight")); if($at->loadContent()) echo $at->getContent();?> </div>). This whay I can have some section of the template that are real mindtouch pages that I could program in DekiScript, I can also get the parameters (beechuri) and make a case statement over it to skin different section of the website.
@intertesto, that sounds really interesting! Once you have completed your design I would love to take a look at it to see some of the unique things you're doing. Keep me posted on your progress and let me know if you have any questions or need any help from my side.
There is one itch not scratched, perhaps outside the purvue of this project: how does one develop and test a new skin with impacting users?
And as crb said, screenshots are requested.
-Damien
Let me know
Damien
Damien
thanks
Damien
Thanks for your time
Damien
Ok, just tested... pale works fine, while Columbia doesn't.
$this->html('gallerytext');
}
</code end>
This will add the "old" image gallery view. I would like to have images also included in the filelist as it is in MindTouch 9.12. Is it possible, what function does I have to modify?
Just out of curiosity, what sort of stuff are you doing with beech? Is it working well for you?
thanks for your input
Damien
Gianluca
Damien