<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://groups.drupal.org" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Drupal Dojo</title>
 <link>http://groups.drupal.org/drupal-dojo</link>
 <description>A group for apprentice/journeyman developers who want to increase proficiency, and for experts looking to grow the pool of Drupal talent.</description>
 <language>en</language>
<item>
 <title>Drupal Dojo 2.0 resource board</title>
 <link>http://groups.drupal.org/node/7228</link>
 <description>&lt;p&gt;This wiki is a centralized repository for the various plans, ideas, conversations pertaining to the Dojo 2.0 website upgrade, as well as the goals, vision, and action plans of the Dojo itself. The Project Tracker for this upgrade is &lt;a href=&quot;http://drupal.org/project/drupal_dojo&quot;&gt;here&lt;/a&gt; and the current priorities &lt;a href=&quot;http://groups.drupal.org/node/8171&quot;&gt;are here&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Dojo Goals and Vision&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/8097&quot;&gt;Dojo Goals and Vision&lt;/a&gt; - what&#039;s our goals and vision&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/8106&quot;&gt;The Dojo Code&lt;/a&gt; - our values and principals&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/8131&quot;&gt;Dojo Organizational Structure&lt;/a&gt; - should we try to create?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;What is Dojo 2.0? (the website)&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Repository for all Dojo training and learning materials
&lt;ul&gt;
&lt;li&gt;Live lessons&lt;/li&gt;
&lt;li&gt;Online training library (audio, video, slideshows)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;An environment for collaborative learning and interactive workshops
&lt;ul&gt;
&lt;li&gt;Interactive case studies&lt;/li&gt;
&lt;li&gt;Work on essential projects important to the community&lt;/li&gt;
&lt;li&gt;Build complete sites&lt;/li&gt;
&lt;li&gt;Aggregate/recommend news and learning materials from other sources&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;A project management system  &lt;/li&gt;
&lt;li&gt;A framework for one or many Drupal products
&lt;ul&gt;
&lt;li&gt;learning/collaborative workshop portal&lt;/li&gt;
&lt;li&gt;project management site&lt;/li&gt;
&lt;li&gt;A cross-platform screensharing app and video training repository&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Website features (front end)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/201891#comment-690072&quot;&gt;Issues&lt;/a&gt; we prioritized during the &lt;a href=&quot;http://groups.drupal.org/node/7954&quot; rel=&quot;nofollow&quot;&gt;January 12 Coffeetalk&lt;/a&gt;. We will continue to add and review website features until January 20 at which point we will lock down the features and write the spec to build.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Website features (infrastructure)&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/208344&quot;&gt;Allow/accommodate &#039;multiple&#039; dev environments or sandboxes&lt;/a&gt; - A logical next step to this (&lt;a href=&quot;http://drupal.org/node/206197&quot; title=&quot;http://drupal.org/node/206197&quot;&gt;http://drupal.org/node/206197&lt;/a&gt;) would be if/how we&#039;d allow/accommodate &#039;multiple&#039; dev environments or sandboxes (dojo&#039;s)? Essentially one of the thoughts we had for Dojo.org:&lt;br /&gt;
&lt;a href=&quot;http://groups.drupal.org/node/2989&quot; title=&quot;http://groups.drupal.org/node/2989&quot;&gt;http://groups.drupal.org/node/2989&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Production&lt;/h2&gt;
&lt;h3&gt;Production values and branding&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/201890&quot;&gt;Create Dojo video &quot;standard&quot;&lt;/a&gt; - Dojo brand production values  need to be top notch &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/205647&quot;&gt;Automated video recording and encoding&lt;/a&gt; - ensure that the live lessons are captured&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/203810&quot;&gt;Research video storage/delivery options&lt;/a&gt; - how do we ensure that our materials reach the largest audience? &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/6739&quot;&gt;Role Models For Displaying Video Tutorials&lt;/a&gt; - Salesforce.com provides some great examples regarding organization, branding, and production values &lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Process oriented&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/8051&quot;&gt;Process for open collaborative development&lt;/a&gt; - first stab in terms of establishing guidelines and a workflow for open drupal development &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/7999&quot;&gt;Dojo2.0 working groups?&lt;/a&gt; - Should we break down major tasks/development chunks into working groups?&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Curriculum: Lesson/project ideas and related discussions&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/project/ghop&quot;&gt;Google Highly Open Participation Contest (GHOP)&lt;/a&gt; - couldn&#039;t the dojo add value to/carry the flame on this &lt;a href=&quot;http://opentouch.info/tmp/ghop/ghop-stats.html#drupal&quot;&gt;amazingly successful&lt;/a&gt; project? Related discussions &lt;a href=&quot;http://groups.drupal.org/node/6943#comment-23717&quot;&gt;here&lt;/a&gt; and &lt;a href=&quot;http://groups.drupal.org/node/7337#comment-24676&quot;&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/2433&quot;&gt;Drupal Dojo Lesson Ideas and Interactive workshop wiki&lt;/a&gt; - our current repository of lesson and project ideas&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/2502&quot;&gt;Dojo-based projects? Paid? Not Paid? How could this work?&lt;/a&gt; - a &#039;Dojo classic&#039; discussion regarding building a complete site as a learning project (aka &lt;a href=&quot;http://groups.drupal.org/node/8097#comment-24608&quot;&gt;dojo master class&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/5653&quot;&gt;Call for install profile ideas&lt;/a&gt; - all could be fair game for a &#039;dojo master class&#039;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Incentives and sustainability&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/8073&quot;&gt;Funding ideas and proposals&lt;/a&gt; - important to reach clarity towards what&#039;s doable, acceptable and establish some guidelines (and into the &lt;a href=&quot;http://groups.drupal.org/node/8106&quot;&gt;Dojo code&lt;/a&gt;?).&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/203813&quot;&gt;Screencast Instructor and Producer Incentive Program&lt;/a&gt; - great ideas on non-monetary incentives and production guidelines (and tie ins w/ the above funding &#039;meta&#039; discussion.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/203818&quot;&gt;Sponsor page?&lt;/a&gt; - Should be consistent with guidelines for other Dojo learning materials (video, audio, slideshows, case-studies)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/207523&quot;&gt;How do we solicit teachers?&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;See also&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/6622&quot;&gt;Drupal Dojo 2.0?&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/6914&quot;&gt;Drupal Dojo 2.0 BadCamp&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/2892&quot;&gt;CoffeeTalk Wiki&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/2786&quot;&gt;Discussing Growth: DrupalDojo.com/net/org?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/2832&quot;&gt;What to do with drupaldojo.org&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/1957&quot;&gt;The value of distribution profiles&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://groups.drupal.org/node/1886&quot;&gt;Distributions and the Web services loophole&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Inspiration&lt;/h2&gt;
&lt;p&gt;Not necessarily Drupal/Dojo specific, but nevertheless some good examples/inspiration.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.lynda.com/&quot;&gt;Lynda.com&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://movielibrary.lynda.com/html/modlisting.asp?ref=vat&quot;&gt;Course list&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pixelcorps.com/&quot;&gt;Pixel Corps&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.pixelcorps.com/benefits.php&quot;&gt;Course list and benefits&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.richmediainstitute.com/&quot;&gt;Rich Media Institute&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.edutopia.org/&quot;&gt;Edutopia&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.newsu.org/&quot;&gt;News University&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.newsu.org/courses/course_list.aspx&quot;&gt;Course list&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ourmedia.org/learning-center&quot;&gt;Ourmedia learning center&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <category domain="http://groups.drupal.org/taxonomy/term/1540">CoffeeTalk</category>
 <category domain="http://groups.drupal.org/taxonomy/term/3311">dojo 2.0</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1331">lesson ideas</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1434">projects</category>
 <category domain="http://groups.drupal.org/taxonomy/term/3495">workshop ideas</category>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Mon, 19 Nov 2007 21:42:58 +0000</pubDate>
 <dc:creator>gusaus</dc:creator>
 <guid isPermaLink="false">7228 at http://groups.drupal.org</guid>
</item>
<item>
 <title>just a list of lessons?</title>
 <link>http://groups.drupal.org/node/11267</link>
 <description>&lt;p&gt;I am trying to find just a list of lessons, I joined a little while back and I see you&#039;re making great improvements in the layout of the groups page, but I&#039;m still a bit lost.&lt;/p&gt;
&lt;p&gt;The dojo-howto  tag doesn&#039;t contain just a list of lessons. &lt;a href=&quot;http://groups.drupal.org/taxonomy/term/1262&quot; title=&quot;http://groups.drupal.org/taxonomy/term/1262&quot;&gt;http://groups.drupal.org/taxonomy/term/1262&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &quot;lessons&quot; tab lists events and other things in the lessons list: &lt;a href=&quot;http://groups.drupal.org/node/2191/lessons&quot; title=&quot;http://groups.drupal.org/node/2191/lessons&quot;&gt;http://groups.drupal.org/node/2191/lessons&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;And &lt;a href=&quot;http://drupaldojo.com/lessons/&quot; title=&quot;http://drupaldojo.com/lessons/&quot;&gt;http://drupaldojo.com/lessons/&lt;/a&gt; has 9 pages of lessons... is there maybe one spot which has all lessons listed by category? with just titles, and links, instead of the long summary and big header pic and stuff?&lt;/p&gt;
&lt;p&gt;I&#039;m actually trying to figure out if there is a &quot;My First Module for Drupal Noobs&quot; video somewhere.&lt;/p&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/11267#comments</comments>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Wed, 07 May 2008 00:59:47 +0000</pubDate>
 <dc:creator>heather</dc:creator>
 <guid isPermaLink="false">11267 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Feed API + Emfield Recipe Screencast</title>
 <link>http://groups.drupal.org/node/10833</link>
 <description>&lt;p&gt;&lt;a href=&quot;http://www.drupaltherapy.com/node/34&quot;&gt;The blog post on Drupaltherapy&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://blip.tv/file/836041&quot;&gt;Hosted on Blip&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is a quick recipe that uses Drupal&#039;s Feed API, Feed Element Mapper, CCK and the Embedded Media Field to create independent embedded video nodes on your Drupal site by RSS. This is my first screencast and first contribution to the Drupal Dojo, I followed the specs on the other discussions as best I could, consider adding this to the Dojo video pool.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10833#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/4902">Blip</category>
 <category domain="http://groups.drupal.org/taxonomy/term/108">CCK</category>
 <category domain="http://groups.drupal.org/taxonomy/term/3540">emfield</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4637">feed API</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1282">screencasts</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1262">dojo-howto</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4905">Blip</category>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Sat, 19 Apr 2008 00:44:54 +0000</pubDate>
 <dc:creator>seaneffel</dc:creator>
 <guid isPermaLink="false">10833 at http://groups.drupal.org</guid>
</item>
<item>
 <title>How can China be of services to Drupal -- practically? </title>
 <link>http://groups.drupal.org/node/10770</link>
 <description>&lt;p&gt;We have been pondering about how to best evangelize China into the Drupal community -- and in droves.&lt;/p&gt;
