<?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>Just a bunch of code &#187; wordpress</title>
	<atom:link href="http://www.bunchacode.com/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bunchacode.com</link>
	<description>where geeks are cool.</description>
	<lastBuildDate>Fri, 13 Aug 2010 18:04:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>integrating wordpress with cakephp</title>
		<link>http://www.bunchacode.com/programming/integrating-wordpress-with-cakephp/</link>
		<comments>http://www.bunchacode.com/programming/integrating-wordpress-with-cakephp/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 06:13:50 +0000</pubDate>
		<dc:creator>Funky Dude</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[cakephp]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.bunchacode.com/?p=51</guid>
		<description><![CDATA[So how do you combine your favorite blogging app with your favorite framework so that user can signin from your cakephp app and maintain his/her session in wordpress, assuming user can only sign up and log in from your cakephp site. The idea is to create a wordpress user when a user signs up on [...]]]></description>
			<content:encoded><![CDATA[<p>So how do you combine your favorite blogging app with your favorite framework so that user can signin from your cakephp app and maintain his/her session in wordpress, assuming user can only sign up and log in from your cakephp site.</p>
<p>The idea is to create a wordpress user when a user signs up on your cakephp site.</p>
<p>1. We need wordpress password hash function to do this properly. You need to create a new component that would contain wp password hashing functions. The file that contains everything you need is at <strong>wp-include/class-phpass.php</strong>. Just turn this class into a cakephp component, so you can include it in your user controller.</p>
<p>2. In your user controller, include your recently created wp hash function component. And after the user is saved into your cakephp user table. You want to add it to your wp user table as well. And it would look something like this.</p>
<pre class="php">
<span class="phpKeyword">
if<span class="phpOperator">(</span></span><span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>User<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span><span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">)</span><span class="phpOperator">)</span>
<span class="phpOperator">{</span>
<span class="phpComment">//create blog user<span class="phpKeyword"> for </span>this user
</span>$wp_hash <span class="phpOperator">=</span><span class="phpKeyword"> new </span><span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>Wphash<span class="phpText">;</span>
$wp_hash<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>PasswordHash<span class="phpOperator">(</span><span class="phpNumber">8</span>,1<span class="phpOperator">)</span><span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'ID'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>User<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>id<span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'user_login'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>sanitize_user<span class="phpOperator">(</span>$email<span class="phpOperator">)</span><span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'user_pass'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $wp_hash<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>HashPassword<span class="phpOperator">(</span><span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'password'</span><span class="phpOperator">]</span><span class="phpOperator">)</span><span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'user_email'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpFunction">trim</span><span class="phpOperator">(</span>$email<span class="phpOperator">)</span><span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'user_url'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'http<span class="phpOperator">:</span><span class="phpComment">//'</span><span class="phpText">;</span>
</span>$blog_user<span class="phpOperator">[</span><span class="phpString">'user_nicename'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'firstname'</span><span class="phpOperator">]</span>.<span class="phpString">' '</span>.<span class="phpFunction">substr</span><span class="phpOperator">(</span><span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'lastname'</span><span class="phpOperator">]</span>,<span class="phpNumber">0</span>,1<span class="phpOperator">)</span><span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'display_name'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'firstname'</span><span class="phpOperator">]</span>.<span class="phpString">' '</span>.<span class="phpFunction">substr</span><span class="phpOperator">(</span><span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'lastname'</span><span class="phpOperator">]</span>,<span class="phpNumber">0</span>,1<span class="phpOperator">)</span><span class="phpText">;</span>
$blog_user<span class="phpOperator">[</span><span class="phpString">'user_registered'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpFunction">date</span><span class="phpOperator">(</span>configure<span class="phpOperator">:</span><span class="phpOperator">:</span>read<span class="phpOperator">(</span><span class="phpString">'dateformat'</span><span class="phpOperator">)</span><span class="phpOperator">)</span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'Blog_user'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $blog_user<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>Blog_user<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpComment">//create user meta
</span>$bid <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>Blog_user<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>id<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'first_name'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'firstname'</span><span class="phpOperator">]</span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'last_name'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>data<span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'lastname'</span><span class="phpOperator">]</span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'nickname'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $email;
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'rich_editing'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString"><span class="phpKeyword">'true'</span></span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'comment_shortcuts'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString"><span class="phpKeyword">'false'</span></span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'admin_color'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'fresh'</span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'user_id'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> $bid<span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_key'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'blog_capabilities'</span><span class="phpText">;</span>
$user_meta<span class="phpOperator">[</span><span class="phpString">'meta_value'</span><span class="phpOperator">]</span> <span class="phpOperator">=</span> <span class="phpString">'a<span class="phpOperator">:</span><span class="phpNumber">1</span><span class="phpOperator">:</span><span class="phpOperator">{</span>s<span class="phpOperator">:</span>10<span class="phpOperator">:</span><span class="phpString">"subscriber"</span><span class="phpText">;</span>b<span class="phpOperator">:</span><span class="phpNumber">1</span><span class="phpText">;</span><span class="phpOperator">}</span>'</span><span class="phpText">;</span>
$blogdata<span class="phpOperator">[</span><span class="phpString">'BlogUserMeta'</span><span class="phpOperator">]</span><span class="phpOperator">=</span> $user_meta<span class="phpText">;</span>
<span class="phpScriptVar">$this</span><span class="phpOperator">-<span class="phpOperator">&gt;</span></span>BlogUserMeta<span class="phpOperator">-<span class="phpOperator">&gt;</span></span>save<span class="phpOperator">(</span>$blogdata<span class="phpOperator">)</span><span class="phpText">;</span>
</pre>
<p>3. In your wordpress index.php file</p>
<pre class="php">
<span class="phpComment">//change the session name of your wordpress site to match that of your cakephp site.
</span><span class="phpComment">//so session data can be shared<span class="phpOperator">.</span>
</span><span class="phpFunction">session_name</span><span class="phpOperator">(</span><span class="phpString">"mysite"</span><span class="phpOperator">)</span><span class="phpText">;</span>
</pre>
<p>4. in your theme header.php(might not be the best place if you change your theme a lot)</p>
<pre class="php">
<span class="phpComment">//you read the user id
</span>$user <span class="phpOperator">=</span> <span class="phpScriptVar">$_SESSION</span><span class="phpOperator">[</span><span class="phpString">'Auth'</span><span class="phpOperator">]</span><span class="phpOperator">[</span><span class="phpString">'User'</span><span class="phpOperator">]</span><span class="phpText">;</span>
<span class="phpKeyword">
if<span class="phpOperator">(</span></span><span class="phpOperator">!</span><span class="phpFunction">empty</span><span class="phpOperator">(</span>$user<span class="phpOperator">)</span><span class="phpOperator">)</span>
<span class="phpOperator">{</span>
<span class="phpComment">//you change the current user manually
</span>wp_set_current_user<span class="phpOperator">(</span>$user<span class="phpOperator">[</span><span class="phpString">'id'</span><span class="phpOperator">]</span><span class="phpOperator">)</span><span class="phpText">;</span>
<span class="phpOperator">}</span>
</pre>
<p>And there you have it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunchacode.com/programming/integrating-wordpress-with-cakephp/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
