Implementation without coding using Community Builder framework tools


Published on

Implementation without coding using Community Builder framework tools
Every website is a different use case in terms of design and functionality. Most integrators choose to ‰"hack‰" code in order to solve client needs. This compromises future maintenance and upgrading.

The CB framework and add-ons can turn any integrator into a hack-free developer. Learn how in this session.

The CB framework provides an API with over 300 events as well as a plethora of tools that take advantage of these events and supports a structured implementation methodology.

‰"Developing‰" a Joomla website for a client always involves satisfying specific customer use case needs. Despite the hundreds of JED extensions, in most instances these customer specific needs cannot be satisfied with out-of-the-box solutions. Hands-on implementation (PHP, CSS, HTML, etc.) is needed or maybe not?

This session focuses on the Community Builder framework and the available solutions and how they can be extended with any, or only, minimal coding in order to implement many different use cases. Developers should alway strive to provide clean hack-free solutions for their customers. The CB Framework and available tools can be used to provide such solutions.

The CB solutions (CB, GroupJive, Activity, CBSubs) provide over 300 event triggers that can be used to extend or add functionality to your Joomla community or membership website.

In this presentation we will:

+ Structured implementation

+ Learn how to use the CB Auto Actions plugin to harness this power.

+ See how CBSubs SQL and URL integration plugins can be exploited.

+ Explore the CB Query field type and CB database lookup validation field possibilities.

+ Update on work-in-progress enhancements