&lt;p&gt;After operating in China for two years, and despite of our best trying such as holding the Drupal BootCamp event in Beijing &lt;a href=&quot;http://www.drupalchina.org/node/3638&quot; title=&quot;http://www.drupalchina.org/node/3638&quot;&gt;http://www.drupalchina.org/node/3638&lt;/a&gt;, our biggest challenge is the practicality of getting Chinese acquainted with Drupal -- BEFORE -- we can even talk about having them participate into the DROP program, let alone directly contribute into module or theme writing. &lt;/p&gt;
&lt;p&gt;Meanwhile, after our Boston DrupalCon session &lt;a href=&quot;http://boston2008.drupalcon.org/session/drupal-china-how-who-and-why&quot; title=&quot;http://boston2008.drupalcon.org/session/drupal-china-how-who-and-why&quot;&gt;http://boston2008.drupalcon.org/session/drupal-china-how-who-and-why&lt;/a&gt;, we were in London for CFUnited Europe &lt;a href=&quot;http://europe.cfunited.com/&quot; title=&quot;http://europe.cfunited.com/&quot;&gt;http://europe.cfunited.com/&lt;/a&gt;, during which we shared our thinking to run a two months long, 50-100 college-students, China Open-Source Summer-Camp (ChinaOpen), in Beijing this summer with excitement built around the sites and sound of the 2008 Olympics. &lt;/p&gt;
&lt;p&gt;Within the first two hours, we received 7 Open-Source projects to work on. &lt;/p&gt;
&lt;p&gt;That was 1-month ago. And we have been contemplating about how this ChinaOpen can be of direct service to the Drupal community ever since. &lt;/p&gt;
&lt;p&gt;Our latest epiphany/idea is to solicit ideas/projects to build web-sites for the non-profit community -- this summer -- in order to “graduate” the ChinaOpen participants into the DROP/SoC program, (say) next summer and give back to a few deserving organizations that need to get the word out but don&#039;t have the budget or resources. We imagine some participants may even be able to directly contribute to writing Drupal modules after this. &lt;/p&gt;
&lt;p&gt;We could obviously open to For-Profit (kind of like the old “dotcom”) style web-sites/ideas, but we figure this would open the flood-gate too much. &lt;/p&gt;
&lt;p&gt;What do you think? &lt;/p&gt;
&lt;p&gt;Ideas, suggestions, critics, helping out? &lt;/p&gt;
&lt;p&gt;Finally, we are trying to decide, whether this ChinaOpen should be pursued forward this summer, since logistically speaking, we are rapidly approaching the absolute deadline time to get the words out, and arrange all the logistic issues as May will be here in 2-weeks -- which is our other way to ask, for those of you who have participated either DROP or SoC before:&lt;br /&gt;
-- What kind of general rule-of-thumb in terms of operational-support that we should estimate?&lt;br /&gt;
-- For example, for each student, how much &quot;mentoring&quot; and backoffice support that we would need to factor? &lt;/p&gt;
&lt;p&gt;Thanks!&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/soc-2008&quot;&gt;SoC 2008&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10770#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/809">china</category>
 <group domain="http://groups.drupal.org/adobe-technologies">Adobe Technologies</group>
 <group domain="http://groups.drupal.org/bei-jing">Bei Jing (China)</group>
 <group domain="http://groups.drupal.org/northern-va-users-group">Northern VA Users Group</group>
 <group domain="http://groups.drupal.org/shanghai">Shanghai</group>
 <group domain="http://groups.drupal.org/washington-dc-drupalers">Washington, DC Drupalers</group>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <group domain="http://groups.drupal.org/drop">DROP</group>
 <group domain="http://groups.drupal.org/soc-2008">SoC 2008</group>
 <pubDate>Wed, 16 Apr 2008 18:50:06 +0000</pubDate>
 <dc:creator>john.zhu</dc:creator>
 <guid isPermaLink="false">10770 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Drupal Boot Camp del.icio.us Tags - Help us build up a great list of resources</title>
 <link>http://groups.drupal.org/node/10413</link>
 <description>&lt;p&gt;In an effort to compile some great resources for our Drupal Boot Camp Champaign participants, we want you to help us tag your favorite Drupal-related resources on del.icio.us&lt;/p&gt;
&lt;p&gt;Please tag your favorite links in the following way:&lt;br /&gt;
drupal, bootcamp, [topic]&lt;/p&gt;
&lt;p&gt;Where [topic] is one of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;intro -- For resources related to what Drupal is, why people choose Drupal vs. other CMSs, etc&lt;/li&gt;
&lt;li&gt;basics -- Basic Drupal jargon, getting started, installation walkthroughs, etc&lt;/li&gt;
&lt;li&gt;theming -- Your favorite contrib themes, theming guides and help&lt;/li&gt;
&lt;li&gt;modules -- The modules you use most, tips for finding the best modules, etc&lt;/li&gt;
&lt;li&gt;community -- Resources on how to get involved with the Drupal community and hook up with like-minded peers&lt;/li&gt;
&lt;li&gt;inspire -- For resources which showcase just how awesome Drupal is and what can be achieved including but not limited to beautiful feature-rich websites&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We will then be giving out the following links to event attendees (and now, you!) as a place to find and contribute more useful links as we all come across new useful articles and reference:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://del.icio.us/tag/drupal+bootcamp+intro&quot; title=&quot;http://del.icio.us/tag/drupal+bootcamp+intro&quot;&gt;http://del.icio.us/tag/drupal+bootcamp+intro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://del.icio.us/tag/drupal+bootcamp+basics&quot; title=&quot;http://del.icio.us/tag/drupal+bootcamp+basics&quot;&gt;http://del.icio.us/tag/drupal+bootcamp+basics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://del.icio.us/tag/drupal+bootcamp+theming&quot; title=&quot;http://del.icio.us/tag/drupal+bootcamp+theming&quot;&gt;http://del.icio.us/tag/drupal+bootcamp+theming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://del.icio.us/tag/drupal+bootcamp+modules&quot; title=&quot;http://del.icio.us/tag/drupal+bootcamp+modules&quot;&gt;http://del.icio.us/tag/drupal+bootcamp+modules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://del.icio.us/tag/drupal+bootcamp+community&quot; title=&quot;http://del.icio.us/tag/drupal+bootcamp+community&quot;&gt;http://del.icio.us/tag/drupal+bootcamp+community&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://del.icio.us/tag/drupal+bootcamp+inspire&quot; title=&quot;http://del.icio.us/tag/drupal+bootcamp+inspire&quot;&gt;http://del.icio.us/tag/drupal+bootcamp+inspire&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Drupal Boot Camp Champaign is going to be a huge event. John Barclay is organizing with the help of the other Central Illinois DUG and we have been astounded to have over 80 RSVPs from the Champaign/Urbana area alone and we will also be webcasting this to the University of Illinois in Chicago where up to 100 more people will be joining us digitally.&lt;/p&gt;
&lt;p&gt;We could really use the help and minds of you, the community, in compiling these lists while we all finish preparing our sessions to accommodate all of our attendees!&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10413#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2928">beginner resources</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4702">boot camp</category>
 <category domain="http://groups.drupal.org/taxonomy/term/3806">Central Illinois</category>
 <category domain="http://groups.drupal.org/taxonomy/term/11">drupal camp</category>
 <category domain="http://groups.drupal.org/taxonomy/term/2131">resources</category>
 <group domain="http://groups.drupal.org/central-illinois-drupal-users">Central Illinois DUG</group>
 <group domain="http://groups.drupal.org/chicago">Chicago</group>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Thu, 03 Apr 2008 16:10:39 +0000</pubDate>
 <dc:creator>bmcmurray@drupal.org</dc:creator>
 <guid isPermaLink="false">10413 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Group Page Redesign</title>
 <link>http://groups.drupal.org/node/10321</link>
 <description>&lt;p&gt;Yesterday we took some steps to redesign the group homepage. It&#039;s a step in the right direction, but still far from done. I would really like to continue working on our homepage so that we can have something really useful that will serve as a model for other groups on g.d.o. What do you think?&lt;/p&gt;
&lt;p&gt;Here are some initial issues I see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No way to quickly see &quot;what&#039;s new&quot; in the group&lt;/li&gt;
&lt;li&gt;A new wiki page will not surface anywhere&lt;/li&gt;
&lt;li&gt;We probably need to work out a better system for scheduling upcoming lessons...&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use this thread to discuss what we should tweak/change/add.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10321#comments</comments>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Mon, 31 Mar 2008 16:42:08 +0000</pubDate>
 <dc:creator>joshk</dc:creator>
 <guid isPermaLink="false">10321 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Drupal Dojo Group Barnraising</title>
 <link>http://groups.drupal.org/node/10235</link>
 <description>&lt;p&gt;&lt;a href=&quot;http://drupaldojo.com/lesson/using-og_panels-on-groups.drupal.org&quot;&gt;Download screencast from DrupalDojo.com&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://blip.tv/file/789296&quot;&gt;View/embed from blip.tv&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Many have heard of the &quot;new functionality&quot; coming to groups.drupal.org, and I&#039;m happy to say that thanks to the diligent work of Moshe and Earl, the era of og_panels is here! This addition to the Organic Groups module allows unprecedented opportunities for us to make our group home much more useful.&lt;/p&gt;
&lt;p&gt;Tune in on Sunday for a little jam session on this. We&#039;ll riff on how best to set up the group, and I&#039;ll tape a short screencast documenting how all group admins can make use of these awesome new tools.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/10235#comments</comments>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Sat, 29 Mar 2008 01:31:29 +0000</pubDate>
 <dc:creator>joshk</dc:creator>
 <guid isPermaLink="false">10235 at http://groups.drupal.org</guid>
</item>
<item>
 <title>On-topic posts</title>
 <link>http://groups.drupal.org/node/9997</link>
 <description>&lt;p&gt;Lately I&#039;ve been noticing that many posts have been off-topic.&lt;br /&gt;
I think we should figure out what we want in our group, and some standards.&lt;/p&gt;
&lt;p&gt;First of all, I&#039;ve tasked myself with removing all job postings from the group, since jobs REALLY don&#039;t belong in this group.&lt;/p&gt;
&lt;p&gt;There have been some random how-to&#039;s, postings about irrelevant events, postings about some projects which I don&#039;t think anyone from the dojo really got involved in (read: &lt;a href=&quot;http://groups.drupal.org/node/4216&quot; title=&quot;http://groups.drupal.org/node/4216&quot;&gt;http://groups.drupal.org/node/4216&lt;/a&gt;), and of course class notes, lesson postings, and dd2.0 stuff.&lt;/p&gt;
&lt;p&gt;Personally, I think only class notes, lesson postings, and dd2.0 stuff belongs.&lt;/p&gt;
&lt;p&gt;Maybe we should have a big sticky posting at the top outlining what belogns and what doesn&#039;t.  Maybe we can also find a spot for people to put &quot;why this belongs in the dojo&quot;, which by itself would probably eliminate a lot of postings&lt;/p&gt;
&lt;p&gt;I wouldn&#039;t be shy to immediately block people from this group who violate the rules, or at least somehow revoke their permission to add content to the Dojo.&lt;/p&gt;
&lt;p&gt;This stuff has reaaly been bugging the crap out of me lately&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9997#comments</comments>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Fri, 21 Mar 2008 05:07:49 +0000</pubDate>
 <dc:creator>dmitrig01</dc:creator>
 <guid isPermaLink="false">9997 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Dojo 2.0 status report</title>
 <link>http://groups.drupal.org/node/9972</link>
 <description>&lt;p&gt;So, many folks are wondering where things are with the Dojo 2.0 initiative, especially after DrupalCon. I haven&#039;t posted any March next steps because the roadmap is changing a bit now. I actually did not get to attend the Dojo BoF at DrupalCon due to a scheduling conflict (I was presenting at the time) so I&#039;ll leave the details to others. I just wanted to answer some growing questions about &quot;What&#039;s up?&quot;&lt;/p&gt;
