<?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>Restart</title>
	<atom:link href="http://www.nandebayo.org/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.nandebayo.org/blog</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 03 Jan 2010 04:31:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Virtuemart Transmenu sh404sef fix</title>
		<link>http://www.nandebayo.org/blog/?p=104</link>
		<comments>http://www.nandebayo.org/blog/?p=104#comments</comments>
		<pubDate>Sun, 21 Jun 2009 15:20:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech Stuff]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[sef]]></category>
		<category><![CDATA[sh404sef]]></category>
		<category><![CDATA[Transmenu]]></category>
		<category><![CDATA[virtuemart]]></category>

		<guid isPermaLink="false">http://www.nandebayo.org/blog/?p=104</guid>
		<description><![CDATA[This post is to highlight the fix for Transmenu, due to which the urls are not generated for the sub menu items correctly when inside the sub-categories. The edit needs to be made in the following file modules/mod_virtuemart/vm_transmenu/transmenu.php Search for the following text in the file: //echo &#34;$row-&#62;name $row-&#62;link $level&#60;br&#62;&#34;; if ($level){ $pmenu = &#34;tmenu$row-&#62;parent&#34;; [...]]]></description>
			<content:encoded><![CDATA[<p>This post is to highlight the fix for Transmenu, due to which the urls are not generated for the sub menu items correctly when inside the sub-categories.</p>
<p>The edit needs to be made in the following file<br />
<code>modules/mod_virtuemart/vm_transmenu/transmenu.php</code></p>
<p>Search for the following text in the file:</p>
<pre class="brush: php;">//echo &quot;$row-&gt;name $row-&gt;link $level&lt;br&gt;&quot;;
		if ($level){
			$pmenu = &quot;tmenu$row-&gt;parent&quot;;
			//echo &quot;$pmenu.addItem(\&quot;$row-&gt;name\&quot;, \&quot;$row-&gt;link\&quot;);\n&quot;;
			$active = 0;
			if ( in_array($row-&gt;id, $this-&gt;parent-&gt;open) ) $active = 1;
			echo &quot;$pmenu.addItem(\&quot;$row-&gt;name\&quot;, \&quot;$row-&gt;link\&quot;, $row-&gt;browserNav, $active);\n&quot;;
		}</pre>
<p>in the function &#8216;genMenuItem&#8217;. </p>
<p>After the
<pre class="brush: php;">If (in_array($row-&gt;id, $this-&gt;parent-&gt;open) ) $active = 1;</pre>
<p> line, add the following line</p>
<pre class="brush: php;">$row-&gt;link = $sess-&gt;url( SECUREURL . $row-&gt;link);</pre>
<p>That&#8217;s it! This should fix the issue and you should be able to happily use the sh404sef plugin with transmenu!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nandebayo.org/blog/?feed=rss2&amp;p=104</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Virtuemart discount tax calculation fix</title>
		<link>http://www.nandebayo.org/blog/?p=80</link>
		<comments>http://www.nandebayo.org/blog/?p=80#comments</comments>
		<pubDate>Sat, 30 May 2009 07:55:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech Stuff]]></category>
		<category><![CDATA[coupon]]></category>
		<category><![CDATA[discount]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[shipping address]]></category>
		<category><![CDATA[tax calculation]]></category>
		<category><![CDATA[vendor address]]></category>
		<category><![CDATA[virtuemart]]></category>

		<guid isPermaLink="false">http://www.nandebayo.org/blog/?p=80</guid>
		<description><![CDATA[With this post on the virtuemart scene I am hoping a lot of people would be able to benefit. This is a bug in the existing virtuemart (till 1.1.3) system that is seen when discounts are being used and the tax calculation is set to be done after the reduced price. This issue is not [...]]]></description>
			<content:encoded><![CDATA[<p>With this post on the virtuemart scene I am hoping a lot of people would be able to benefit. This is a bug in the existing virtuemart (till 1.1.3) system that is seen when discounts are being used and the tax calculation is set to be done after the reduced price.</p>
<p>This issue is not seen when using tax calculation based on vendor address, but only in case of shipping address based tax calculation.<br />
<span id="more-80"></span><br />
The edit needs to be done only the ps_checkout.php (around line 1469) file as shown below.</p>
<pre class="brush: php;">		// Shipping address based TAX
		if ( !ps_checkout::tax_based_on_vendor_address () ) {
			$q = &quot;SELECT state, country FROM #__{vm}_user_info &quot;;
			$q .= &quot;WHERE user_info_id='&quot;.$ship_to_info_id. &quot;'&quot;;
			$db-&gt;query($q);
			$db-&gt;next_record();
			$state = $db-&gt;f(&quot;state&quot;);
			$country = $db-&gt;f(&quot;country&quot;);
			$q = &quot;SELECT * FROM #__{vm}_tax_rate WHERE tax_country='$country' &quot;;
			if( $state ) {
				$q .= &quot;AND tax_state='$state'&quot;;
			}
			$db-&gt;query($q);
			if ($db-&gt;next_record()) {
				$rate = $order_taxable * floatval( $db-&gt;f(&quot;tax_rate&quot;) );
				if (empty($rate)) {
					$order_tax = 0.0;
				}
				else {
					$order_tax = $rate;
				}
			}
			else {
				$order_tax = 0.0;
			}
			$order_tax_details[$db-&gt;f('tax_rate')] = $order_tax;
		}</pre>
<p>should be changed to look like</p>
<pre class="brush: php;">                // Shipping address based TAX
                if ( !ps_checkout::tax_based_on_vendor_address () ) {
                     $q = &quot;SELECT state, country FROM #__{vm}_user_info &quot;;
                     $q .= &quot;WHERE user_info_id='&quot;.$ship_to_info_id. &quot;'&quot;;
                     $db-&gt;query($q);
                    $db-&gt;next_record();
                    $state = $db-&gt;f(&quot;state&quot;);
                    $country = $db-&gt;f(&quot;country&quot;);
                    $q = &quot;SELECT * FROM #__{vm}_tax_rate WHERE tax_country='$country' &quot;;
                    if( $state ) {
                        $q .= &quot;AND tax_state='$state'&quot;;
                    }
                    $db-&gt;query($q);
                    if ($db-&gt;next_record()) {
                        $rate = $order_taxable * floatval( $db-&gt;f(&quot;tax_rate&quot;) );
                        if (empty($rate)) {
                            $order_tax = 0.0;
                        } else {
                            $cart = $_SESSION['cart'];
                            if( (!empty( $_SESSION['coupon_discount'] ) || !empty( $d['payment_discount'] ))
                                &amp;&amp; PAYMENT_DISCOUNT_BEFORE == '1' ) {

                                require_once(CLASSPATH.'ps_product.php');
                                $ps_product= new ps_product;

                                for($i = 0; $i &lt; $cart[&quot;idx&quot;]; $i++) {
                                    $item_weight = ps_shipping_method::get_weight($cart[$i][&quot;product_id&quot;]) * $cart[$i]['quantity'];

                                    if ($item_weight !=0 or TAX_VIRTUAL) {
                                        $price = $ps_product-&gt;get_adjusted_attribute_price($cart[$i][&quot;product_id&quot;], $cart[$i][&quot;description&quot;]);
                                        $price['product_price'] = $GLOBALS['CURRENCY']-&gt;convert( $price['product_price'], $price['product_currency']);
                                        $tax_rate = $db-&gt;f(&quot;tax_rate&quot;);

                                        $use_coupon_discount= @$_SESSION['coupon_discount'];
                                        if( !empty( $_SESSION['coupon_discount'] )) {
                                            if( $auth[&quot;show_price_including_tax&quot;] == 1 ) {
                                                $use_coupon_discount = $_SESSION['coupon_discount'] / ($tax_rate+1);
                                            }
                                        }
                                        $factor = (100 * ($use_coupon_discount + @$d['payment_discount'])) / $this-&gt;_subtotal;
                                        $price[&quot;product_price&quot;] = $price[&quot;product_price&quot;] - ($factor * $price[&quot;product_price&quot;] / 100);
                                        @$order_tax_details[$tax_rate] += $price[&quot;product_price&quot;] * $tax_rate * $cart[$i][&quot;quantity&quot;];

                                        $order_tax += $price[&quot;product_price&quot;] * $tax_rate * $cart[$i][&quot;quantity&quot;];
                                        $total += $price[&quot;product_price&quot;] * $cart[$i][&quot;quantity&quot;];
                                    } else {
                                        $order_tax += 0.0;
                                    }
                                }
                            } else {
                                $order_tax = $rate;
                            }
                        }
                    } else {
                        $order_tax = 0.0;
                    }
                    $order_tax_details[$db-&gt;f('tax_rate')] = $order_tax;
                }
</pre>
<p>I think this should pretty much eliminate the issue (unless I have missed something!). Also, if this is the correct fix I hope to have contributed to the future build of virtuemart (which, btw, is the best OSS for ecommerce!)</p>
<p>UPDATE:- After this, in the shopper group defaults, you need to deselect the &#8216;show price with tax&#8217; variable and this will work as expected.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nandebayo.org/blog/?feed=rss2&amp;p=80</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Homebrew at it&#8217;s best: BootMii</title>
		<link>http://www.nandebayo.org/blog/?p=88</link>
		<comments>http://www.nandebayo.org/blog/?p=88#comments</comments>
		<pubDate>Fri, 15 May 2009 07:27:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wii]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[BootMii]]></category>
		<category><![CDATA[Firmware]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[Homebrew Channel]]></category>
		<category><![CDATA[Nand]]></category>
		<category><![CDATA[Nintendo]]></category>
		<category><![CDATA[Restore]]></category>

		<guid isPermaLink="false">http://www.nandebayo.org/blog/?p=88</guid>
		<description><![CDATA[Coming back to the Wii homebrew scene after a long time and what a great thing to talk about &#8211; BootMii. The awesome guys at hackmii have released (initial beta) the much awaited homebrew that has the potential to bring back your Wii from almost any brick. A little background for those who haven&#8217;t heard [...]]]></description>
			<content:encoded><![CDATA[<p>Coming back to the Wii homebrew scene after a long time and what a great thing to talk about &#8211; <a class="wp-caption" title="BootMii website" href="http://bootmii.org/about/" target="_blank">BootMii</a>. The awesome guys at hackmii have <a class="wp-caption" title="BootMii release post" href="http://hackmii.com/2009/05/bootmii_beta_1/" target="_blank">released</a> (initial beta) the much awaited homebrew that has the potential to bring back your Wii from almost any brick.</p>
<p>A little background for those who haven&#8217;t heard of this before. The system boots through many stages and for all practical purposes, the very first stage after which it&#8217;s possible to brick the Wii, from bad firmware update to wrong region firmware etc, is now going to be protected.</p>
<p>This nifty hack into the system provides users with an option to boot directly into the Homebrew Channel, Backup / Restore your Nand without booting into the System Menu! What this means is if you brick your Wii in future with a bad firmware update (For eg) resulting in the error page directly on bootup, then this will come in handy, assuming you installed it beforehand <img src='http://www.nandebayo.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Backup your Nand (which, it seems can be done in under 3 minutes!) and keep it safe. If the firmware update goes back, all you gotta do is restore it using bootmii. Or you could use it to boot into the homebrew channel and use other homebrew utilities to restore your firmware. All the details are available on the <a class="wp-caption" title="BootMii website" href="http://bootmii.org/" target="_blank">homepage</a>.</p>
<p>Although it&#8217;s in beta right now and can cause a brick itself due to some unforeseen bug, it&#8217;s a big step in the right direction as it holds the potential of giving users something nintendo couldn&#8217;t &#8211; possibility to restore things in the worst case scenario! If you&#8217;re confident about playing around you could do the testing and help out the developers. If not, just wait out the beta testing and then install away the awesome BootMii, for you might just need it on some rainy day!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nandebayo.org/blog/?feed=rss2&amp;p=88</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wii Speak Channel</title>
		<link>http://www.nandebayo.org/blog/?p=63</link>
		<comments>http://www.nandebayo.org/blog/?p=63#comments</comments>
		<pubDate>Sun, 07 Dec 2008 15:03:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wii]]></category>
		<category><![CDATA[Microphone]]></category>
		<category><![CDATA[Speak Channel]]></category>
		<category><![CDATA[System Update]]></category>
		<category><![CDATA[USB mic]]></category>

		<guid isPermaLink="false">http://www.nandebayo.org/blog/?p=63</guid>
		<description><![CDATA[Nintendo seem to have quietly released the Wii speak channel. From the description it&#8217;s basically a chat client with support for upto 4 connections. All nice and cool! The catch however is that you need to buy the Wii Speak Microphone (seems to be a regular USB mic with high sensitivity) and enter the code [...]]]></description>
			<content:encoded><![CDATA[<p>Nintendo seem to have <a title="Nintendo System Update Page" href="http://www.nintendo.com/consumer/systems/wii/en_na/systemMenuFeatures.jsp" target="_blank">quietly</a> released the Wii speak channel. From the description it&#8217;s basically a chat client with support for upto 4 connections.</p>
<p>All nice and cool! The catch however is that you need to buy the <a title="Wii Speak Mic page" href="http://www.nintendo.com/consumer/systems/wii/en_na/acc/wiiSpeak.jsp" target="_blank">Wii Speak Microphone</a> (seems to be a regular USB mic with high sensitivity) and enter the code that comes along to download the channel.</p>
<p>Interesting update I must say. They keep adding fun things every once in a while. But forcing people to buy their mic is not so much of a nice thing to do!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nandebayo.org/blog/?feed=rss2&amp;p=63</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wii firmware 3.4 and the Twilight Hack</title>
		<link>http://www.nandebayo.org/blog/?p=61</link>
		<comments>http://www.nandebayo.org/blog/?p=61#comments</comments>
		<pubDate>Tue, 25 Nov 2008 06:35:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wii]]></category>
		<category><![CDATA[3.4]]></category>
		<category><![CDATA[beta2]]></category>
		<category><![CDATA[features]]></category>
		<category><![CDATA[Firmware 3.4]]></category>
		<category><![CDATA[policy]]></category>
		<category><![CDATA[Twilight Hack]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[Wii 3.4]]></category>

		<guid isPermaLink="false">http://www.nandebayo.org/blog/?p=61</guid>
		<description><![CDATA[So nintendo came back and released another firmware update for the Wii, v3.4. The good things being as below: USB keyboard support in Mii Channel Enhanced parental controls Improved SD card read/write speed Improved disc reading The good features aside, they also managed to kill the Twilight hack. Or so they thought anyways. The good [...]]]></description>
			<content:encoded><![CDATA[<p>So <a title="Nintendo Wii official Website" href="http://nintendo.com" target="_blank">nintendo</a> came back and released another firmware update for the Wii, <a title="Nintendo firmware update page" href="http://www.nintendo.com/consumer/systems/wii/en_na/systemMenuFeatures.jsp" target="_blank">v3.4</a>. The good things being as below:</p>
<ul>
<li>USB keyboard support in Mii Channel</li>
</ul>
<ul>
<li>Enhanced parental controls</li>
</ul>
<ul>
<li>Improved SD card read/write speed</li>
</ul>
<ul>
<li>Improved disc reading</li>
</ul>
<p>The good features aside, they also managed to kill the Twilight hack. Or so they thought anyways. The good guys at <a title="Hackmii official page" href="http://hackmii.com" target="_blank">hackmii</a> managed to exploit more bugs and have given us a <a title="Rise of the dead - new Twilight Hack" href="http://hackmii.com/2008/11/rise-of-the-dead/" target="_blank">new savefile</a> for the Twilight hack (beta2 now). The procedure for Twilight Hack remains the same and the good old method to run homebrew still lives on!</p>
<p>Also changed is the policy of updates. If you update to 3.4, nintendo will be able to update your firmware online without asking for your permission. That is a loss of lot of control. This is bad news especially given the fact that the modchips now support update blocking from the discs, which were not preventable earlier. The recommendation is to not update to this firmware, unless absolutely essential!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nandebayo.org/blog/?feed=rss2&amp;p=61</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Virtuemart coupon system mod</title>
		<link>http://www.nandebayo.org/blog/?p=45</link>
		<comments>http://www.nandebayo.org/blog/?p=45#comments</comments>
		<pubDate>Sat, 11 Oct 2008 09:57:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech Stuff]]></category>
		<category><![CDATA[coupons]]></category>
		<category><![CDATA[easy]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[minimum value]]></category>
		<category><![CDATA[modification]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[product specific]]></category>
		<category><![CDATA[safe]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[user specific]]></category>
		<category><![CDATA[virtuemart]]></category>

		<guid isPermaLink="false">http://www.nandebayo.org/blog/?p=45</guid>
		<description><![CDATA[Continuing on the virtuemart modifications series, this post is to help people who would like some basic features in the coupon code system, which allow for user specific, product specific and minimum value of order based discounts. This modification has been done for Joomla 1.5.6 + Virtuemart 1.1.2. This should be valid for the 1.5.x [...]]]></description>
			<content:encoded><![CDATA[<p>Continuing on the virtuemart modifications series, this post is to help people who would like some basic features in the coupon code system, which allow for user specific, product specific and minimum value of order based discounts. This modification has been done for Joomla 1.5.6 + Virtuemart 1.1.2. This should be valid for the 1.5.x and 1.1.x series, but no guarantees!</p>
<p><span id="more-45"></span></p>
<p>Before I begin and as much as I&#8217;d like to say that this is a very safe modification to do, if you do not understand php / sql do not proceed and even if you do, it is always best to backup your installation and database.</p>
<p>To start things off, we need to first be able to add the above values to the coupon from the administration panel. For that, open the following file:</p>
<blockquote><p>administrator/components/com_virtuemart/html/coupon.coupon_form.php</p></blockquote>
<p>and before the end of the form, that is before the &lt;/table&gt; and the &lt;tr&gt; group add the following code:</p>
<pre class="brush: php;">&lt;!-- Modification to add support for additional coupon code options --&gt;
&lt;tr&gt;
  &lt;td width=&quot;24%&quot;&gt;&lt;div align=&quot;right&quot;&gt;&lt;?php echo $VM_LANG-&gt;_('PHPSHOP_COUPON_PRODUCT_ID') ?&gt;:&lt;/div&gt;&lt;/td&gt;
  &lt;td width=&quot;76%&quot;&gt; &lt;input type=&quot;text&quot; class=&quot;inputbox&quot; name=&quot;product_id&quot; value=&quot;&lt;?php $db-&gt;sp(&quot;product_id&quot;); ?&gt;&quot; /&gt; &lt;/td&gt;
&lt;/tr&gt; 

&lt;tr&gt;
  &lt;td width=&quot;24%&quot;&gt;&lt;div align=&quot;right&quot;&gt;&lt;?php echo $VM_LANG-&gt;_('PHPSHOP_COUPON_USER_ID') ?&gt;:&lt;/div&gt;&lt;/td&gt;
  &lt;td width=&quot;76%&quot;&gt; &lt;input type=&quot;text&quot; class=&quot;inputbox&quot; name=&quot;user_id&quot; value=&quot;&lt;?php $db-&gt;sp(&quot;user_id&quot;); ?&gt;&quot; /&gt; &lt;/td&gt;
&lt;/tr&gt; 

&lt;tr&gt;
  &lt;td width=&quot;24%&quot;&gt;&lt;div align=&quot;right&quot;&gt;&lt;?php echo $VM_LANG-&gt;_('PHPSHOP_COUPON_MIN_VALUE') ?&gt;:&lt;/div&gt;&lt;/td&gt;
  &lt;td width=&quot;76%&quot;&gt; &lt;input type=&quot;text&quot; class=&quot;inputbox&quot; name=&quot;min_value&quot; value=&quot;&lt;?php $db-&gt;sp(&quot;min_value&quot;); ?&gt;&quot; /&gt; &lt;/td&gt;
&lt;/tr&gt; 

&lt;tr&gt;
  &lt;td width=&quot;24%&quot;&gt;&lt;div align=&quot;right&quot;&gt;&lt;?php echo $VM_LANG-&gt;_('PHPSHOP_COUPON_DISC_TYPE') ?&gt;:&lt;/div&gt;&lt;/td&gt;
  &lt;td width=&quot;76%&quot;&gt; &lt;input type=&quot;radio&quot; class=&quot;inputbox&quot; name=&quot;discount_type&quot; value=&quot;overall&quot; &lt;?php if($db-&gt;sf(&quot;discount_type&quot;)=='overall' || empty($coupon_id)) echo &quot;checked=\&quot;checked\&quot;&quot;; ?&gt; /&gt; &lt;?php echo $VM_LANG-&gt;_('PHPSHOP_COUPON_DISC_OVERALL_TYPE') ?&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;?php echo mm_ToolTip( $VM_LANG-&gt;_('PHPSHOP_PRODUCT_DISCOUNT_TYPE_TIP') ); ?&gt;&lt;br /&gt; &lt;input type=&quot;radio&quot; class=&quot;inputbox&quot; name=&quot;discount_type&quot; value=&quot;specific&quot; &lt;?php if($db-&gt;sf(&quot;discount_type&quot;)=='specific') echo &quot;checked=\&quot;checked\&quot;&quot;; ?&gt; /&gt; &lt;?php echo $VM_LANG-&gt;_('PHPSHOP_COUPON_DISC_SPECIFIC_TYPE') ?&gt; &lt;/td&gt;
&lt;/tr&gt; 

&lt;!-- End of modification--&gt;
</pre>
<p>Now, if you see the coupons in the administration panel, you&#8217;ll see new fields but nothing will be there to show what those fields are for. That is okay because we haven&#8217;t added the language modifications to the language file.</p>
<p>For that, open the following file</p>
<blockquote><p>administrator/components/com_virtuemart/languages/common/english.php</p></blockquote>
<p>and add the following code anywhere. The options include the language sets for the modifications which we haven&#8217;t yet made, but since they&#8217;ll be needed we&#8217;ll just add them all together.</p>
<pre class="brush: php;">        // custom messages for coupon code
'PHPSHOP_COUPON_PRODUCT_ID' =&gt; 'Product ID',
'PHPSHOP_COUPON_USER_ID' =&gt; 'User ID',
'PHPSHOP_COUPON_MIN_VALUE' =&gt; 'Minimum order value',
'PHPSHOP_COUPON_DISC_TYPE' =&gt; 'Discount type',
'PHPSHOP_PRODUCT_DISCOUNT_TYPE_TIP' =&gt; 'Overall discount gives discount to all products while specific gives discount only to that specific product. Makes sense only if you are selecting percentage discount type',
'PHPSHOP_COUPON_DISC_OVERALL_TYPE' =&gt; 'Overall',
'PHPSHOP_COUPON_DISC_SPECIFIC_TYPE' =&gt; 'Specific',
'PHPSHOP_PRODUCT_ID_NOT_NUMBER' =&gt; 'Product ID is not a number',
'PHPSHOP_USER_ID_NOT_NUMBER' =&gt; 'User ID is not a number',
'PHPSHOP_MIN_VALUE_NOT_NUMBER' =&gt; 'Minimum value is not a number',
'PHPSHOP_PRODUCT_ID_NEEDED' =&gt; 'Product ID is required when selecting specific discount type',
'PHPSHOP_REMOVE_COUPON' =&gt; 'Remove',
// end of custom messages for coupon code</pre>
<p>Now you should be seeing what the new fields are for in the coupons page in admin panel. However, if you save any changes, they&#8217;ll not be made because we haven&#8217;t added the code and haven&#8217;t modified the database table to hold those values. If you have phpmyadmin, then just add the following fields to &#8216;jos_vm_coupons&#8217; table (jos_vm prefix might be different for you if you chose a different prefix while installing).</p>
<blockquote><p>product_id, user_id, min_value, discount_type</p></blockquote>
<p>All of the fields should be &#8216;text&#8217; type. All of them should have default value as null and should be nullable. If you do not have phpmyadmin, search for sql syntax and add these tables as specified above.</p>
<p>Now, we need to add code to process these values from the coupons form. Go to</p>
<blockquote><p>administrator/components/com_virtuemart/classes/ps_coupon.php</p></blockquote>
<p>and then to the &#8216;add_coupon&#8217; function. Add the following to the starting of the function:</p>
<pre class="brush: php;">$product_id = NULL;
$user_id = NULL;
$min_value = NULL;

if ((int)($d['product_id'])) {
$product_id = (int)$d['product_id'];
}
if ((int)($d['user_id'])) {
$user_id = (int)$d['user_id'];
}
if ((int)($d['min_value'])) {
$min_value = (float)$d['min_value'];
}</pre>
<p>and add these lines to the &#8216;$fields =&gt; array(&#8216;, at the ending part of it. Also, make sure you add a &#8216;,&#8217; to the last value</p>
<pre class="brush: php;">'coupon_value' =&gt; (float)$d['coupon_value']</pre>
<pre class="brush: php;">'product_id' =&gt; $product_id  != 0 ? $product_id : NULL,
'user_id' =&gt; $user_id  != 0 ? $user_id : NULL,
'min_value' =&gt; $min_value != 0 ? $min_value : NULL,
'discount_type' =&gt; strtolower($d['discount_type']) == 'overall' ? 'overall' : 'specific'</pre>
<p>Make same modifications to the &#8216;update_coupon&#8217; function. Now you should be able to make changes to your coupons in the admin panel and they should stay as per your modifications. As of now, the &#8216;product_id&#8217; and &#8216;user_id&#8217; have to be manually put in by looking at the database but later on, I plan to make things easier.</p>
<p>Now, we need to make sure that the coupon is processed as per our requirements. Go to the &#8216;process_coupon_code&#8217; function in the same file. Modify the query variable &#8216;$q&#8217; in this function to add the following variables</p>
<blockquote><p>product_id, user_id, min_value, discount_type</p></blockquote>
<p>and under</p>
<pre class="brush: php;">if ($coupon_db-&gt;num_rows() &gt; 0)
{</pre>
<p>add the following code</p>
<pre class="brush: php;">if ($coupon_db-&gt;f('product_id') != null) {
$cart = $_SESSION['cart'];
$return_status = 0;

for($i = 0; $i &lt; $cart['idx']; $i++) {
if ($cart[$i]['product_id'] == $coupon_db-&gt;f('product_id')) {
$return_status = 1;
}
}

if ($return_status == 0) {
$GLOBALS['coupon_error'] = $VM_LANG-&gt;_('PHPSHOP_COUPON_CODE_INVALID');
return false;
}

}

$auth = $_SESSION['auth'];

if ($coupon_db-&gt;f('user_id') != null &amp;&amp; $coupon_db-&gt;f('user_id') != $auth['user_id']) {
$GLOBALS['coupon_error'] = $VM_LANG-&gt;_('PHPSHOP_COUPON_CODE_INVALID');
return false;
}
if ($coupon_db-&gt;f('min_value') != null &amp;&amp; round($d['total']) &lt; $coupon_db-&gt;f('min_value')) {
$GLOBALS['coupon_error'] = $VM_LANG-&gt;_('PHPSHOP_COUPON_CODE_INVALID');
return false;
}</pre>
<p>and below this, modify the existing</p>
<pre class="brush: php;">if ($coupon_db-&gt;f('percent_or_total') == 'percent')
{
/* percent */
//$subtotal = $checkout-&gt;calc_order_subtotal( $d );

/* take the subtotal for calculation of the discount */
$coupon_value = round( ($d['total'] * $coupon_db-&gt;f('coupon_value') / 100), 2);

if( $d['total'] &lt; $coupon_value ) {
$coupon_value = (float)$d['total'];
$vmLogger-&gt;info( str_replace('{value}',$GLOBALS['CURRENCY_DISPLAY']-&gt;getFullValue( $coupon_value ),$VM_LANG-&gt;_('VM_COUPON_GREATER_TOTAL_SETTO')) );
}
$_SESSION['coupon_discount'] = $coupon_value;
}             </pre>
<p>to look like this</p>
<pre class="brush: php;">if ($coupon_db-&gt;f('percent_or_total') == 'percent')
{
/* percent */
//$subtotal = $checkout-&gt;calc_order_subtotal( $d );

/* take the subtotal for calculation of the discount */
if ($coupon_db-&gt;f('discount_type') == 'overall') {
$coupon_value = round( ($d['total'] * $coupon_db-&gt;f('coupon_value') / 100), 2);

if( $d['total'] &lt; $coupon_value ) {
$coupon_value = (float)$d['total'];
$vmLogger-&gt;info( str_replace('{value}',$GLOBALS['CURRENCY_DISPLAY']-&gt;getFullValue( $coupon_value ),$VM_LANG-&gt;_('VM_COUPON_GREATER_TOTAL_SETTO')) );
}
$_SESSION['coupon_discount'] = $coupon_value;
} else {
$product_number = null;
$cart = $_SESSION['cart'];

for($i = 0; $i &lt; $cart['idx']; $i++) {
if ($cart[$i]['product_id'] == $coupon_db-&gt;f('product_id')) {
$product_number = $i;
}
}
require_once(CLASSPATH.'ps_product.php');
$ps_product= new ps_product;
$price = $ps_product-&gt;get_adjusted_attribute_price($cart[$product_number]['product_id'], $cart[$product_number]['description']);
$product_price = $GLOBALS['CURRENCY']-&gt;convert( $price['product_price'], @$price['product_currency'] );
$coupon_calculation_value = $cart[$product_number]['quantity'] * $product_price;

$coupon_value = round( ($coupon_calculation_value * $coupon_db-&gt;f('coupon_value') / 100), 2);

if( $d['total'] &lt; $coupon_value ) {
$coupon_value = (float)$d['total'];
$vmLogger-&gt;info( str_replace('{value}',$GLOBALS['CURRENCY_DISPLAY']-&gt;getFullValue( $coupon_value ),$VM_LANG-&gt;_('VM_COUPON_GREATER_TOTAL_SETTO')) );
}
$_SESSION['coupon_discount'] = $coupon_value;

}

}
else
{

$coupon_value = $coupon_db-&gt;f('coupon_value');

/* Total Amount */
if( $d['total'] &lt; $coupon_value ) {
$coupon_value = (float)$d['total'];
$vmLogger-&gt;info( str_replace('{value}',$GLOBALS['CURRENCY_DISPLAY']-&gt;getFullValue( $coupon_value ),$VM_LANG-&gt;_('VM_COUPON_GREATER_TOTAL_SETTO')) );
}
$_SESSION['coupon_discount'] = $GLOBALS['CURRENCY']-&gt;convert( $coupon_value );

}</pre>
<p>Now, for the last modification. This is actually something generic for virtuemart, wherein when a product is deleted, the coupon still remains. If a user adds a coupon and deletes the product and adds another product, the coupon should not remain. The following modification ensures that.</p>
<p>Open file</p>
<blockquote><p>administrator/components/com_virtuemart/classes/ps_cart.php</p></blockquote>
<p>and around line 442, where you should be seeing</p>
<pre class="brush: php;">$temp['idx'] = $j;
$_SESSION['cart'] = $temp;
ps_cart::saveCart();</pre>
<p>add the following below the abovementioned code:</p>
<pre class="brush: php;">if ($_SESSION['coupon_id']) {
require_once(CLASSPATH.'ps_coupon.php');
$ps_coupon = new ps_coupon();
if (!$ps_coupon-&gt;process_coupon_code($d)) {
unset($_SESSION['coupon_discount']);
unset($_SESSION['coupon_id']);
unset($_SESSION['coupon_code']);
unset($_SESSION['coupon_type']);
unset($_SESSION['coupon_value']);
unset($_SESSION['coupon_redeemed']);
}
}</pre>
<p>That&#8217;s it! You should now have the functionality of the coupons to be used with the features mentioned above! And that too with the niceness of native 1.5 code. Hope it helps a lot of people looking to add basic coupon functionality to their virtuemarts!</p>
<p>Update:- For those people having an issue with doubling coupon discounts (generic VM issue with 1.1.4), take a look at comment 118! Thanks for pointing it out George!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nandebayo.org/blog/?feed=rss2&amp;p=45</wfw:commentRss>
		<slash:comments>135</slash:comments>
		</item>
		<item>
		<title>Virtuemart cancel orders mod</title>
		<link>http://www.nandebayo.org/blog/?p=40</link>
		<comments>http://www.nandebayo.org/blog/?p=40#comments</comments>
		<pubDate>Mon, 29 Sep 2008 16:26:47 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Tech Stuff]]></category>
		<category><![CDATA[account maintenance]]></category>
		<category><![CDATA[easy]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[mod]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[order cancel]]></category>
		<category><![CDATA[virtuemart]]></category>

		<guid isPermaLink="false">http://www.nandebayo.org/blog/?p=40</guid>
		<description><![CDATA[So this is the first post on this topic and I hope it helps a lot of people out there using Joomla and Virtuemart to drive their online businesses. I&#8217;ll just give a brief background about the issue and then move on to explain how to get things done. One of the very basic things [...]]]></description>
			<content:encoded><![CDATA[<p>So this is the first post on this topic and I hope it helps a lot of people out there using Joomla and Virtuemart to drive their online businesses. I&#8217;ll just give a brief background about the issue and then move on to explain how to get things done.</p>
<p>One of the very basic things in the whole process of e-commerce is providing the shopper with as much flexibility as possible. Of the many things this category can include, one is giving the user to cancel his order at any time before it&#8217;s practically possible. Despite virtuemart being an awesome e-commerce solution, this is one of the many features that it does lack. However, being open source community develops and gets back with solutions to such problems and that is the plan in this post (series of which will hopefull follow with more functionality features).</p>
<p><span id="more-40"></span></p>
<p>Before I proceed, I&#8217;ll say that I have only tested this as much as a single person can test and there could be certain bugs that could be present which I am unaware of. At the same time, i have tried to keep things as clean and compatible as possible. So it should not really break anything. This mod has been used on Joomla 1.5.6 and Virtuemart 1.1.2, so if you&#8217;re using a different version, things might be a little different.</p>
<p>Also, even though this is not very complex, if you&#8217;re not used to seeing and editing lines and lines of code, you should not risk editing any of your files. Even if you&#8217;re experienced, it always pays to make backups of files before you go ahead and edit the hell out of your live site!</p>
<p>Now lets get to the coding stuff. The mod is composed of small edits to existing files and new files that will be plugged in. The following existing files will need editing:</p>
<blockquote><p>administrator/components/com_virtuemart/classes/ps_order.php</p>
<p>components/com_sh404sef/sef_ext/com_virtuemart.php</p>
<p>components/com_sh404sef/language/plugins/com_virtuemart.php</p>
<p>components/com_virtemart/languages/common/english.php</p></blockquote>
<p>For convenience, I&#8217;ll be referring them to as file 1, file 2, file 3 and file 4 &#8211; as their order above.</p>
<p>Now, the first step is to make an order cancellation button appear on the account panel of the user. For this, open file 1 and go to the function &#8216;list_order&#8217;. This should be around line 548. Look for code
<pre class="brush: css;">while ($db-&gt;next_record()) {

			$order_status = ps_order_status::getOrderStatusName($db-&gt;f(&quot;order_status&quot;));

			$listObj-&gt;newRow();

			$tmp_cell = &quot;&lt;a href=\&quot;&quot;. $sess-&gt;url( $mm_action_url.&quot;index.php?page=account.order_details&amp;order_id=&quot;.$db-&gt;f(&quot;order_id&quot;) ).&quot;\&quot;&gt;\n&quot;;
			$tmp_cell .= &quot;&lt;img src=\&quot;&quot;.IMAGEURL.&quot;ps_image/goto.png\&quot; height=\&quot;32\&quot; width=\&quot;32\&quot; align=\&quot;middle\&quot; border=\&quot;0\&quot; alt=\&quot;&quot;.$VM_LANG-&gt;_('PHPSHOP_ORDER_LINK').&quot;\&quot; /&gt;&amp;nbsp;&quot;.$VM_LANG-&gt;_('PHPSHOP_VIEW').&quot;&lt;/a&gt;&lt;br /&gt;&quot;;
			$listObj-&gt;addCell( $tmp_cell );

			$tmp_cell = &quot;&lt;strong&gt;&quot;.$VM_LANG-&gt;_('PHPSHOP_ORDER_PRINT_PO_DATE').&quot;:&lt;/strong&gt; &quot; . strftime(&quot;%d. %B %Y&quot;, $db-&gt;f(&quot;cdate&quot;));
			$tmp_cell .= &quot;&lt;br /&gt;&lt;strong&gt;&quot;.$VM_LANG-&gt;_('PHPSHOP_ORDER_PRINT_TOTAL').&quot;:&lt;/strong&gt; &quot; . $CURRENCY_DISPLAY-&gt;getFullValue($db-&gt;f(&quot;order_total&quot;), '', $db-&gt;f('order_currency'));
			$listObj-&gt;addCell( $tmp_cell );

			$tmp_cell = &quot;&lt;strong&gt;&quot;.$VM_LANG-&gt;_('PHPSHOP_ORDER_PRINT_PO_STATUS').&quot;:&lt;/strong&gt; &quot;.$order_status;
			$tmp_cell .= &quot;&lt;br /&gt;&lt;strong&gt;&quot;.$VM_LANG-&gt;_('PHPSHOP_ORDER_PRINT_PO_NUMBER').&quot;:&lt;/strong&gt; &quot; . sprintf($db-&gt;f(&quot;order_number&quot;));
			$listObj-&gt;addCell( $tmp_cell );
}</pre>
<p>Towards end of the while code, just below the last &#8220;$listObj-&gt;addcell($tmp_cell)&#8221; add the following code
<pre class="brush: css;">// cancellation page to be created
                        if ($db-&gt;f('order_status') == 'P' || $db-&gt;f('order_status') == 'C') {
                          $tmp_cell = &quot;&lt;a href=\&quot;&quot;. $sess-&gt;url( $mm_action_url.&quot;index.php?page=account.order_cancel&amp;order_id=&quot;.$db-&gt;f('order_id') ).&quot;\&quot;&gt;\n&quot;;
                          $tmp_cell .= &quot;&lt;img src=\&quot;&quot;.IMAGEURL.&quot;ps_image/cancel.png\&quot; height=\&quot;32\&quot; width=\&quot;32\&quot; align=\&quot;middle\&quot; border=\&quot;0\&quot; alt=\&quot;&quot;.$VM_LANG-&gt;_('PHPSHOP_ORDER_LINK').&quot;\&quot; /&gt;&amp;nbsp;&quot;.$VM_LANG-&gt;_('PHPSHOP_CANCEL').&quot;&lt;/a&gt;&lt;br /&gt;&quot;;
                          $listObj-&gt;addCell( $tmp_cell );
                        }</pre>
<p>This allows for the button to appear when the order is in &#8220;Pending&#8221; or &#8220;Confirmed&#8221; mode. This is to allow the user to cancel his order before the item has been shipped. If you&#8217;d like any other kind of behaviour, edit it as you deem fit. You&#8217;ll also need a &#8220;cancel.png&#8221; file at the following location:</p>
<blockquote><p>components/com_virtuemart/shop_image/ps_image/</p></blockquote>
<p>This should preferably be a square image with 32&#215;32 as the dimensions. Even if the image is bigger, it&#8217;ll get resized to the 32&#215;32 dimensions, so make sure your image looks good on those scales.</p>
<p>If you&#8217;ve correctly applied the above code, you should be seeing a nice cancel button in the account maintenance tab in the list of order, to the rightmost for &#8220;Pendin&#8221; / &#8220;Confirmed&#8221; orders. If you click the link, you&#8217;ll get a 404 page as there is no cancellation page yet.</p>
<p>For that, find the attached files. Please the files as follows:</p>
<blockquote><p>account.order_cancel.php -&gt; administrator/components/com_virtuemart/html</p>
<p>account.order_cancel.php -&gt; components/com_virtuemart/themes/default/templates/pages</p></blockquote>
<p>After this is done, open file 3 and in the english section add at the last</p>
<pre class="brush: css;">$sh_LANG['en']['_PHPSHOP_ORDER_CANCEL'] = 'Order cancellation';</pre>
<p>Now, open file 4 and add
<pre class="brush: css;">'PHPSHOP_ACC_ORDER_CANCEL' =&gt; 'Cancellation of ',
'PHPSHOP_ACC_ORDER_CANCEL_TITLE' =&gt; 'Order Cancellation',
'PHPSHOP_ACC_ORDER_CANCEL_MESSAGE' =&gt; 'Are you sure you want to cancel this order ?',
'PHPSHOP_ACC_ORDER_CANCEL_MESSAGE_ERROR' =&gt; 'Unable to cancel this order! Please try later or contact customer care.',
'PHPSHOP_ACC_ORDER_CANCEL_MESSAGE_SUCCESS' =&gt; 'Success cancelling order! You will receive your refund shortly.',
'PHPSHOP_ACC_ORDER_CANCEL_MESSAGE_DENY' =&gt; 'Order is already cancelled.',
'PHPSHOP_ACC_ORDER_CANCEL_MESSAGE_DECLINE' =&gt; 'Unauthorized access!',</pre>
<p>You can add this at anyplace you feel appropriate below
<pre class="brush: css;">$langvars = array (</pre>
<p> before the block ends.</p>
<p>Now, just to make the whole thing SEF compatible, open file 2 and find
<pre class="brush: css;">case 'account.order_details':
$order_id = isset($order_id) ? @$order_id : null;
if ($sefConfig-&gt;shVmInsertShopName) $title[] = $shShopName;
if ($shVmCChk)
$title[] = 'vmchk';
$title[] =  $sh_LANG[$shLangIso]['_PHPSHOP_VIEW'].$sefConfig-&gt;replacement
.$sh_LANG[$shLangIso]['_PHPSHOP_ORDER_ITEM']
.($order_id ? $sefConfig-&gt;replacement.'id'.strval($order_id):'');
if (isset($order_id))  // V 1.2.4.r
shRemoveFromGETVarsList('order_id');
break;</pre>
<p>and add just below it the following
<pre class="brush: css;">case 'account.order_cancel':
$order_id = isset($order_id) ? @$order_id : null;
if ($sefConfig-&gt;shVmInsertShopName) $title[] = $shShopName;
if ($shVmCChk)
$title[] = 'vmchk';
$title[] =  $sh_LANG[$shLangIso]['_PHPSHOP_VIEW'].$sefConfig-&gt;replacement
.$sh_LANG[$shLangIso]['_PHPSHOP_ORDER_CANCEL']
.($order_id ? $sefConfig-&gt;replacement.'id'.strval($order_id):'');
if (isset($order_id))  // V 1.2.4.r
shRemoveFromGETVarsList('order_id');
shRemoveFromGETVarsList('order_cancel');
break;  </pre>
<p>That&#8217;s it! You&#8217;re now have an order cancellation button (assuming you edited correctly and I haven&#8217;t forgotten anything) in the Account Maintenance tab! This should allow the user to cancel the orders till the confirmed stage.</p>
<p>If you would like to be notified when an order has been cancelled, add the notify code for cancellation case in the notify_customer function in file 1.</p>
<p>Hope this helps a lot of people doing e-commerce with the open source friendly virtuemart!</p>
<p><a href="http://www.nandebayo.org/blog/wp-content/uploads/2008/10/account_order.zip">account_order</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nandebayo.org/blog/?feed=rss2&amp;p=40</wfw:commentRss>
		<slash:comments>32</slash:comments>
		</item>
		<item>
		<title>Wii Recovery Dongle aka SaveMii Released</title>
		<link>http://www.nandebayo.org/blog/?p=35</link>
		<comments>http://www.nandebayo.org/blog/?p=35#comments</comments>
		<pubDate>Sat, 27 Sep 2008 08:14:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wii]]></category>
		<category><![CDATA[BootMii]]></category>
		<category><![CDATA[dongle]]></category>
		<category><![CDATA[Gamecube slot]]></category>
		<category><![CDATA[recovery mode]]></category>
		<category><![CDATA[SaveMii]]></category>
		<category><![CDATA[Unbrick]]></category>

		<guid isPermaLink="false">http://www.nandebayo.org/blog/?p=35</guid>
		<description><![CDATA[The much talked about recovery dongle for the Wii is here!! And it has been appropriately been named SaveMii. As per the article, this is not the complete solution but should help unbrick Wiis that can reach the System Menu stage. This plugs into the gamecube slot and boots the Wii into a recovery mode. [...]]]></description>
			<content:encoded><![CDATA[<p>The much talked about recovery dongle for the Wii is <a title="SaveMii" href="http://hackmii.com/2008/09/savemii-launch/" target="_blank">here</a>!! And it has been appropriately been named SaveMii. As per the article, this is not the complete solution but should help unbrick Wiis that can reach the System Menu stage. This plugs into the gamecube slot and boots the Wii into a recovery mode. Aftet this, using an update disc you can unbrick your Wii. As simple as that! At this point I am not really sure if this fixes the bootup white page scenario, but it&#8217;s an awesome release nonetheless.</p>
<p>Further in the article, they&#8217;ve talked about a BootMii release for the future, which will be a complete solution for the bricked Wiis of any kind. However, if SaveMii fixes your Wii, that should be more than enough. A big advantage that BootMii will come with though, is a safeguard against bricks. This means, you will not be able to brick your Wii (software-wise ofcourse <img src='http://www.nandebayo.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ) using the &#8216;softpatching&#8217; that the dongle will provide.</p>
<p>These are pretty much the details available right now. If you have a bricked Wii that you&#8217;ve been unable to fix via the solutions that have been posted by me and others, then this should worth a try and you should consider <a title="SaveMii Website" href="http://savemii.net/" target="_blank">buying</a> one! Keep reading for more updates on this!</p>
<p>UPDATE:- It does seem to fix the famous Whitepage error (otherwise known as fullbrick)! Considering that it is only $30 with shipping, it&#8217;s definitely something worth buying, even if you&#8217;ve not yet bricked your Wii yet! I am definitely ordering mine!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nandebayo.org/blog/?feed=rss2&amp;p=35</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Wii recovery Dongle and other Updates</title>
		<link>http://www.nandebayo.org/blog/?p=28</link>
		<comments>http://www.nandebayo.org/blog/?p=28#comments</comments>
		<pubDate>Fri, 05 Sep 2008 11:36:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wii]]></category>
		<category><![CDATA[anyregion changer]]></category>
		<category><![CDATA[d2e]]></category>
		<category><![CDATA[D2Pro]]></category>
		<category><![CDATA[DVD]]></category>
		<category><![CDATA[dvdx library]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[IOS dvd dumper]]></category>
		<category><![CDATA[Media playback]]></category>
		<category><![CDATA[menuloader]]></category>
		<category><![CDATA[modchip]]></category>
		<category><![CDATA[Mplayer]]></category>
		<category><![CDATA[Title uninstaller]]></category>
		<category><![CDATA[Wasabi]]></category>
		<category><![CDATA[wii recovery dongle]]></category>
		<category><![CDATA[wii unbrick]]></category>

		<guid isPermaLink="false">http://www.nandebayo.org/blog/?p=28</guid>
		<description><![CDATA[Been a long time since the last post on the Wii scene, mostly because I am too lazy to type. However, this long a time has brought about a lot of things on the scene. The most important of them being the recent recovery dongle for the Wii. Before you get too excited, let me [...]]]></description>
			<content:encoded><![CDATA[<p>Been a long time since the last post on the Wii scene, mostly because I am too lazy to type. However, this long a time has brought about a lot of things on the scene. The most important of them being the recent <a title="Wii Recovery Dongle official 'announcement'" href="http://hackmii.com/2008/09/wii-recovery-dongle/" target="_blank">recovery dongle</a> for the Wii.</p>
<p>Before you get too excited, let me just say that it is not really &#8216;out&#8217; right now. From what I understood from marcan&#8217;s post (one of the lead developers on the homebrew, hacking the Wii scene, like Bushing) is that it&#8217;s still in it&#8217;s preliminary stages and that the release plans for the dongle as such are not there. So it&#8217;s still a little waiting before things get handy. Nonetheless, it&#8217;s a really nice update for people who bricked their Wiis. There are three cases of bricked Wiis that can be recovered, one of which includes the famous <a title="Bricked Wii screen" href="http://www.youtube.com/watch?v=Sa5OzwhuA8o" target="_blank">white screen brick</a>. When the dongle is out, it will be as simple as (as per my understanding) plug in the dongle, boot the Wii, pop in a disc with firmware update and your Wii is back!</p>
<p>Moving on to the other things, the next most important thing was the development of the DVDX <a title="libdi and DVDX installer" href="http://hackmii.com/2008/08/libdi-and-the-dvdx-installer/" target="_blank">library</a>. With this the much awaited DVD playback is now available on the Wii! Thanks to the guys over at hackmii, this helps developers read DVDs making homebrew softwares. A version of mplayer for the Wii is already out which supports the DVD playback. Also supported by the updated mplayer is USB playback, which means you can now play your favourite media on the Wii using a USB drive / stick! So much for the lack of media capabilities built-in on the Wii !!</p>
<p>Next on scene is the awesome <a title="menuloader official release" href="http://hackmii.com/2008/08/menuloader-04-test-version/" target="_blank">menuloader</a>. This is an application released by marcan (the same guy as above) which loads a patched version of the system menu (read custom firmware) withouth making any changes permanent. This is just too awesome given the fact that installing custom firmwares (permanently) can lead to a bricked Wii. With this, if the custom firmware doesn&#8217;t work out, you just reboot and the Wii is back in it&#8217;s original form! Though, the uses for this are now limited, given the fact that the most required features of custom firmwares are already out in homebrew software form. The usage of this is rather simple. Install it in the homebrew channel, select the &#8216;patches&#8217; via this and it&#8217;s all set. Couldn&#8217;t have been more easier than this!</p>
<p>One of the most interesting post apps released on the homebrew scene is the <a title="AnyRegion Changer app" href="http://wiibrew.org/wiki/AnyRegion_Changer" target="_blank">AnyRegion changer</a>. This lets your change the region of your Wii (permanently). After you change your region, you have to install a firmware of the same region. However, this is rather risky as you can brick your Wii rather easily. But if you bought a Wii when it was available somewhere and it wasn&#8217;t of your region, then this app can come in rather handy. Change the region of the Wii to yours, and you&#8217;re all set to go!</p>
<p>Also released was this app by Waninkoko, the custom <a title="Custom IOS DVD dumper" href="http://teknoconsolas.info/foro/viewtopic.php?f=95&amp;t=49313" target="_blank">IOS DVD dumper</a>. With this custom firmware, you can dump your DVD to an SD card so that you can keep a backup in case your original DVD goes bad. Much easier than having to download the whole DVD from internet just for the sake of backup.</p>
<p>On the modding scene, new Wiis came out with D2E chpsets (D2C, D2C2 and now these, phew, nintendo sure doesn&#8217;t give up!). And as usual, all the major modchips released their versions of D2E compliant chips. <a title="D2pro news" href="http://www.d2pro.com/news.html" target="_blank">D2pro</a> and <a title="Wasabi homepage" href="http://wasabi.net.cn/" target="_blank">Wasabi</a> are the two chips which are out there and working with these latest boards.</p>
<p>Also released was this app called <a title="Wii Title Uninstaller" href="http://nintendo-scene.com/1095" target="_blank">Title uninstaller</a>. Unlike the Wad uninstaller released a while back, this does not require you to have the original Wad files to uninstall the Titles installed on the Wii. Much useful incase you installed some title and don&#8217;t know which Wad file was used for it.</p>
<p>And this pretty much sums up all the important stuff having happened on the Wii scene (from my point of view anyways). Happy Wiing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nandebayo.org/blog/?feed=rss2&amp;p=28</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yet another MSI Wind unboxing</title>
		<link>http://www.nandebayo.org/blog/?p=31</link>
		<comments>http://www.nandebayo.org/blog/?p=31#comments</comments>
		<pubDate>Sat, 16 Aug 2008 10:38:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Computers]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[MSi Wind]]></category>
		<category><![CDATA[synaptic]]></category>
		<category><![CDATA[unboxing]]></category>

		<guid isPermaLink="false">http://www.nandebayo.org/blog/?p=31</guid>
		<description><![CDATA[A lot of unboxing videos are out there, but since I received one of the few MSI Winds people have been able to get their hands on, I thought I might as well put mine out there. The camera guy was rather excited about filming the whole thing so you&#8217;ll have to excuse the occasional [...]]]></description>
			<content:encoded><![CDATA[<p>A lot of unboxing videos are out there, but since I received one of the few MSI Winds people have been able to get their hands on, I thought I might as well put mine out there. </p>
<p>The camera guy was rather excited about filming the whole thing so you&#8217;ll have to excuse the occasional out of the odds comments, but go ahead and watch. This shipped from amazon on 30th July, with the good old synaptic touchpad.</p>
<div class="flvPlayer">				<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="480" height="380"><param name="movie" value="https://media.dreamhost.com/mediaplayer.swf?file=http://www.nandebayo.org/Movie_0001_480x360.flv&amp;autoStart=false;" /><param name="quality" value="high" /><param name="wmode" value="transparent" /><embed src="https://media.dreamhost.com/mediaplayer.swf?file=http://www.nandebayo.org/Movie_0001_480x360.flv&amp;autoStart=false;" quality="high" wmode="transparent" width="480" height="380" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /><br />
				</object></div>
<p>Hopefully, an exhaustive review (yet another on the scene) will also be following this very soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nandebayo.org/blog/?feed=rss2&amp;p=31</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.797 seconds -->
