<?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>Jefim Borissov &#187; PHP</title>
	<atom:link href="http://jefim.eu/blog/category/it/programming/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://jefim.eu/blog</link>
	<description>Житие мое</description>
	<lastBuildDate>Fri, 05 Aug 2011 22:28:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.3</generator>
		<item>
		<title>CodeIgniter &#8211; Cart crap with Cyrillic characters</title>
		<link>http://jefim.eu/blog/2009/12/codeigniter-cart-crap-with-cyrillic-characters/</link>
		<comments>http://jefim.eu/blog/2009/12/codeigniter-cart-crap-with-cyrillic-characters/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 02:51:00 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[cart]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[encoding]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=280</guid>
		<description><![CDATA[Ok, now this is so ridiculous that I have to blog about this even though I do not want to. CodeIgniter just blew my mind some time ago when I upgraded to 1.7.2 for the new Cart library. I realize, that it is a basic functionality, yet still... It does not support cyrillic characters in [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, now this is so ridiculous that I have to blog about this even though I do not want to. CodeIgniter just blew my mind some time ago when I upgraded to 1.7.2 for the new Cart library. I realize, that it is a basic functionality, yet still... <strong>It does not support cyrillic characters in the product name!</strong> It is freaking 2009, almost 2010 and one of the most popular MVC frameworks does not support cyrillic? And I bet any other "strange" characters too, because basically they have a filter there with a regexp:</p>
<pre class="php" name="code">var $product_name_rules	= '\.\:\-_ a-z0-9';</pre>
<p>Now that is some serious shit! <img src='http://jefim.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyway, if you have trouble with the same thing - doing non-latin chars in product names just find and comment out the following part from <em>system/libraries/Cart.php</em>:</p>
<pre class="php" name="code">if ( ! preg_match("/^[".$this-&gt;product_name_rules."]+$/i", $items['name']))
{
	log_message('error', 'An invalid name was submitted as the product name: '.$items['name'].' The name can only contain alpha-numeric characters, dashes, underscores, colons, and spaces');
	return FALSE;
}</pre>
<p>Also, if you are using a database table for your sessions - do not forget to check that the user_data field uses UTF-8 as its encoding (otherwise it won't let cyr chars into the field).</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/12/codeigniter-cart-crap-with-cyrillic-characters/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Image / file upload with CodeIgniter</title>
		<link>http://jefim.eu/blog/2009/10/image-file-upload-with-codeigniter/</link>
		<comments>http://jefim.eu/blog/2009/10/image-file-upload-with-codeigniter/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 11:15:42 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[codeigniter upload]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=239</guid>
		<description><![CDATA[Image upload can be a pain in the *ss. And even though CI has a lot to offer (in the means of documentation) it still lacks a direct copy-paste code on their website so that people can just put it into their controller and use away. Here we will have: Image upload form with 5 [...]]]></description>
			<content:encoded><![CDATA[<p>Image upload can be a pain in the *ss. And even though CI has a lot to offer (in the means of documentation) it still lacks a direct copy-paste code on their website so that people can just put it into their controller and use away.<br />
Here we will have:</p>
<ul>
<li>Image upload form with 5 images</li>
<li>And a controller function that will upload those</li>
<li>Thumbnails will be there too <img src='http://jefim.eu/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<p><span id="more-239"></span>Ok, lets start with the HTML form code, it is very basic:<br />
<strong>views/upload_form.php</strong></p>
<pre name="code" class="html">
&lt;form method="post" action="uploader/go" enctype="multipart/form-data"&gt;
  &lt;input type="file" name="image1" /&gt;&lt;br /&gt;
  &lt;input type="file" name="image2" /&gt;&lt;br /&gt;
  &lt;input type="file" name="image3" /&gt;&lt;br /&gt;
  &lt;input type="file" name="image4" /&gt;&lt;br /&gt;
  &lt;input type="file" name="image5" /&gt;&lt;br /&gt;
  &lt;input type="submit" name="go" value="Upload!!!" /&gt;
&lt;/form&gt;
</pre>
<p>And now the controller:<br />
<strong>controllers/Uploader.php</strong></p>
<pre name="code" class="php">
class Uploader extends Controller {
  function go() {
    if(isset($_POST['go'])) {
      /* Create the config for upload library */
      /* (pretty self-explanatory) */
      $config['upload_path'] = './assets/upload/'; /* NB! create this dir! */
      $config['allowed_types'] = 'gif|jpg|png|bmp|jpeg';
      $config['max_size']  = '0';
      $config['max_width']  = '0';
      $config['max_height']  = '0';
      /* Load the upload library */
      $this->load->library('upload', $config);

      /* Create the config for image library */
      /* (pretty self-explanatory) */
      $configThumb = array();
      $configThumb['image_library'] = 'gd2';
      $configThumb['source_image'] = '';
      $configThumb['create_thumb'] = TRUE;
      $configThumb['maintain_ratio'] = TRUE;
      /* Set the height and width or thumbs */
      /* Do not worry - CI is pretty smart in resizing */
      /* It will create the largest thumb that can fit in those dimensions */
      /* Thumbs will be saved in same upload dir but with a _thumb suffix */
      /* e.g. 'image.jpg' thumb would be called 'image_thumb.jpg' */
      $configThumb['width'] = 140;
      $configThumb['height'] = 210;
      /* Load the image library */
      $this->load->library('image_lib');

      /* We have 5 files to upload
       * If you want more - change the 6 below as needed
       */
      for($i = 1; $i < 6; $i++) {
        /* Handle the file upload */
        $upload = $this->upload->do_upload('image'.$i);
        /* File failed to upload - continue */
        if($upload === FALSE) continue;
        /* Get the data about the file */
        $data = $this->upload->data();

        $uploadedFiles[$i] = $data;
        /* If the file is an image - create a thumbnail */
        if($data['is_image'] == 1) {
          $configThumb['source_image'] = $data['full_path'];
          $this->image_lib->initialize($configThumb);
          $this->image_lib->resize();
        }
      }
    }
    /* And display the form again */
    $this->load->view('upload_form');
  }
}
</pre>
<p>And that is it. Customize it to your needs, the basics are there already. And good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/10/image-file-upload-with-codeigniter/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Web development tools I use and recommend</title>
		<link>http://jefim.eu/blog/2009/06/web-development-tools-i-use-nd-recommend/</link>
		<comments>http://jefim.eu/blog/2009/06/web-development-tools-i-use-nd-recommend/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 03:47:49 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[Assorted]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=54</guid>
		<description><![CDATA[Ok, not being original here, but still... a web developer's blog is never complete without this. Maybe somebody will find at least something useful here. So here goes: Tasks slicing designs into images and cobining it to (X)HTML/CSS script writing (PHP / JavaScript) debugging testing IE compatibility quick editing database handling OS: Microsoft Windows others [...]]]></description>
			<content:encoded><![CDATA[<p>Ok, not being original here, but still... a web developer's blog is never complete without this. Maybe somebody will find at least something useful here. So here goes:</p>
<h2>Tasks</h2>
<ul>
<li>slicing designs into images and cobining it to (X)HTML/CSS</li>
<li>script writing (PHP / JavaScript)</li>
<li>debugging</li>
<li>testing IE compatibility</li>
<li>quick editing</li>
<li>database handling</li>
<li>OS: Microsoft Windows</li>
<li>others<span id="more-54"></span></li>
</ul>
<h2>Slicing</h2>
<p><strong>Adobe Photoshop</strong> - using it mostly because the designs are in PSD files. I do not actually slice anything here. I just need this to take screenshots of the design to slice it with Paint.NET afterwards.</p>
<p><strong>Paint.NET</strong> - a free, but absolutely awesome graphical editor without the tremendous amount of unnecessary functionality. I paste the screenshots from Photoshop here and select-and-crop them for slicing.</p>
<h2>Creating (X)HTML/CSS</h2>
<p><strong>Adobe Dreamweaver</strong> - the most usable markup/style editor I have ever seen so far. Mostly because its autocomplete functions are so well thought-out. It is just a pleasure to use it. It is really worth the money Adobe wants people to pay for it.</p>
<h2>Script Writing</h2>
<p><strong>Komodo Edit</strong> - a free tool, that has all the features I need. This is the only editor I know that has every feature that one might want in a script editor (PHP / JS autocomplete, code folding and project files) and does not have all those features that a regular person would use once a year max. Also, it is a very neat that Komodo has <strong>addons</strong>, which are implemented the same way as they are in Firefox. Very handy thing to have packed into a very familiar interface. Has the vertical selection feature, which is very important to me (just hold donw Alt+Shift while selecting). Can also be quite handy when need to change something in HTML/CSS and you do not want to bother opening up Dreamweaver.</p>
<h2>Debugging</h2>
<p><strong>Firefox + Firebug and Web Developer addons</strong> - the best HTML/CSS/JS debugging tool. If you are not using those yet - you are now a web developer <img src='http://jefim.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I do not use any PHP debugging stuff. Still doing it the crappy way - <em>echo</em>'es and <em>print_r</em>'s. And the messages from the PHP interpreter, of course.</p>
<h2>Testing IE compatibility</h2>
<p>Of course I test my sites in Firefox, Opera and Safari. But the only problem is Internet Explorer (I test 6, 7 and 8), so...</p>
<p><strong>Multiple IE</strong> - adds shortcuts to IE versions (starting at version 3) to your quick-launch. Has PNG fix support. Nothing special, but I like it more than IETest.</p>
<h2>Quick Editing</h2>
<p><strong>Notepad++</strong> - hands down the most handy editor for some quick edits. Not for real production though, since there is just too much tweaking to be done in order to make it into a half-decent environment to work with. Editing some notes, viewing sources or creating a fast JS - Notepad++ makes it all happen for me.</p>
<h2>Database Handling</h2>
<p><strong>MySQL GUI Tools</strong> - mostly the Query Browser and Administrator. No real alternatives here, so there is not much to argue about. Better than phpMyAdmin anyway <img src='http://jefim.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>phpMyAdmin</strong> - the standart in hostings with MySQL databases, so I am simply forced to use it.</p>
<h2>OS: Microsoft Windows</h2>
<p>This is quite important to me. Even though I really lack multiple workspaces in Linux (and do not even dare telling me about those crappy emulators for Windows of this feature) I still think that Windows is a better enviroment for web developing. Actually, I think that some people go to do this on Linux just because there are tools on Linux that allow it (e.g. ADs cannot go there since there is no Photoshop there). It is just a trend. Want to be cool? Install Linux.</p>
<p>Well, I personally think that this is not true. Web development is much more comfortable <span style="text-decoration: underline;">for me</span> in Windows because of the wide selection of tools (notice Notepad++, Dreamweaver and Paint.NET as well as the presence of normal IE). I do not dislike Linux though (I even have my lovely Ubuntu 9.04 installed). It is just that it does not provide me with all the tools to do my job in the most efficient way. Period.</p>
<h2>Others</h2>
<p>Of course there is a lot of other cool tools I use like Filezilla for FTP, Dia, MySQL Workbench and Visual Paradigm for modelling, Evernote for quick notes and so on. But they are quite small and sometimes completely unrelated to the topic of web development. Maybe someday I can write something about those little things that also help making the development process much more easy and less tiring.</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/06/web-development-tools-i-use-nd-recommend/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A bit of MODx CMS criticism</title>
		<link>http://jefim.eu/blog/2009/05/a-bit-of-modx-cms-criticism/</link>
		<comments>http://jefim.eu/blog/2009/05/a-bit-of-modx-cms-criticism/#comments</comments>
		<pubDate>Fri, 29 May 2009 16:48:50 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[Assorted]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[modx]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=41</guid>
		<description><![CDATA[Today I am going to talk about MODx CMS again. Now, the first post on this topic covered my first impressions of this product. And now I have something else to say. This time I am going to go a bit deeper into minuses of MODx. Why? Well, all the pluses are available on the [...]]]></description>
			<content:encoded><![CDATA[<p>Today I am going to talk about MODx CMS again. Now, the first post on this topic covered my first impressions of this product. And now I have something else to say.</p>
<p>This time I am going to go a bit deeper into minuses of MODx. Why? Well, all the pluses are available on the official website and I do not see the reason for repeating those. This post does not in anyway mean that MODx is a bad product! It just has some bad sides that I would find very useful to read about before starting to build a website based on this system. This post is healthy citicism and maybe a precaution for those wondering what can't you do with MODx.<span id="more-41"></span></p>
<h2>1. Documentation</h2>
<p>One of the most important minuses I have noted about MODx and anything related to documentation. Well, it is horrible. That concernes practically eveything. MODx heavily relies on customization by adding such things as chunks, snippets, plugins and modules. Not only the documentation of the MODx core system is horrible (and can be shown as agood example of how to not write documentation) but this practice also concerns anything starting from snippet usage to writing your own MODx components.</p>
<p>Now, I undertand that MODx did not even hit version 1.0 yet, but this (boring) part of any project is crucial to its success as the will to start using any framework-like product mostly depends on the features offered (50%) and documentation (50%). This is obvious and I do not understand why the MODx team is not concerned about this.</p>
<p>In the end I found myself googling such things as "wayfinder placeholders" and "ditto parameters" every now and then, since I keep forgetting those details. In addition to that all the documentation is done in different formats and designs, which is very annoying.</p>
<p>As a solution it would be not so hard to make some kind of a public documentation repository available to the MODx contributors with unified rules about documenting their code. Some kind of MSDN for MODx (not that complex of course).</p>
<p>Or as for now (e.g. until the 1.0 release) there should be at least a unified refence on all bundled MODx components!</p>
<h2>2. Administrating area (manager) customization</h2>
<p>At the moment the admin zone of MODx is pretty much monolithic. It cannot be changed fundamentally. And this is a major drawback, since admin zone is a vast part of the website itself. You cannot hide all of the stuff here and then, you cannot make it look too user-friendly after all (yes, I know about roles, groups etc. - it is far from ideal). Adding new custom functionality to the admin area can be done through modules, though the only place you can actually add this functionality is to the "Modules" menu (I get the logic, but I do not get why is there such a limit?).</p>
<p>The admin area must be fully customizable. Every single piece of it. Without editing the core MODx files.</p>
<p>* Many MODx people can, of course, say that there is MODx Revolution (which looks very promising), but at this point I will not discuss anything connected to it as the latest alpha was very buggy (right from the start) and unusable.</p>
<h2>3. Templating engine</h2>
<p>As already said in the previous post about MODx, the templating engine is quite far from being perfect. It has most of the necessary features, but far from Smarty by its functionality. I, personally, lack logical constucts ({if}). BUT! The behaviour of the templating engine can be changed. You can hook into the output event and modify the output as you wish (e.g. implementing as {if} would be quite easy, in fact, I have done it already as I cannot live without it and I do ot know how people use MODx without it - this simple plugin will be available as soon as I have time to make it look pretty).</p>
<p>Again, there is NO way you can mimic Smarty {if} with snippets - they simply work on a different level of MODx.</p>
<h2>Conclusion</h2>
<p>To conclude... Well, MODx is still pretty solid CMS system, which offeres a lot of features and works as a charm if configured and used corectly. Its disadvantage in the documentation area is, obviously, an effect of its open-source nature. The templating engine problems can be solved by creating a plugin (although it is quite strange to me that Smarty-like features are not present in MODx). Therefore, the only major problem at the moment is the manager customization. This problem is promised to be fixed when Revolution hits the ground but from what I've seen in the latest alpha it won't be a reliable product in near future. Therefore - modules are the only way to affect the admin area without going inside the core files of MODx.</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/05/a-bit-of-modx-cms-criticism/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MODx CMS overview</title>
		<link>http://jefim.eu/blog/2009/05/modx-cms-overview/</link>
		<comments>http://jefim.eu/blog/2009/05/modx-cms-overview/#comments</comments>
		<pubDate>Tue, 12 May 2009 08:59:14 +0000</pubDate>
		<dc:creator>Jefim</dc:creator>
				<category><![CDATA[Assorted]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[modx]]></category>

		<guid isPermaLink="false">http://jefim.eu/blog/?p=11</guid>
		<description><![CDATA[Some MODx related post discussing MODx cons is also here. 0. Intro Today I am going to say something about MODx CMS. At the moment I have used it to make one website as well as I am using it right now to make another. This is mainly the suggestion of the client, so I [...]]]></description>
			<content:encoded><![CDATA[<p>Some MODx related post discussing MODx cons is also <a href="http://jefim.eu/blog/2009/05/a-bit-of-modx-cms-criticism/" target="_blank">here</a>.</p>
<h3>0. Intro</h3>
<p>Today I am going to say something about <a href="http://www.modxcms.com" target="_blank">MODx CMS</a>.</p>
<p>At the moment I have used it to make one website as well as I am using it right now to make another. This is mainly the suggestion of the client, so I am using it not because I like it so very much, but just because of circumstances.</p>
<p>So far my experience with it is, actually, quite pleasant. MODx CMS has a lot of fine features. At the moment I can tell that it at least has the minimal things that are required to make a website. So far I have understood, that most of the MODx functionality relies on the following things: templates, template variables (TV), chunks and snippets. All the other things are quite auxiliary.<br />
So, let us take a look and see what those are. <span id="more-11"></span></p>
<h3>1. Templates</h3>
<p>Templates are templates. I think that any PHP programmer should be familiar with the idea of those. OK. So what about the MODx templates? Well, I must say - MODx templates are not the best out there. And probably anybody who used Smarty (I am a fan <img src='http://jefim.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) will feel the same about the MODx templates. Imagine a situation - there is a template variable - URL of an image you want to show. Obviously your template code is something like this:</p>
<pre>&lt;img alt="MyTemplateImage" src="[*image_url*]" /&gt;</pre>
<p>Very simple, huh? But what if the user leaves this variable empty? Then you will get the following code:</p>
<pre>&lt;img alt="MyTemplateImage" src="" /&gt;</pre>
<p>Which is horrible! Absolutely horrible. This leaves two options:</p>
<ol>
<li>Make the user input the whole &lt;img ... /&gt; code.  Though this is unacceptable, since most of the client I met do not have any idea that there is "markup" in the world.</li>
<li>Do not show the image at all <img src='http://jefim.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ol>
<p>So, basically what I am trying to say is - there are <strong>no logical operators in templates <span style="text-decoration: underline;">by default</span></strong>! Yes, <span style="text-decoration: underline;"><strong>by default</strong></span>. There is a add-on called <a href="http://wiki.modxcms.com/index.php/PHx#Introduction" target="_blank"><strong>PHx</strong> (Placeholders Xtended)</a>, which makes this thing possible, though the syntax is horrible (I guess due to the MODx template syntax). Take a look at the solution of our problem:</p>
<pre>[+phx:if=`[*image_url*]`:is=``:then=``:else=`&lt;img alt="MyTemplateImage" src="[*image_url*]" /&gt;`+]</pre>
<p>And of course, just as a comparison, the beauty of Smarty:</p>
<pre>{if $image_url neq ""}
&lt;img alt="MyTemplateImage" src="[*image_url*]" /&gt;
{/if}</pre>
<p>This is what makes the difference. In MODx+PHx I would have to use a workaround to solve this. And if I have a larger chunk of code - I would have to separate it into a chunk.<br />
Now, you might have the impression that I hate MODx. That is not true. At the moment I am trying to point out some of the bad sides I found.</p>
<h3>2. Tamplate variables</h3>
<p>Template variables (TV) are custom variables you want user to be able to insert into the page template. E.g. the [*image_url*] in the previous part was referring to a TV. You can create a new TV in the manager area of MODx and then assign which templates have access to that variable. Right after that any page using one of those templates will have an additional field below the content editor, where the user can change the TV content. In our case with [*image_url*] we would want to set it's type to <em>Image</em> and the user will have the opportunity to upload an image or enter a URL of an existing image. The image TV will also have a nice preview. A nice way to help simple customers adjust the appearance and/or the content of the website.</p>
<h3>3. Chunks</h3>
<p>Now it is time to talk about chunks. What are they? They are simply chunks of HTML code that make the templates look neat and clean. E.g. usually in a page you would have a header, a sidebar, content space and a footer. So this is what chunks are made for (basically) - you put those parts into separate chunks and then your template itself looks like this:</p>
<pre>{header_chunk}
{sidebar_chunk}
&lt;div id="content"&gt;[*content*]&lt;/div&gt;
{footer_chunk}</pre>
<p>So this is a matter of neatness and separation of different page areas. Besides that - chunk are small templates themselves. This means that you can use other chunks within them, you can use variables and snippets. I like the idea and implementation of these.</p>
<h3>4. Snippets</h3>
<p>Snippets are like chunks. Except that they are mostly used with PHP code. E.g. if you your website to show current date - you will not use a chunk, since it must not contain any code. You would create a snippet, which returns the date. There are a couple of snippets that are really useful that come in the default package of MODx. Such as Wayfinder (can generate a menu for example), Ditto and Breadcrumbs. And, I actually do not know what else can I say about them <img src='http://jefim.eu/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>5. Conclusion</h3>
<p>In the end. I want to say that the overall feeling about the whole MODx CMS was pretty Ok. It has everything to be a nice CMS for a website. Quite an easy installation procedure, some fine-tuning capabilities, templates and so on. I would definitely advise you to at least try it out and decide for yourself if you want to use it or not.</p>
<p>I would say that MODx CMS is almost ideal for small corporate websites. For larger projects it would require more tuning and messing with add-ons (e.g. PHx). It can also be a pretty good blog engine (I tried it out, but requires a lot of tuning if you want a feature-rich blog), though I would definitely use a dedicated blog product like WP for blogs (and as you can see I am using WP) .</p>
<p>Thanks for your attention. Post comment if you have any.</p>
]]></content:encoded>
			<wfw:commentRss>http://jefim.eu/blog/2009/05/modx-cms-overview/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

