<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Purpleurbia.com &#187; SilverStripe</title>
	<atom:link href="http://purpleurbia.com/category/web/silverstripe/feed/" rel="self" type="application/rss+xml" />
	<link>http://purpleurbia.com</link>
	<description></description>
	<lastBuildDate>Wed, 26 May 2010 13:17:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Finish your SilverStripe portfolio</title>
		<link>http://purpleurbia.com/finish-your-silverstripe-portfolio/</link>
		<comments>http://purpleurbia.com/finish-your-silverstripe-portfolio/#comments</comments>
		<pubDate>Wed, 26 May 2010 13:17:25 +0000</pubDate>
		<dc:creator>mary fran</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[SilverStripe]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[portfolio]]></category>

		<guid isPermaLink="false">http://purpleurbia.com/?p=580</guid>
		<description><![CDATA[We already finished the PHP and have a design, now let&#8217;s finish!

We need to create our templates in a special format, but it can be edited in any HTML editor. If you want Dreamweaver to recognize the .ss file extension as HTML you need to follow these instructions.
If putting together the HTML is not really [...]]]></description>
			<content:encoded><![CDATA[<p>We already <a href="http://purpleurbia.com/building-a-web-portfolio-using-silverstripe/">finished</a> the PHP and have <a href="http://originalmoxie.net">a design</a>, now let&#8217;s finish!</p>
<p><span id="more-580"></span></p>
<p>We need to create our templates in a special format, but it can be edited in any HTML editor. If you want Dreamweaver to recognize the .ss file extension as HTML you need to follow <a href="http://kb2.adobe.com/cps/164/tn_16410.html">these</a> instructions.</p>
<p>If putting together the HTML is not really your thing, I would suggest heading over to SmashingMagazine&#8217;s list of <a title="Free HTML templates from Smashing Magazine" href="http://www.smashingmagazine.com/2008/12/01/100-free-high-quality-xhtmlcss-templates/">free HTML templates</a>.</p>
<p>Also, I am not posting my CSS files. You can take this raw HTML and use CSS to do your own layout (or you can even just use the loops in the .SS file and use different HTML markup).</p>
<p>The .ss file is basically just an HTML file. There is one .ss file that holds the header and footer, and then various other files that handle the middle of the page. You can find better explanations of the templating language <a title="SilverStripe Documentation" href="http://doc.silverstripe.org/">here</a>.</p>
<p>We need to create only one page-specific template &#8211; the PortfolioHolder.ss template. We do not need a PortfolioPage template, as we are displaying all portfolio items on one page.</p>
<p>The PortfolioHolder.ss template is as follows:</p>
<pre class="brush: xml;">&lt;div class=&quot;hr grid_12 clearfix&quot;&gt;&amp;nbsp;&lt;/div&gt;

		&lt;!-- Catch Line and Link --&gt;
			&lt;h2 class=&quot;grid_12 caption clearfix&quot;&gt;My &lt;span&gt;portfolio&lt;/span&gt; is pretty darn awesome, don't you think?&lt;/h2&gt;

		&lt;div class=&quot;pr grid_12 clearfix&quot;&gt;&amp;nbsp;&lt;/div&gt;
        &lt;% control Children %&gt;
        	&lt;div class=&quot;grid_3 textright&quot; &gt;
				&lt;span class=&quot;meta&quot;&gt;$NavSubTitle&lt;/span&gt;
				&lt;h4 class=&quot;title &quot;&gt;$Title&lt;/h4&gt;
				&lt;div class=&quot;hr clearfix dotted&quot;&gt;&amp;nbsp;&lt;/div&gt;
				&lt;p&gt;$Content&lt;/p&gt;
			&lt;/div&gt;
            &lt;div class=&quot;grid_9&quot;&gt;
				&lt;% control PortfolioProjects %&gt;
				&lt;a class=&quot;portfolio_item float thickbox&quot; href=&quot;$Fullsize.URL&quot; title=&quot;$Caption&quot;&gt;
				&lt;em&gt;$Title&lt;/em&gt;
                &lt;img src=&quot;$Thumbnail.URL&quot; /&gt;
				&lt;/a&gt;
				&lt;% end_control %&gt; &lt;!--end PortfolioProjects --&gt;
            &lt;/div&gt;
            &lt;% end_control %&gt;&lt;!--end Children--&gt;
		&lt;/div&gt;</pre>
<p>What we are doing here is looping through the page&#8217;s children (the PortfolioPages), displaying their info and then looping through the dataobjects (PortfolioProjects) that we have associated with each of those pages. We use the $FullSize.URL method of retrieving the images, so that we can add alt text to our images.</p>
<p>This file goes in the Templates/Layout folder. I am leaving the rest of the theming to you, but now you know how to set up all the crucial bits for your portfolio.</p>
]]></content:encoded>
			<wfw:commentRss>http://purpleurbia.com/finish-your-silverstripe-portfolio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building a web portfolio using SilverStripe</title>
		<link>http://purpleurbia.com/building-a-web-portfolio-using-silverstripe/</link>
		<comments>http://purpleurbia.com/building-a-web-portfolio-using-silverstripe/#comments</comments>
		<pubDate>Wed, 19 May 2010 14:19:04 +0000</pubDate>
		<dc:creator>mary fran</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[SilverStripe]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[2.4]]></category>
		<category><![CDATA[portfolio]]></category>

		<guid isPermaLink="false">http://purpleurbia.com/?p=564</guid>
		<description><![CDATA[I know, we all love WordPress, but sometimes, you just need to try something else.
The inspiration for this post is OrigninalMoxie. It is my personal portfolio, and I built it in SilverStripe in about half the time it would have taken me in WordPress &#8211; and it is only the third SilverStripe site that I [...]]]></description>
			<content:encoded><![CDATA[<p>I know, we all love WordPress, but sometimes, you just need to try something else.</p>
<p><span id="more-564"></span>The inspiration for this post is <a href="http://originalmoxie.net/">OrigninalMoxie</a>. It is my personal portfolio, and I built it in SilverStripe in about half the time it would have taken me in WordPress &#8211; and it is only the third SilverStripe site that I have built. Now, I did get help from their community when building this site, but that is quite OK. I am going to pass their insights on to you.</p>
<p>What first needs to happen is you need to install SilverStripe. It is almost as easy to install as WordPress, but it actually requires a few extras.</p>
<p>To be able to run SilverStripe, you need to have PHP5 enabled on your server. And, you might need a little bit of patience.</p>
<p>First, download SilverStripe and upload it to your webhost. Navigate to yoursite.com and follow the install directions. For the record I am pretty sure that it always says that it cannot determine if Mod_Rewrite is enabled. (At least on MediaTemple).</p>
<p>Once you have your shiny new installation of SilverStripe up and running, it is time for the fun stuff&#8230;writing the PHP functions that make the site work. This is the beauty of SilverStripe &#8211; the ability to write custom data &amp; page types with a few lines of code.</p>
<p>You will also need to install the <a title="SilverStripe Dataobjectmanager" href="http://www.silverstripe.org/dataobjectmanager-module/">Dataobjectmanager</a> and <a title="SilverStripe SWF upload" href="http://www.silverstripe.org/swfuploadfield-module/">SWFupload</a> modules. To install, simply download them and upload them into your main directory and run yoursite.com/dev/build. You will need to rename them to dataobject_manager and swfupload before running the dev/build.</p>
<p>Now that those are installed, we can move on to building the site.  (I am also assuming that you have written your HTML/CSS and that your site is designed). I find it is always best to write the HTML/CSS before delving into the PHP. If it doesn&#8217;t work when the page is static, it is definitely not going to work once you start messing around with the theme.</p>
<p>Time for the PHP! (For this example, I am assuming that you have only one page for your portfolio, but that your work is divided into multiple categories)</p>
<p>We start by determining how we are going to display our data. In this example we want to break down our work into categories. But, the beauty of this is that we don&#8217;t have to go writing data types for each category. We are going to create the following files:</p>
<ul>
<li>PortfolioProject.php</li>
<li>PortfolioPage.php</li>
<li>PortfolioHolder.php</li>
</ul>
<p>PortfolioProject is not a page, it is a dataobject, and it is the most specific of our files. This file creates the live entry for each portfolio piece that appears on your site. PortfolioPage is essentially the category. This means that if you ever want to change your portfolio so that pieces for each category are on their own page, you can. PortfolioHolder is the page that will display the content from all of its children (the portfolio pages).</p>
<p>Confused yet?</p>
<p>Let&#8217;s start by creating the PortfolioProject.php file.</p>
<pre class="brush: php;">
&lt;?php
class PortfolioProject extends DataObject
{
static $db = array (
'Title' =&gt; 'Text',
'Caption' =&gt; 'Text'
);
static $has_one = array (
'PortfolioPage' =&gt; 'PortfolioPage',
'Thumbnail' =&gt; 'Image',
'FullSize' =&gt; 'Image'
);

static $summary_fields = array (
'Title' =&gt; 'Title',
'Caption' =&gt; 'Caption'
);

public function getCMSFields()
{
return new FieldSet(
new TextField('Title'),
new TextareaField('Caption'),
new ImageField('Thumbnail'),
new ImageField('FullSize','Full size image')
);
}
}
?&gt;
</pre>
<p>We just created a custom dataobject. Pretty cool, eh? We also told the system what fields we need to be able to edit on the front end. Copy your file to the mysite/code folder and go to yoursite.com/dev/build to create the page type in the database and make sure there are no errors.</p>
<p>Now the PortfolioPage (or category):</p>
<pre class="brush: php;">
&lt;?php
class PortfolioPage extends Page
{
static $has_many = array (
'PortfolioProjects' =&gt; 'PortfolioProject',
);

public function getCMSFields() {
$f = parent::getCMSFields();
$f-&gt;addFieldToTab(&quot;Root.Content.Portfolio Projects&quot;, new ImageDataObjectManager($this,'PortfolioProjects','PortfolioProject','Thumbnail', 'Category'));
return $f;
}
}

class PortfolioPage_Controller extends Page_Controller
{
}
?&gt;
</pre>
<p>Copy your file again to the mysite/code folder and go to yoursite.com/dev/build to create the page type in the database and make sure there are no errors.</p>
<p>And finally the Portfolio Holder. This page is going to aggregate the information from its child pages.</p>
<pre class="brush: php;">
&lt;?php
class PortfolioHolder extends Page
{
static $allowed_children = array(
	'PortfolioPage'
);
}

class PortfolioHolder_Controller extends Page_Controller
{ 

}
?&gt;
</pre>
<p>We have now written our &#8220;Holder&#8221; page.</p>
<p>Copy your file again to the mysite/code folder and go to yoursite.com/dev/build to create the page type in the database and make sure there are no errors.</p>
<p>Check back later this week for how to enter your data and then show it in a template.</p>
]]></content:encoded>
			<wfw:commentRss>http://purpleurbia.com/building-a-web-portfolio-using-silverstripe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Digging into SilverStripe</title>
		<link>http://purpleurbia.com/digging-into-silverstripe/</link>
		<comments>http://purpleurbia.com/digging-into-silverstripe/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 01:12:11 +0000</pubDate>
		<dc:creator>mary fran</dc:creator>
				<category><![CDATA[SilverStripe]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://purpleurbia.com/?p=455</guid>
		<description><![CDATA[Today we are going to start a multi-part series on getting set up with SilverStripe, a CMS that is pretty much like WordPress on steroids. Much of the functionality that requires plug-ins in WordPress is already built-in. We are going to go over the basics of the installation process today and some of the key [...]]]></description>
			<content:encoded><![CDATA[<p>Today we are going to start a multi-part series on getting set up with <a href="http://silverstripe.org/stable-download/">SilverStripe</a>, a CMS that is pretty much like WordPress on steroids. Much of the functionality that requires plug-ins in WordPress is already built-in. We are going to go over the basics of the installation process today and some of the key things that you need to know about the CMS, so you can take some time to learn a new skill over your holiday weekend.</p>
<p><span id="more-455"></span>This is my new favorite content management system and I am really excited to start working with it. There are a few things about this CMS that make it truly different. First being that it runs on its own PHP framework called Sapphire. The framework is based on object oriented programming, while the CMS is based on the Model-View-Controller method. This means that all programming logic is separate from the markup and the display is separate from the other two.</p>
<p>Getting this CMS installed is almost easier than WordPress&#8217; &#8220;famous 5-minute installation&#8221;. I can get this one installed in 3 minutes, max.</p>
<p>It requires the following to be enabled on your server:</p>
<ul>
<li>
<div><strong><acronym title="Hypertext Preprocessor">PHP</acronym> 5.2.0+ recommended</strong></div>
</li>
<li>
<div>gd2, mysql, hash, mbstring modules</div>
</li>
<li>
<div>Set the maximum memory to at least 48 mb.</div>
</li>
<li>
<div>Using a <acronym title="Hypertext Preprocessor">PHP</acronym> accelerator or opcode cache <em>(e.g. <a title="http://trac.lighttpd.net/xcache/" rel="nofollow" href="http://trac.lighttpd.net/xcache/">xcache</a>)</em> is <strong>strongly</strong> recommended to for performance reasons &#8211; SilverStripe creates large cache files as <acronym title="Hypertext Preprocessor">PHP</acronym> code that are quite slow to open without an opcode cache. (There is a thread on creating the SilverStripe cache on MediaTemple&#8217;s grid server <a href="http://doc.silverstripe.org/doku.php?id=contentdeliverynetworkissues">here</a>)</div>
</li>
<li>Apache 1.3+/2.0+/2.2+ with <a title="http://www.workingwith.me.uk/articles/scripting/mod_rewrite" rel="nofollow" href="http://www.workingwith.me.uk/articles/scripting/mod_rewrite">mod_rewrite</a>, and the ability to set rewriting rules in .htaccess files via “Allow Override”.</li>
<li>lighttpd 1.4+ with access to the server configuration</li>
</ul>
<p>Most of these things are included in the hosting packages that developers chose, but might not be in your client&#8217;s set-up. Please verify with the hosting company that these specs are in place before either telling your client that it will work, or that they need a better hosting company.</p>
<p>Getting SilverStripe installed is a very painless process that includes giving it access to create a database, or providing it with access to an empty one that you have created. The longest part is actually uploading all the files to your webserver.</p>
<p>After you get the CMS installed, the rest is up to you. Every time you want to create a new page type, you can tell the software what fields and options need to appear for the page. You can handle meta-information on a page by page basis.</p>
<p>SilverStripe uses a custom file extension .ss and it can throw your IDE for a loop. I suggest using <a href="http://aptana.com/">Aptana</a> and doing the following: Opening the eclipse preferences. Under &#8220;General&#8221; select &#8220;Editors&#8221; &gt; &#8220;File Associations&#8221; . There you add a new File Association for &#8220;*.ss&#8221; and set the associated Editor to &#8220;Aptana HTML Editor&#8221;.</p>
<p>Now, why the custom file extension? It is basically your template HTML file. There are different ones based on the different page types. Each page type will have a .ss file that tells the CMS how the page should look and a PHP file that tell the CMS what content should appear on the page and what fields should appear in the editor. Pretty nifty, eh?</p>
<p>One of the easiest things to do with SilverStripe is to change its look, since the look is separate from the code. You can upload one of the themes from <a href="http://themes.silverstriped.com/">here</a> (there are some decent ones in the mix) to get you familiar with this process. Simply upload the theme to the themes directory. Next edit the _config.php file in the mysite folder to contain the following :</p>
<p>[/code]Hopefully you are intrigued with the robust yet still simple to use CMS. As they are posted, I will add links to the additional SilverStripe basics series here.</p>
]]></content:encoded>
			<wfw:commentRss>http://purpleurbia.com/digging-into-silverstripe/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