Published in: Technology
  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Implementation without coding using Community Builder framework tools

  1. 1. Implementation without coding usingCommunity Builder framework tools@ J and Beyond 2013
  2. 2. Hello ….Is everyonehaving fun?JAB-2013 © Joomlapolis - 2013 2
  3. 3. Our profiles:Nick A. Beat B. ‘beat’ on forums Lake Geneva, Switzerland MS EE/CS, PhD CS Internet security / web-apps “Make it as simple aspossible, but no less” ‘nant’ on forums Athens, Greece MS EE, MS CS Telecom / CIO “Good engineers don’tneed tools, bad ones alsohave no use for them”JAB-2013 © Joomlapolis - 2013 3
  4. 4. ReminderJAB-2013 © Joomlapolis - 2013 4
  5. 5. Presentation Agenda Universal uniqueness principle Hacking vs. coding 90% of code is just overhead Community Builder™ framework Available CB Solutions CBAuto Actions CBSubs GPL SQL and URL actions CB Query field and CB Database lookup field Use case examples SummaryJAB-2013 © Joomlapolis - 2013 5
  6. 6. Everything is uniqueAlways rememberyou’reuniqueJust likeeveryoneelseJAB-2013 © Joomlapolis - 2013 6
  7. 7. Hacking vs. programmingWhat’syourdefinition?JAB-2013 © Joomlapolis - 2013 7
  8. 8. MoreHacking vs. programming One opinion I have heard expressed is that a hacker can put alot of code together in a hurry but if a change is needed thecode has to be completely rewritten. A programmer may take a little longer but if changes areneeded they are more quickly and easily installed without theneed for a complete rewrite. Hacking is usually described as “quick and dirty.” Programmers research, think ahead, design and implement,Hackers just make the ”fix” and move onJAB-2013 © Joomlapolis - 2013 8
  9. 9. 90% of code is overhead Input handling Exception handling & special cases Output presentation Language readiness Joomla has event triggers, but coding is still neededWhat if we could easilyinterject our use case logicin the right placewithout modifying existing codeandwith no overhead?JAB-2013 © Joomlapolis - 2013 9
  10. 10. MoreCommunity Builder™ architectureJAB-2013 © Joomlapolis - 2013 10
  11. 11. Available CB SolutionsCBFrameworkUserProfilesOrganicGroupsPaidMembersActivityStreamsCBConnectIntegra-tionsFields, tabs,appsEmpower yourusersSubscribe forprivilegesMotivateparticipationJoomla, Kunena,uddeIM +++Facebook, Twitter, Linkedin, Google+, LiveAuto actionsJAB-2013 © Joomlapolis - 2013 11
  12. 12. CB Solution answersWhat if we could easilyinterject our use case logicin the right placewithout modifying existingcodeandwith no overhead?Community Builder tools thataddress this: CBAutoActions CBSubsGPL SQL Actions CBSubsGPL URL Actions CB Query field CB DB Lookup validationfieldJAB-2013 © Joomlapolis - 2013 12
  13. 13. CB Auto ActionTriggers EventTriggers Community Builder: 43frontend, 20 backend, 20fe & be GroupJive: 206 CBSubs: 26 Activity: 12 Privacy: 25 Antispam: 40 Conditional filtering CB Field before/after Rich unlimited ANDcriteriaJAB-2013 © Joomlapolis - 2013 13IdentifyeventChooseactionAdd your usecase logic
  14. 14. CB Auto ActionTypes CBActivity AcyMailing CBSubs GPL Code Connection Email Field FlySpray GroupJive K2 Kunena Login/Logout Private Message Query Redirect Registration Request Usergroup VirtueMart CiviCRM (planned)JAB-2013 © Joomlapolis - 2013 14
  15. 15. CB Activity Action Activity Action settings: Owner (id) User (target user) Type (activity type) Sub-Type Item (item id) From (old value) To (new value) Title (activity entry title) Message (act. message) Icon (icon name) Class (class name)Use Case Examples Mood field change activity About me update activityJAB-2013 © Joomlapolis - 2013 15
  16. 16. MoreMood field change activityJAB-2013 © Joomlapolis - 2013 16
  17. 17. AcyMailing Action AcyMailing Action Settings: Subscribe Unsubscribe Remove PendingUse Case Examples Subscribe duringregistration based on fieldselected Subscribe/Unsubscribewhen user joins/leaves a GJgroup Variation with CBSubs planJAB-2013 © Joomlapolis - 2013 17
  18. 18. MoreAcyMailing Action exampleJAB-2013 © Joomlapolis - 2013 18
  19. 19. Antispam Action Antispam action settings: Mode (Block,Whitelist) Type (User, IP, email,domain) Value (id, IP, email,domain) Date (start date) Time (start time) Duration (how long) Reason (reason notes)Use Case Examples Block user for a day whenwarning field reachescertain levelJAB-2013 © Joomlapolis - 2013 19
  20. 20. MoreAntispam action exampleJAB-2013 © Joomlapolis - 2013 20
  21. 21. CBSubs GPL Action CBSubsAction Settings: Plans (Select plans) Mode: Subscribe Renew Unsubscribe DeleteUse Case Examples Subscribe user to planwhen user Joins GJ Group Unsubscribe user from planwhen user specific CB fieldreaches a certain level(Support time consumeduse case)JAB-2013 © Joomlapolis - 2013 21
  22. 22. MoreCBSubs action example on GJ joinJAB-2013 © Joomlapolis - 2013
  23. 23. Code action CodeAction settings: HTML PHP (eval) PHP (create_function) JS (inline) JS (URL) jQuery CSS (inline) CSS (URL) Header PageTitle Pathway (Breadcrumb)Use Case Examples Popup alert when user visitsprofile after long period oftime Registration hidden fieldpopulation from URL get(Different URL-basedregistration forms use case)JAB-2013 © Joomlapolis - 2013 23
  24. 24. MoreCode action to popup alertJAB-2013 © Joomlapolis - 2013 24
  25. 25. MoreCode action registration formJAB-2013 © Joomlapolis - 2013 25index.php?option=com_comprofiler&task=registers&Itemid=478&type=Athlete
  26. 26. MoreCode action registration formJAB-2013 © Joomlapolis - 2013 26
  27. 27. Connection action Connections Actionsettings: Users (ids) Message Direction User to users Users to user Accept Enable Disabled Method Silent Normal CBUse Case Examples Establish connection ofuser with other user basedonCB field valueJAB-2013 © Joomlapolis - 2013 27
  28. 28. Email action Email Action settings: To Subject Body Mode (HTML,Text) CC / BCC Attachment From Address From Name Mailer Default CB PHP Mail Sendmail SMTPUse Case Examples Send email afterregistration withregistration data(Existing membershipinquiry use case) Send language specificemails based on CB fieldselection Sending emails fromdifferent SMTP mail server(Google non-spam usecase)JAB-2013 © Joomlapolis - 2013 28
  29. 29. MoreEmail with member dataJAB-2013 © Joomlapolis - 2013 29
  30. 30. MoreEmail with member dataJAB-2013 © Joomlapolis - 2013 30
  31. 31. MoreSending email from other serverJAB-2013 © Joomlapolis - 2013 31
  32. 32. MoreSending email from other serverJAB-2013 © Joomlapolis - 2013 32
  33. 33. Field action Field Action settings: Field Operator Set (Field =Value) Prefix (ValueField) Suffix (FieldValue) Add (Field +=Value) Subtract (Field -=Value) Divide (Field /=Value) Multiply (Field *=Value) ValueUse Case Examples Add 2 integer fields andstore result in third field Concatenate fields andstore in third field Set field value when userjoins GJ group Set field value when usersubscribes to specificCBSubs plan (can also bedone via CBSubs plan)JAB-2013 © Joomlapolis - 2013 33
  34. 34. Flyspray action Flyspray Action settings: Mode Synchronize Delete Add Groups (S) Remove Groups (S) Encryption (S) MD5 SH1 CRYPT Database Host Username Password Database Charset Table PrefixUse Case Examples Add new website users toflyspray database Sync flyspray user databasewhen user updates profile Add user to flyspray projectwhen they join a specific GJgroupJAB-2013 © Joomlapolis - 2013 34
  35. 35. MoreFlyspray action exampleJAB-2013 © Joomlapolis - 2013 35
  36. 36. MoreFlyspray action exampleJAB-2013 © Joomlapolis - 2013 36
  37. 37. GroupJive action GroupJiveAction settings: Auto Join Groups LeaveGroups New Group New Category Groups (JG, LG) Status (JG) Active | Banned | Inactive| Moderator |Admin |OwnerUse Case Examples Automatically create a newgroup based on first loginand field data(voting area use case) Join GJ group based on userfield value(Interest groups use case)JAB-2013 © Joomlapolis - 2013 37
  38. 38. MoreGroupJive action exampleJAB-2013 © Joomlapolis - 2013 38
  39. 39. K2 action K2Action settings: Mode Synchronize Delete User Group (S) Gender (S) Description (S) URL (S) Notes (S)Use Case Examples Synchronize user to specificK2 group at first login Delete user from K2 groupwhen user leaves specific GJgroupJAB-2013 © Joomlapolis - 2013 39
  40. 40. Kunena action KunenaAction settings: Name (category) Parent (category) DescriptionUse Case Examples Create new forum categorybased on field dataJAB-2013 © Joomlapolis - 2013 40
  41. 41. Login/logout action Login/logout Actionsettings: Mode Login Logout Method (Login) Username Email Username (U) Email Address (El) Redirect MessageUse Case Examples Automatically login userwhen email confirmationlink is clickedJAB-2013 © Joomlapolis - 2013 41
  42. 42. MoreLogin action exampleJAB-2013 © Joomlapolis - 2013 42
  43. 43. Menu action MenuAction settings: Title Type(UE_MENU_VIEW,_UE_MENU_EDIT,_UE_MENU_MESSAGES,_UE_MENU_CONNECTIONS,_UE_MENU_MODERATE) Class (e.g. _UE_MENU_MYMENU) Position Menu Bar Menu List URL URLTarget Tooltip Image URLUse Case Examples Add new personalized CBMenu on a user profileJAB-2013 © Joomlapolis - 2013 43
  44. 44. MoreMenu action exampleJAB-2013 © Joomlapolis - 2013 44
  45. 45. Private Message action Private Messages Actionsettings: From To Subject MessageUse Case Examples Send auto-welcomemessage to user when theyjoin a specific GJ group Send message to specificuser when new membersigns inJAB-2013 © Joomlapolis - 2013 45
  46. 46. Privacy action Privacy Action settings: Owner Type Subtype Item Rule Public Users Private Connections Connections ofConnections ConnectionTypes– Friend– CoWorkerUse Case Examples Add privacy rule to userwhen user joins GJ groupJAB-2013 © Joomlapolis - 2013 46
  47. 47. Query action QueryAction settings: Query Mode Internal External Host (E) Username (E) Password (E) Database (E) Charset (E) Table Prefix (E)Use Case Examples Insert entry to legacy userdatabase when newregistration happens Update legacy databasewhen profile updatehappensJAB-2013 © Joomlapolis - 2013 47
  48. 48. MoreQuery action exampleJAB-2013 © Joomlapolis - 2013 48
  49. 49. Redirect action Redirect Action settings: URL Message Type Message Notice Note Attention Alert ErrorUse Case Examples Redirect user to specific siteURL after login when aspecific CB field criteria ismetJAB-2013 © Joomlapolis - 2013 49
  50. 50. MoreRedirect action exampleJAB-2013 © Joomlapolis - 2013 50
  51. 51. Registration action Registration Actionsettings: Username Password First Name Middle Name Last Name Fields Suppress Emails Enable DisableUse Case Examples Create new account whenuser subscribes to specificplan(Child account use case)JAB-2013 © Joomlapolis - 2013 51
  52. 52. Request action Request Action settings: URL Method Get Post XML JSON Request (e.g. GET: name=[name],POST: username=[username], XML:<email>[email]</email>) Return (Hide | Show) Error (Hide | Show) Debug (Hide | Show)Use Case Examples Call external scriptJAB-2013 © Joomlapolis - 2013 52
  53. 53. Usergroup action UsergroupAction settings: Mode Create Usergroup Add Usergroups Replace Usergroups Remove Usergroups GroupsUse Case Examples Add user to specific ACLuser group afterregistration based on CBfield valueJAB-2013 © Joomlapolis - 2013 53
  54. 54. VirtueMart 2.x action VirtueMart 2.x Actionsettings: Mode: Synchronize Delete Address type Address Name User Group Shopper Group Fields VM field CB fieldUse Case Examples Add user toVM shoppergroup when user subscribesto CBSubs plan SynchronizeVM data fromCB dataJAB-2013 © Joomlapolis - 2013 54
  55. 55. MoreVM2 action exampleJAB-2013 © Joomlapolis - 2013 55
  56. 56. CBSubs GPL SQL Action CBSubs SQL(5) Actionparameters: Type (databaseconnection): Internal External Activation Renewal Expiration DeactivationUse Case Examples Integration with otherJoomla extensions usingdatabase layer External connections topush subscriber data toother systemsJAB-2013 © Joomlapolis - 2013 56
  57. 57. CBSubs GPL URL Action CBSubs URL Actionparameter URLs: First subscription Renewal Expiration DeactivationAll URLs pass XML/POST datato target script:[username]&user_id=[user_id]Use Case Examples Pass information toexternal script forintegration purposesJAB-2013 © Joomlapolis - 2013 57
  58. 58. CB Query Field Query field parameters: Query Mode Internal External Output Single row Multiple rows Columns Single column Multiple colums Display Delimiter CustomUse Case Examples Count number of CB Galleryitems user has Count total number of userson site Count number of users in GJGroups that a specific userowns(use case to give freemembership to user if hehas attracted many users inhis groups)JAB-2013 © Joomlapolis - 2013 58
  59. 59. MoreCB Query field examples Number of users in site:SELECTCOUNT(*) FROM #__comprofiler;SELECT COUNT(*) FROM `jos_comprofiler`WHERE `approved`=1; Number of Gallery items user has in CB GallerySELECTCOUNT(*) FROM `jos_comprofiler_plug_profilegallery`;SELECTCOUNT(*) FROM `jos_comprofiler_plug_profilegallery`WHERE`userid`=[user_id] Number of GJ users in groups the specific user ownsSELECTCOUNT(*) FROM `#__groupjive_users`WHERE `group` IN (SELECT `id` FROM `#__groupjive_groups`WHERE `user_id` = [user_id])JAB-2013 © Joomlapolis - 2013 59
  60. 60. CB DB Lookup field DB Lookup fieldparameters: SQL Query check SQL Query update SQL Query Roll backUse Case Examples Limit access to registrationfor only those that haveactive one-use codeJAB-2013 © Joomlapolis - 2013 60
  61. 61. MoreDB Lookup Example CheckQuery:SELECT * FROM `testcodes` WHERE `code`= [value]AND `userid` = 0’ Update Query:UPDATE `testcodes` SET `userid` = [user_id]WHERE `code`= [value]AND `userid` = 0 LIMIT 1 Rollback Query:UPDATE `testcodes` SET `userid` = 0WHERE `code` = [value]AND`userid` = [user_id] LIMIT 1JAB-2013 © Joomlapolis - 2013 61
  62. 62. Summary / QuestionsCommunity Builder solutions and framework have great tools tohelp integrators prepare quick, clean and future proof use caseimplementations with minimum or even no coding.CBAuto Actions pluginCB Query Field typeCB DB Lookup Field typeCBSubs SQL and URL actionsJAB-2013 © Joomlapolis - 2013 62