Implementation without coding using Community Builder framework tools

  • 2,624 views
Uploaded on

Implementation without coding using Community Builder framework tools …

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to like this
No Downloads

Views

Total Views
2,624
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
13
Comments
3
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Implementation without coding usingCommunity Builder framework tools@ J and Beyond 2013
  • 2. Hello ….Is everyonehaving fun?JAB-2013 © Joomlapolis - 2013 2
  • 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. ReminderJAB-2013 © Joomlapolis - 2013 4
  • 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. Everything is uniqueAlways rememberyou’reuniqueJust likeeveryoneelseJAB-2013 © Joomlapolis - 2013 6
  • 7. Hacking vs. programmingWhat’syourdefinition?JAB-2013 © Joomlapolis - 2013 7
  • 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. 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. MoreCommunity Builder™ architectureJAB-2013 © Joomlapolis - 2013 10
  • 11. Available CB SolutionsCBFrameworkUserProfilesOrganicGroupsPaidMembersActivityStreamsCBConnectIntegra-tionsFields, tabs,appsEmpower yourusersSubscribe forprivilegesMotivateparticipationJoomla, Kunena,uddeIM +++Facebook, Twitter, Linkedin, Google+, LiveAuto actionsJAB-2013 © Joomlapolis - 2013 11
  • 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. 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. 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. 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. MoreMood field change activityJAB-2013 © Joomlapolis - 2013 16http://www.joomlapolis.com/support/tutorials/107-use-cases/18338-adding-your-own-events-to-activity-stream
  • 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. MoreAcyMailing Action exampleJAB-2013 © Joomlapolis - 2013 18
  • 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. MoreAntispam action exampleJAB-2013 © Joomlapolis - 2013 20
  • 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. MoreCBSubs action example on GJ joinJAB-2013 © Joomlapolis - 2013 22www.joomlapolis.com/support/tutorials/107-use-cases/18339-startend-cbsubs-plan-subscription-when-user-joinsleaves-a-groupjive-group
  • 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. MoreCode action to popup alertJAB-2013 © Joomlapolis - 2013 24
  • 25. MoreCode action registration formJAB-2013 © Joomlapolis - 2013 25index.php?option=com_comprofiler&task=registers&Itemid=478&type=Athlete
  • 26. MoreCode action registration formJAB-2013 © Joomlapolis - 2013 26
  • 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. 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. MoreEmail with member dataJAB-2013 © Joomlapolis - 2013 29
  • 30. MoreEmail with member dataJAB-2013 © Joomlapolis - 2013 30
  • 31. MoreSending email from other serverJAB-2013 © Joomlapolis - 2013 31
  • 32. MoreSending email from other serverJAB-2013 © Joomlapolis - 2013 32
  • 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. 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. MoreFlyspray action exampleJAB-2013 © Joomlapolis - 2013 35
  • 36. MoreFlyspray action exampleJAB-2013 © Joomlapolis - 2013 36
  • 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. MoreGroupJive action exampleJAB-2013 © Joomlapolis - 2013 38
  • 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. Kunena action KunenaAction settings: Name (category) Parent (category) DescriptionUse Case Examples Create new forum categorybased on field dataJAB-2013 © Joomlapolis - 2013 40
  • 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. MoreLogin action exampleJAB-2013 © Joomlapolis - 2013 42
  • 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. MoreMenu action exampleJAB-2013 © Joomlapolis - 2013 44
  • 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. 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. 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. MoreQuery action exampleJAB-2013 © Joomlapolis - 2013 48
  • 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. MoreRedirect action exampleJAB-2013 © Joomlapolis - 2013 50
  • 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. 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. 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. 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. MoreVM2 action exampleJAB-2013 © Joomlapolis - 2013 55
  • 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. CBSubs GPL URL Action CBSubs URL Actionparameter URLs: First subscription Renewal Expiration DeactivationAll URLs pass XML/POST datato target script:http://www.mysite.com/insert.php?username=[username]&user_id=[user_id]Use Case Examples Pass information toexternal script forintegration purposesJAB-2013 © Joomlapolis - 2013 57
  • 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. 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. 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. 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. 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