Making   Diamond   Sparkle  Forums & The Business Objects Community Site for Developers Tony Chang Angus Pratt
Who are we? <ul><li>Formally known as Seagate Software, Crystal Decisions. Now known as Business Objects, an SAP Company <...
What is Diamond? <ul><li>Community website for BusinessObjects.  1.5 - 2 years old. </li></ul><ul><li>Focus on the develop...
Diamond Community <ul><li>SDKs for Developers </li></ul><ul><li>Developer Evangelists </li></ul><ul><li>Communities </li><...
Why Drupal? <ul><li>Quick and Easy to get running </li></ul><ul><li>Flexibility allowed bypassing red tape </li></ul><ul><...
Diamond Forums History <ul><li>Improving look and functionality of forums </li></ul><ul><li>Improve quality and encourage ...
Forum functionality <ul><li>Node is central </li></ul><ul><li>Comments tied to node </li></ul>
Container (before)‏
Container (after)‏
Container marked (after)‏
Forum (before)‏
Forum (after)‏
Node (before)‏
Node (after)‏
Node marked (after)‏
Forum – Template
Container marked (after)‏
Template – Forum List <ul><li>http://drupal.org/node/199071 </li></ul><ul><li>http://drupal.org/node/154325 </li></ul>
Container marked (after)‏
Search table <ul><li><form action=&quot;/search/node&quot; method=&quot;post&quot; id=&quot;search-form&quot; class=&quot;...
Container marked (after)‏
Categories <ul><li>if (arg(1)== NULL){ </li></ul><ul><li>$topiclist .= &quot;<table class='forumcats'><tbody><tr class='ro...
Node marked (after)‏
Template – forum nodes <ul><li>http://drupal.org/node/46027 </li></ul>
Node marked (after)‏
User roles <ul><li><?php </li></ul><ul><li>$comment_author = user_load(array('uid' => $comment->uid)); //load the profile ...
User Picture <ul><li><div class='userpicture'> </li></ul><ul><li><?php </li></ul><ul><li>if ($node->picture) { </li></ul><...
Number of Posts <ul><li><?php </li></ul><ul><li>$comment_author = user_load(array('uid' => $comment->uid)); //load the pro...
Member since <ul><li>$comment_author = user_load(array('uid' => $comment->uid)); //load the profile of the user who posted...
Modules added  <ul><li>Subscriptions </li></ul><ul><li>Comment mover </li></ul><ul><li>Spam </li></ul><ul><li>Service link...
Upcoming SlideShare
Loading in …5
×

Forum Presentation

5,763 views

Published on

A presentation by Tony Chang and Angus Pratt to the Vancouver League of Drupaliers

Published in: Business, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
5,763
On SlideShare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
24
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Forum Presentation

  1. 1. Making Diamond Sparkle Forums & The Business Objects Community Site for Developers Tony Chang Angus Pratt
  2. 2. Who are we? <ul><li>Formally known as Seagate Software, Crystal Decisions. Now known as Business Objects, an SAP Company </li></ul><ul><li>Datawarehouse software – reporting, data cleansing, integrating, publishing </li></ul>
  3. 3. What is Diamond? <ul><li>Community website for BusinessObjects. 1.5 - 2 years old. </li></ul><ul><li>Focus on the developer community </li></ul><ul><li>Blogs, Video Tutorials, Samples, Books, Forums, API Documentation </li></ul><ul><li>30k Reg. Users, </li></ul><ul><li>1M page views/month </li></ul>
  4. 4. Diamond Community <ul><li>SDKs for Developers </li></ul><ul><li>Developer Evangelists </li></ul><ul><li>Communities </li></ul><ul><ul><li>White Papers </li></ul></ul><ul><ul><li>Articles </li></ul></ul><ul><ul><li>Blogs </li></ul></ul><ul><ul><li>Forums </li></ul></ul>
  5. 5. Why Drupal? <ul><li>Quick and Easy to get running </li></ul><ul><li>Flexibility allowed bypassing red tape </li></ul><ul><li>Small budget allocation </li></ul>
  6. 6. Diamond Forums History <ul><li>Improving look and functionality of forums </li></ul><ul><li>Improve quality and encourage participation (karma, subscriptions)‏ </li></ul><ul><li>SAP came along </li></ul><ul><li>SAP Developer Network </li></ul><ul><ul><li>Less jarring move </li></ul></ul><ul><ul><li>Moving in the near future </li></ul></ul>
  7. 7. Forum functionality <ul><li>Node is central </li></ul><ul><li>Comments tied to node </li></ul>
  8. 8. Container (before)‏
  9. 9. Container (after)‏
  10. 10. Container marked (after)‏
  11. 11. Forum (before)‏
  12. 12. Forum (after)‏
  13. 13. Node (before)‏
  14. 14. Node (after)‏
  15. 15. Node marked (after)‏
  16. 16. Forum – Template
  17. 17. Container marked (after)‏
  18. 18. Template – Forum List <ul><li>http://drupal.org/node/199071 </li></ul><ul><li>http://drupal.org/node/154325 </li></ul>
  19. 19. Container marked (after)‏
  20. 20. Search table <ul><li><form action=&quot;/search/node&quot; method=&quot;post&quot; id=&quot;search-form&quot; class=&quot;search-form&quot;> </li></ul><ul><li><div class=&quot;form-item&quot;> </li></ul><ul><li><input type=&quot;text&quot; class=&quot;input-text&quot; value=&quot;&quot; size=&quot;25&quot; name=&quot;keys&quot; /> </li></ul><ul><li><input type=&quot;submit&quot; value=&quot;Search&quot; name=&quot;op&quot; title=&quot;Search&quot; alt=&quot;Search&quot; /> </li></ul><ul><li><input type=&quot;hidden&quot; value=&quot;<?php print drupal_get_token('search_form'); ?>&quot; name=&quot;form_token&quot; /> </li></ul><ul><li><input type=&quot;hidden&quot; value=&quot;search_form&quot; id=&quot;edit-search-form&quot; name=&quot;form_id&quot; /> </li></ul><ul><li><input type=&quot;hidden&quot; name=&quot;type[forum]&quot; id=&quot;edit-type-your_content_type&quot; value=&quot;your_content_type&quot; /> </li></ul><ul><li></div> </li></ul><ul><li></form> </li></ul>
  21. 21. Container marked (after)‏
  22. 22. Categories <ul><li>if (arg(1)== NULL){ </li></ul><ul><li>$topiclist .= &quot;<table class='forumcats'><tbody><tr class='rowheader'><td class='columnheader'><div class='catheader'>Categories</div></td><td></td><td></td></tr>&quot;; </li></ul><ul><li>} </li></ul><ul><li>foreach ($forums as $key=>$forum) { // this is the start of the forum list routine that generates the containers and forum list. </li></ul><ul><li>if ($forum->container) { </li></ul><ul><li>$c++; </li></ul><ul><li>if (round((($c-1)%3))==0) { </li></ul><ul><li>$topiclist .= '<tr class=&quot;row'. (round($c/3)+1) .'&quot;><td class=&quot;column' . (round($c-1)%3+1) . '&quot;><div class=&quot;cat&quot;><a href=&quot;/forum#'.$forum->tid.'&quot;>' . $forum->name . '</a></div></td>'; </li></ul><ul><li>} elseif ($c!=count(variable_get('forum_containers'))) { </li></ul><ul><li>$topiclist .= '<td class=&quot;column' . (round(($c-1)%3)+1) . '&quot;><div class=&quot;cat&quot;><a href=&quot;/forum#'.$forum->tid.'&quot;>' . $forum->name . '</a></div></td>'; </li></ul><ul><li>} else { </li></ul><ul><li>$topiclist .= '<td class=&quot;column' . (round(($c-1)%3)+1) . '&quot;><div class=&quot;cat&quot;><a href=&quot;/forum#'.$forum->tid.'&quot;>' . $forum->name . '</a></div></td></tr>'; </li></ul><ul><li>} </li></ul><ul><li>[stuff deleted] </li></ul><ul><li>print $topiclist . '</tbody></table>'; </li></ul>
  23. 23. Node marked (after)‏
  24. 24. Template – forum nodes <ul><li>http://drupal.org/node/46027 </li></ul>
  25. 25. Node marked (after)‏
  26. 26. User roles <ul><li><?php </li></ul><ul><li>$comment_author = user_load(array('uid' => $comment->uid)); //load the profile of the user who posted the comment </li></ul><ul><li>$uroles = $comment_author->roles; </li></ul><ul><li>foreach ($uroles as $urole) { </li></ul><ul><li>$urole = str_replace(&quot; &quot;, &quot;_&quot;, $urole); </li></ul><ul><li>$userroles .= &quot;<img src='/sites/default/themes/Diamond/images/&quot; . $urole . &quot;.gif' title='&quot;. $urole .&quot;'></img>&quot;; </li></ul><ul><li>} </li></ul><ul><li>?> </li></ul><ul><li><table class='tablecomments'><tr class='comment-top'><td class='cleft'> </li></ul><ul><li><?php </li></ul><ul><li>print l ( $comment_author->profile_first_name .&quot; &quot;. $comment_author->profile_last_name , 'user/' .$comment_author->uid); </li></ul><ul><li>?> </li></ul><ul><li><?php print $userroles ?> </td> </li></ul><ul><li>[…stuff deleted…] </li></ul><ul><li></table> </li></ul>
  27. 27. User Picture <ul><li><div class='userpicture'> </li></ul><ul><li><?php </li></ul><ul><li>if ($node->picture) { </li></ul><ul><li>$userpicture = theme('image', $node->picture); </li></ul><ul><li>} else { </li></ul><ul><li>$userpicture = '<img src=&quot;' . variable_get('user_picture_default') . '&quot; alt=&quot;Default User Picture&quot; />'; </li></ul><ul><li>} </li></ul><ul><li>print $userpicture; </li></ul><ul><li>?> </li></ul><ul><li></div> </li></ul>
  28. 28. Number of Posts <ul><li><?php </li></ul><ul><li>$comment_author = user_load(array('uid' => $comment->uid)); //load the profile of the user who posted the comment </li></ul><ul><li>$allposts = &quot;SELECT(SELECT COUNT(DISTINCT(node.nid)) </li></ul><ul><li>FROM node </li></ul><ul><li>WHERE node.uid= &quot;. $comment_author->uid .&quot;)‏ </li></ul><ul><li>+(SELECT COUNT(DISTINCT(comments.cid))‏ </li></ul><ul><li>FROM comments </li></ul><ul><li>WHERE comments.uid= &quot;. $comment_author->uid .&quot;)‏ </li></ul><ul><li>AS result&quot;; </li></ul><ul><li>print l(&quot;Posts: &quot; . db_result(db_query($allposts)), 'userposts/' . $comment_author->uid) . &quot;<br>”; </li></ul><ul><li>?> </li></ul>
  29. 29. Member since <ul><li>$comment_author = user_load(array('uid' => $comment->uid)); //load the profile of the user who posted the comment </li></ul><ul><li><?php </li></ul><ul><li>print l(&quot;Member Since: &quot; . format_date($comment_author->created, 'custom', 'M d, Y') . &quot;<br>“ </li></ul><ul><li>?> </li></ul>
  30. 30. Modules added <ul><li>Subscriptions </li></ul><ul><li>Comment mover </li></ul><ul><li>Spam </li></ul><ul><li>Service links </li></ul>

×