&lt;p&gt;The big news is that g.d.o is going to be implementing some cool new changes that will allow us to customize our group home much better. We&#039;ll be able to have sections with some actually organization of content! Josh has been working with Moshe on that so I&#039;m sure he has plenty more to say. What this means is that we will be able to keep the dynamic and community content of the Dojo here, rather than needing to move off to our other site. This is a big win in a few ways: no need for yet another password, keeping info centralized, etc.&lt;/p&gt;
&lt;p&gt;Whoa, what does that mean for drupaldojo.com? Well it means that we can trim down the scope of what dd.com needs to be for us. We are going to redirect our efforts to make it a nice, trim, sexy, easy-to-use video library. The idea is to do all the work and talk on g.d.o and then organize the output of all that (videos) on the dd.com site in a way that makes it easy to find and search. There was quite a bit done on the &quot;old&quot; Dojo 2.0 but most of it was planning (we don&#039;t even have wireframes yet) and the server side stuff (like SVN) can still be used so that work is not all for naught. We are simply going to trim it down and redirect some energy, which will end up being better for everyone involved.&lt;/p&gt;
&lt;p&gt;Also note that the work we have been doing on getting the video production stuff together is still very needed and plenty still to be done there.&lt;/p&gt;
&lt;p&gt;So that&#039;s how I understand it from the folks I&#039;ve talked with and hopefully some of this will fill out some in the comments (and the Dojo issue queue!)&lt;/p&gt;
&lt;p&gt;Also on another note, my schedule will be ramping up for the next few months so I will not be able to be as active in the Dojo generally and on the website redesign specifically. I will definitely pop in as much as I can and I&#039;m pretty excited about what the new Dojo g.d.o home can be like!&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9972#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/3311">dojo 2.0</category>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Thu, 20 Mar 2008 15:47:56 +0000</pubDate>
 <dc:creator>add1sun</dc:creator>
 <guid isPermaLink="false">9972 at http://groups.drupal.org</guid>
</item>
<item>
 <title>HOWTO build an add-on for Subscriptions module</title>
 <link>http://groups.drupal.org/node/9818</link>
 <description>&lt;p&gt;The Subscriptions module provides a range of subscription types. Users can subscribe to individual content items, to all items of a particular content type, to all posts in a particular blog, or to all items tagged with a particular taxonomy term. The range of subscription types can be extended by additional add-on modules. This guide describes the hooks a module needs to implement to provide new subscription types.&lt;/p&gt;
&lt;p&gt;In the examples given below we have a module called &#039;myplugin&#039; which implements a single new subscription type called &#039;mytype&#039;.&lt;/p&gt;
&lt;h2&gt;User Interface&lt;/h2&gt;
&lt;p&gt;In order to let users manage their subscriptions and administrators manage user and global settings, an add-on should implement the following hooks:&lt;/p&gt;
&lt;h3&gt;_hook_types()&lt;/h3&gt;
&lt;p&gt;This is a key function for providing useful information about your module. The returned information is used by the subscriptions module to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Construct a sub-tab for each new subscription type on the Subscriptions settings pages. &lt;/li&gt;
&lt;li&gt;Create an access permission for each new subscription type.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The function should return an array with one entry for each subscription type that your module creates, indexed by the machine-readable name of the subscription type. The value of each entry is itself an array with the following fields:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&#039;title&#039; The user-friendly name for the subscription type. It is used for example as the label of the sub-tab that each subscription type gets on the user and admin subscription pages.&lt;/li&gt;
&lt;li&gt;&#039;access&#039; The name of the permission for creating subscriptions of this type.&lt;/li&gt;
&lt;li&gt;&#039;page&#039; The function in charge of displaying the list of subscriptions of this type.&lt;/li&gt;
&lt;li&gt;&#039;fields&#039; Used for mailvars(Subscriptions_Mail) this is an array of two strings which you can choose freely for this subscription type. It does not matter what you choose as long as it is unique to this subscription type, so you could use machine-readable name of the subscription type. &lt;/li&gt;
&lt;li&gt;&#039;weight&#039; This determines the order in which subscription types are displayed in the user interface. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Example 1:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;function &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_myplugin_types&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;() {&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$types&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;mytype&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;] = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;title&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;My type&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;access&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;subscribe to my type&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;page&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;myplugin_page_mytype&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;fields&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; array(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;myplugin&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;mytype&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;weight&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;&amp;nbsp; );&lt;br /&gt;&amp;nbsp; return &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$types&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;h3&gt;hook_count_user_subscriptions()&lt;/h3&gt;
&lt;p&gt;Used in order of provide a count of subscriptions a user has of a particular type, ie: amount of blogs a user is subscribed to, amount of threads (posts) a user is subscribed to, and so on.&lt;/p&gt;
&lt;p&gt;The function should return an array in the form:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;array(&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;myplugin&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;mytype&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;#count&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;)&lt;br /&gt;); &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Example 2:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;function &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;myplugin_count_user_subscriptions&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$count&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$uid&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$type&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_myplugin_types&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$fields &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$type&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;mytype&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;fields&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$query &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&quot;&lt;br /&gt;&amp;nbsp; SELECT count(*)&lt;br /&gt;&amp;nbsp; FROM {subscriptions}&lt;br /&gt;&amp;nbsp; WHERE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; module = &#039;node&#039; AND&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; field = &#039;mytype&#039; AND&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; recipient_uid = %d&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &quot;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$count&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$fields&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;]][&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$fields&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;]] = &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;db_result&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;db_query&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$query&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$uid&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$count&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Notice at previous example:&lt;br /&gt;
- Dependency on own _myplugin_types() which returns the types defined by your add-on, so $fields is used to provide a valid array structure of counts.&lt;br /&gt;
- Subscriptions table stores your plug-in data using string &#039;mytype&#039; (previously defined in _hook_types) as value for column: field&lt;br /&gt;
- &#039;node&#039; is the name of the module providing the data.&lt;/p&gt;
&lt;h3&gt;_hook_node_options()&lt;/h3&gt;
&lt;p&gt;Subscriptions_UI module provides a User Interface for users to manage subscriptions displaying a form in every node (a.k.a subscriptions controls or node form). Implement this function if you want to add options for your plug-in. See also: hook_form_alter(), in order of customize the node form before render.&lt;/p&gt;
&lt;p&gt;This function should return an array with a row for every type and every type with a row for each option.&lt;/p&gt;
&lt;p&gt;Example 3:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;function &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_myplugin_node_options&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$account&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$content&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$options&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;mytype&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;] = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;name&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;The label of this option&#039;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &#039;params&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; array(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;value&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$content_id&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;links&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;node/&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$content_id&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ),&lt;br /&gt;&amp;nbsp; );&lt;br /&gt;&amp;nbsp; return &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$options&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Notice at previous example:&lt;br /&gt;
- $account is a parameter you can use for validation.&lt;br /&gt;
- $content is an object (commonly a node).&lt;br /&gt;
- &#039;params&#039; is an option property. Must keep the form: array(&#039;value&#039; =&amp;gt; #ID).&lt;br /&gt;
- #ID or $content_id(in the example) is stored into subscriptions table in the column: value.&lt;/p&gt;
&lt;h3&gt;hook_mailkeys()&lt;/h3&gt;
&lt;p&gt;Used in order of let Mail Editor manage your plug-in&#039;s mail templates, since Subscriptions_Mail module depends on mail_edit.&lt;/p&gt;
&lt;p&gt;Example 4:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;function &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;_myplugin_node_options&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$account&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$node&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$options &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= array();&lt;br /&gt;&amp;nbsp; foreach (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$node&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;taxonomy &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;as &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$my_id &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$term&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// Taxonomy term&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$options&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;my_id&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;][] = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;name&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;t&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;To posts in %myplugin&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, array(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;%myplugin&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$term&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;)),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;params&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; array(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;value&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$my_id&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;link&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;myplugin/&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$my_id&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$options&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;my_id&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;weight&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;] = -&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; return &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$options&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;h2&gt;SUBSCRIPTIONS FRAMEWORK&lt;/h2&gt;
&lt;p&gt;Once You know how to construct an UI for our add-on, it is time to deal with queue, subscription types and fields for mailvars.&lt;/p&gt;
&lt;h3&gt;hook_subscriptions()&lt;/h3&gt;
&lt;p&gt;It is on charge of rooting sub-hooks determined by param $op, those are:&lt;br /&gt;
- _subhook_types please refer to _hook_types(above)&lt;br /&gt;
- _subhook_node_options please refer to _hook_types(above)&lt;br /&gt;
- _subhook_queue&lt;br /&gt;
- _subhook_fields&lt;br /&gt;
- _subhook_stypes&lt;br /&gt;
- _subhook_stype&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notice:&lt;/b&gt; _subhook_types and _subhook_node_options are defined in single functions, but _subhook_queue, _subhook_stypes, _subhook_stype, _subhook_fields were defined internally and managed using switch:&lt;/p&gt;
&lt;p&gt;Example 5:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;function &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;myplugin_subscriptions&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$op&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg0 &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;NULL&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg1 &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;NULL&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg2 &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;NULL&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// $stypes Is used later in subhooks: stype and stypes&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;static &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$stypes &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= array(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;mykey&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; array(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;node&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;mytype&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;));&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Example 6:&lt;br /&gt;
Sub-hook handler, you should copy it as is.&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp; $function &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;_myplugin_&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;. &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$op&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// &amp;lt;!-- WARNING! COPY AS IS&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;if (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;function_exists&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$function&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$function&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg0&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg1&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg2&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// END --&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;Example 7:&lt;br /&gt;
BEGIN OF SWITCH&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;switch (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$op&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;h3&gt;_subhook_queue()&lt;/h3&gt;
&lt;p&gt;Occurs when a notification event is going to be added.&lt;br /&gt;
&lt;b&gt;$arg0&lt;/b&gt; must be an array in the following form.&lt;br /&gt;
Example 8:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;array(&lt;br /&gt;&amp;nbsp; &amp;#039;module&amp;#039; =&amp;gt; &amp;#039;node&amp;#039;,&lt;br /&gt;&amp;nbsp; &amp;#039;node&amp;#039; =&amp;gt; (A node object),&lt;br /&gt;&amp;nbsp; &amp;#039;type&amp;#039; =&amp;gt; &amp;#039;node&amp;#039;,&lt;br /&gt;&amp;nbsp; &amp;#039;action&amp;#039; =&amp;gt; &amp;#039;update&amp;#039;, // Used in conjunction of &amp;#039;type&amp;#039; to filter by send_updates&lt;br /&gt;);&lt;br /&gt;You can replace &amp;#039;node&amp;#039; by &amp;#039;comment&amp;#039; according to your needs.&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;b&gt;$arg1&lt;/b&gt; not used.&lt;br /&gt;
&lt;b&gt;$arg2&lt;/b&gt; not used.&lt;/p&gt;
&lt;p&gt;Example 9:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;case &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;queue&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// $arg0 is $event array.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;if (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg0&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;module&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;] == &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;node&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$node &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg0&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;node&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;];&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$params&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;node&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;mytype&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;] = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;join&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;INNER JOIN {mytable} a ON s.value = a.mytype&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;where&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;a.nid = %d&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;args&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; array(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$node&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;nid&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg0&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;type&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;] == &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;comment&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$where &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039; AND s.send_comments = 1&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg0&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;type&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;] == &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;node&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;&amp;amp;&amp;amp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg0&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;action&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;] == &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;update&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$where&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039; AND s.send_updates = 1&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (isset(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$where&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;)) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$params&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;node&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;mytype&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;where&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;] .= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$where&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$params&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;h3&gt;_subhook_fields()&lt;/h3&gt;
&lt;p&gt;Occurs when notification emails are generated.&lt;br /&gt;
&lt;b&gt;$arg0&lt;/b&gt; must be &#039;node&#039; or &#039;comment&#039;.&lt;br /&gt;
&lt;b&gt;$arg1&lt;/b&gt; not used.&lt;br /&gt;
&lt;b&gt;$arg2&lt;/b&gt; not used.&lt;/p&gt;
&lt;p&gt;Example 10:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;case &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;fields&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #FF8000&quot;&gt;// Parameter is module&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;if (&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg0 &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;== &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;node&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;|| &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg0 &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;== &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;comment&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$t &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;get_t&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;group_nid&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;mailvars_function&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;_subscriptions_content_node_mailvars&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;!type&#039; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;=&amp;gt; &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$t&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;category&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ),&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;h3&gt;_subhook_stypes()&lt;/h3&gt;
&lt;p&gt;Alternative call to retrieve all subscription types a plugin may have.&lt;br /&gt;
Example 11:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;case &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;stypes&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$stypes&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;h3&gt;_subhook_stype()&lt;/h3&gt;
&lt;p&gt;Occurs when a subscription is added. Retrieves an specific subscription type.&lt;br /&gt;
&lt;b&gt;$arg0&lt;/b&gt; must be an array key of $stypes.&lt;br /&gt;
&lt;b&gt;$arg1&lt;/b&gt; must be merged with selected subscription type.&lt;br /&gt;
&lt;b&gt;$arg2&lt;/b&gt; must be merged with selected subscription type.&lt;/p&gt;
&lt;p&gt;Example 12:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;case &lt;/span&gt;&lt;span style=&quot;color: #DD0000&quot;&gt;&#039;stype&#039;&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return (isset(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$stypes&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg0&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;]) ? &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;array_merge&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;( &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$stypes&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg0&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;], array(&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg1&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;$arg2&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;)) : &lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;NULL&lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;END OF SWITCH AND FUNCTION&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;&lt;span style=&quot;color: #000000&quot;&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;&amp;lt;?php&lt;br /&gt;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #007700&quot;&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #0000BB&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;
&lt;p&gt;&lt;hr /&gt;&lt;/p&gt;
&lt;p&gt;Blessings!&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/mail&quot;&gt;Mail&lt;/a&gt;&lt;/div&gt;</description>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <group domain="http://groups.drupal.org/contributed-module-ideas">Contributed Module Ideas</group>
 <group domain="http://groups.drupal.org/mail">Mail</group>
 <pubDate>Sat, 15 Mar 2008 07:15:00 +0000</pubDate>
 <dc:creator>develCuy</dc:creator>
 <guid isPermaLink="false">9818 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Developing AHAH Submit Functionality</title>
 <link>http://groups.drupal.org/node/9720</link>
 <description>&lt;p&gt;This post is intended to pull together my thinking and some of the discussions that took place in Boston around how to get a solid framework in place for real next-generation javascript into core for Drupal 7. My specific interest is in taking the promise of Nedjo Rodgers ajaxsubmit.module (part of the &lt;a href=&quot;http://drupal.org/project/jstools&quot;&gt;jstools&lt;/a&gt; project) and overhaul it to work in harmony with the amazing new AHAH features in Drupal 6.&lt;/p&gt;
&lt;p&gt;My objective is to release a solid contrib module for Druapl 6.0 which provides a good framework for developers interested in this functionality, and implements some useful default behavior that will give it some purpose and life &quot;out of the box.&quot; Assuming I can make decent progress on this in the next six weeks, this is a good way to figure out what&#039;s needed, and define functionality and code which can be engineered into Drupal core for the 7.0 release.&lt;/p&gt;
&lt;p&gt;The full post here contains my initial spec, thinking on how to accomplish all this, and first experiments with extending the existing ajaxsubmit module.&lt;/p&gt;
&lt;h3&gt;Overall Objective&lt;/h3&gt;
&lt;p&gt;The overall objective here is to create a module called ahahsubmit, which makes it nearly as easy to add AHAH/AJAX form submissions to your drupal site (or module) as the core AHAH drag&#039;n&#039;drop and #ahah FormAPI enhancements have implemented in core. Additionally, I would like to propose extensions to those existing features which make them more &quot;hookable&quot; for developers.&lt;/p&gt;
&lt;p&gt;The basic theory is that forms which ahahsubmit will recieve a JSON array back with a few common elements, such as status, update data, etc, following the model of the core ahah functionality. They will ideally submit using the same form action, with the different return value prompted by there being a #ahahsubmit element in the $form (maybe do this w/request headers?).&lt;/p&gt;
&lt;p&gt;Here&#039;s the core functionality I want to develop:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Allow developers to add a #ahahsubmit to any $form array, and have useful default functionality kick in.&lt;/li&gt;
&lt;li&gt;Useful default options: hide the form on successful submission, update a specific div with returned data (follow ahah framework model)&lt;/li&gt;
&lt;li&gt;An AHAHsubmit API:
&lt;ul&gt;
&lt;li&gt;Allow developers to specify an additional drupal callback to add/alter data in the JSON array before it is returned to the browser&lt;/li&gt;
&lt;li&gt;Allow developers to additionally specify alternate/custom javascript handlers for returned JSON array&lt;/li&gt;
&lt;li&gt;All useful default functions implemented via API, providing examples for community to generate additional contributed behaviors&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are also some really interesting potentials along the same lines with regard to client-side form validation. For instance, I feel it&#039;s a no-brainer to actually check that all required fields have values before a form submit is attempted. There could also be an FormAPI/javascript architecture which allowed other field-types to specify more advanced validation (e.g. email address verification). This is cool stuff, but I&#039;m feeling more like it&#039;s out of scope for what I want to attempt in the near term.&lt;/p&gt;
&lt;h3&gt;Initial Progress&lt;/h3&gt;
&lt;p&gt;Currently I have a hacked-up version of the old ajaxsubmit module which implements some of the functionality I want, but not very cleanly. What I am doing is the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using a $_SESSION variable to store the $form array for use by the JSON-returning ajaxsubmit_dispatch() function. That shouldn&#039;t really be necessary.&lt;/li&gt;
&lt;li&gt;Looking in $form[&#039;#ajaxsubmit_callback&#039;] for a javascript function name and if present adding that as the value to &quot;callback&quot; in the returned JSON array.&lt;/li&gt;
&lt;li&gt;In ajaxsubmit.js, the Drupal.ajaxsubmit.prototype.oncomplete() function has been altered to look for this &quot;callback&quot; value, and if present invoke that function, passing the whole JSON array as well as the JS &lt;em&gt;this&lt;/em&gt; object to whatever function was specified.&lt;/li&gt;
&lt;li&gt;In my example implementation, I have a JS function which accepts two vars, &lt;em&gt;data&lt;/em&gt; and &lt;em&gt;that&lt;/em&gt;, and which performs some custom action with the results of a form submit. I have successfully used these methods to give different form-submits different behaviors.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Obviously there&#039;s a lot of room for improvement. The use of a $_SESSION variable should really not be necessary, and I also think my current means of routing to the custom JS function to handle the returned JSON data is kludgy. I&#039;m literally saying:&lt;/p&gt;
&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;Drupal.ajaxsubmit.prototype.oncomplete = function (data) {&lt;br /&gt;&amp;nbsp; if (data[&amp;#039;callback&amp;#039;]) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; eval(data[&amp;#039;callback&amp;#039;] + &amp;#039;(data, this)&amp;#039;);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; else {&lt;br /&gt;&amp;nbsp; // useful default behavior&lt;br /&gt;&amp;nbsp; ...&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/code&gt;&lt;/div&gt;
&lt;h3&gt;Next Steps&lt;/h3&gt;
&lt;p&gt;I&#039;m going to continue working on this to build out the Drupal callback part, which should be as simple as looking for another specified element in the $form array, and letting it alter the array which will be returned as JSON. I would also like to improve my handling of callbacks on the JS side, but I&#039;m still learning there and since I have something that works (if inelegantly) I&#039;m inclined to not focus on that initially.&lt;/p&gt;
&lt;p&gt;I will then begin working this towards 6.0 so that I can take advantage of the improvements to FormAPI and more closely follow the core AHAH examples. This should let me remove the use of a $_SESSION variable.&lt;/p&gt;
&lt;p&gt;Finally, I will need to build out some useful default behaviors, following again on the core AHAH examples and adding the &quot;hide submitting form&quot; option.&lt;/p&gt;
&lt;p&gt;Any suggestions or contributions are most welcome. I will also start a d.o project for this in the next week or so just in case I&#039;m super-lucky any anyone wants to submit some code. :)&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/javascript&quot;&gt;Javascript&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9720#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/2678">ahah</category>
 <category domain="http://groups.drupal.org/taxonomy/term/234">ajax</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4419">jstools</category>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <group domain="http://groups.drupal.org/javascript">Javascript</group>
 <pubDate>Wed, 12 Mar 2008 20:15:22 +0000</pubDate>
 <dc:creator>joshk</dc:creator>
 <guid isPermaLink="false">9720 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Drupal Dojo + drupal.org/videocasts = video.drupal.org?</title>
 <link>http://groups.drupal.org/node/9643</link>
 <description>&lt;p&gt;During the &lt;a href=&quot;http://drupaldojo.com&quot;&gt;Drupal Dojo&lt;/a&gt; Birds-of-a-Feather meeting at DrupalCon Boston we discussed two seperate items that I believe are interconnected: figuring out how to get more video lessons into the Dojo and doing a better job of attracting more potential teachers and students to the site. To address the first of these issues, I committed myself to doing outreach to individuals and companies who are creating video-based instructional materials to try and get them to submit their work to the Dojo. After that session I started to look around the &lt;a href=&quot;http://www.nytimes.com/2006/07/17/business/media/17stevens.html&quot;&gt;series of tubes known as the &quot;internet&quot;&lt;/a&gt; and I found quite a few videos. But, what I also noticed was that a good percentage of those videos already are being shared with the Drupal community, but through drupal.org/videocasts rather than the Dojo, which oddly doesn&#039;t seem to appear on the videocast pages at all. This brought to mind something that I&#039;ve heard Josh and others talk about, the idea that we should consider moving the dojo to something more aligned with Drupal.org itself, and I have to say that the more I think about it, the more sense it makes to me.&lt;/p&gt;
&lt;p&gt;So, my question is this: does it make sense to consolidate our collective efforts in one location that is better connected with d.o. itself? Something like video.drupal.org, or possibly as a subsection of a &lt;a&gt;tutorials section of the site&lt;/a&gt; (which is where the videocasts now sit), which could be called something like tutorials.drupal.org.&lt;/p&gt;
&lt;p&gt;Another project I&#039;m involved with, &lt;a href=&quot;http://groups.drupal.org/drupal-newsletter&quot;&gt;the Drupal Newsletter&lt;/a&gt;, has just announced that it is &lt;a href=&quot;http://groups.drupal.org/node/9451&quot;&gt;going to become news.drupal.org&lt;/a&gt;, and some have suggested merging the planet in with it, so there are already similar discussions and plans going on within the d.o. community of such moves.&lt;/p&gt;
&lt;p&gt;But what do you think? What are the potential problems that we could face if we moved the site to something more aligned with Drupal itself and the Drupal brand?&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/video&quot;&gt;Video&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9643#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1414">drupal dojo</category>
 <category domain="http://groups.drupal.org/taxonomy/term/515">outreach</category>
 <category domain="http://groups.drupal.org/taxonomy/term/288">video</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1301">videocast</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1344">Developer help</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1600">drupaldojo.com</category>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <group domain="http://groups.drupal.org/drupal-org-redesign-analysis">Drupal.org redesign plan for the Drupal Association</group>
 <group domain="http://groups.drupal.org/video">Video</group>
 <pubDate>Tue, 11 Mar 2008 14:56:09 +0000</pubDate>
 <dc:creator>Alex UA</dc:creator>
 <guid isPermaLink="false">9643 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Table content type</title>
 <link>http://groups.drupal.org/node/9543</link>
 <description>&lt;p&gt;Hy&lt;br /&gt;
I&#039;m new in drupal and I start with drupal 6 to study. I want to make a content type for tables where I can add, remove, or modify fields in a table Can anybody help me with this problem. Any help will be good. Thank&#039;s&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9543#comments</comments>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Sat, 08 Mar 2008 15:35:03 +0000</pubDate>
 <dc:creator>mihksoft</dc:creator>
 <guid isPermaLink="false">9543 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Simpletest Lesson</title>
 <link>http://groups.drupal.org/node/9528</link>
 <description>&lt;p&gt;So, what is this simpletest that everyone&#039;s talking about? On March 23rd, cwgordon7 will present the simpletest automated testing framework for Drupal&amp;mdash; both how to use it to test Drupal and how to write simpletests for contributed and core modules. It&#039;s going to be awesome! Be there!&lt;/p&gt;
&lt;p&gt;18:00 GMT, 2pm EDT, 19:00 CET&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9528#comments</comments>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Fri, 07 Mar 2008 23:12:24 +0000</pubDate>
 <dc:creator>cwgordon7@drupal.org</dc:creator>
 <guid isPermaLink="false">9528 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Drupal Asia Pacific Conference 2008</title>
 <link>http://groups.drupal.org/node/9488</link>
 <description>&lt;h3&gt;*UPDATE* - This event&#039;s details have changed and has been postponed a new date. Please visit &lt;a href=&quot;http://drupalapc.org&quot; title=&quot;http://drupalapc.org&quot;&gt;http://drupalapc.org&lt;/a&gt; for more details &lt;/h3&gt;
&lt;p&gt;&lt;img src=&quot;http://203.19.79.55/scec/library/images/7a6f7b145d145544c26a339fda271a2a.jpg?&amp;amp;popupImage&amp;amp;qlt=80&amp;amp;cvt=jpeg&quot; alt=&quot;Sydney Convention and Exhibition Center Darling Harbor&quot; width=&quot;320&quot; align=&quot;bottom&quot;&gt;&lt;br /&gt;&lt;strike&gt;I am pleased to announce that the next large gathering of Drupalers will be held in Sydney, Australia from May 18th - 22nd 2008 at the &lt;a href=&quot;http://www.scec.com.au&quot;&gt;Sydney Convention and Exhibition Center Darling Harbor&lt;/a&gt; in conjunction with the &lt;a href=&quot;http://www.opencebit.com.au&quot;&gt;Open CeBIT&lt;/a&gt; expo and conference.  &lt;b&gt;We&#039;re inviting people from all over the region - and that means you!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;http://drupalapc.org&quot;&gt;Drupal Asia Pacific Conference&lt;/a&gt; is a major event to gather Drupalers to learn, discuss and advance Drupal. It is also a great opportunity to network with other community members that operate in the Asia Pacific region and who may not be able to attend community events on the other side of the world.&lt;/p&gt;
&lt;p&gt;The conference will feature dual tracks over 3 days and a single theatre over a day and half that will also be open to the broader Open CeBIT audience.  We are partnering with the &lt;a href=&quot;http://joomla.com&quot;&gt;Joomla&lt;/a&gt; community to host a website building contest which will be prominently highlighted at the OpenCeBIT Conference. All attendees will be provided free entry to the CeBIT expo (20th - 22nd) and offered discounted tickets to the Open CeBIT conference. We will also be hosting a booth as part of the &lt;a href=&quot;http://www.cebit.com.au/&quot;&gt;CeBIT Exhibition&lt;/a&gt; to educate and promote Drupal to businesses, government, and individual attendees of the exhibition. &lt;/strike&gt;&lt;strike&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;http://203.19.79.55/scec/library/images/3e5b6d177c74eb2e5f4e7a48a4dbb07b.jpg?&amp;amp;popupImage&amp;amp;qlt=80&amp;amp;cvt=jpeg&quot; alt=&quot;Sydney Convention and Exhibition Center Darling Harbor Conference Room&quot; width=&quot;320&quot; align=&quot;right&quot;&gt;The organising team is working hard to finalize conference details before opening registration and the session proposal system. We are also finalizing sponsorship benefits packages. Watch &lt;a href=&quot;http://drupalapc.org&quot;&gt;http://drupalapc.org&lt;/a&gt; (or the &lt;a href=&quot;http://drupalapc.org/newsletter/subscriptions&quot;&gt;mailing list&lt;/a&gt;) and the Drupal.org home page (&lt;a href=&quot;http://drupal.org/node/feed&quot;&gt;rss feed&lt;/a&gt;) for future announcements. You can also join us on &lt;a href=&quot;http://groups.drupal.org/2008-drupal-asia-pacific-conference&quot;&gt;Groups.Drupal&lt;/a&gt;. In the mean time, start making your travel arrangements and gathering your session proposal information. If you are interested in forming part of the Drupal team for the website contest, please contact us.&lt;br /&gt;
&lt;/strike&gt;&lt;br /&gt;
Please visit &lt;a href=&quot;http://drupalapc.org&quot;&gt;http://drupalapc.org&lt;/a&gt; for more details or &lt;a href=&quot;http://drupalapc.org/contact&quot;&gt;Contact Us&lt;/a&gt;!&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/turkey&quot;&gt;Turkey&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9488#comments</comments>
 <group domain="http://groups.drupal.org/2008-drupal-asia-pacific-conference">2008 Drupal Asia Pacific Conference</group>
 <group domain="http://groups.drupal.org/ahmedabad">Ahmedabad</group>
 <group domain="http://groups.drupal.org/asian">Asia</group>
 <group domain="http://groups.drupal.org/australia">Australia</group>
 <group domain="http://groups.drupal.org/bali-indonesia">Bali - Indonesia</group>
 <group domain="http://groups.drupal.org/bangalore">Bangalore</group>
 <group domain="http://groups.drupal.org/brunei">Brunei</group>
 <group domain="http://groups.drupal.org/chennai-drupal-community">Chennai Drupal Community</group>
 <group domain="http://groups.drupal.org/drupal-developer-groups-malaysia">Drupal Developer Groups Malaysia </group>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <group domain="http://groups.drupal.org/drupal-camp">Drupal Event Organization</group>
 <group domain="http://groups.drupal.org/hawaii">Hawaii</group>
 <group domain="http://groups.drupal.org/hongkong">Hong Kong</group>
 <group domain="http://groups.drupal.org/hyderabad">Hyderabad</group>
 <group domain="http://groups.drupal.org/india">India</group>
 <group domain="http://groups.drupal.org/indonesia-tki">Indonesia_TKI</group>
 <group domain="http://groups.drupal.org/iran">Iran</group>
 <group domain="http://groups.drupal.org/israel">Israel</group>
 <group domain="http://groups.drupal.org/japan">Japan</group>
 <group domain="http://groups.drupal.org/korean-users">Korean Users</group>
 <group domain="http://groups.drupal.org/mumbai">Mumbai</group>
 <group domain="http://groups.drupal.org/nagpur">Nagpur</group>
 <group domain="http://groups.drupal.org/nepal">Nepal</group>
 <group domain="http://groups.drupal.org/new-zealand">New Zealand</group>
 <group domain="http://groups.drupal.org/philippines">Philippines</group>
 <group domain="http://groups.drupal.org/qatar">Qatar</group>
 <group domain="http://groups.drupal.org/russia">Russia</group>
 <group domain="http://groups.drupal.org/shanghai">Shanghai</group>
 <group domain="http://groups.drupal.org/singapore">Singapore</group>
 <group domain="http://groups.drupal.org/sydney">Sydney</group>
 <group domain="http://groups.drupal.org/thailand">Thailand</group>
 <group domain="http://groups.drupal.org/turkey">Turkey</group>
 <pubDate>Fri, 07 Mar 2008 11:30:43 +0000</pubDate>
 <dc:creator>rcross</dc:creator>
 <guid isPermaLink="false">9488 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Linux Week 2008 at Lima-Perú</title>
 <link>http://groups.drupal.org/node/9394</link>
 <description>&lt;p&gt;Buenas noticias!&lt;br /&gt;
&lt;b&gt;&amp;#147;&lt;/b&gt;&lt;i&gt;El Grupo Linux-IDES, grupo dedicado a la investigación y difusión de tecnologías basadas en software libre, reconocido por la Facultad de ciencias e Ingeniería (FACI) de la PUCP, viene organizando como parte de nuestras actividades el evento Linux Week 2008, evento que va en su tercera edición, donde se brindarán una serie de conferencias a lo largo de una semana sobre diversas áreas de aplicación del software libre.&lt;/i&gt;&lt;/p&gt;
&lt;p&gt;&lt;i&gt;El Linux Week se realizará del 10 al 14 de Marzo en la Sala de Grado del FACI(&lt;a href=&quot;http://tuxpuc.pucp.edu.pe/images/noticias/lw2008/lw-faci.gif&quot;&gt;ver mapa&lt;/a&gt;) en el horario de 18hs a 21hs. Los temas a exponer van desde desarrollo de software, redes y servicios, experiencias empresariales y educativas, seguridad con software libre, comunidades y en general temas que estén relacionados con la aplicación del software libre.&lt;/i&gt;&lt;b&gt;&amp;#148;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Específicamente, el día Martes 11 se expondrá el tema: &quot;Drupal, más que un CMS&quot; para dar mayor impulso al grupo de usuarios de Drupal en Péru, la invitación está abierta.&lt;/p&gt;
&lt;p&gt;Más información: &lt;a href=&quot;http://linux.pucp.edu.pe/lw2008&quot; title=&quot;http://linux.pucp.edu.pe/lw2008&quot;&gt;http://linux.pucp.edu.pe/lw2008&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;English translation:&lt;/b&gt;&lt;br /&gt;
The Group Linux-IDES (Research and Development on Linux) dedicated to research and spread Open Source based technologies, recognized by the Faculty of Science and Engineering(FACI) of PUCP(Pontificated Catholic University of Perú), is organizing this even in his third edition. They are going to bring a series of conferences across a week about many areas on application of Open Source.&lt;/p&gt;
&lt;p&gt;The Linux Week is going to be realized from 10 to 14 march in the FACI&#039;s Grades Hall (&lt;a href=&quot;http://tuxpuc.pucp.edu.pe/images/noticias/lw2008/lw-faci.gif&quot;&gt;view map&lt;/a&gt;). Schedule: 18hs to 21hs (GMT -5). Topics are: Software development, Networks and Services, Educational and Enterprise experiences, Security with Open Source, Communities and another related to Open Source.&lt;/p&gt;
&lt;p&gt;Drupal folks please put attention because in Tuesday 11(at 18:30 GMT -5) they are going to expose about: &quot;Drupal: more than a CMS&quot; to impulse the Peruvian Drupal users community, invitation is open.&lt;/p&gt;
&lt;p&gt;More info(in Spanish): &lt;a href=&quot;http://linux.pucp.edu.pe/lw2008&quot; title=&quot;http://linux.pucp.edu.pe/lw2008&quot;&gt;http://linux.pucp.edu.pe/lw2008&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/per%C3%BA&quot;&gt;Perú&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9394#comments</comments>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <group domain="http://groups.drupal.org/espa-ol">Español</group>
 <group domain="http://groups.drupal.org/per%C3%BA">Perú</group>
 <pubDate>Wed, 05 Mar 2008 06:28:25 +0000</pubDate>
 <dc:creator>develCuy</dc:creator>
 <guid isPermaLink="false">9394 at http://groups.drupal.org</guid>
</item>
<item>
 <title>DrupalCon</title>
 <link>http://groups.drupal.org/node/9336</link>
 <description>&lt;p&gt;Just a quick note from Boston. DrupalCon is in full swing, and I&#039;ve already seen a number of friendly faces. It&#039;s really nice to experience the community in real life.&lt;/p&gt;
&lt;p&gt;I&#039;ve penciled in a Dojo Birds of a Feather (BoF) session for thursday afternoon, and I am planning on attending the Friday hackathon and putting my screen on VNC, maybe making some screencasts. Also, we may get a chance to demonstrate some exciting new g.d.o functionality using the Dojo group at Moshe&#039;s presentation.&lt;/p&gt;
&lt;p&gt;Feel free to sound off on this thread about anything related to the conference.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9336#comments</comments>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Mon, 03 Mar 2008 14:21:09 +0000</pubDate>
 <dc:creator>joshk</dc:creator>
 <guid isPermaLink="false">9336 at http://groups.drupal.org</guid>
</item>
<item>
 <title>How to Upload Dojo Videos to blip.tv</title>
 <link>http://groups.drupal.org/node/9189</link>
 <description>&lt;p&gt;&lt;em&gt;Drupal Dojo will be switching to using blip.tv for hosting many of its screencasts.  Below are directions on how to upload videos to blip.tv and tag them properly.&lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Login using your Username and Password&lt;br /&gt;
    &lt;img src=&quot;/files/screenshot2.png&quot; width=&quot;217&quot; height=&quot;110&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Choose Upload from the Menu&lt;br /&gt;
    &lt;img src=&quot;/files/screenshot3.png&quot; width=&quot;309&quot; height=&quot;60&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Fill in the Appropriate Information about your video&lt;/li&gt;
&lt;li&gt;In the &lt;em&gt;description&lt;/em&gt; field, fill in a short description of the video. You should include a permalink to a Handbook Page, Drupal Dojo Lesson Post, or another place where more info on the topic can be found.&lt;/li&gt;
&lt;li&gt;The &lt;em&gt;Tags&lt;/em&gt; field should contain &lt;em&gt;drupal dojo&lt;/em&gt; as well as clear, concise terms for what your video is about, separated by spaces. (i.e. a screencast on CCK would be tagged &lt;em&gt;drupal dojo, CCK&lt;/em&gt;, or a screencast on CCK and Views integration would be tagged &lt;em&gt;drupal dojo, CCK, views&lt;/em&gt;)&lt;br /&gt;
    &lt;img src=&quot;/files/screenshot5.png&quot; width=&quot;758&quot; height=&quot;410&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Be sure to select the correct license (CC-BY-SA)!&lt;/strong&gt;&lt;br /&gt;
    &lt;img src=&quot;/files/screenshot1.png&quot; width=&quot;524&quot; height=&quot;168&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Click Upload.&lt;br /&gt;
    &lt;img src=&quot;/files/screenshot4.png&quot; width=&quot;407&quot; height=&quot;259&quot; /&gt;&lt;/li&gt;
&lt;li&gt;It takes about a day for the video to be transcoded into FLV. Until then, blip.tv will display the native version of the video.&lt;/li&gt;
&lt;li&gt;Post a link to your video and accompanying material to &lt;a href=&quot;http://groups.drupal.org&quot;&gt;groups.drupal.org&lt;/a&gt;. Admins can then post the video to drupaldojo.com&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <category domain="http://groups.drupal.org/taxonomy/term/4213">blip.tv video upload directions</category>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Tue, 26 Feb 2008 01:10:34 +0000</pubDate>
 <dc:creator>danielskeenan@drupal.org</dc:creator>
 <guid isPermaLink="false">9189 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Are you interested in learning or using Flex?</title>
 <link>http://groups.drupal.org/node/9180</link>
 <description>&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/theme-development&quot;&gt;Theme development&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9180#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/4209">adobe flex actionscript mxml</category>
 <group domain="http://groups.drupal.org/adobe-technologies">Adobe Technologies</group>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <group domain="http://groups.drupal.org/graphing-svg">Graphing &amp;amp; SVG</group>
 <group domain="http://groups.drupal.org/javascript">Javascript</group>
 <group domain="http://groups.drupal.org/flash-embedding">Object Embedding (Flash)</group>
 <group domain="http://groups.drupal.org/object-oriented-modelization-and-uml">Object Oriented Programmation</group>
 <group domain="http://groups.drupal.org/services">Services</group>
 <group domain="http://groups.drupal.org/theme-development">Theme development</group>
 <pubDate>Mon, 25 Feb 2008 19:41:33 +0000</pubDate>
 <dc:creator>ccharlton</dc:creator>
 <guid isPermaLink="false">9180 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Theming handbook for 6</title>
 <link>http://groups.drupal.org/node/9173</link>
 <description>&lt;p&gt;Hello, I&#039;m just posting here to let everyone know that the bulk of the new theming handbook is up. Most of it has been rewritten and reorganized. I hope it is accurate and clear enough to get everyone familiar with the theming system.&lt;/p&gt;
&lt;p&gt;&lt;del&gt;It&#039;s still missing sections on sub-theming &lt;em&gt;(which can get really fancy BTW)&lt;/em&gt;. I hope to get a few solid explanations and illustrations on the possibilities.&lt;/del&gt; Engineless themes and theme engine sections are not there yet but I don&#039;t think it&#039;s too critical.&lt;/p&gt;
&lt;p&gt;JavaScripting could use some help too. I hope someone can fill that in.&lt;/p&gt;
&lt;p&gt;It&#039;s late, but it&#039;s better now than piling up on the old material in the old theming handbook.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://drupal.org/node/171179&quot; title=&quot;http://drupal.org/node/171179&quot;&gt;http://drupal.org/node/171179&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;-joon&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/theme-development&quot;&gt;Theme development&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9173#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/111">theme</category>
 <category domain="http://groups.drupal.org/taxonomy/term/641">theme concepts</category>
 <category domain="http://groups.drupal.org/taxonomy/term/527">theming</category>
 <category domain="http://groups.drupal.org/taxonomy/term/3914">theming book</category>
 <group domain="http://groups.drupal.org/designers-and-information-architects">Designers and Information Architects</group>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <group domain="http://groups.drupal.org/theme-development">Theme development</group>
 <pubDate>Mon, 25 Feb 2008 18:10:40 +0000</pubDate>
 <dc:creator>dvessel</dc:creator>
 <guid isPermaLink="false">9173 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Lesson #42: Theme your Forms - Fine tuning the User Interface</title>
 <link>http://groups.drupal.org/node/9148</link>
 <description>&lt;p&gt;This Sunday, DmitriG will build on the &lt;a href=&quot;http://drupaldojo.com/lesson/theme-template-files-for-drupal-6&quot;&gt;previous lesson about theming and template files in Drupal 6.0&lt;/a&gt; by examining the specific topic of forms. Taking control of the user-interface is key in building world-class websites and web-applications with Drupal, and the 6.0 release give you more power than ever in controlling your UI.&lt;/p&gt;
&lt;p&gt;Join DmitriG at 11:AM PST, and we&#039;ll explore best practices and strategies for applying theming to our forms.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/9148#comments</comments>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Sun, 24 Feb 2008 19:06:47 +0000</pubDate>
 <dc:creator>Senpai</dc:creator>
 <guid isPermaLink="false">9148 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Tips for Making Screencast Videos.</title>
 <link>http://groups.drupal.org/node/8945</link>
 <description>&lt;p&gt;To get started you&#039;ll need software to capture the output of your screen over time to a video file.&lt;/p&gt;
&lt;p&gt;Some popular options are:&lt;/p&gt;
&lt;p&gt;Mac OSX&lt;br /&gt;
&lt;a href=&quot;http://www.shinywhitebox.com/home/home.html &quot;&gt;iShowU&lt;/a&gt;  20.00 USD  &lt;a href=&quot;http://www.shinywhitebox.com/home/docs/docs.html&quot;&gt;Documentation&lt;/a&gt; | &lt;a href=&quot;http://www.shinywhitebox.com/home/tips/tips.html&quot;&gt;Screencasts on how to make screencasts with iShowU&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.ambrosiasw.com/utilities/snapzprox/&quot;&gt;Snapz Pro X&lt;/a&gt;    69.00 USD  &lt;a href=&quot;http://www.ambrosiasw.com/support/faqs/faq.php?forum=75&amp;amp;title=Snapz%20Pro%20X&amp;amp;version=2.1.2&amp;amp;link=utilities/snapzprox/&quot;&gt; FAQs &lt;/a&gt; | &lt;a href=&quot;http://www.digital-web.com/articles/mac_screencast_capturing/&quot;&gt;Screencast tutorial using Snapz X Pro&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;https://www.varasoftware.com/products/screenflow/&quot;&gt;ScreenFlow&lt;/a&gt; 99.00 USD | Allows video and screen capture simultaneously&lt;br /&gt;
&lt;a href=&quot;http://www.jingproject.com&quot;&gt;Jing&lt;/a&gt;(From the makers of Camtasia) FREE (for the moment)&lt;/p&gt;
&lt;p&gt;Windows&lt;br /&gt;
&lt;a href=&quot;http://www.techsmith.com/camtasia.asp&quot;&gt;Camtasia&lt;/a&gt;  299.00 USD | &lt;a href=&quot;http://video.techsmith.com/camtasia/5/edu/quickstart/enu/gettingstarted/gettingstarted.html&quot;&gt;Getting started with Camtasia&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.jingproject.com&quot;&gt;Jing&lt;/a&gt;(From the makers of Camtasia) FREE (for the moment)&lt;/p&gt;
&lt;p&gt;Linux&lt;br /&gt;
&lt;a href=&quot;http://xvidcap.sourceforge.net/&quot;&gt;Xvidcap &lt;/a&gt;&lt;/p&gt;
&lt;p&gt;More options at the Wikipedia page: &lt;a href=&quot;http://en.wikipedia.org/wiki/List_of_screencasting_software&quot; title=&quot;http://en.wikipedia.org/wiki/List_of_screencasting_software&quot;&gt;http://en.wikipedia.org/wiki/List_of_screencasting_software&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Personally, I have used iShowU, Snapz Pro X and Camtasia and can say they all work well.  Other options turned up by a quick Google search include Camstudio &lt;a href=&quot;http://camstudio.org/&quot; title=&quot;http://camstudio.org/&quot;&gt;http://camstudio.org/&lt;/a&gt; (free),  and Capitvate from Adobe (expensive &amp;gt; $600 USD).&lt;/p&gt;
&lt;p&gt;You&#039;ll also need a microphone. If you do not have one, you might consider an inexpensive Plantronics USB headset &lt;a href=&quot;http://www.amazon.com/Plantronics-Audio-Headset-Inline-Mute/dp/B000VEMNQO/ref=sr_1_1?ie=UTF8&amp;amp;s=electronics&amp;amp;qid=1203218333&amp;amp;sr=8-1&amp;#039;&quot;&gt;like this one&lt;/a&gt;.  Good audio really helps make a good production. Here are some tips to making your audio sound good: &lt;a href=&quot;http://geoffhankerson.com/10-tips-for-better-sounding-podcasts.html&quot; title=&quot;http://geoffhankerson.com/10-tips-for-better-sounding-podcasts.html&quot;&gt;http://geoffhankerson.com/10-tips-for-better-sounding-podcasts.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Strategies and Workflow Styles&lt;br /&gt;
First,  its a good idea to make an outline of the steps you wish to present in your screencast. Type A personality folks may like to script the whole thing. Run through the&lt;br /&gt;
lesson without recording once or twice get comfortable teaching the lesson.&lt;/p&gt;
&lt;p&gt;There are  2 ways to approach making a screencast. The first is a completely &quot;live to tape&quot; workflow.  In this case the producer records the audio and video (including mouse clicks and typing) all at the same time.  If you are a new producer, you may find this like trying to pat your head and rub your belly at the same time. If this is the case for you, consider this alternative.&lt;/p&gt;
&lt;p&gt;The alternative is to record the video first, and record a voiceover later.  Simply record the steps you wish to present on your computer clicking your mouse and typing where need until you have shown all the steps you wish to present.  Then record the voiceover with your audio appication and use you video editor to stitch it all together.&lt;/p&gt;
&lt;p&gt;In this case you may wish to have a separate audio editing application.&lt;br /&gt;
Audacity  &lt;a href=&quot;http://audacity.sourceforge.net/&quot; title=&quot;http://audacity.sourceforge.net/&quot;&gt;http://audacity.sourceforge.net/&lt;/a&gt;  (Win, Mac, Linux)&lt;br /&gt;
GarageBand &lt;a href=&quot;http://www.apple.com/ilife/garageband/&quot; title=&quot;http://www.apple.com/ilife/garageband/&quot;&gt;http://www.apple.com/ilife/garageband/&lt;/a&gt; (Mac)&lt;br /&gt;
Amadeus Pro &lt;a href=&quot;http://www.hairersoft.com/AmadeusPro/AmadeusPro.html&quot; title=&quot;http://www.hairersoft.com/AmadeusPro/AmadeusPro.html&quot;&gt;http://www.hairersoft.com/AmadeusPro/AmadeusPro.html&lt;/a&gt;  (Mac)&lt;/p&gt;
&lt;p&gt;In this  cases you may also wish to have a separate video editing application.&lt;br /&gt;
iMovie  &lt;a href=&quot;http://www.apple.com/ilife/imovie/&quot; title=&quot;http://www.apple.com/ilife/imovie/&quot;&gt;http://www.apple.com/ilife/imovie/&lt;/a&gt; (Mac)&lt;br /&gt;
Adobe Premiere Elements &lt;a href=&quot;http://www.adobe.com/products/premiereel/&quot; title=&quot;http://www.adobe.com/products/premiereel/&quot;&gt;http://www.adobe.com/products/premiereel/&lt;/a&gt; (Mac, Win)&lt;br /&gt;
Quicktime Pro  &lt;a href=&quot;http://www.apple.com/quicktime/pro/&quot; title=&quot;http://www.apple.com/quicktime/pro/&quot;&gt;http://www.apple.com/quicktime/pro/&lt;/a&gt;  (Mac, Win)&lt;/p&gt;
&lt;p&gt;The Levelator is an application the really helps polish the audio portion of you presentation.  &lt;a href=&quot;http://www.conversationsnetwork.org/levelator/&quot; title=&quot;http://www.conversationsnetwork.org/levelator/&quot;&gt;http://www.conversationsnetwork.org/levelator/&lt;/a&gt;  free and easy to use.&lt;/p&gt;
&lt;p&gt;The Dojo has settled on 800 x 600 mpeg 4 video and Blip.tv as a hosting provider.&lt;/p&gt;
&lt;p&gt;Links to Creative Common images (640 x 480):&lt;br /&gt;
&lt;a href=&quot;http://drupal.org/files/cc.png&quot;&gt;Creative Commons slide (yellow, full-text)&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://drupal.org/files/By-sa_bw.png&quot;&gt;Creative Commons slide (black, symbols)&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://drupal.org/files/drupal-videocast-bumper.png&quot;&gt;Drupal Videocast bumper&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Other Links&lt;br /&gt;
Original DROP task: &lt;a href=&quot;http://drupal.org/node/201890&quot; title=&quot;http://drupal.org/node/201890&quot;&gt;http://drupal.org/node/201890&lt;/a&gt;&lt;br /&gt;
Jon Udell&#039;s tutorial on making a screencast: &lt;a href=&quot;http://digitalmedia.oreilly.com/pub/a/oreilly/digitalmedia/2005/11/16/what-is-screencasting.html&quot; title=&quot;http://digitalmedia.oreilly.com/pub/a/oreilly/digitalmedia/2005/11/16/what-is-screencasting.html&quot;&gt;http://digitalmedia.oreilly.com/pub/a/oreilly/digitalmedia/2005/11/16/wh...&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <category domain="http://groups.drupal.org/taxonomy/term/1282">screencasts</category>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Sun, 17 Feb 2008 03:29:47 +0000</pubDate>
 <dc:creator>ghankstef@drupal.org</dc:creator>
 <guid isPermaLink="false">8945 at http://groups.drupal.org</guid>
</item>
<item>
 <title>February 2008 - Dojo 2.0 Next Steps</title>
 <link>http://groups.drupal.org/node/8920</link>
 <description>&lt;p&gt;Woohoo, OK sorry for the delay on the February steps. We are moving along. As always, if you are want to get into any part of this but aren&#039;t quite sure what/where/how feel free to contact me directly through my &lt;a href=&quot;http://groups.drupal.org/user/1607/contact&quot;&gt;contact form&lt;/a&gt; or ping me on IRC (I&#039;m often in #drupal and #drupal-dojo, nick is add1sun.)&lt;/p&gt;
&lt;p&gt;So we have gotten the &lt;a href=&quot;http://groups.drupal.org/node/8916&quot;&gt;video guidelines&lt;/a&gt; and &lt;a href=&quot;http://groups.drupal.org/node/8919&quot;&gt;site spec&lt;/a&gt; hammered out a bit more. They are being finalized this week. Here are the next tasks up on deck:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;*Special task: if anyone has the time or inclination to review these as tasks that can be added to the &lt;a href=&quot;http://drop.cwgordon.com/&quot;&gt;DROP project&lt;/a&gt;, please hop in and do that!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Video stuff&lt;/strong&gt;&lt;br /&gt;
1) We need some graphic/animation/coolness mojo. The &lt;a href=&quot;http://groups.drupal.org/node/8916&quot;&gt;video guidelines&lt;/a&gt; will require that every video have a Dojo video &lt;a href=&quot;http://drupal.org/node/222278&quot;&gt;title bumper&lt;/a&gt; and some &lt;a href=&quot;http://drupal.org/node/222283&quot;&gt;default Dojo 15 second credit spots&lt;/a&gt;. I think we can have a few of each for people to choose from so it is time for our creatives to have some fun! Please check out the issues linked above and add your ideas to the mix. We need to get at least one of each done by Feb. 22 but will continue to evaluate submissions until at least the end of March.&lt;/p&gt;
&lt;p&gt;2) We will be using blip.tv for the videos (as discussed in the &lt;a href=&quot;http://drupal.org/node/203810&quot;&gt;issue&lt;/a&gt;.) We need &lt;strong&gt;documentation&lt;/strong&gt; written up about how to upload to blip.tv and we need someone to &lt;del&gt;take the lead on looking into&lt;/del&gt; port the &lt;a href=&quot;http://drupal.org/project/media_actions&quot;&gt;Media actions&lt;/a&gt; module as described &lt;a href=&quot;http://drupal.org/node/225138&quot;&gt;in the issue&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;3) Write up video recording &quot;tips and tricks&quot; based on the information already on the Dojo group site and in the &lt;a href=&quot;http://drupal.org/node/201890&quot;&gt;guidelines issue&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;4) Make some videos! It would be nice to have some pre-made videos stocked up that we can roll out on a weekly basis in the event that a live lesson does not happen. They can be short to medium length videos (e.g. 5 - 20 minutes.) We will be using the new video guidelines noted above.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Website stuff&lt;/strong&gt;&lt;br /&gt;
1) &lt;a href=&quot;http://drupal.org/node/222294&quot;&gt;Wireframes&lt;/a&gt;. We need to come up with wireframes to show how we want to organize the site. The 2 biggest ones off the top of my head are the home page and the lesson creation form. We need to think very carefully about workflow on the lesson (I&#039;ve got some mockups in my head that I will be putting into graphics soon.) Any help from IA-type folks would be great!&lt;/p&gt;
&lt;p&gt;The idea is to see what we need to make and then hand the wireframes off to design folks and let them make it all pretty. I&#039;d like to open a dd.com design contest at Drupalcon, so we need to hop on this! While the designers make us look sharp we can begin building the new site.&lt;/p&gt;
&lt;p&gt;Whew, OK, plenty to do, so please jump in wherever something is either a) something you know and feel comfortable with or b) you have no idea but would like to learn about it. :-)&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/8920#comments</comments>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Fri, 15 Feb 2008 21:12:13 +0000</pubDate>
 <dc:creator>add1sun</dc:creator>
 <guid isPermaLink="false">8920 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Dojo website spec</title>
 <link>http://groups.drupal.org/node/8919</link>
 <description>&lt;p&gt;Here is what we have for the DrupalDojo.com website spec, taken from the &lt;a href=&quot;http://drupal.org/node/201891&quot;&gt;issue queue&lt;/a&gt; which has been open for work on this for 2 months. Please expand/clarify/rework anything in the comments and they can be rolled in. On Friday, Feb. 22 comments will be turned off and the document will be considered final. We will begin &lt;a href=&quot;http://drupal.org/node/222294&quot;&gt;creating wireframes&lt;/a&gt; from these specs immediately so we can open it up to a little design contest, ideally at Drupalcon!&lt;/p&gt;
&lt;p&gt;Dojo 2.0 Website Spec (Draft)&lt;/p&gt;
&lt;p&gt;Contents:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Overview and Objectives&lt;/li&gt;
&lt;li&gt;Lesson Calendar&lt;/li&gt;
&lt;li&gt;Lesson CCK&lt;/li&gt;
&lt;li&gt;User Accounts and Membership&lt;/li&gt;
&lt;li&gt;Live Lesson Subdomain&lt;/li&gt;
&lt;li&gt;Bookmarks: Sortable, Searchable Repository of Useful Links and Resources&lt;/li&gt;
&lt;li&gt;Code Snippet / Pastebin&lt;/li&gt;
&lt;li&gt;Sponsor Page&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;i18n: Multi-language Support&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Overview and Objectives&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;To rebuild the drupaldojo.com website with additional features and functionality.&lt;/p&gt;
&lt;p&gt;Requirements: Latest version of Drupal 6.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Lesson Calendar&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A calendar for events allowing folks to see what is coming up and what common slots are available for teachers. A simple calendar page and block should be sufficient.&lt;/p&gt;
&lt;p&gt;Possible modules: Date, Calendar, Signup&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Lesson CCK: Teachers to Submit Lessons and Others to Propose Lesson Ideas&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A custom content type for lessons. This content type will act as an overall lesson node, which will need to allow for a full workflow from suggestion to teacher sign on to scheduling. There are numerous ways to approach this functionality and wireframes should address a specific implementation that will satisfy all the needs. This is probably the most complex part of the new website.&lt;/p&gt;
&lt;p&gt;Possible modules: CCK, CCK Field Permissions&lt;br /&gt;
Possible fields: category (wishlist or proposal), description of idea or lesson, difficulty level, available dates, scheduled date (admin-only?), teacher name, prerequisites&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;User Accounts and Membership&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Support user registration. At this time we will be looking for only minimal account features. We need to consider how accounts can be created. The old drupal module distributed authentication is now deprecated (and is insecure.) The Drupal infra is discussing and moving towards a single-signon solution for all *d.o domains and creating a Drupal OpenID provider server. This probably won&#039;t happen before our launch though so at this time, if we want to allow accounts it will just need to be open to public rather than &quot;checked&quot; against d.o accounts.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Live Lesson Subdomain&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Create a subdomain to support live lessons.&lt;/p&gt;
&lt;p&gt;Requirements: VNC Reflector&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Bookmarks/Library&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Tagging of site content as well as a way to mark off-site resources and create various listings. Basically an internal/external resources library. A way for someone looking for xyz info to get a list of all resources for it that have been tagged as such by the Dojo community. Beyond just simple mass keyword grouping we also want to specifically be able to limit/identify onsite vs offsite offerings (a Dojo lesson library as opposed to everything under the sun.)&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Code Snippet / Pastebin&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A pastebin to paste code during lessons.  See: &lt;a href=&quot;http://www.drupalbin.com&quot; title=&quot;http://www.drupalbin.com&quot;&gt;http://www.drupalbin.com&lt;/a&gt;  Code snippets will be taggable and can be attached to lessons.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Sponsor Page&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A page dedicated to listing organizations or companies who have sponsored some part of the Dojo or Dojo lessons.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;i18n: Multi-language Support&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Provide the Dojo site in multiple languages. This will require installing content localization modules to allow for translations. Translations will be purely volunteer and therefor probably sporadic. We need to ability to have them but not depend n them.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/8919#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/3311">dojo 2.0</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1600">drupaldojo.com</category>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Fri, 15 Feb 2008 21:00:27 +0000</pubDate>
 <dc:creator>add1sun</dc:creator>
 <guid isPermaLink="false">8919 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Dojo video production requirements</title>
 <link>http://groups.drupal.org/node/8916</link>
 <description>&lt;p&gt;Note that all videos on drupaldojo.com must comply with these guidelines (prospective from February 23, 2008.) We will accept all submitted videos, but submissions that do not comply may be modified by the Dojo to match these requirements if needed. Currently all videos must be uploaded to blip.tv and then will be added to the DrupalDojo.com site. (On the new dd.com site you will be able to upload a video directly through the site.)&lt;/p&gt;
&lt;p&gt;There is also a wiki page that has some &lt;a href=&quot;http://groups.drupal.org/node/8945&quot;&gt;tips and tricks&lt;/a&gt; for making videos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Video Requirements:&lt;/strong&gt;&lt;br /&gt;
- Codec used needs to be H.264&lt;br /&gt;
- Finished frame size: All screencasts must be done in either 640x480px, or 800x600px.*&lt;br /&gt;
- Frame rate: 10-15&lt;br /&gt;
- Audio sampling: mono, 22.05 - 44.10 kHz&lt;br /&gt;
- Use multi-pass encoding (to reduce file size while maintaining quality)&lt;br /&gt;
- Use a CC (Creative Commons) by-SA license bumper at the end of the video (taken from &lt;a href=&quot;http://wiki.creativecommons.org/images/8/8b/By-sa_bw.png&quot; title=&quot;http://wiki.creativecommons.org/images/8/8b/By-sa_bw.png&quot;&gt;http://wiki.creativecommons.org/images/8/8b/By-sa_bw.png&lt;/a&gt; and also available in the d.o handbook, &lt;a href=&quot;http://drupal.org/node/62196&quot; title=&quot;http://drupal.org/node/62196&quot;&gt;http://drupal.org/node/62196&lt;/a&gt;)&lt;br /&gt;
- If you use music (e.g. for intro/outro) make sure it can be released under CC. If in doubt, leave it out.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Our Editor&#039;s Timeframe Template:&lt;/strong&gt;&lt;br /&gt;
- Intro screen with video title on Dojo background (see list below)&lt;br /&gt;
- 15 seconds for creator/editor credits. If none, then add the pre-made Dojo credits. (see list below)&lt;br /&gt;
- The video&lt;br /&gt;
- 15 seconds again for creator/editor credits or Dojo credits.&lt;br /&gt;
- CC white text on black bumper (from list above.)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nice to have but not required:&lt;/strong&gt;&lt;br /&gt;
- Transcriptions&lt;/p&gt;
&lt;p&gt;*Note that if you&#039;re recording a live lesson, you must use 800x600px frame size during the lesson so that it fits the VNC display correctly.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dojo backgrounds for title screen:&lt;/strong&gt; (To submit your own, please see the &lt;a href=&quot;http://drupal.org/node/222278&quot;&gt;drupal.org issue&lt;/a&gt;.)&lt;br /&gt;
&lt;a href=&quot;http://drupaldojo.com/files/video_assets/dojo-title-bumper-blue.png&quot;&gt;Blue Dojo&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://drupaldojo.com/files/video_assets/dojo-title-bumper-grey.png&quot;&gt;Grey Dojo&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Dojo credits:&lt;/strong&gt; (To submit your own, please see the &lt;a href=&quot;http://drupal.org/node/222283&quot;&gt;drupal.org issue&lt;/a&gt;.)&lt;br /&gt;
&lt;em&gt;Intro&lt;/em&gt; (these are intended to be placed at the start credit location in the timeline.)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Outro&lt;/em&gt; (these are intended to be placed at the end credit location in the timeline.)&lt;br /&gt;
&lt;a href=&quot;http://drupaldojo.com/files/video_assets/Outro-DojoRedSun.mov&quot;&gt;Red Sun&lt;/a&gt; - by Steven Merrill (smerrill)&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Both start and end&lt;/em&gt; (these can be placed at either the start or end credit location in the timeline.)&lt;br /&gt;
&lt;a href=&quot;http://drupaldojo.com/files/video_assets/Both-DojoDiscoChalkboard.mov&quot;&gt;Disco Chalkboard&lt;/a&gt; - by Joshua Ellinger (westwesterson)&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/8916#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/1329">documentation</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1282">screencasts</category>
 <category domain="http://groups.drupal.org/taxonomy/term/3311">dojo 2.0</category>
 <category domain="http://groups.drupal.org/taxonomy/term/4122">requirements</category>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Fri, 15 Feb 2008 20:18:32 +0000</pubDate>
 <dc:creator>add1sun</dc:creator>
 <guid isPermaLink="false">8916 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Dojo Lesson #41: Theme Template Files in Drupal 6.0</title>
 <link>http://groups.drupal.org/node/8901</link>
 <description>&lt;p&gt;As part of my deal with dmitrig01 to get him to cover Drupal 6.0&#039;s actions and triggers support, I am going to do a lesson covering the advances in &lt;a href=&quot;http://drupal.org/node/165706&quot;&gt;Drupal 6.0&#039;s handling of theme templates&lt;/a&gt; (those tpl.php files we all know and love).&lt;/p&gt;
&lt;p&gt;In short, Drupal 6 brings a lot of the best practices that developed around template files in 5.0, and puts support for them into Drupal Core, as well as implementing a new standard in the core modules that contrib/custom developers can aspire to and emulate. The new omnipresence of template files radically simplifies the process of overriding the output of theme_functions, as well as making things more hospitable to designers.&lt;/p&gt;
&lt;p&gt;My objectives for this lesson are to create a good introductory screencast to this concept, and then talk about some advanced functions/use-cases.&lt;/p&gt;
&lt;h2&gt;Outline&lt;/h2&gt;
&lt;h3&gt;Part 1: Getting Started w/Drupal 6.0&#039;s Theme Layer&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Creating a Custom Theme&lt;/li&gt;
&lt;li&gt;Preprocess Functions&lt;/li&gt;
&lt;li&gt;Template Files&lt;/li&gt;
&lt;li&gt;Theme Registry&lt;/li&gt;
&lt;li&gt;Q&amp;amp;A&lt;/li&gt;
&lt;li&gt;Useful Links:
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://drupal.org/node/132442&quot;&gt;Update guide&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Part 2: Template File and Preprocess Overrides&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;forum-topic-list.tpl.php&lt;/li&gt;
&lt;li&gt;user-picture.tpl.php&lt;/li&gt;
&lt;li&gt;user-profile.tpl.php&lt;/li&gt;
&lt;li&gt;Q&amp;amp;A&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Part 3: Advanced: Templates for Forms&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Josh will try and figure this out on the fly&lt;/li&gt;
&lt;li&gt;Maybe the group will help?&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/8901#comments</comments>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Thu, 14 Feb 2008 23:13:12 +0000</pubDate>
 <dc:creator>joshk</dc:creator>
 <guid isPermaLink="false">8901 at http://groups.drupal.org</guid>
</item>
<item>
 <title>create organic groups programmatically for a school site</title>
 <link>http://groups.drupal.org/node/8824</link>
 <description>&lt;p&gt;Hi Dojo experts:&lt;/p&gt;
&lt;p&gt;Relatively new to drupal ( about 2 months plus ) but rapidly coming upto speed with all aspects.&lt;/p&gt;
&lt;p&gt;I am attempting to create a site with organic groups that could be created by some or all users  -&lt;/p&gt;
&lt;p&gt;The site is targeted towards a middle school/high school audience and only certain users ( e.g. teachers ) should be able to create those groups ( these are really class groups ).&lt;/p&gt;
&lt;p&gt;Users should be able to go to a custom form ( or UI ) to create an organic group and fill out specific attributes. This would require more than the ones allowed in the base og module - e.g. class type ( sociology, maths, english etc), grade level: 7th,8th,9th etc and so on.&lt;/p&gt;
&lt;p&gt;I am sure this has come up before so I am hopeful that there are quick ways of doing this.&lt;br /&gt;
What are the best approaches for doing this. How would I go about it - Some that I am investigating are:&lt;br /&gt;
a. create a custom module that layers above the og node and calls og apis ( how would I do this - which apis ? )&lt;br /&gt;
b. create a form ( webform ) that invokes og node apis ( same question as a above - which apis and how ).&lt;/p&gt;
&lt;p&gt;I have read how-tos about invoking node apis programmatically but I am still confused about how to do this for og and if I need to custom create attributes in og, how to go about it.&lt;/p&gt;
&lt;p&gt;Any helps/ directions / pointers would be greatly appreciated. If I should cross-post this in other drupal groups, please let me know as well.&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/8824#comments</comments>
 <category domain="http://groups.drupal.org/taxonomy/term/4083">social network og  node og module</category>
 <category domain="http://groups.drupal.org/taxonomy/term/1330">NodeAPI</category>
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Tue, 12 Feb 2008 10:01:15 +0000</pubDate>
 <dc:creator>rkalvi@drupal.org</dc:creator>
 <guid isPermaLink="false">8824 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Lesson #40: Actions and Triggers - Drupal 6 automation power</title>
 <link>http://groups.drupal.org/node/8773</link>
 <description>&lt;p&gt;&lt;a href=&quot;http://drupaldojo.com/node/252&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://groups.drupal.org/files/dojo_trigger.jpg&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;br /&gt;
Dmitrig01, in his usual awesomeness, is going to do a lesson on the new D6 Actions feature along with the new core Trigger module.&lt;/p&gt;
&lt;p&gt;What &lt;em&gt;are&lt;/em&gt; they, and how do you use them? After covering the basics he&#039;ll even show us how to leverage the core system to write some of our own. This is one of the new, exciting features in Drupal 6 and all the cool kids will be using it soon, so check it out at the same Dojo channel, same Dojo time.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://drupaldojo.com/lesson/40&quot; title=&quot;http://drupaldojo.com/lesson/40&quot;&gt;http://drupaldojo.com/lesson/40&lt;/a&gt;&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&quot;&gt;&lt;a href=&quot;/drupal-dojo&quot;&gt;Drupal Dojo&lt;/a&gt;&lt;/div&gt;</description>
 <comments>http://groups.drupal.org/node/8773#comments</comments>
 <enclosure url="http://groups.drupal.org/files/dojo_trigger.jpg" length="51674" type="image/jpeg" />
 <group domain="http://groups.drupal.org/drupal-dojo">Drupal Dojo</group>
 <pubDate>Sat, 09 Feb 2008 22:16:41 +0000</pubDate>
 <dc:creator>add1sun</dc:creator>
 <guid isPermaLink="false">8773 at http://groups.drupal.org</guid>
</item>
<item>
 <title>Help with the drupaldojo.com site</title>
 <link>http://groups.drupal.org/node/8716</link>
 <description>&lt;p&gt;Hi guys,&lt;br /&gt;
I was wondering if you guys might be interested in some theming help for the new dojo site. I hope no one takes offense to me saying this, but it seems that there could be a more unified design.&lt;/p&gt;
&lt;p&gt;My name is Aaron, and I make my living on Drupal. I would like to give something back, and at the moment theming is what I do best. If you want to look at the kind of site design I do you can see my business website at &lt;a href=&quot;http://www.TranslationDesigns.com&quot; title=&quot;www.TranslationDesigns.com&quot;&gt;www.TranslationDesigns.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;PS. I wouldn&#039;t be able to start doing it until next week. (Right now I have taken on a little too much work for my own good.)&lt;/p&gt;
&lt;div class=&quot;og_rss_groups&