<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>John Watson, freelance web developer for hire » Blog</title>
	
	<link>http://watson-net.com</link>
	<description>14+ years of practical experience developing web systems for clients both huge and small, PHP, MySQL, WordPress, APIs, AJAX, XML, Apache, etc.</description>
	<lastBuildDate>Fri, 11 May 2012 22:36:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/johnw" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="johnw" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>How to hire a developer</title>
		<link>http://watson-net.com/blog/how-to-hire-a-developer/</link>
		<comments>http://watson-net.com/blog/how-to-hire-a-developer/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 19:02:17 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[contracting]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://watson-net.com/blog/?p=376</guid>
		<description><![CDATA[Finding and hiring a good developer who can actually build and deliver a working product can be intimidating. That&#8217;s especially true if you don&#8217;t know much about what a developer does or if this is your first development project. Is the developer any good? Are they reliable? It&#8217;s tempting to just post your want ad [...]]]></description>
			<content:encoded><![CDATA[<p>Finding and hiring a good developer who can actually build and deliver a working product can be intimidating. That&#8217;s especially true if you don&#8217;t know much about what a developer does or if this is your first development project. Is the developer any good? Are they reliable?</p>
<p>It&#8217;s tempting to just post your want ad to an online job site and pick the low bidder. But that&#8217;s a terrible idea. A <em>lot</em> of my business comes from people who want me to finish a project that started out with the low bidder. &#8220;Our last developer couldn&#8217;t finish this&#8230;&#8221;&#8212;I hear that a lot. Sending work offshore can sometimes work but it requires an extremely rigorous approach, excellent and constant communication, and an understanding of cultural differences which most companies can&#8217;t commit to&#8212;that&#8217;s why many offshore projects fail.</p>
<p>So when people ask me how to hire a developer, I point them to a process written by Derek Sivers. From what I can tell, Derek is an entrepreneur and not a computer programmer (I&#8217;ve never met him). His advice for hiring a developer is excellent. I&#8217;ve been giving similar advice to people for a long time. It boils down to this:</p>
<ol>
<li>Nothing on the internet is ever finished. You will never launch if you try to start with version 10. Reduce the scope of your idea to something that you can deploy quickly: version 1.</li>
<li>Really think about your project in detail and describe how every single screen and button is going to work. Draw it out on paper or on the computer. Write an outline.</li>
<li>Pick a small portion of your project and hire a few different developers to build it. Something they can finish in a few days. Yes, you will be paying several different developers for the same work. Choose the one you like best and give them the rest of the project.</li>
</ol>
<div><a href="http://sivers.org/how2hire">Read &#8220;How to Hire a Programmer to Make Your Ideas Happen&#8221; by Derek Sivers.</a></div>
<img src="http://feeds.feedburner.com/~r/johnw/~4/J6W-NiDus0I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://watson-net.com/blog/how-to-hire-a-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a better WordPress portfolio</title>
		<link>http://watson-net.com/blog/building-a-better-wordpress-portfolio/</link>
		<comments>http://watson-net.com/blog/building-a-better-wordpress-portfolio/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 22:26:31 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[templates]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://watson-net.com/?p=488</guid>
		<description><![CDATA[It turns out to be extremely easy to teach WordPress how to handle more than just blog posts and pages. In this post, I&#8217;m going to describe how I converted my hand-coded, static portfolio/CV home page into a WordPress page powered by custom post types. This isn&#8217;t a full step-by-step tutorial but rather a medium-level overview [...]]]></description>
			<content:encoded><![CDATA[<p>It turns out to be extremely easy to teach WordPress how to handle more than just blog posts and pages. In this post, I&#8217;m going to describe how I converted my hand-coded, static <a title="Recent Projects" href="http://watson-net.com/">portfolio/CV</a> home page into a WordPress page powered by <strong>custom post types.</strong> This isn&#8217;t a full step-by-step tutorial but rather a medium-level overview of the general approach with some code examples.</p>
<p><span id="more-488"></span></p>
<p>Prior to yesterday, my home page was hand-coded outside of WordPress and WordPress was responsible solely for the content in the /blog directory. (I&#8217;d created the site a long time ago and decided to add a blog to it later.) Whenever I needed to update or rearrange my portfolio, I&#8217;d get the old HTML editor out and move a bunch of markup around. Adding a new entry involved a lot of copy and paste. So I decided to add a custom post type specifically for Projects.</p>
<p>The first step is to register your custom post types. I did this in my theme&#8217;s functions.php file:</p>
<pre class="brush: php; title: ; notranslate">
add_action('init', 'watson_init');

function watson_init() {
  register_post_type('project',
    array(
      'labels' =&gt; array(
        'name' =&gt; __('Projects'),
        'singular_name' =&gt; __('Project'),
        'add_new_item' =&gt; __('Add New Project'),
        'edit_item' =&gt; __('Edit Project'),
        'new_item' =&gt; __('New Project'),
        'view_item' =&gt; __('View Project'),
        'search_items' =&gt; __('Search Projects'),
      ),
      'public' =&gt; true,
      'exclude_from_search' =&gt; true,
      'has_archive' =&gt; false,
      'menu_position' =&gt; 5,
      'supports' =&gt; array(
        'title', 'editor', 'thumbnail', 'custom-fields', 'revisions'
      )
    )
  );
}
</pre>
<p>That code adds a <strong>Projects</strong> menu which allows you to manage &#8220;Projects&#8221; in the WordPress admin just like you can manage Posts and Pages. It also excludes those posts from search results and customizes which blocks are visible in the editor. You can read up on all of the options in the <a href="http://codex.wordpress.org/Function_Reference/register_post_type">Codex</a>.</p>
<p><a href="http://watson-net.com/wp-content/uploads/2011/07/watson_projects_admin.png"><img class="size-medium wp-image-489 aligncenter" title="Projects admin interface" src="http://watson-net.com/wp-content/uploads/2011/07/watson_projects_admin-500x265.png" alt="" width="500" height="265" /></a></p>
<p>From the new <strong>Projects</strong> menu, I can add, update, trash, draft, publish, and unpublish Projects just like I can with Posts. It&#8217;s very cool.</p>
<p>The next step was to create a <a href="http://codex.wordpress.org/Pages#Creating_Your_Own_Page_Templates">custom page template</a> to show those projects. Here&#8217;s the entire template for my home page:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
/*
Template Name: Projects
*/
?&gt;

&lt;?php get_header(); ?&gt;

&lt;div id=&quot;recentprojects&quot;&gt;
	&lt;h2&gt;Recent projects&lt;/h2&gt;

	&lt;div id=&quot;projectlisting&quot;&gt;
		&lt;?php
		$projects = get_posts(
			array(
				'numberposts' =&gt; -1,
				'post_type' =&gt; 'project',
			)
		);
		global $post;
		foreach($projects as $post) {
			setup_postdata($post);
			?&gt;
			&lt;div class=&quot;project&quot;&gt;
				&lt;?php
				if (has_post_thumbnail()) {
					the_post_thumbnail(array(75, 75), array('class' =&gt; 'icon'));
				}
				?&gt;
				&lt;div class=&quot;details&quot;&gt;
					&lt;h3&gt;
					&lt;?php
					$url = get_post_meta(get_the_ID(), 'url', true);
					if ($url) {
						printf('&lt;a href=&quot;%s&quot;&gt;%s&lt;/a&gt;', $url, get_the_title());
					} else {
						the_title();
					}
					?&gt;
					&lt;/h3&gt;
					&lt;?php the_content() ?&gt;
				&lt;/div&gt;
			&lt;/div&gt;
			&lt;?php
		}
		?&gt;
	&lt;/div&gt;

	&lt;?php
	if (have_posts()) {
		the_post();
		the_content();
	}
	?&gt;
&lt;/div&gt;

&lt;?php get_footer(); ?&gt;
</pre>
<p>Here are the important bits: Lines 14-19 loads all of posts in the the &#8216;project&#8217; post type defined earlier. Lines 20-21 setup the loop for the posts. Line 22 allows you to use functions like <code>the_content()</code> within your loop just like any other WordPress template. Lines 49-54 show the content associated with the actual page using this template.</p>
<p>That&#8217;s basically it. Register your post types, create a template. Easy as 1, 2.</p>
<img src="http://feeds.feedburner.com/~r/johnw/~4/xygMsYMe2E8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://watson-net.com/blog/building-a-better-wordpress-portfolio/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using git to build CSS files for deployment</title>
		<link>http://watson-net.com/blog/building-css-files-with-git/</link>
		<comments>http://watson-net.com/blog/building-css-files-with-git/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 11:18:34 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://watson-net.com/blog/?p=362</guid>
		<description><![CDATA[Lots of stuff going on here lately. I converted a store from osCommerce to Magento. I&#8217;m building the hosted bug tracking app I&#8217;ve always wanted. And I switched from svn to git. Converting svn repos to git repos and keeping all of the history is pretty easy. I&#8217;ll do a post about it soon. Basically, I [...]]]></description>
			<content:encoded><![CDATA[<p>Lots of stuff going on here lately. I converted a <a href="http://christianaudio.com/">store</a> from osCommerce to Magento. I&#8217;m building the <a href="http://caravelahq.com/">hosted bug tracking</a> app I&#8217;ve always wanted. And I switched from svn to git. Converting svn repos to git repos and keeping all of the history is pretty easy. I&#8217;ll do a post about it soon. Basically, I followed the <a href="http://pauldowman.com/2008/07/26/how-to-convert-from-subversion-to-git/">excellent instructions here</a> but I automated it because I had a lot of repos.</p>
<p>Now that I&#8217;ve switched to git, you may commence moving to the next much better thing that I haven&#8217;t heard of yet.</p>
<p>But, to the point&#8230;</p>
<p><span id="more-362"></span></p>
<p>Part of the deployment process for Caravela is to create a compressed build of the CSS using <a href="http://developer.yahoo.com/yui/compressor/">yuiccompressor</a> and save it under a new name. That new version of the CSS file is then referenced in the site header. I do this because I want the CSS to be aggressively cached by browsers to save on bandwidth and improve page load times; but I also want new CSS to take effect without waiting for caches to expire. Generating a new name for the CSS file whenever it changes solves that problem neatly.</p>
<p>So my deployment script does this automatically:</p>
<ul>
<li>Get the latest commit ID of the main.css file</li>
<li>Look for a version of the css with that commit ID: e.g. main_v12345.css</li>
<li>If that file doesn&#8217;t exist, build it using yuicompressor</li>
<li>Store the commit ID in a file you deploy so the site knows which CSS file to serve</li>
</ul>
<p>The key component of this is getting a commit ID. I do it by getting the output of this shell command:</p>
<blockquote><p>git log &#8211;abbrev-commit -1 assets/css/main.css | head -1 | cut -d\  -f2</p></blockquote>
<p>What I end up with is a unique, 7 digit version identifier based on my latest commit on that file.</p>
<p>Then you just need to build a new CSS file and save it using that identifier (e.g. main_v12345) (if it hasn&#8217;t already been built for a previous deployment) and teach your header file/template/view to reference the current version of the CSS file.</p>
<p>This works with Javascript, too, or any other file that you are both caching and versioning in git. And it isn&#8217;t important that you use yuicompressor. Your build process could just be a simple copy. The important thing is that the file has a new name so that the updated version will be loaded and cached by the user&#8217;s web browsers on their very next visit.</p>
<img src="http://feeds.feedburner.com/~r/johnw/~4/ikA0bk8MeLk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://watson-net.com/blog/building-css-files-with-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento admin browser caching</title>
		<link>http://watson-net.com/blog/magento-admin-browser-caching/</link>
		<comments>http://watson-net.com/blog/magento-admin-browser-caching/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 22:51:43 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[configuration]]></category>
		<category><![CDATA[magento]]></category>

		<guid isPermaLink="false">http://watson-net.com/blog/?p=359</guid>
		<description><![CDATA[Magento has an aggressive browser caching policy that sets a default expiration of &#8220;access plus 1 year&#8221;. That tells your browser to cache everything locally for 1 year after the first access. You may notice some weird behavior in your Magento admin with that on, though. Like, after editing a product you have to hit [...]]]></description>
			<content:encoded><![CDATA[<p>Magento has an aggressive browser caching policy that sets a default expiration of &#8220;access plus 1 year&#8221;. That tells your browser to cache everything locally for 1 year after the first access. You may notice some weird behavior in your Magento admin with that on, though. Like, after editing a product you have to hit refresh to see the changes when you edit it a second time. To tell web browsers to <em>not</em> cache Magento admin pages, add this to your Apache config:</p>
<pre>&lt;Location /index.php/admin&gt;
  ExpiresDefault "now"
&lt;/Location&gt;</pre>
<img src="http://feeds.feedburner.com/~r/johnw/~4/CUEOdGuTek4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://watson-net.com/blog/magento-admin-browser-caching/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL vs AppArmor solution</title>
		<link>http://watson-net.com/blog/mysql-vs-apparmor-solution/</link>
		<comments>http://watson-net.com/blog/mysql-vs-apparmor-solution/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 20:07:22 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[apparmor]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://watson-net.com/blog/?p=355</guid>
		<description><![CDATA[This is a very specific problem related to AppArmor and MySQL with non-standard data and temp directories. I just upgraded a database server to Ubuntu 10.04.1 LTS and ran up against a problem related to AppArmor. AppArmor is&#8230; &#8220;&#8230;a kernel enhancement to confine programs to a limited set of resources. AppArmor&#8217;s unique security model is [...]]]></description>
			<content:encoded><![CDATA[<p>This is a very specific problem related to AppArmor and MySQL with non-standard data and temp directories. I just upgraded a database server to Ubuntu 10.04.1 LTS and ran up against a problem related to AppArmor. AppArmor is&#8230;</p>
<blockquote><p>&#8220;&#8230;a kernel enhancement to confine programs to a limited set of resources. AppArmor&#8217;s unique security model is to bind access control attributes to programs rather than to users.&#8221;</p></blockquote>
<p>My database files are in /mnt/mysql rather than /var (Amazon server). Attempting to start MySQL I got errors that MySQL couldn&#8217;t write to the temp directory. When I changed the temp directory to /tmp I got new errors that it couldn&#8217;t access the data in /mnt/mysql. All of the file permissions were correct and I was attempting to start the daemon as root anyway. In addition, errors like this showed up in the syslog:</p>
<p><em>kernel: [ 7810.088219] type=1503 audit(1286826657.774:226):  operation=&#8221;mknod&#8221; pid=12802 parent=3974 profile=&#8221;/usr/sbin/mysqld&#8221; requested_mask=&#8221;c::&#8221; denied_mask=&#8221;c::&#8221; fsuid=106 ouid=106 name=&#8221;/mnt/tmp/ibTz0Fu7&#8243;</em></p>
<p><strong>Solution: </strong>First thing you should do is make sure all of your file and directory permissions are correct. Next, check your AppArmor configuration. The MySQL configuration for AppArmor lives at /etc/apparmor.d/usr.sbin.mysqld. Add your database and temp directories to the AppArmor configuration. Then restart the AppArmor daemon.</p>
<img src="http://feeds.feedburner.com/~r/johnw/~4/xGmUtGqSny8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://watson-net.com/blog/mysql-vs-apparmor-solution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento database model without an auto_increment primary key</title>
		<link>http://watson-net.com/blog/magento-database-model-primary-keys/</link>
		<comments>http://watson-net.com/blog/magento-database-model-primary-keys/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 18:42:25 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://watson-net.com/blog/?p=347</guid>
		<description><![CDATA[When you create a model in Magento that reads and writes data ( $model-&#62;load() and $model-&#62;save() ) to a database table, by default, Magento expects the primary key of the table to be an auto_increment field called &#8216;id&#8217;. If you want to use a primary key that is not an auto_increment field then you need to [...]]]></description>
			<content:encoded><![CDATA[<p>When you create a model in Magento that reads and writes data ( $model-&gt;load() and $model-&gt;save() ) to a database table, by default, Magento expects the primary key of the table to be an auto_increment field called &#8216;id&#8217;.</p>
<p>If you want to use a primary key that is <em>not</em> an auto_increment field then you need to set the <em>_isPkAutoIncrement</em> flag on the MySql4 object to false. For example, I created a table that uses <em>customer_entity_id</em> as the primary key:</p>
<pre class="brush: php; highlight: [7]; title: ; notranslate">
class MyCompany_MyModule_Model_MySql_Subscription
    extends Mage_Core_Model_MySql4_Abstract {
  public function _construct() {
    // Table resource, primary key
    $this-&gt;_init('mymodule/mymodule', 'customer_entity_id');
    // The primary key is not an auto_increment field
    $this-&gt;_isPkAutoIncrement = false;
  }
}
</pre>
<p>If the flag is <em>true</em> (the default), then the save() method will always do an update when you provide a value for the primary key and an insert otherwise. That&#8217;s just what you want when the primary key is an auto_increment. If the flag is <em>false</em>, then Magento checks for the existence of a row with that primary key value first. If it exists, it does an update and if it doesn&#8217;t exist then it does an insert.</p>
<img src="http://feeds.feedburner.com/~r/johnw/~4/XjQiJMHT598" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://watson-net.com/blog/magento-database-model-primary-keys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento debugging tips</title>
		<link>http://watson-net.com/blog/magento-debugging-tips/</link>
		<comments>http://watson-net.com/blog/magento-debugging-tips/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 18:27:21 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[debugging]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://watson-net.com/blog/?p=342</guid>
		<description><![CDATA[This helped debug some problems I was having with observers not doing what I was expecting. Login to your Magento admin and enable logging: Configuration &#124; Developer &#124; Log Settings &#124; Enabled = Yes Add Mage::log() statements to your code. For example, in your observer callback: Mage::log(&#8220;My special observer called&#8221;) Watch the log files. In Linux, [...]]]></description>
			<content:encoded><![CDATA[<p>This helped debug some problems I was having with observers not doing what I was expecting.</p>
<ol>
<li>Login to your Magento admin and enable logging: <em>Configuration | Developer | Log Settings | Enabled = Yes</em></li>
<li>Add <em>Mage::log()</em> statements to your code. For example, in your observer callback: <em>Mage::log(&#8220;My special observer called&#8221;)</em></li>
<li>Watch the log files. In Linux, the <em>tail</em> command is very helpful for this. From the /var/log folder: <em>tail -f system.log exception.log</em></li>
</ol>
<p>Some more tips:</p>
<ul>
<li>Include <em>print_r()</em> output in the log like this: <em>Mage::log(&#8220;myvar = &#8221; . print_r($myvar, true))</em></li>
<li>Add to the exception.log using <em>Mage::logException()</em></li>
<li>The Mage class has some useful helper functions (/app/Mage.php)</li>
<li>Get the actual class name of any object: <em>$name = get_class($object)</em></li>
<li>If you copy and paste this code, you&#8217;ll probably need to fix the fancy quotation marks.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/johnw/~4/ZXh50d2bx9w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://watson-net.com/blog/magento-debugging-tips/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teaching programming</title>
		<link>http://watson-net.com/blog/teaching-programming/</link>
		<comments>http://watson-net.com/blog/teaching-programming/#comments</comments>
		<pubDate>Wed, 30 Jun 2010 18:33:05 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[alice]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[processing]]></category>
		<category><![CDATA[scratch]]></category>

		<guid isPermaLink="false">http://watson-net.com/blog/?p=334</guid>
		<description><![CDATA[I just ran across another educational tool&#8212;Scratch&#8212;for teaching programming to kids. I love the idea behind these simplified programming environments because they make getting started very easy, show you results instantly, and remove all the frustration of setting up a programming environment. If you want to introduce your kids to programming, you might start with [...]]]></description>
			<content:encoded><![CDATA[<p>I just ran across another educational tool&#8212;Scratch&#8212;for teaching programming to kids. I love the idea behind these simplified programming environments because they make getting started very easy, show you results instantly, and remove all the frustration of setting up a programming environment. If you want to introduce your kids to programming, you might start with one of these. They&#8217;re all free and they all work on Linux, Mac, and Windows.</p>
<p><a href="http://scratch.mit.edu/">Scratch</a></p>
<p>Scratch is a programming language that makes it easy to create your own interactive stories, animations, games, music, and art &#8212; and share your creations on the web.</p>
<p><iframe src="http://player.vimeo.com/video/4077929" width="500" height="375" frameborder="0"></iframe></p>
<p><a href="http://www.alice.org/">Alice</a></p>
<p>Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web.</p>
<p><object width="500" height="306"><param name="movie" value="http://www.youtube.com/v/Nm7bv4wduTI?version=3"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Nm7bv4wduTI?version=3" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://processing.org/">Processing</a></p>
<p>Processing is an open source programming language and environment for people who want to create images, animations, and interactions.</p>
<p>I couldn&#8217;t find a good introductory video for this one. But the documentation and <a href="http://processing.org/learning/">tutorial pages</a> are top notch.</p>
<img src="http://feeds.feedburner.com/~r/johnw/~4/aJXuSbag4iw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://watson-net.com/blog/teaching-programming/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento 1.4.1.0 event hooks</title>
		<link>http://watson-net.com/blog/magento-1-4-1-0-event-hooks/</link>
		<comments>http://watson-net.com/blog/magento-1-4-1-0-event-hooks/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 20:01:10 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[hooks]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://watson-net.com/blog/?p=331</guid>
		<description><![CDATA[This listing of Magento event hooks was generated automatically from the source code. Please let me know if you find any errors or omissions. File Line Event /cron.php 44 default /app/code/core/Mage/CatalogRule/Model/Mysql4/Rule.php 399 catalogrule_before_apply /app/code/core/Mage/CatalogRule/Model/Mysql4/Rule.php 534 catalogrule_after_apply /app/code/core/Mage/Rule/Model/Environment.php 40 rule_environment_collect /app/code/core/Mage/SalesRule/Model/Rule/Condition/Combine.php 54 salesrule_rule_condition_combine /app/code/core/Mage/SalesRule/Model/Quote/Discount.php 83 sales_quote_address_discount_item /app/code/core/Mage/SalesRule/Model/Quote/Discount.php 89 sales_quote_address_discount_item /app/code/core/Mage/SalesRule/Model/Rule.php 298 salesrule_rule_get_coupon_types /app/code/core/Mage/SalesRule/Model/Validator.php 345 salesrule_validator_process /app/code/core/Mage/CatalogIndex/Model/Mysql4/Price.php [...]]]></description>
			<content:encoded><![CDATA[<p>This listing of Magento event hooks was generated automatically from the source code. Please let me know if you find any errors or omissions.</p>
<p><span id="more-331"></span></p>
<table>
<thead>
<tr>
<td><strong>File</strong></td>
<td><strong>Line</strong></td>
<td><strong>Event</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td>/cron.php</td>
<td>44</td>
<td>default</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogRule/Model/Mysql4/Rule.php</td>
<td>399</td>
<td>catalogrule_before_apply</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogRule/Model/Mysql4/Rule.php</td>
<td>534</td>
<td>catalogrule_after_apply</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rule/Model/Environment.php</td>
<td>40</td>
<td>rule_environment_collect</td>
</tr>
<tr>
<td>/app/code/core/Mage/SalesRule/Model/Rule/Condition/Combine.php</td>
<td>54</td>
<td>salesrule_rule_condition_combine</td>
</tr>
<tr>
<td>/app/code/core/Mage/SalesRule/Model/Quote/Discount.php</td>
<td>83</td>
<td>sales_quote_address_discount_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/SalesRule/Model/Quote/Discount.php</td>
<td>89</td>
<td>sales_quote_address_discount_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/SalesRule/Model/Rule.php</td>
<td>298</td>
<td>salesrule_rule_get_coupon_types</td>
</tr>
<tr>
<td>/app/code/core/Mage/SalesRule/Model/Validator.php</td>
<td>345</td>
<td>salesrule_validator_process</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Mysql4/Price.php</td>
<td>88</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Mysql4/Price.php</td>
<td>119</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Mysql4/Price.php</td>
<td>163</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Mysql4/Price.php</td>
<td>203</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Data/Abstract.php</td>
<td>204</td>
<td>catalogindex_get_minimal_price</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Indexer.php</td>
<td>353</td>
<td>catalogindex_plain_reindex_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Indexer.php</td>
<td>613</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Admin/Model/User.php</td>
<td>244</td>
<td>admin_user_authenticate_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Admin/Model/Session.php</td>
<td>101</td>
<td>admin_session_user_login_success</td>
</tr>
<tr>
<td>/app/code/core/Mage/Admin/Model/Session.php</td>
<td>111</td>
<td>admin_session_user_login_failed</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sendfriend/controllers/ProductController.php</td>
<td>131</td>
<td>sendfriend_product</td>
</tr>
<tr>
<td>/app/code/core/Mage/Customer/Helper/Data.php</td>
<td>268</td>
<td>customer_registration_is_allowed</td>
</tr>
<tr>
<td>/app/code/core/Mage/Customer/Model/Customer.php</td>
<td>123</td>
<td>customer_customer_authenticated</td>
</tr>
<tr>
<td>/app/code/core/Mage/Customer/Model/Session.php</td>
<td>68</td>
<td>customer_session_init</td>
</tr>
<tr>
<td>/app/code/core/Mage/Customer/Model/Session.php</td>
<td>192</td>
<td>customer_login</td>
</tr>
<tr>
<td>/app/code/core/Mage/Customer/Model/Session.php</td>
<td>220</td>
<td>customer_logout</td>
</tr>
<tr>
<td>/app/code/core/Mage/GoogleCheckout/Model/Api/Xml/Checkout.php</td>
<td>110</td>
<td>google_checkout_discount_item_price</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Block/Abstract.php</td>
<td>217</td>
<td>core_block_abstract_prepare_layout_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Block/Abstract.php</td>
<td>219</td>
<td>core_block_abstract_prepare_layout_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Block/Abstract.php</td>
<td>740</td>
<td>core_block_abstract_to_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Block/Abstract.php</td>
<td>777</td>
<td>core_block_abstract_to_html_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Response/Http.php</td>
<td>74</td>
<td>http_response_send_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>299</td>
<td>controller_action_layout_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>317</td>
<td>controller_action_layout_generate_xml_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>336</td>
<td>controller_action_layout_generate_blocks_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>348</td>
<td>controller_action_layout_generate_blocks_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>383</td>
<td>controller_action_layout_render_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>384</td>
<td>controller_action_layout_render_before_</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>497</td>
<td>controller_action_predispatch</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>499</td>
<td>&#8216;controller_action_predispatch_&#8217;.$this-&gt;getRequest()-&gt;getRouteName(),</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>504</td>
<td>&#8216;controller_action_predispatch_&#8217;.$this-&gt;getFullActionName(),</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>519</td>
<td>&#8216;controller_action_postdispatch_&#8217;.$this-&gt;getFullActionName(),</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>523</td>
<td>&#8216;controller_action_postdispatch_&#8217;.$this-&gt;getRequest()-&gt;getRouteName(),</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>526</td>
<td>controller_action_postdispatch</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>535</td>
<td>controller_action_noroute</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>555</td>
<td>controller_action_nocookies</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Front.php</td>
<td>128</td>
<td>controller_front_init_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Front.php</td>
<td>147</td>
<td>controller_front_init_routers</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Front.php</td>
<td>190</td>
<td>controller_front_send_response_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Mysql4/Collection/Abstract.php</td>
<td>443</td>
<td>core_collection_abstract_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Mysql4/Collection/Abstract.php</td>
<td>458</td>
<td>core_collection_abstract_load_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Resource.php</td>
<td>167</td>
<td>resource_get_tablename</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Locale.php</td>
<td>136</td>
<td>core_locale_set_locale</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/App.php</td>
<td>1089</td>
<td>application_clean_cache</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>253</td>
<td>model_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>255</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>266</td>
<td>model_load_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>267</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>331</td>
<td>model_save_commit_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>332</td>
<td>$this-&gt;_eventPrefix.&#8217;_save_commit_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>378</td>
<td>model_save_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>379</td>
<td>$this-&gt;_eventPrefix.&#8217;_save_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>453</td>
<td>model_save_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>454</td>
<td>$this-&gt;_eventPrefix.&#8217;_save_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>488</td>
<td>model_delete_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>489</td>
<td>$this-&gt;_eventPrefix.&#8217;_delete_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>516</td>
<td>model_delete_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>517</td>
<td>$this-&gt;_eventPrefix.&#8217;_delete_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>528</td>
<td>model_delete_commit_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>529</td>
<td>$this-&gt;_eventPrefix.&#8217;_delete_commit_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Layout/Update.php</td>
<td>406</td>
<td>core_layout_update_updates_get_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Layout.php</td>
<td>433</td>
<td>core_layout_block_create_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Report/Grid.php</td>
<td>174</td>
<td>adminhtml_widget_grid_filter_collection</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Widget/Container.php</td>
<td>294</td>
<td>adminhtml_widget_container_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Template.php</td>
<td>80</td>
<td>adminhtml_block_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Main.php</td>
<td>255</td>
<td>adminhtml_promo_quote_edit_tab_main_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Actions.php</td>
<td>162</td>
<td>adminhtml_block_salesrule_actions_prepareform</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Main.php</td>
<td>117</td>
<td>adminhtml_cms_page_edit_tab_main_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Meta.php</td>
<td>76</td>
<td>adminhtml_cms_page_edit_tab_meta_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.php</td>
<td>125</td>
<td>adminhtml_cms_page_edit_tab_design_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Content.php</td>
<td>98</td>
<td>adminhtml_cms_page_edit_tab_content_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tabs.php</td>
<td>149</td>
<td>adminhtml_catalog_category_tabs</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php</td>
<td>284</td>
<td>adminhtml_catalog_category_tree_is_moveable</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php</td>
<td>322</td>
<td>adminhtml_catalog_category_tree_can_add_root_category</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php</td>
<td>342</td>
<td>adminhtml_catalog_category_tree_can_add_sub_category</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Action/Attribute/Tab/Attributes.php</td>
<td>48</td>
<td>adminhtml_catalog_product_form_prepare_excluded_field_list</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Price/Recurring.php</td>
<td>42</td>
<td>catalog_product_edit_form_render_recurring</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php</td>
<td>131</td>
<td>adminhtml_catalog_product_edit_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php</td>
<td>151</td>
<td>adminhtml_catalog_product_edit_element_types</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes/Create.php</td>
<td>85</td>
<td>adminhtml_catalog_product_edit_tab_attributes_create_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Edit/Tab/Main.php</td>
<td>71</td>
<td>adminhtml_product_attribute_types</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/New/Product/Attributes.php</td>
<td>64</td>
<td>adminhtml_catalog_product_edit_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/New/Product/Attributes.php</td>
<td>80</td>
<td>adminhtml_catalog_product_edit_element_types</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Set/Main.php</td>
<td>405</td>
<td>adminhtml_catalog_product_attribute_set_main_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Set/Toolbar/Main.php</td>
<td>68</td>
<td>adminhtml_catalog_product_attribute_set_toolbar_main_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Controller/Action.php</td>
<td>151</td>
<td>adminhtml_controller_action_predispatch_start</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/ReportController.php</td>
<td>82</td>
<td>on_view_report</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Permissions/RoleController.php</td>
<td>189</td>
<td>admin_permissions_role_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/System/ConfigController.php</td>
<td>137</td>
<td>array(&#8216;website&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/System/StoreController.php</td>
<td>200</td>
<td>store_group_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/System/StoreController.php</td>
<td>222</td>
<td>$eventName,array(&#8216;store&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/System/StoreController.php</td>
<td>431</td>
<td>store_delete</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/CustomerController.php</td>
<td>220</td>
<td>adminhtml_customer_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/CustomerController.php</td>
<td>248</td>
<td>adminhtml_customer_save_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreateController.php</td>
<td>217</td>
<td>adminhtml_sales_order_create_process_data</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreditmemoController.php</td>
<td>156</td>
<td>adminhtml_sales_order_creditmemo_register_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Promo/CatalogController.php</td>
<td>97</td>
<td>adminhtml_controller_catalogrule_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Promo/QuoteController.php</td>
<td>109</td>
<td>adminhtml_controller_salesrule_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php</td>
<td>134</td>
<td>cms_page_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php</td>
<td>185</td>
<td>adminhtml_cmspage_on_delete</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php</td>
<td>190</td>
<td>adminhtml_cmspage_on_delete</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/CacheController.php</td>
<td>142</td>
<td>clean_media_cache_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/CacheController.php</td>
<td>166</td>
<td>clean_catalog_images_cache_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php</td>
<td>311</td>
<td>catalog_category_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php</td>
<td>374</td>
<td>catalog_controller_category_delete</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php</td>
<td>182</td>
<td>catalog_product_new_action</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php</td>
<td>227</td>
<td>catalog_product_edit_action</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php</td>
<td>630</td>
<td>catalog_product_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php</td>
<td>848</td>
<td>catalog_controller_product_delete</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/Product/Action/AttributeController.php</td>
<td>140</td>
<td>catalog_product_to_website_change</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php</td>
<td>217</td>
<td>sales_convert_order_to_quote</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php</td>
<td>306</td>
<td>sales_convert_order_item_to_quote_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/Api/Model/User.php</td>
<td>174</td>
<td>api_user_authenticated</td>
</tr>
<tr>
<td>/app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle.php</td>
<td>101</td>
<td>bundle_product_view_config</td>
</tr>
<tr>
<td>/app/code/core/Mage/Bundle/Model/Mysql4/Price/Index.php</td>
<td>357</td>
<td>catalog_product_prepare_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Bundle/Model/Mysql4/Indexer/Price.php</td>
<td>218</td>
<td>catalog_product_prepare_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Bundle/Model/Mysql4/Indexer/Price.php</td>
<td>375</td>
<td>prepare_catalog_product_price_index_table</td>
</tr>
<tr>
<td>/app/code/core/Mage/Bundle/Model/Product/Price.php</td>
<td>78</td>
<td>catalog_product_get_final_price</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogSearch/Model/Mysql4/Advanced.php</td>
<td>71</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogSearch/Model/Mysql4/Advanced.php</td>
<td>76</td>
<td>catalog_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogSearch/Model/Mysql4/Fulltext.php</td>
<td>244</td>
<td>catalogsearch_reset_search_result</td>
</tr>
<tr>
<td>/app/code/core/Mage/GoogleBase/controllers/TypesController.php</td>
<td>46</td>
<td>controller_action_postdispatch_adminhtml</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>149</td>
<td>sales_order_payment_place_start</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>225</td>
<td>sales_order_payment_place_end</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>260</td>
<td>sales_order_payment_capture</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>388</td>
<td>sales_order_payment_pay</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>406</td>
<td>sales_order_payment_cancel_invoice</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>456</td>
<td>sales_order_payment_void</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>540</td>
<td>sales_order_payment_refund</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>606</td>
<td>sales_order_payment_cancel_creditmemo</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>634</td>
<td>sales_order_payment_cancel</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Item.php</td>
<td>311</td>
<td>sales_order_item_cancel</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment/Transaction.php</td>
<td>397</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_by_txn_id_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment/Transaction.php</td>
<td>423</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_by_txn_id_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Creditmemo.php</td>
<td>297</td>
<td>sales_order_creditmemo_refund</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Creditmemo.php</td>
<td>340</td>
<td>sales_order_creditmemo_cancel</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Invoice.php</td>
<td>275</td>
<td>sales_order_invoice_pay</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Invoice.php</td>
<td>345</td>
<td>sales_order_invoice_cancel</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Invoice.php</td>
<td>517</td>
<td>sales_order_invoice_register</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote/Address/Total/Discount.php</td>
<td>80</td>
<td>sales_quote_address_discount_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote/Address/Total/Discount.php</td>
<td>111</td>
<td>sales_quote_address_discount_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote/Payment.php</td>
<td>81</td>
<td>$this-&gt;_eventPrefix.&#8217;_import_data_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote/Item.php</td>
<td>177</td>
<td>sales_quote_item_qty_set_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote/Item.php</td>
<td>261</td>
<td>sales_quote_item_set_product</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Mysql4/Sale/Collection.php</td>
<td>166</td>
<td>sales_sale_collection_query_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Mysql4/Order/Abstract.php</td>
<td>138</td>
<td>$this-&gt;_eventPrefix.&#8217;_init_virtual_grid_columns&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Mysql4/Order/Abstract.php</td>
<td>163</td>
<td>$this-&gt;_eventPrefix.&#8217;_update_grid_records&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Mysql4/Order/Abstract.php</td>
<td>290</td>
<td>$this-&gt;_eventPrefix.&#8217;_save_attribute_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Mysql4/Order/Abstract.php</td>
<td>309</td>
<td>$this-&gt;_eventPrefix.&#8217;_save_attribute_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Mysql4/Order/Collection/Abstract.php</td>
<td>57</td>
<td>$this-&gt;_eventPrefix.&#8217;_set_sales_order&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Mysql4/Quote/Item/Collection.php</td>
<td>179</td>
<td>sales_quote_item_collection_products_after_load</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Convert/Order.php</td>
<td>53</td>
<td>sales_convert_order_to_quote</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Convert/Quote.php</td>
<td>56</td>
<td>sales_convert_quote_to_order</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Convert/Quote.php</td>
<td>74</td>
<td>sales_convert_quote_address_to_order</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Convert/Quote.php</td>
<td>94</td>
<td>sales_convert_quote_address_to_order_address</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Convert/Quote.php</td>
<td>113</td>
<td>sales_convert_quote_payment_to_order_payment</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Convert/Quote.php</td>
<td>150</td>
<td>sales_convert_quote_item_to_order_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Service/Quote.php</td>
<td>172</td>
<td>checkout_type_onepage_save_order</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Service/Quote.php</td>
<td>173</td>
<td>sales_model_service_quote_submit_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Service/Quote.php</td>
<td>176</td>
<td>sales_model_service_quote_submit_success</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Service/Quote.php</td>
<td>178</td>
<td>sales_model_service_quote_submit_failure</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Service/Quote.php</td>
<td>181</td>
<td>sales_model_service_quote_submit_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order.php</td>
<td>708</td>
<td>sales_order_place_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order.php</td>
<td>710</td>
<td>sales_order_place_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>619</td>
<td>sales_quote_remove_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>647</td>
<td>sales_quote_add_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>725</td>
<td>sales_quote_product_add_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>912</td>
<td>$this-&gt;_eventPrefix.&#8217;_collect_totals_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>977</td>
<td>$this-&gt;_eventPrefix.&#8217;_collect_totals_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>1170</td>
<td>$this-&gt;_eventPrefix.&#8217;_merge_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>1213</td>
<td>$this-&gt;_eventPrefix.&#8217;_merge_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Review/controllers/ProductController.php</td>
<td>73</td>
<td>review_controller_product_init_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Review/controllers/ProductController.php</td>
<td>85</td>
<td>review_controller_product_init</td>
</tr>
<tr>
<td>/app/code/core/Mage/Review/controllers/ProductController.php</td>
<td>86</td>
<td>review_controller_product_init_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Review/Model/Mysql4/Review/Collection.php</td>
<td>188</td>
<td>review_review_collection_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tax/Model/Calculation.php</td>
<td>189</td>
<td>tax_rate_data_fetch</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tax/Model/Calculation/Rate.php</td>
<td>90</td>
<td>tax_settings_change_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tax/Model/Calculation/Rate.php</td>
<td>102</td>
<td>tax_settings_change_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tax/Model/Calculation/Rate.php</td>
<td>146</td>
<td>tax_settings_change_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tax/Model/Calculation/Rule.php</td>
<td>62</td>
<td>tax_settings_change_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tax/Model/Calculation/Rule.php</td>
<td>74</td>
<td>tax_settings_change_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Log/Model/Mysql4/Visitor/Collection.php</td>
<td>299</td>
<td>log_visitor_collection_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Log/Model/Mysql4/Log.php</td>
<td>56</td>
<td>log_log_clean_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Log/Model/Mysql4/Log.php</td>
<td>64</td>
<td>log_log_clean_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Payment/Block/Info.php</td>
<td>166</td>
<td>payment_info_block_prepare_specific_information</td>
</tr>
<tr>
<td>/app/code/core/Mage/Payment/Block/Form/Cc.php</td>
<td>154</td>
<td>payment_form_block_to_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Payment/Model/Method/Abstract.php</td>
<td>600</td>
<td>payment_method_is_active</td>
</tr>
<tr>
<td>/app/code/core/Mage/Eav/Block/Adminhtml/Attribute/Edit/Main/Abstract.php</td>
<td>174</td>
<td>adminhtml_block_eav_attribute_edit_form_init</td>
</tr>
<tr>
<td>/app/code/core/Mage/Eav/Model/Entity/Attribute.php</td>
<td>180</td>
<td>eav_attribute_get_backend_type_by_input</td>
</tr>
<tr>
<td>/app/code/core/Mage/Eav/Model/Entity/Attribute.php</td>
<td>224</td>
<td>eav_attribute_get_default_value_by_input</td>
</tr>
<tr>
<td>/app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php</td>
<td>788</td>
<td>eav_collection_abstract_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Cms/Helper/Page.php</td>
<td>105</td>
<td>cms_page_render</td>
</tr>
<tr>
<td>/app/code/core/Mage/Cms/Helper/Wysiwyg/Images.php</td>
<td>157</td>
<td>cms_wysiwyg_images_static_urls_allowed</td>
</tr>
<tr>
<td>/app/code/core/Mage/Cms/Controller/Router.php</td>
<td>71</td>
<td>cms_controller_router_match_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Cms/Model/Page.php</td>
<td>115</td>
<td>cms_page_get_available_statuses</td>
</tr>
<tr>
<td>/app/code/core/Mage/Cms/Model/Wysiwyg/Config.php</td>
<td>88</td>
<td>cms_wysiwyg_config_prepare</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Block/Product/List/Upsell.php</td>
<td>70</td>
<td>catalog_product_upsell</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Block/Product/View.php</td>
<td>160</td>
<td>catalog_product_view_config</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Block/Product/List.php</td>
<td>150</td>
<td>catalog_block_product_list_collection</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Helper/Output.php</td>
<td>48</td>
<td>catalog_helper_output_construct</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/CategoryController.php</td>
<td>43</td>
<td>catalog_controller_category_init_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/CategoryController.php</td>
<td>59</td>
<td>catalog_controller_category_init_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/ProductController.php</td>
<td>42</td>
<td>catalog_controller_product_init_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/ProductController.php</td>
<td>80</td>
<td>catalog_controller_product_init</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/ProductController.php</td>
<td>81</td>
<td>catalog_controller_product_init_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/ProductController.php</td>
<td>139</td>
<td>catalog_controller_product_view</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/Product/CompareController.php</td>
<td>80</td>
<td>catalog_product_compare_add_product</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/Product/CompareController.php</td>
<td>114</td>
<td>catalog_product_compare_remove_product</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Convert/Adapter/Product.php</td>
<td>737</td>
<td>catalog_product_import_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Collection.php</td>
<td>127</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Collection.php</td>
<td>139</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Collection.php</td>
<td>301</td>
<td>$this-&gt;_eventPrefix.&#8217;_add_is_active_filter&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Tree.php</td>
<td>197</td>
<td>catalog_category_tree_init_inactive_category_ids</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Tree.php</td>
<td>354</td>
<td>catalog_category_tree_move_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Tree.php</td>
<td>389</td>
<td>catalog_category_tree_move_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Flat.php</td>
<td>155</td>
<td>catalog_category_tree_init_inactive_category_ids</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Flat/Collection.php</td>
<td>109</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Flat/Collection.php</td>
<td>121</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Flat/Collection.php</td>
<td>196</td>
<td>$this-&gt;_eventPrefix.&#8217;_add_is_active_filter&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Layer/Filter/Price.php</td>
<td>104</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Layer/Filter/Price.php</td>
<td>109</td>
<td>catalog_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category.php</td>
<td>352</td>
<td>catalog_category_change_products</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Compare/Item/Collection.php</td>
<td>316</td>
<td>catalog_product_compare_item_collection_clear</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Price/Grouped.php</td>
<td>114</td>
<td>catalog_product_prepare_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Price/Default.php</td>
<td>252</td>
<td>prepare_catalog_product_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Price/Default.php</td>
<td>269</td>
<td>prepare_catalog_product_price_index_table</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Eav/Source.php</td>
<td>140</td>
<td>prepare_catalog_product_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Eav/Source.php</td>
<td>213</td>
<td>prepare_catalog_product_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Eav/Abstract.php</td>
<td>187</td>
<td>prepare_catalog_product_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Eav/Decimal.php</td>
<td>97</td>
<td>prepare_catalog_product_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php</td>
<td>336</td>
<td>catalog_product_collection_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php</td>
<td>359</td>
<td>catalog_product_collection_load_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php</td>
<td>793</td>
<td>catalog_product_collection_before_add_count_to_categories</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php</td>
<td>1566</td>
<td>catalog_product_collection_apply_limitations_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Flat/Indexer.php</td>
<td>335</td>
<td>catalog_product_flat_prepare_columns</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Flat/Indexer.php</td>
<td>396</td>
<td>catalog_product_flat_prepare_indexes</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Flat/Indexer.php</td>
<td>848</td>
<td>catalog_product_flat_rebuild</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Flat/Indexer.php</td>
<td>1097</td>
<td>catalog_product_flat_update_product</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product.php</td>
<td>165</td>
<td>$this-&gt;_eventPrefix.&#8217;_validate_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product.php</td>
<td>167</td>
<td>$this-&gt;_eventPrefix.&#8217;_validate_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product.php</td>
<td>989</td>
<td>catalog_model_product_duplicate</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product.php</td>
<td>1187</td>
<td>catalog_product_is_salable_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product.php</td>
<td>1197</td>
<td>catalog_product_is_salable_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product.php</td>
<td>1334</td>
<td>$this-&gt;_eventPrefix.&#8217;_delete_after_done&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Category.php</td>
<td>214</td>
<td>catalog_category_tree_move_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Category.php</td>
<td>215</td>
<td>$this-&gt;_eventPrefix.&#8217;_move_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Category.php</td>
<td>219</td>
<td>$this-&gt;_eventPrefix.&#8217;_move_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Category.php</td>
<td>220</td>
<td>catalog_category_tree_move_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Category.php</td>
<td>230</td>
<td>category_move</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product/Action.php</td>
<td>93</td>
<td>catalog_product_website_update_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product/Action.php</td>
<td>117</td>
<td>catalog_product_website_update</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product/Status.php</td>
<td>208</td>
<td>catalog_product_status_update</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product/Type/Price.php</td>
<td>68</td>
<td>catalog_product_get_final_price</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product/Type/Abstract.php</td>
<td>371</td>
<td>catalog_product_type_prepare_cart_options</td>
</tr>
<tr>
<td>/app/code/core/Mage/Wishlist/Helper/Data.php</td>
<td>334</td>
<td>wishlist_items_renewed</td>
</tr>
<tr>
<td>/app/code/core/Mage/Wishlist/controllers/IndexController.php</td>
<td>137</td>
<td>wishlist_add_product</td>
</tr>
<tr>
<td>/app/code/core/Mage/Wishlist/controllers/IndexController.php</td>
<td>383</td>
<td>wishlist_share</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Order/New.php</td>
<td>77</td>
<td>rss_order_new_collection_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Catalog/Tag.php</td>
<td>87</td>
<td>rss_catalog_tagged_item_xml_callback</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Catalog/Special.php</td>
<td>151</td>
<td>rss_catalog_special_xml_callback</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Catalog/NotifyStock.php</td>
<td>81</td>
<td>rss_catalog_notify_stock_collection_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Catalog/Category.php</td>
<td>119</td>
<td>rss_catalog_category_xml_callback</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Catalog/Review.php</td>
<td>74</td>
<td>rss_catalog_review_collection_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Catalog/New.php</td>
<td>105</td>
<td>rss_catalog_new_xml_callback</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Helper/Data.php</td>
<td>275</td>
<td>checkout_allow_guest</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/controllers/CartController.php</td>
<td>191</td>
<td>checkout_cart_add_product_complete</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/controllers/OnepageController.php</td>
<td>223</td>
<td>checkout_onepage_controller_success_action</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/controllers/OnepageController.php</td>
<td>366</td>
<td>checkout_controller_onepage_save_shipping_method</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/controllers/MultishippingController.php</td>
<td>312</td>
<td>checkout_controller_multishipping_shipping_post</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/controllers/MultishippingController.php</td>
<td>503</td>
<td>checkout_multishipping_controller_success_action</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Type/Onepage.php</td>
<td>635</td>
<td>checkout_type_onepage_save_order_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Type/Multishipping.php</td>
<td>260</td>
<td>checkout_type_multishipping_set_shipping_items</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Type/Multishipping.php</td>
<td>480</td>
<td>checkout_type_multishipping_create_orders_single</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Session.php</td>
<td>93</td>
<td>checkout_quote_init</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Session.php</td>
<td>198</td>
<td>checkout_quote_destroy</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Cart.php</td>
<td>254</td>
<td>checkout_cart_product_add_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Cart.php</td>
<td>312</td>
<td>checkout_cart_update_items_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Cart.php</td>
<td>331</td>
<td>checkout_cart_update_items_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Cart.php</td>
<td>362</td>
<td>checkout_cart_save_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tag/Model/Mysql4/Indexer/Summary.php</td>
<td>208</td>
<td>prepare_catalog_product_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tag/Model/Mysql4/Product/Collection.php</td>
<td>395</td>
<td>tag_tag_product_collection_load_after</td>
</tr>
<tr>
<td>/app/Mage.php</td>
<td>610</td>
<td>mage_run_exception</td>
</tr>
</tbody>
</table>
<img src="http://feeds.feedburner.com/~r/johnw/~4/Wf2_ZRFUp1s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://watson-net.com/blog/magento-1-4-1-0-event-hooks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento 1.4.0.1 Event hooks</title>
		<link>http://watson-net.com/blog/magento-1-4-0-1-event-hooks/</link>
		<comments>http://watson-net.com/blog/magento-1-4-0-1-event-hooks/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 20:00:10 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[hooks]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://watson-net.com/blog/?p=327</guid>
		<description><![CDATA[This listing of Magento event hooks was generated automatically from the source code. Please let me know if you find any errors or omissions. File Line Event /cron.php 44 default /app/code/core/Mage/CatalogRule/Model/Mysql4/Rule.php 399 catalogrule_before_apply /app/code/core/Mage/CatalogRule/Model/Mysql4/Rule.php 531 catalogrule_after_apply /app/code/core/Mage/Rule/Model/Environment.php 40 rule_environment_collect /app/code/core/Mage/SalesRule/Model/Rule/Condition/Combine.php 54 salesrule_rule_condition_combine /app/code/core/Mage/SalesRule/Model/Quote/Discount.php 83 sales_quote_address_discount_item /app/code/core/Mage/SalesRule/Model/Quote/Discount.php 89 sales_quote_address_discount_item /app/code/core/Mage/SalesRule/Model/Validator.php 326 salesrule_validator_process /app/code/core/Mage/CatalogIndex/Model/Mysql4/Price.php 88 catalogindex_prepare_price_select /app/code/core/Mage/CatalogIndex/Model/Mysql4/Price.php [...]]]></description>
			<content:encoded><![CDATA[<p>This listing of Magento event hooks was generated automatically from the source code. Please let me know if you find any errors or omissions.</p>
<p><span id="more-327"></span></p>
<table>
<thead>
<tr>
<td><strong>File</strong></td>
<td><strong>Line</strong></td>
<td><strong>Event</strong></td>
</tr>
</thead>
<tbody>
<tr>
<td>/cron.php</td>
<td>44</td>
<td>default</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogRule/Model/Mysql4/Rule.php</td>
<td>399</td>
<td>catalogrule_before_apply</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogRule/Model/Mysql4/Rule.php</td>
<td>531</td>
<td>catalogrule_after_apply</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rule/Model/Environment.php</td>
<td>40</td>
<td>rule_environment_collect</td>
</tr>
<tr>
<td>/app/code/core/Mage/SalesRule/Model/Rule/Condition/Combine.php</td>
<td>54</td>
<td>salesrule_rule_condition_combine</td>
</tr>
<tr>
<td>/app/code/core/Mage/SalesRule/Model/Quote/Discount.php</td>
<td>83</td>
<td>sales_quote_address_discount_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/SalesRule/Model/Quote/Discount.php</td>
<td>89</td>
<td>sales_quote_address_discount_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/SalesRule/Model/Validator.php</td>
<td>326</td>
<td>salesrule_validator_process</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Mysql4/Price.php</td>
<td>88</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Mysql4/Price.php</td>
<td>119</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Mysql4/Price.php</td>
<td>163</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Mysql4/Price.php</td>
<td>203</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Data/Abstract.php</td>
<td>204</td>
<td>catalogindex_get_minimal_price</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Indexer.php</td>
<td>353</td>
<td>catalogindex_plain_reindex_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogIndex/Model/Indexer.php</td>
<td>613</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Admin/Model/User.php</td>
<td>244</td>
<td>admin_user_authenticate_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Admin/Model/Session.php</td>
<td>101</td>
<td>admin_session_user_login_success</td>
</tr>
<tr>
<td>/app/code/core/Mage/Admin/Model/Session.php</td>
<td>111</td>
<td>admin_session_user_login_failed</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sendfriend/controllers/ProductController.php</td>
<td>131</td>
<td>sendfriend_product</td>
</tr>
<tr>
<td>/app/code/core/Mage/Customer/Helper/Data.php</td>
<td>268</td>
<td>customer_registration_is_allowed</td>
</tr>
<tr>
<td>/app/code/core/Mage/Customer/Model/Customer.php</td>
<td>124</td>
<td>customer_customer_authenticated</td>
</tr>
<tr>
<td>/app/code/core/Mage/Customer/Model/Session.php</td>
<td>68</td>
<td>customer_session_init</td>
</tr>
<tr>
<td>/app/code/core/Mage/Customer/Model/Session.php</td>
<td>192</td>
<td>customer_login</td>
</tr>
<tr>
<td>/app/code/core/Mage/Customer/Model/Session.php</td>
<td>220</td>
<td>customer_logout</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Block/Abstract.php</td>
<td>210</td>
<td>core_block_abstract_prepare_layout_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Block/Abstract.php</td>
<td>212</td>
<td>core_block_abstract_prepare_layout_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Block/Abstract.php</td>
<td>660</td>
<td>core_block_abstract_to_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Block/Abstract.php</td>
<td>682</td>
<td>core_block_abstract_to_html_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Response/Http.php</td>
<td>74</td>
<td>http_response_send_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>299</td>
<td>controller_action_layout_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>317</td>
<td>controller_action_layout_generate_xml_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>336</td>
<td>controller_action_layout_generate_blocks_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>348</td>
<td>controller_action_layout_generate_blocks_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>383</td>
<td>controller_action_layout_render_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>384</td>
<td>controller_action_layout_render_before_</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>497</td>
<td>controller_action_predispatch</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>499</td>
<td>&#8216;controller_action_predispatch_&#8217;.$this-&gt;getRequest()-&gt;getRouteName(),</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>504</td>
<td>&#8216;controller_action_predispatch_&#8217;.$this-&gt;getFullActionName(),</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>519</td>
<td>&#8216;controller_action_postdispatch_&#8217;.$this-&gt;getFullActionName(),</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>523</td>
<td>&#8216;controller_action_postdispatch_&#8217;.$this-&gt;getRequest()-&gt;getRouteName(),</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>526</td>
<td>controller_action_postdispatch</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>535</td>
<td>controller_action_noroute</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Action.php</td>
<td>555</td>
<td>controller_action_nocookies</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Front.php</td>
<td>128</td>
<td>controller_front_init_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Front.php</td>
<td>147</td>
<td>controller_front_init_routers</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Controller/Varien/Front.php</td>
<td>190</td>
<td>controller_front_send_response_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Mysql4/Collection/Abstract.php</td>
<td>193</td>
<td>core_collection_abstract_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Mysql4/Collection/Abstract.php</td>
<td>210</td>
<td>core_collection_abstract_load_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Resource.php</td>
<td>167</td>
<td>resource_get_tablename</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Locale.php</td>
<td>136</td>
<td>core_locale_set_locale</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/App.php</td>
<td>1089</td>
<td>application_clean_cache</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>249</td>
<td>model_load_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>250</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>307</td>
<td>model_save_commit_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>308</td>
<td>$this-&gt;_eventPrefix.&#8217;_save_commit_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>354</td>
<td>model_save_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>355</td>
<td>$this-&gt;_eventPrefix.&#8217;_save_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>429</td>
<td>model_save_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>430</td>
<td>$this-&gt;_eventPrefix.&#8217;_save_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>464</td>
<td>model_delete_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>465</td>
<td>$this-&gt;_eventPrefix.&#8217;_delete_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>492</td>
<td>model_delete_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>493</td>
<td>$this-&gt;_eventPrefix.&#8217;_delete_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>504</td>
<td>model_delete_commit_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Abstract.php</td>
<td>505</td>
<td>$this-&gt;_eventPrefix.&#8217;_delete_commit_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Core/Model/Layout/Update.php</td>
<td>406</td>
<td>core_layout_update_updates_get_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Report/Grid.php</td>
<td>174</td>
<td>adminhtml_widget_grid_filter_collection</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Widget/Container.php</td>
<td>294</td>
<td>adminhtml_widget_container_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Template.php</td>
<td>80</td>
<td>adminhtml_block_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Promo/Quote/Edit/Tab/Actions.php</td>
<td>162</td>
<td>adminhtml_block_salesrule_actions_prepareform</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Main.php</td>
<td>117</td>
<td>adminhtml_cms_page_edit_tab_main_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Meta.php</td>
<td>76</td>
<td>adminhtml_cms_page_edit_tab_meta_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Design.php</td>
<td>125</td>
<td>adminhtml_cms_page_edit_tab_design_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Cms/Page/Edit/Tab/Content.php</td>
<td>98</td>
<td>adminhtml_cms_page_edit_tab_content_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tabs.php</td>
<td>149</td>
<td>adminhtml_catalog_category_tabs</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php</td>
<td>284</td>
<td>adminhtml_catalog_category_tree_is_moveable</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php</td>
<td>322</td>
<td>adminhtml_catalog_category_tree_can_add_root_category</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Category/Tree.php</td>
<td>342</td>
<td>adminhtml_catalog_category_tree_can_add_sub_category</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Action/Attribute/Tab/Attributes.php</td>
<td>48</td>
<td>adminhtml_catalog_product_form_prepare_excluded_field_list</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php</td>
<td>119</td>
<td>adminhtml_catalog_product_edit_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php</td>
<td>139</td>
<td>adminhtml_catalog_product_edit_element_types</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes/Create.php</td>
<td>85</td>
<td>adminhtml_catalog_product_edit_tab_attributes_create_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Edit/Tab/Main.php</td>
<td>71</td>
<td>adminhtml_product_attribute_types</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/New/Product/Attributes.php</td>
<td>64</td>
<td>adminhtml_catalog_product_edit_prepare_form</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/New/Product/Attributes.php</td>
<td>80</td>
<td>adminhtml_catalog_product_edit_element_types</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Set/Main.php</td>
<td>405</td>
<td>adminhtml_catalog_product_attribute_set_main_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Block/Catalog/Product/Attribute/Set/Toolbar/Main.php</td>
<td>68</td>
<td>adminhtml_catalog_product_attribute_set_toolbar_main_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Controller/Action.php</td>
<td>151</td>
<td>adminhtml_controller_action_predispatch_start</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/ReportController.php</td>
<td>82</td>
<td>on_view_report</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Permissions/RoleController.php</td>
<td>189</td>
<td>admin_permissions_role_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/System/ConfigController.php</td>
<td>140</td>
<td>array(&#8216;website&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/System/StoreController.php</td>
<td>199</td>
<td>store_group_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/System/StoreController.php</td>
<td>221</td>
<td>$eventName,array(&#8216;store&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/System/StoreController.php</td>
<td>419</td>
<td>store_delete</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/CustomerController.php</td>
<td>220</td>
<td>adminhtml_customer_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/CustomerController.php</td>
<td>248</td>
<td>adminhtml_customer_save_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreateController.php</td>
<td>217</td>
<td>adminhtml_sales_order_create_process_data</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Sales/Order/CreditmemoController.php</td>
<td>215</td>
<td>adminhtml_sales_order_creditmemo_register_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Promo/CatalogController.php</td>
<td>97</td>
<td>adminhtml_controller_catalogrule_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Promo/QuoteController.php</td>
<td>109</td>
<td>adminhtml_controller_salesrule_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php</td>
<td>140</td>
<td>cms_page_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php</td>
<td>199</td>
<td>adminhtml_cmspage_on_delete</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Cms/PageController.php</td>
<td>204</td>
<td>adminhtml_cmspage_on_delete</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/CacheController.php</td>
<td>142</td>
<td>clean_media_cache_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/CacheController.php</td>
<td>166</td>
<td>clean_catalog_images_cache_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php</td>
<td>289</td>
<td>catalog_category_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/CategoryController.php</td>
<td>352</td>
<td>catalog_controller_category_delete</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php</td>
<td>182</td>
<td>catalog_product_new_action</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php</td>
<td>221</td>
<td>catalog_product_edit_action</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php</td>
<td>593</td>
<td>catalog_product_prepare_save</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php</td>
<td>811</td>
<td>catalog_controller_product_delete</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/controllers/Catalog/Product/Action/AttributeController.php</td>
<td>140</td>
<td>catalog_product_to_website_change</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php</td>
<td>217</td>
<td>sales_convert_order_to_quote</td>
</tr>
<tr>
<td>/app/code/core/Mage/Adminhtml/Model/Sales/Order/Create.php</td>
<td>306</td>
<td>sales_convert_order_item_to_quote_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/Api/Model/User.php</td>
<td>174</td>
<td>api_user_authenticated</td>
</tr>
<tr>
<td>/app/code/core/Mage/Bundle/Block/Catalog/Product/View/Type/Bundle.php</td>
<td>101</td>
<td>bundle_product_view_config</td>
</tr>
<tr>
<td>/app/code/core/Mage/Bundle/Model/Mysql4/Price/Index.php</td>
<td>357</td>
<td>catalog_product_prepare_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Bundle/Model/Mysql4/Indexer/Price.php</td>
<td>272</td>
<td>catalog_product_prepare_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Bundle/Model/Mysql4/Indexer/Price.php</td>
<td>429</td>
<td>prepare_catalog_product_price_index_table</td>
</tr>
<tr>
<td>/app/code/core/Mage/Bundle/Model/Product/Price.php</td>
<td>78</td>
<td>catalog_product_get_final_price</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogSearch/Model/Mysql4/Advanced.php</td>
<td>71</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogSearch/Model/Mysql4/Advanced.php</td>
<td>76</td>
<td>catalog_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/CatalogSearch/Model/Mysql4/Fulltext.php</td>
<td>232</td>
<td>catalogsearch_reset_search_result</td>
</tr>
<tr>
<td>/app/code/core/Mage/GoogleBase/controllers/TypesController.php</td>
<td>46</td>
<td>controller_action_postdispatch_adminhtml</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>129</td>
<td>sales_order_payment_place_start</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>205</td>
<td>sales_order_payment_place_end</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>240</td>
<td>sales_order_payment_capture</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>344</td>
<td>sales_order_payment_pay</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>362</td>
<td>sales_order_payment_cancel_invoice</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>412</td>
<td>sales_order_payment_void</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>496</td>
<td>sales_order_payment_refund</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>559</td>
<td>sales_order_payment_cancel_creditmemo</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Payment.php</td>
<td>584</td>
<td>sales_order_payment_cancel</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Item.php</td>
<td>311</td>
<td>sales_order_item_cancel</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Creditmemo.php</td>
<td>324</td>
<td>sales_order_creditmemo_refund</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Creditmemo.php</td>
<td>367</td>
<td>sales_order_creditmemo_cancel</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Invoice.php</td>
<td>275</td>
<td>sales_order_invoice_pay</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order/Invoice.php</td>
<td>339</td>
<td>sales_order_invoice_cancel</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote/Address/Total/Discount.php</td>
<td>80</td>
<td>sales_quote_address_discount_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote/Address/Total/Discount.php</td>
<td>111</td>
<td>sales_quote_address_discount_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote/Payment.php</td>
<td>81</td>
<td>$this-&gt;_eventPrefix.&#8217;_import_data_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote/Item.php</td>
<td>177</td>
<td>sales_quote_item_qty_set_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote/Item.php</td>
<td>258</td>
<td>sales_quote_item_set_product</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Mysql4/Sale/Collection.php</td>
<td>170</td>
<td>sales_sale_collection_query_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Mysql4/Quote/Item/Collection.php</td>
<td>173</td>
<td>sales_quote_item_collection_products_after_load</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Convert/Order.php</td>
<td>53</td>
<td>sales_convert_order_to_quote</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Convert/Quote.php</td>
<td>56</td>
<td>sales_convert_quote_to_order</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Convert/Quote.php</td>
<td>74</td>
<td>sales_convert_quote_address_to_order</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Convert/Quote.php</td>
<td>94</td>
<td>sales_convert_quote_address_to_order_address</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Convert/Quote.php</td>
<td>113</td>
<td>sales_convert_quote_payment_to_order_payment</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Convert/Quote.php</td>
<td>149</td>
<td>sales_convert_quote_item_to_order_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Service/Quote.php</td>
<td>147</td>
<td>checkout_type_onepage_save_order</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Service/Quote.php</td>
<td>148</td>
<td>sales_model_service_quote_submit_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Service/Quote.php</td>
<td>150</td>
<td>sales_model_service_quote_submit_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order.php</td>
<td>657</td>
<td>sales_order_place_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Order.php</td>
<td>659</td>
<td>sales_order_place_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>606</td>
<td>sales_quote_remove_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>622</td>
<td>sales_quote_add_item</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>700</td>
<td>sales_quote_product_add_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>886</td>
<td>$this-&gt;_eventPrefix.&#8217;_collect_totals_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>951</td>
<td>$this-&gt;_eventPrefix.&#8217;_collect_totals_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>1144</td>
<td>$this-&gt;_eventPrefix.&#8217;_merge_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Sales/Model/Quote.php</td>
<td>1187</td>
<td>$this-&gt;_eventPrefix.&#8217;_merge_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Review/controllers/ProductController.php</td>
<td>73</td>
<td>review_controller_product_init_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Review/controllers/ProductController.php</td>
<td>85</td>
<td>review_controller_product_init</td>
</tr>
<tr>
<td>/app/code/core/Mage/Review/controllers/ProductController.php</td>
<td>86</td>
<td>review_controller_product_init_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Review/Model/Mysql4/Review/Collection.php</td>
<td>188</td>
<td>review_review_collection_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tax/Model/Calculation.php</td>
<td>189</td>
<td>tax_rate_data_fetch</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tax/Model/Calculation/Rate.php</td>
<td>89</td>
<td>tax_settings_change_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tax/Model/Calculation/Rate.php</td>
<td>101</td>
<td>tax_settings_change_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tax/Model/Calculation/Rate.php</td>
<td>145</td>
<td>tax_settings_change_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tax/Model/Calculation/Rule.php</td>
<td>62</td>
<td>tax_settings_change_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tax/Model/Calculation/Rule.php</td>
<td>74</td>
<td>tax_settings_change_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Log/Model/Mysql4/Visitor/Collection.php</td>
<td>299</td>
<td>log_visitor_collection_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Log/Model/Mysql4/Log.php</td>
<td>56</td>
<td>log_log_clean_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Log/Model/Mysql4/Log.php</td>
<td>64</td>
<td>log_log_clean_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Payment/Block/Info.php</td>
<td>166</td>
<td>payment_info_block_prepare_specific_information</td>
</tr>
<tr>
<td>/app/code/core/Mage/Payment/Block/Form/Cc.php</td>
<td>153</td>
<td>payment_form_block_to_html_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Payment/Model/Method/Abstract.php</td>
<td>495</td>
<td>payment_method_is_active</td>
</tr>
<tr>
<td>/app/code/core/Mage/Eav/Block/Adminhtml/Attribute/Edit/Main/Abstract.php</td>
<td>174</td>
<td>adminhtml_block_eav_attribute_edit_form_init</td>
</tr>
<tr>
<td>/app/code/core/Mage/Eav/Model/Entity/Attribute.php</td>
<td>180</td>
<td>eav_attribute_get_backend_type_by_input</td>
</tr>
<tr>
<td>/app/code/core/Mage/Eav/Model/Entity/Attribute.php</td>
<td>224</td>
<td>eav_attribute_get_default_value_by_input</td>
</tr>
<tr>
<td>/app/code/core/Mage/Eav/Model/Entity/Collection/Abstract.php</td>
<td>788</td>
<td>eav_collection_abstract_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Cms/Helper/Page.php</td>
<td>101</td>
<td>cms_page_render</td>
</tr>
<tr>
<td>/app/code/core/Mage/Cms/Controller/Router.php</td>
<td>71</td>
<td>cms_controller_router_match_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Cms/Model/Page.php</td>
<td>115</td>
<td>cms_page_get_available_statuses</td>
</tr>
<tr>
<td>/app/code/core/Mage/Cms/Model/Wysiwyg/Config.php</td>
<td>88</td>
<td>cms_wysiwyg_config_prepare</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Block/Product/List/Upsell.php</td>
<td>70</td>
<td>catalog_product_upsell</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Block/Product/View.php</td>
<td>160</td>
<td>catalog_product_view_config</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Block/Product/List.php</td>
<td>147</td>
<td>catalog_block_product_list_collection</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Helper/Output.php</td>
<td>38</td>
<td>catalog_helper_output_construct</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/CategoryController.php</td>
<td>43</td>
<td>catalog_controller_category_init_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/CategoryController.php</td>
<td>59</td>
<td>catalog_controller_category_init_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/ProductController.php</td>
<td>42</td>
<td>catalog_controller_product_init_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/ProductController.php</td>
<td>80</td>
<td>catalog_controller_product_init</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/ProductController.php</td>
<td>81</td>
<td>catalog_controller_product_init_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/ProductController.php</td>
<td>139</td>
<td>catalog_controller_product_view</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/Product/CompareController.php</td>
<td>80</td>
<td>catalog_product_compare_add_product</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/controllers/Product/CompareController.php</td>
<td>114</td>
<td>catalog_product_compare_remove_product</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Convert/Adapter/Product.php</td>
<td>737</td>
<td>catalog_product_import_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Collection.php</td>
<td>127</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Collection.php</td>
<td>139</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Collection.php</td>
<td>301</td>
<td>$this-&gt;_eventPrefix.&#8217;_add_is_active_filter&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Tree.php</td>
<td>196</td>
<td>catalog_category_tree_init_inactive_category_ids</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Tree.php</td>
<td>353</td>
<td>catalog_category_tree_move_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Tree.php</td>
<td>388</td>
<td>catalog_category_tree_move_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Flat.php</td>
<td>155</td>
<td>catalog_category_tree_init_inactive_category_ids</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Flat/Collection.php</td>
<td>109</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Flat/Collection.php</td>
<td>121</td>
<td>$this-&gt;_eventPrefix.&#8217;_load_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category/Flat/Collection.php</td>
<td>196</td>
<td>$this-&gt;_eventPrefix.&#8217;_add_is_active_filter&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Layer/Filter/Price.php</td>
<td>104</td>
<td>catalogindex_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Layer/Filter/Price.php</td>
<td>109</td>
<td>catalog_prepare_price_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Category.php</td>
<td>352</td>
<td>catalog_category_change_products</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Compare/Item/Collection.php</td>
<td>328</td>
<td>catalog_product_compare_item_collection_clear</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Price/Grouped.php</td>
<td>113</td>
<td>catalog_product_prepare_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Price/Default.php</td>
<td>269</td>
<td>prepare_catalog_product_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Price/Default.php</td>
<td>286</td>
<td>prepare_catalog_product_price_index_table</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Eav/Source.php</td>
<td>140</td>
<td>prepare_catalog_product_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Eav/Source.php</td>
<td>213</td>
<td>prepare_catalog_product_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Eav/Abstract.php</td>
<td>187</td>
<td>prepare_catalog_product_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Eav/Decimal.php</td>
<td>97</td>
<td>prepare_catalog_product_index_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php</td>
<td>336</td>
<td>catalog_product_collection_load_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php</td>
<td>359</td>
<td>catalog_product_collection_load_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php</td>
<td>785</td>
<td>catalog_product_collection_before_add_count_to_categories</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Collection.php</td>
<td>1539</td>
<td>catalog_product_collection_apply_limitations_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Flat/Indexer.php</td>
<td>335</td>
<td>catalog_product_flat_prepare_columns</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Flat/Indexer.php</td>
<td>396</td>
<td>catalog_product_flat_prepare_indexes</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Flat/Indexer.php</td>
<td>848</td>
<td>catalog_product_flat_rebuild</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Resource/Eav/Mysql4/Product/Flat/Indexer.php</td>
<td>1097</td>
<td>catalog_product_flat_update_product</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product.php</td>
<td>158</td>
<td>$this-&gt;_eventPrefix.&#8217;_validate_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product.php</td>
<td>160</td>
<td>$this-&gt;_eventPrefix.&#8217;_validate_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product.php</td>
<td>982</td>
<td>catalog_model_product_duplicate</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product.php</td>
<td>1180</td>
<td>catalog_product_is_salable_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product.php</td>
<td>1190</td>
<td>catalog_product_is_salable_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product.php</td>
<td>1317</td>
<td>$this-&gt;_eventPrefix.&#8217;_delete_after_done&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Category.php</td>
<td>214</td>
<td>catalog_category_tree_move_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Category.php</td>
<td>215</td>
<td>$this-&gt;_eventPrefix.&#8217;_move_before&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Category.php</td>
<td>219</td>
<td>$this-&gt;_eventPrefix.&#8217;_move_after&#8217;</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Category.php</td>
<td>220</td>
<td>catalog_category_tree_move_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Category.php</td>
<td>230</td>
<td>category_move</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product/Action.php</td>
<td>93</td>
<td>catalog_product_website_update_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product/Action.php</td>
<td>117</td>
<td>catalog_product_website_update</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product/Status.php</td>
<td>208</td>
<td>catalog_product_status_update</td>
</tr>
<tr>
<td>/app/code/core/Mage/Catalog/Model/Product/Type/Price.php</td>
<td>68</td>
<td>catalog_product_get_final_price</td>
</tr>
<tr>
<td>/app/code/core/Mage/Wishlist/Helper/Data.php</td>
<td>334</td>
<td>wishlist_items_renewed</td>
</tr>
<tr>
<td>/app/code/core/Mage/Wishlist/controllers/IndexController.php</td>
<td>135</td>
<td>wishlist_add_product</td>
</tr>
<tr>
<td>/app/code/core/Mage/Wishlist/controllers/IndexController.php</td>
<td>367</td>
<td>wishlist_share</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Order/New.php</td>
<td>77</td>
<td>rss_order_new_collection_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Catalog/Tag.php</td>
<td>87</td>
<td>rss_catalog_tagged_item_xml_callback</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Catalog/Special.php</td>
<td>151</td>
<td>rss_catalog_special_xml_callback</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Catalog/NotifyStock.php</td>
<td>81</td>
<td>rss_catalog_notify_stock_collection_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Catalog/Category.php</td>
<td>118</td>
<td>rss_catalog_category_xml_callback</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Catalog/Review.php</td>
<td>74</td>
<td>rss_catalog_review_collection_select</td>
</tr>
<tr>
<td>/app/code/core/Mage/Rss/Block/Catalog/New.php</td>
<td>103</td>
<td>rss_catalog_new_xml_callback</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Helper/Data.php</td>
<td>274</td>
<td>checkout_allow_guest</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/controllers/CartController.php</td>
<td>184</td>
<td>checkout_cart_add_product_complete</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/controllers/OnepageController.php</td>
<td>222</td>
<td>checkout_onepage_controller_success_action</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/controllers/OnepageController.php</td>
<td>365</td>
<td>checkout_controller_onepage_save_shipping_method</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/controllers/MultishippingController.php</td>
<td>312</td>
<td>checkout_controller_multishipping_shipping_post</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/controllers/MultishippingController.php</td>
<td>503</td>
<td>checkout_multishipping_controller_success_action</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Type/Onepage.php</td>
<td>616</td>
<td>checkout_type_onepage_save_order_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Type/Multishipping.php</td>
<td>253</td>
<td>checkout_type_multishipping_set_shipping_items</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Type/Multishipping.php</td>
<td>473</td>
<td>checkout_type_multishipping_create_orders_single</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Session.php</td>
<td>87</td>
<td>checkout_quote_init</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Session.php</td>
<td>192</td>
<td>checkout_quote_destroy</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Cart.php</td>
<td>253</td>
<td>checkout_cart_product_add_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Cart.php</td>
<td>313</td>
<td>checkout_cart_update_items_before</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Cart.php</td>
<td>332</td>
<td>checkout_cart_update_items_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Checkout/Model/Cart.php</td>
<td>363</td>
<td>checkout_cart_save_after</td>
</tr>
<tr>
<td>/app/code/core/Mage/Tag/Model/Mysql4/Product/Collection.php</td>
<td>395</td>
<td>tag_tag_product_collection_load_after</td>
</tr>
<tr>
<td>/app/Mage.php</td>
<td>610</td>
<td>mage_run_exception</td>
</tr>
</tbody>
</table>
<img src="http://feeds.feedburner.com/~r/johnw/~4/PjiIADh2DSw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://watson-net.com/blog/magento-1-4-0-1-event-hooks/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

