<?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>Developing  New Paths</title>
	<atom:link href="http://www.mojavi.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mojavi.org</link>
	<description>The Mojavi Project</description>
	<lastBuildDate>Fri, 03 Feb 2012 23:57:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Improving your brand and trust</title>
		<link>http://www.mojavi.org/improving-your-brand-and-trust/</link>
		<comments>http://www.mojavi.org/improving-your-brand-and-trust/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 07:49:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Marimedia]]></category>
		<category><![CDATA[PPC brand]]></category>
		<category><![CDATA[PPC resource]]></category>

		<guid isPermaLink="false">http://www.mojavi.org/?p=809</guid>
		<description><![CDATA[In the competitive world of online marketing he who has the most data will win. Many businesses will go online and purchase search engine placements, and pay per click advertising without measuring where the results are coming from. You can check out the list of resources at Marimedia. You will find helpful solutions and insights [...]]]></description>
			<content:encoded><![CDATA[<p>In the competitive world of online marketing he who has the most data will win. Many businesses will go online and purchase search engine placements, and pay per click advertising without measuring where the results are coming from. You can check out the list of resources at <a href="http://twitter.com/#!/MarimediaBlog">Marimedia</a>. You will find helpful solutions and insights on how to manage your PPC campaigns and make the most of your investment. This can then help to make sure that the customers you are drawing to your site through Pay per click or organic search engine traffic is serious about purchasing your product. Pay per click advertising like that is purchased through Google and Yahoo is based on various keywords and how much you bid on placement of those keywords in search engines. Google is the leader in search engine placements and PPC advertising. So being able to monitor how your keyword placements are doing through search queries will help you extend your promotional budget.</p>
<p><a href="http://www.mojavi.org/wp-content/uploads/2011/09/ppc_resource.jpg"><img class="alignleft size-full wp-image-1173" title="ppc_resource" src="http://www.mojavi.org/wp-content/uploads/2011/09/ppc_resource.jpg" alt="" width="273" height="185" /></a>Keeping tabs on your competition is also key to manage your branding placements and understanding the change in the market. One of the major attributes of creating awareness is getting Dugg through sites like Digg or having others Tweet about your blog or business. Others in your market may start to notice because they will be in that space as well and start to compete for those same buzz words. You then get into a bidding war that only benefits the publisher and only drive up your costs. You have to constantly manage your ad budget and track your search engine placement to stay ahead of your competition. Using metrics to understand where they rank in search engine rankings can help you better plan your marketing campaign and utilize your resources.<br />
You will find some great articles on <a href="http://www.linkedin.com/company/marimedia-ltd." target="_blank">social marketing</a> that will help streamline your online advertising through resources on how to use various PPC ads and banners that will help you identify which campaigns are working or not. These can have tracking codes that will enable you to see the traffic. This provides you with a comprehensive tracking mechanism to see which pages are being clicked through, and which ones are not matching up with your target campaigns. You can see if your target your audience is accessing the appropriate ads and pages based on domain, day of the weeks, and browsers. Content is what ultimately drives search engine placement and static pages can help simplify and increase your traffic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mojavi.org/improving-your-brand-and-trust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating your first module with extensions</title>
		<link>http://www.mojavi.org/creating-your-first-module-with-extensions/</link>
		<comments>http://www.mojavi.org/creating-your-first-module-with-extensions/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 00:25:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mojavi Project]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[mojavi]]></category>

		<guid isPermaLink="false">http://www.mojavi.org/?p=41</guid>
		<description><![CDATA[Creating Your First Module A work in progress This tutorial is a work in progress, so you may find parts that don’t completely fit together. Module where we will also look at various file extension cache options. The module is where the Model and View takes place in the MVC model. For this first example, [...]]]></description>
			<content:encoded><![CDATA[<p>Creating Your First Module<br />
A work in progress</p>
<p>This tutorial is a work in progress, so you may find parts that don’t completely fit together.<br />
Module where we will also look at various <a href="http://www.fileextensioncache.com/">file extension cache</a> options.</p>
<p>The module is where the Model and View takes place in the MVC model. For this first example, we will create a very simple module that will move data from a Action to a View and display it on the screen, through a template.</p>
<p>The module is contained within a directory that carries the name of the module. This resides in the modules directory of the webapp directory. Inside the module directory are sub-directories holding the classes that make up the module. Here is the directory hierarchy:</p>
<p>webapp<br />
|<br />
|—modules<br />
|<br />
|—moduleName<br />
|<br />
|—actions<br />
|<br />
|— config<br />
|<br />
|— lib<br />
|<br />
|— models<br />
|<br />
|— templates<br />
|<br />
|— validate<br />
|<br />
|— views</p>
<p>Minimally, you need the actions, config, templates and views directories. However, I prefer to have a blank module created and just copy and rename it. You can get a copy of the blank module (link to be added). I have chosen to call this module Test</p>
<p>Each module must have a module.ini file in the config directory. If you are looking to buffer your files then <a href="http://www.fileextensioncache.com/">file extension cache</a> extensions may be helpful.Here is the module.ini for Test</p>
<p>; +—————————————————————————-+<br />
; | This file is part of the Mojavi package. |<br />
; | Copyright (c) 2003, 2004 Sean Kerr. |<br />
; | |<br />
; | For the full copyright and license information, please view the LICENSE |<br />
; | file that was distributed with this source code. You can also view the |<br />
; | LICENSE file online at http://www.mojavi.org. |<br />
; | ————————————————————————– |<br />
; | MODULE INFORMATION FILE |<br />
; +—————————————————————————-+</p>
<p>[module]</p>
<p>ENABLED = “On”</p>
<p>TITLE = “Getting Started Test Module”</p>
<p>VERSION = “0.1″</p>
<p>NAME = “TestModule”</p>
<p>AUTHOR = “Richard D Shank”</p>
<p>HOMEPAGE = “http://www.mojavi.org”</p>
<p>DESCRIPTION = “A test module”</p>
<p>The module is pretty self explanitory. You can also search the web for various <a href="http://www.fileextensioncache.com/">file extension cache</a> options. It is necessary to have ENABLED property set to “On” for the module to be used by Mojavi. Now that we have the module set up, we can work on the classes.<br />
Action</p>
<p>The Action class handles the request for the module. It can be as simple as handling a static html template or a full blown multi-page wizard style form. Just a note to Mojavi 2 users, a significant change from Mojavi 2 to Mojavi 3 is that it is not longer necessary to pass the controller, request and user classes in on many of the methods. These are now accessed through a context class. More on that later.</p>
<p>This is a list of the methods you can use in an Action and an explanation of what they do<br />
execute ()</p>
<p>Note: This method is required in your Action class.</p>
<p>This will execute any application/business logic for the action. This method is reached only after the request methods have been checked and any of the parameters have been validated.</p>
<p>When leaving, the execute() method should tell the controller what view is to be used. This is done by returning a string containing the view name associated with the action or an array of the parent module for the view to be executed, parent action for the view and the name of the view. I will show an example of return both in a later tutorial.<br />
getCredential ()</p>
<p>This is a new feature in Mojavi 3. Basically, a credentials are a privilege array that describes any level of security. They work hand in hand with the security aspects of the User class. For Mojavi 2 users, note that this replaces the old Privileges. But it is also important to know that it can do more than just handle privileges. I will handle the usage of creditials in a later section. For now, it is sufficient to know that we set the creditial requirements for the action inside this method and that it is set to NULL by default.<br />
getDefaultView ()</p>
<p>This is the view that will be executed when a given request is not served by the action. This could happen when a form being displayed for the first time or if we are displaying a static page.</p>
<p>Again, just as with the execute() methoad, a string with a view name or an array of a module/action/view is passed back to the controller. By default it will pass back View::INPUT<br />
getRequestMethods ()</p>
<p>This method will determine what types of requests will be recognized. There are 4 choices:</p>
<p>* Request::GET &#8211; Indicates that this action serves only GET requests.<br />
* Request::POST &#8211; Indicates that this action serves only POST requests.<br />
* Request::NONE &#8211; Indicates that this action serves no requests.</p>
<p>You can also select both GET and POST requests by using Request::GET | Request::POST<br />
handleError ()</p>
<p>Execute any post-validation error application logic.</p>
<p>It also returns the view through a string of the view name or the array of a module/action/view. By default, it passes View::ERROR.<br />
initialize ($context)</p>
<p>You can set up the Action in the initialize() method. In a later tutorial, I’ll give an example of doing this. NOTE: It is worth to note that you must handle the context in the initialize() method. You should do this by</p>
<p>parent::initialize($context);</p>
<p>You also need to return a TRUE or FALSE based on the success of the initialization. By default it is TRUE.<br />
isSecure ()</p>
<p>Does the action require security? TRUE if you do, FALSE otherwise. It is FALSE by default.<br />
validate ()</p>
<p>This is used to manually validate input parameters instead of using a pre-progammed validator. This will also be explain later in the tutorial on validation.<br />
Creating Your First Action</p>
<p>Now that we have an overview of the Action class, we can move forward to creating our first Action. For this example, there isn’t any request to be handled so we can set up a minimal Action.</p>
<p>In naming an action you must use this format Actionname Action.class.php where Actionname is what you are calling this particular action. When you declare your class, it also must have the class name in the same format Actionname Action. For this example, I chose to call this FirstAction.</p>
<p>When creating a new action, at the very least, there has to be an execute() method, even if it does nothing. Also, since we are displaying a non-request page, we don’t need to process any request. We tell the controller this with the getRequestMethods() method, by setting the return value to Request::NONE. Finally, we also need to tell the controller what the default view is going to be. We do this by returning View::SUCCESS in getDefaultView().</p>
<p>Here is what my FirstAction.class.php looks like. I basically just took my BLANKAction.class.php, renamed it to FirstAction.class.php, renamed the class to FirstAction, removed the methods I didn’t need and set the remaining 3 methods to match my needs.</p>
<p>class FirstAction extends Action<br />
{<br />
/**<br />
* Execute any application/business logic for this action.<br />
*/<br />
public function execute ()<br />
{<br />
// we don’t need any data here because this action doesn’t serve<br />
// any request methods, so the processing skips directly to the view<br />
}</p>
<p>// ————————————————————————-</p>
<p>/**<br />
* Retrieve the default view to be executed when a given request is not<br />
* served by this action.<br />
*/<br />
public function getDefaultView ()<br />
{<br />
return View::SUCCESS;<br />
}</p>
<p>// ————————————————————————-</p>
<p>/**<br />
* Retrieve the request methods on which this action will process<br />
* validation and execution.<br />
*/<br />
public function getRequestMethods ()<br />
{<br />
return Request::NONE;<br />
}</p>
<p>You can also return a view from another module. You do this by passing an array with the view information intead of the standard View::INPUT. When you use this you create a two element array. The first element is the module name. The second element is which view you want. It cannot be just the Action name, but the Action name with the specific view.</p>
<p>Here’s an example:</p>
<p>class MyClass extends Action<br />
{<br />
…</p>
<p>function execute()<br />
{<br />
…</p>
<p>$returnView[0] = MyModule;<br />
$returnView[1] = DoSomethingInput;<br />
-or-<br />
$returnView[1] = DoSomethingError;<br />
-not-<br />
$returnView[1] = DoSomething;</p>
<p>return $returnView<br />
}<br />
}</p>
<p>View</p>
<p>I’ll add more to this later, describing the View class.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mojavi.org/creating-your-first-module-with-extensions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The decorating Pattern</title>
		<link>http://www.mojavi.org/the-decorating-pattern/</link>
		<comments>http://www.mojavi.org/the-decorating-pattern/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 18:07:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mojavi Project]]></category>
		<category><![CDATA[Decorator pattern]]></category>
		<category><![CDATA[Mojavi 3]]></category>

		<guid isPermaLink="false">http://www.mojavi.org/?p=98</guid>
		<description><![CDATA[Before we begin we wanted to provide a quick insight into some of the open source files that we use and came across a file extension DOTX which is native to MS Outlook using XML. This particular file type DOTX was instituted to secure the protocol in which MS was written only giving limited source [...]]]></description>
			<content:encoded><![CDATA[<p>Before we begin we wanted to provide a quick insight into some of the open source files that we use and came across a <a href="http://www.fileextensiondotx.com/">file extension DOTX</a> which is native to MS Outlook using XML. This particular file type <a href="http://www.fileextensiondotx.com/">DOTX</a> was instituted to secure the protocol in which MS was written only giving limited source to outside vendors. We give a brief update to help you understand the open source nature of Mojavi 3.0.</p>
<ul>
<li>Enter Decorator</li>
<li>Insert Here: Slots</li>
<li>Let&#8217;s Decorate!
<ul>
<li>Creating a Global Template</li>
<li>Putting the ornaments up</li>
</ul>
</li>
</ul>
<p>Ever since Mojavi 3 was released earlier this year, people have been looking to create a flexible global templating solution. From using post filters to page controllers, people have been looking for a way to create simple and managable global templates that will allow for a great deal of flexibility without compromising the need for larges amount of duplicated code.</p>
<p><a name="A2"></a></p>
<h2>Enter Decorator</h2>
<p>The Decorator design pattern, like every other pattern, is nothing more than a way to talk about a resuable concept, or pattern, that a programmer might encounter while coding applications. The Decorator pattern&#8217;s strength is it&#8217;s ability to serve as a wrapper for that particular object, while leaving objects like it in tact.</p>
<p>The Decorator pattern has been implemented in the <tt>View</tt> class, providing a number of new methods:</p>
<pre class="code">public function setSlot ($attributeName, $moduleName, $actionName)
public function setDecoratorDirectory ($directory)
public function isDecorator ()
protected function &amp; getSlots ()
public function getDecoratorTemplate ()
public function getDecoratorDirectory ()
protected function &amp; decorate (&amp;$content)</pre>
<p>Now a brief explanation of what each of these do:</p>
<ul>
<li><tt>setSlot</tt> &#8211; Creates a slot entry based upon the results of a specially controlled controller-&gt;forward()</li>
<li><tt>setDecoratorTemplate</tt> &#8211; Sets the template that you&#8217;re going to use for your decorator. This method also automatically turns the decorator switch to <tt>true</tt></li>
<li><tt>isDecorator</tt> &#8211; returns true is setDecoratorTemplate has been called, otherwise false.</li>
<li><tt>getSlots</tt> &#8211; Returns an array of the slots.</li>
<li><tt>getDecoratorTemplate</tt> &#8211; Returns the decorator template.</li>
<li><tt>getDecoratorDirectory</tt> &#8211; Returns the decorator directory.</li>
<li><tt>decorate</tt> &#8211; A method that must be implemented in derivate Views.</li>
</ul>
<p>Note: these functions are in View, so all derivates of View (ie PHPView) have access.</p>
<p><a name="A3"></a></p>
<h2>Insert Here: Slots</h2>
<p>Slots is a new name for an old concept. More or less, slots serve as placeholders that can be populated by the results of a <tt>$controller-&gt;foward($mod, $act)</tt> call. And, as you can see, the <tt>setSlot</tt> method takes three parameters:</p>
<pre class="code">public function setSlot ($attributeName, $moduleName, $actionName)</pre>
<p>The first parameter, $attributeName, serves as the name of the slot. The next two parameters will be used to get the results of that Action, put it in a buffer, and place it into the internal <tt>$slots</tt> memeber variable.</p>
<p><a name="A4"></a></p>
<h2>Let&#8217;s Decorate!</h2>
<p>The usage pattern of Views changes little with the implementation of the decorator pattern at the module level (though secondary View authors, ie SmartyView et al, do have a few things to play with).</p>
<p>Now let&#8217;s look at what you&#8217;re going to need to do implement the new, and NEW decorator features of Mojavi.</p>
<p><a name="A5"></a></p>
<h3>Creating a Global Template</h3>
<p>First off, we&#8217;re going to need a great big christma..ehh..template to decorate. While I won&#8217;t get into breaking down and factoring our global template, keep in mind that this is not the only way to do this.</p>
<p><tt>Example 2: The Christmas Tree (myGlobalTemplate.php)</tt></p>
<pre class="code">Side note: Sometimes you'll have issues with that &lt;?xml [....] ?&gt; declaration, an easy
workaround is to disable short tags in your php.ini file, or to use ini_set() to disable
 it.

&lt;?xml version="1.0" encoding="iso-8859-1"?&gt;
&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us"&gt;

&lt;head&gt;

    &lt;title&gt;&lt;?php echo $template['title']; ?&gt;&lt;/title&gt;

    &lt;meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/&gt;
    &lt;style type="text/css" media="all"&gt;

        &lt;!--Css slot--&gt;
        &lt;?php echo $template['css']; ?&gt;

    &lt;/style&gt;

&lt;/head&gt;

&lt;body&gt;

&lt;!--menu slot--&gt;
&lt;div id="menu"&gt;

&lt;?php echo $template['menu']; ?&gt;

&lt;/div&gt;

&lt;!--main content slot--&gt;
&lt;div id="main"&gt;

&lt;?php echo $template['content']; ?&gt;

&lt;/div&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p><a name="A6"></a></p>
<h3>Putting the ornaments up</h3>
<p>So now that we have our decorator template, we need to decorate it. The decorating process is fairly simple, and consists of the following simple steps:</p>
<ul>
<li>Setting the decorator directory using <tt>setDecoratorDirectory()</tt> (Optional)</li>
<li>Setting the decorator template using <tt>setDecoratorTemplate()</tt></li>
<li>Setting slots <tt>setSlot()</tt></li>
</ul>
<p>For example,</p>
<p><tt>Example 3: In the View (IndexSuccessView.class.php)</tt></p>
<pre class="code">class IndexSuccessView extends PHPView
{

    public function execute ()
    {

        // set our template
        $this-&gt;setTemplate('IndexSuccess.php');

        //setup our decorator template
        $this-&gt;setDecoratorDirectory(MO_TEMPLATE_DIR);
        $this-&gt;setDecoratorTemplate('myGlobalTemplate.php');

        //setup our slots
        //(SlotName, Module, Action)
        $this-&gt;setSlot('menu', 'Content', 'PopulateMenu');
        $this-&gt;setSlot('css', 'Content', 'PopulateCss');

        // set the title
        $this-&gt;setAttribute('title', 'Default Action');

    }

}</pre>
<p>Now you might be wondering where the <tt>content</tt> slot is being populated. Well, <tt>content</tt> is a reserved slot that is automatically populated with the output of the originally requested Action/View pair. So in the end for <a href="http://www.fileextensiondotx.com/">file extension DOTX</a> type coding you will need to have the right drivers in order to help your various programs communicate.</p>
<p><em>To be Continued..</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mojavi.org/the-decorating-pattern/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brand managers and business developers need GeoProxy</title>
		<link>http://www.mojavi.org/brand-managers-and-business-developers-need-geoproxy/</link>
		<comments>http://www.mojavi.org/brand-managers-and-business-developers-need-geoproxy/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 18:00:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[GeoSurf]]></category>
		<category><![CDATA[Premium proxy]]></category>
		<category><![CDATA[Proxy surf]]></category>

		<guid isPermaLink="false">http://www.mojavi.org/?p=1409</guid>
		<description><![CDATA[If you are responsible for brand advertising or business development for your business then you need to check out Geo Proxy from GeoSurf. This simple toolbar solution allows to check traffic, advertising, and affiliate activity across the globe from your office in just a few clicks. It allows you to view advertising from around the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mojavi.org/wp-content/uploads/2012/01/geosurf.jpg"><img class="alignleft size-full wp-image-1413" title="geosurf" src="http://www.mojavi.org/wp-content/uploads/2012/01/geosurf.jpg" alt="" width="227" height="52" /></a>If you are responsible for brand advertising or business development for your business then you need to check out <a href="http://www.geosurf.com/" target="_blank">Geo Proxy</a> from GeoSurf. This simple toolbar solution allows to check traffic, advertising, and affiliate activity across the globe from your office in just a few clicks. It allows you to view advertising from around the globe in just a simple click. It will save you valuable time and money on research, QA, testing and monitoring so that you are able to quickly identify hotspots and invest in markets quicker. They offer secure, private, and fast service so that their customers are able to conduct their business and research without all the headaches.  Some of the key activities that are enabled include:</p>
<p>Uncover Affiliate activities in any country: Lets say you have a product that you allow affiliates to sell. You have specific guidelines on keywords that can and cannot be used. By using the<a href="http://www.geosurf.com/why_geosurf"> Premium proxy</a> from GeoSurf you can easily do a search in country and you will see the end user sees. This is also a great way to see other publishers activities and uncover some new partnerships</p>
<p>Discover competing bidders: You can easily see who is bidding on your specific traffic sources and how they are doing this country by country giving you a huge competitive advantage to change and modify your campaign for that specific region. You can also see the conversion tracking of the ads and what the landing pages look like in a quick and simple snapshot.</p>
<p>Validate your campaigns: Using Geosurf you can see how your campaigns are showing up in specific regions and where they fall in the overall market for your intended customers. This way you can make sure that you are getting the most value for your marketing dollar.</p>
<p>Here is a quick video to help you understand the power of GeoProxy:</p>
<p><a href="http://www.mojavi.org/brand-managers-and-business-developers-need-geoproxy/"><em>Click here to view the embedded video.</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mojavi.org/brand-managers-and-business-developers-need-geoproxy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User Authentication for Mojavi</title>
		<link>http://www.mojavi.org/user-authentication-for-mojavi/</link>
		<comments>http://www.mojavi.org/user-authentication-for-mojavi/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 08:45:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mojavi Project]]></category>
		<category><![CDATA[Mojavi 2.0]]></category>

		<guid isPermaLink="false">http://www.mojavi.org/?p=74</guid>
		<description><![CDATA[Mojavi provides two levels of security to control access to actions: the first requires the user to be logged in, the seconds checks for a specific privilege. There are various drivers that you may need on your PC if your are planning working in offline PHP mode in order to have the translations from the [...]]]></description>
			<content:encoded><![CDATA[<p>Mojavi provides two levels of security to control access to actions: the first requires the user to be logged in, the seconds checks for a specific privilege. There are various <a title="drivers" href="http://www.driversoftware.com/" target="_blank">drivers</a> that you may need on your PC if your are planning working in offline PHP mode in order to have the translations from the source code to the operational values to work.</p>
<p><a name="A2"></a></p>
<h2>Basic Authentication</h2>
<p>For basic authentication, the following three methods are of importance:</p>
<pre>User::setAuthenticated()
User::isAuthenticated()
Action::isSecure()</pre>
<p>To implement an action that only logged in users can access, simply overwrite the Action::isSecure() method in your action:</p>
<pre class="code">function isSecure()
{
    return true;
}</pre>
<p>This will instruct the controller to check $user-&gt;isAuthenticated(). If this method returns false, the request will be redirected to the AUTH_MODULE/AUTH_ACTION defined in the configuration file (default is Default/Login/<a title="drievers" href="http://www.driversoftware.com/" target="_blank">drivers</a>).</p>
<p>You can implement the Default/Login Action to call $user-&gt;setAuthenticated(TRUE) if a valid username and password was entered.</p>
<p><a name="A3"></a></p>
<h2>Privileges</h2>
<p>Privileges are used to differentiate between logged in users. The following methods are important:</p>
<pre>User::hasPrivilege()
User::addPrivilege()
Action::getPrivilege()</pre>
<p>In addition to Action:isSecure() also overwrite the Action::getPrivilege() method in your action:</p>
<pre class="code">function isSecure()
{
    return true;
}

function getPrivilege()
{
    return array('ADMIN');
}</pre>
<p>The controller will check if the user has the specified privilege and redirect to the login module/action if this is not the case.</p>
<p>The User::addPrivilege() method can be used to grant a user a certain privilege.</p>
<p>Please have a look at the PrivilegeUser class for more information. You will also want to make sure that any <a href="http://www.driversoftware.com/byos.php/windows-vista-drivers">Windows Vista Drivers</a> are up to date on your PC side to help rule out any coding errors due to Java or PHP errors. This tutorial includes a good example of user authentication in action.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mojavi.org/user-authentication-for-mojavi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Mojavi 3</title>
		<link>http://www.mojavi.org/mojavi-3-installation/</link>
		<comments>http://www.mojavi.org/mojavi-3-installation/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 07:58:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Mojavi Project]]></category>
		<category><![CDATA[facility management]]></category>
		<category><![CDATA[Moajvi 3]]></category>

		<guid isPermaLink="false">http://www.mojavi.org/?p=89</guid>
		<description><![CDATA[Installing Mojavi 3 As a note we had a firm that was installing this architecture to run in addition to their facility management software and wanting to make sure that network protocol being used was up to date. As of this writing the developers have been keeping all language and coding inline with the latest [...]]]></description>
			<content:encoded><![CDATA[<p>Installing Mojavi 3</p>
<p>As a note we had a firm that was installing this architecture to run in addition to their<a href="http://www.axisfm.com/" target="_blank"> facility management software</a> and wanting to make sure that network protocol being used was up to date. As of this writing the developers have been keeping all language and coding inline with the latest C+ and ASCII formats in order to allow for cross collaboration.<br />
First thing</p>
<p>Obviously, you first need to get a copy of the Mojavi 3 source. You can get this from the mojavi.org download page in one of two forms. It can be downloaded as an archive or from the Subversion repository (SVN).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mojavi.org/mojavi-3-installation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Somoto toolbar to increase your reach</title>
		<link>http://www.mojavi.org/use-somoto-toolbar-to-increase-your-reach/</link>
		<comments>http://www.mojavi.org/use-somoto-toolbar-to-increase-your-reach/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 17:33:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[search toolbar]]></category>
		<category><![CDATA[somoto toolbar]]></category>

		<guid isPermaLink="false">http://www.mojavi.org/?p=1398</guid>
		<description><![CDATA[For many small to medium sized companies getting their brand and product in front of customers can be a challenge in this highly competitive market. Many businesses are turning to social marketing in order to connect with and gain input from their customers. This is a great resource if used correctly and not overly promotional. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mojavi.org/wp-content/uploads/2012/01/somoto.jpg"><img class="alignleft size-full wp-image-1400" title="somoto" src="http://www.mojavi.org/wp-content/uploads/2012/01/somoto.jpg" alt="" width="179" height="52" /></a>For many small to medium sized companies getting their brand and product in front of customers can be a challenge in this highly competitive market. Many businesses are turning to social marketing in order to connect with and gain input from their customers. This is a great resource if used correctly and not overly promotional. Customers want to know that you care about them and that you are able to offer them value beyond just the software or services that you are are selling. So that is why I was intrigued by the new <a href="http://toolbar.somotoinc.com/">Somoto Toolbar</a> which allows businesses brand their own search tool bar. The beauty behind this is that it is something you can offer free to your customers and it keeps your brand and company top of mind.<br />
Your customers can use the new Somoto toolbar to stay in touch with their friends via Facebook and Twitter while listening to their favorite radio station. They receive status updates about their friends and who is online without having to switch over their favorite site. This then gives your business the ability to subtly have suggestions in the search bar about your latest products or special deals that you are running. It is completely free and is safe to use as it does not contain spyware,adware, and spam free.<br />
<a href="http://www.mojavi.org/wp-content/uploads/2012/01/somoto_tool.jpg"><img class="alignleft size-full wp-image-1402" title="somoto_tool" src="http://www.mojavi.org/wp-content/uploads/2012/01/somoto_tool.jpg" alt="" width="259" height="194" /></a>For bloggers and small businesses you can use the <a href="http://www.coolpctips.com/2012/01/new-somoto-toolbar-to-increase-your-software-download-revenues/">Somoto</a> toolbar as way to increase search engine traffic and help increase affiliate earnings by some simple adjustments. So when your customer is doing searches they will pass through and see your affiliate offerings towards the top of the page. Can you imagine the power and freedom you can have by just simply giving away a free toolbar to make your customers lives easier and helping your business in the process. It allows your customers to share their toolbar and spread the word so they help you grow your exposure through word of mouth which is still one of the most powerful marketing tools you can have. With their complimentary services you can use their hosting solutions to reduce your server overhead. Use their extensive built in network of distribution partners to grow faster and reach more businesses and customers. Take full advantage of their complimentary landing pages to increase your conversions. So no matter what your goals are the value cannot be beat and should be a consideration in you 2012 marketing plans.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mojavi.org/use-somoto-toolbar-to-increase-your-reach/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using a stock control system to improve your business</title>
		<link>http://www.mojavi.org/using-a-stock-control-system-to-improve-your-business/</link>
		<comments>http://www.mojavi.org/using-a-stock-control-system-to-improve-your-business/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 15:18:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.mojavi.org/?p=1396</guid>
		<description><![CDATA[Being successful in sales requires always being able to ask for the business and having the right information at the right time to help your customers understand why they should do business with you. I worked in copier sales for 7 years and we worked off sales leads and cold calls to gain business. At [...]]]></description>
			<content:encoded><![CDATA[<p>Being successful in sales requires always being able to ask for the business and having the right information at the right time to help your customers understand why they should do business with you. I worked in copier sales for 7 years and we worked off sales leads and cold calls to gain business. At that time we had no CRM  or <a href="http://www.orderwise.co.uk">stock management software</a> that actually linked the customers we were calling on to a main application or that helped to manage our warehouse of parts and incoming shipments. This had it&#8217;s drawbacks if we had someone leave the organization and their record keeping was less than stellar. This basically meant we were starting all over in that particular geography.</p>
<p>Having a stock control system that integrates these functions and makes them available on a web based interface can help improve the profitability and efficiency of your business. By having a stock management software solution your teams can know which products are available and better identify upsell opportunities. Management will know which products are most profitable and which products are not moving at all with a simple glance. You can increase your speed and response to your customer allowing you to capitalize on market events without having to stop and lose precious time and momentum.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mojavi.org/using-a-stock-control-system-to-improve-your-business/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improve your office space with the Pimp My Cube contest</title>
		<link>http://www.mojavi.org/improve-your-office-space-with-the-pimp-my-cube-contest/</link>
		<comments>http://www.mojavi.org/improve-your-office-space-with-the-pimp-my-cube-contest/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 18:01:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mojavi.org/?p=1393</guid>
		<description><![CDATA[This is a Sponsored post written by me on behalf of Contest Factory for SocialSpark. All opinions are 100% mine. Programmers work areas are notorious for being cluttered, messy, and just a plain old disaster area. If you are coding the last thing that you are concerned about is papers or binder on your desk [...]]]></description>
			<content:encoded><![CDATA[<p>This is a Sponsored post written by me on behalf of <a href="http://app.socialspark.com/disclosure_clicks?oid=7141319" rel="nofollow">Contest Factory</a> for <a href="http://izea.in/rgC" rel="nofollow">SocialSpark</a>. All opinions are 100% mine.</p>
<p>
	Programmers work areas are notorious for being cluttered, messy, and just a plain old disaster area. If you are coding the last thing that you are concerned about is papers or binder on your desk and those food containers that have been growing various molds. Well now is your time to have a cubicle makeover by entering the&nbsp;<a href="http://app.socialspark.com/clicks?lid=20931&amp;oid=7141319" rel="nofollow">Pimp My Cube Contest</a> now. The contest ends 1/31/2012 at 12 PM. All you need to do is upload a short funny video of your workspace and then let your friends and family know and have them vote on your video. The top prize could one of the following:</p>
<p>
	High End computer system</p>
<p>
	Or</p>
<p>
	New Office Furniture</p>
<p>
	Or</p>
<p>
	New entertainment package including a high end stereo and espresso machine</p>
<p>
	There are not a lot of videos on the site now so you have a better chance if you get on this today and get your&nbsp; <span class="placeholder"><iframe width="560" height="315" src="http://www.youtube.com/embed/rdcnikbiP9I" frameborder="0" allowfullscreen></iframe></span><span class="placeholder"> uploaded. Remember to alert your friends and co-workers on your video because each vote gets you more chances to win. There is a second place prize that is drawn at random for a $200 gift card which is nothing to laugh at for a simple video. If you enter drop us a note before the contest ends and we will check it out and cast our vote. We will even post a link through our Twitter feed to help all the contestants.</span></p>
<p>
	<span class="placeholder">Good luck everyone!</span></p>
<p><a href="http://app.socialspark.com/disclosure_clicks?oid=7141319" rel="nofollow"><img alt="Visit Sponsor's Site" border="0" src="http://app.socialspark.com/views?oid=7141319" style="border:none;" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mojavi.org/improve-your-office-space-with-the-pimp-my-cube-contest/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>An industrial mixer designed for your needs</title>
		<link>http://www.mojavi.org/an-industrial-mixer-designed-for-your-needs/</link>
		<comments>http://www.mojavi.org/an-industrial-mixer-designed-for-your-needs/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 14:49:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Blogging]]></category>

		<guid isPermaLink="false">http://www.mojavi.org/?p=1383</guid>
		<description><![CDATA[If you do a quick search for an industrial mixer you will find hundreds of different types of solutions available depending on your industry and particular needs. Many of the mixers that are available are off the shelf products that are modified to one application and then fitted with a different agitator to help in [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.mojavi.org/wp-content/uploads/2012/01/SolutionShield.gif"><img class="alignleft size-full wp-image-1386" title="SolutionShield" src="http://www.mojavi.org/wp-content/uploads/2012/01/SolutionShield.gif" alt="" width="139" height="125" /></a>If you do a quick search for an <a href="http://www.dynamixinc.com/tank-types/">industrial mixer</a> you will find hundreds of different types of solutions available depending on your industry and particular needs. Many of the mixers that are available are off the shelf products that are modified to one application and then fitted with a different agitator to help in the mixing process. The team at Dynamix Agitators has taken this one step further by offering a Solutions Assurance guaranty. This means you will work with their Sales Engineer in order to put together a solution that is specific to your exact needs. With six distinct Mixer models you will find a one that will meet your needs. This wider line of products will help assure that you will have the parts and mixers needed should your project expand and you need additional capacity.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mojavi.org/an-industrial-mixer-designed-for-your-needs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

