{"id":225003,"date":"2025-03-17T12:10:32","date_gmt":"2025-03-17T12:10:32","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/integration-for-churchsuite\/"},"modified":"2026-03-27T15:25:53","modified_gmt":"2026-03-27T15:25:53","slug":"cs-integration","status":"publish","type":"plugin","link":"https:\/\/gl.wordpress.org\/plugins\/cs-integration\/","author":18523187,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.8","stable_tag":"1.0.8","tested":"6.9.4","requires":"6.4","requires_php":"","requires_plugins":null,"header_name":"Integration for ChurchSuite","header_author":"Alwyn Barry","header_description":"CS Integration provides shortcodes to request and display JSON data from the public JSON ChurchSuite feeds.","assets_banners_color":"5178a6","last_updated":"2026-03-27 15:25:53","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/gitlab.com\/AlwynBarry\/cs-integration","header_author_uri":"https:\/\/gitlab.com\/AlwynBarry\/","rating":0,"author_block_rating":0,"active_installs":10,"downloads":723,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"dramb","date":"2025-08-26 09:36:39"},"1.0.4":{"tag":"1.0.4","author":"dramb","date":"2025-08-26 11:04:12"},"1.0.5":{"tag":"1.0.5","author":"dramb","date":"2025-09-02 21:00:21"},"1.0.6":{"tag":"1.0.6","author":"dramb","date":"2025-09-08 12:57:39"},"1.0.7":{"tag":"1.0.7","author":"dramb","date":"2026-02-24 16:27:40"},"1.0.8":{"tag":"1.0.8","author":"dramb","date":"2026-03-27 15:25:53"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-256x256.png":{"filename":"icon-256x256.png","revision":3257985,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3257985,"resolution":"1544x500","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3257921,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3257921,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3257921,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3257921,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3257921,"resolution":"5","location":"assets","locale":""}},"screenshots":{"1":"Featured Events","2":"Event List","3":"Calendar","4":"Small Groups","5":"Example shortcode for Featured Events"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[239626,1486,838],"plugin_category":[],"plugin_contributors":[239627],"plugin_business_model":[],"class_list":["post-225003","plugin","type-plugin","status-publish","hentry","plugin_tags-churchsuite","plugin_tags-events","plugin_tags-featured","plugin_contributors-dramb","plugin_committers-dramb"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/cs-integration\/assets\/icon-256x256.png?rev=3257985","icon_2x":"https:\/\/ps.w.org\/cs-integration\/assets\/icon-256x256.png?rev=3257985","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/cs-integration\/assets\/screenshot-1.png?rev=3257921","caption":"Featured Events"},{"src":"https:\/\/ps.w.org\/cs-integration\/assets\/screenshot-2.png?rev=3257921","caption":"Event List"},{"src":"https:\/\/ps.w.org\/cs-integration\/assets\/screenshot-3.png?rev=3257921","caption":"Calendar"},{"src":"https:\/\/ps.w.org\/cs-integration\/assets\/screenshot-4.png?rev=3257921","caption":"Small Groups"},{"src":"https:\/\/ps.w.org\/cs-integration\/assets\/screenshot-5.png?rev=3257921","caption":"Example shortcode for Featured Events"}],"raw_content":"<!--section=description-->\n<p>Integration for ChurchSuite (AKA CS Integration) allows you to display certain\ndata from ChurchSuite on your Wordpress website without resorting to embedding\niframes. This plugin provides shortcodes that are easy to drop into any page\nor post. Each shortcode will, behind the scenes, request data from your\nChurchSuite feed, and will display the data returned in a similar way to the\nusual ChurchSuite iframes, but natively to your website.  Many aspects of the\ndisplay can be modified in your theme to make the display match your website\ntheme. The shortcodes allow you to use a range of query parameters so that you\ncan display just the data you want for each part of your website.<\/p>\n\n<h3>Current features include:<\/h3>\n\n<ul>\n<li>Shortcode to return events as 'cards' with the event image and details<\/li>\n<li>Shortcode to return events in a 'list' group by date<\/li>\n<li>Shortcode to return a full month calendar, for the current month or a date<\/li>\n<li>Shortcode to return groups as 'cards' with the group image and details<\/li>\n<li>All API requests are cached with a 4 hour cache to ensure fast performance<\/li>\n<\/ul>\n\n<h3>A little Technical information<\/h3>\n\n<p>For the technical among you: This shortcode works on the 'server side',\nbuilding the response which is delivered to your browser from churchsuite.<\/p>\n\n<h4>Difference between this plugin and cs-js-integration<\/h4>\n\n<p>We also provide the <code>cs-js-integration<\/code> plugin.  That plugin uses the more\nrecent v3 ChurchSuite API which does not permit such flexibility because it\nrequires you to create a ChurchSuite 'embed configuration' to pass in the\nshortcode call.  It also does all the work on the 'client side' so that\nthe client browser holds the cached data and the client browser creates all\nthe html for output.  That plugin use Javascript to create the response\nwhereas this plugin uses php.  This server-side implementation can be faster\nfor many repeated requests, and is less speed dependent on the client\nprovision. However the client-side implementation can be faster for an\nindividual user. The cs-js-integration plugin uses Alpine.js to output the\nHTML, which means an end user could change the output by changing the HTML\nfiles without having to get into the php of the plugin. However, the\nAlpine.js code isn't straightforward and so this is likely to be of little\nadvantage. Really, it's simply 'horses for courses' - you have the choice\nof which to use!<\/p>\n\n<h3>Support<\/h3>\n\n<p>If you have a problem or a feature request, please send a message to the author.<\/p>\n\n<h3>Demo<\/h3>\n\n<p>Currently there is no demo site, but you can view examples on a church website:<\/p>\n\n<ul>\n<li>the <a href=\"https:\/\/www.cambray.org\/\">Featured Events<\/a>,<\/li>\n<li>the <a href=\"https:\/\/www.cambray.org\/connect\/smallgroups\/\">Small Groups list<\/a>,<\/li>\n<li>the <a href=\"https:\/\/www.cambray.org\/whats-on\/\">Events List<\/a>,<\/li>\n<li>the <a href=\"https:\/\/www.cambray.org\/whats-on\/calendar\">Calendar<\/a><\/li>\n<\/ul>\n\n<h3>Contributions<\/h3>\n\n<p>This plugin relies on information provided by ChurchSuite using their 'embed'\nJSON feed.  Details of this JSON feed can be found here:<\/p>\n\n<p>https:\/\/github.com\/ChurchSuite\/churchsuite-api\/blob\/master\/modules\/embed.md<\/p>\n\n<h3>Usage<\/h3>\n\n<ul>\n<li><p>For the <em>Event Cards shortcode<\/em>, place the shortcode into a page or post or\ninto a shortcode block. The shortcode will be:<\/p>\n\n<pre><code>[cs-event-cards church_name=\"mychurch\" num_results=\"3\"]\n<\/code><\/pre>\n\n<p>where <code>mychurch<\/code> is the name of your church and <code>3<\/code> is changed to the\nnumber of future featured events you need in a page or post.  Use the\nparameter <code>featured=\"1\"<\/code> to obtain only featured events.  Because your\ncalendar will have <em>many<\/em> events, make sure you include <code>num_results<\/code>\nto get the number of events you want.<\/p>\n\n<p>If you want events on a specific day, use the parameters <code>date_start<\/code>\nand <code>date_end<\/code>. If you want events from a particular Calendar category,\nuse <code>category=1<\/code> where <code>1<\/code> is replaced by the category number for the\nCalendar category you want.<\/p><\/li>\n<li><p>For the <em>Event List shortcode<\/em>, place the shortcode into a page or post\nor into a shortcode block. The shortcode will be:<\/p>\n\n<pre><code>[cs-event-list church_name=\"mychurch\" num_results=\"10\"]\n<\/code><\/pre>\n\n<p>The comments above about parameters also apply to this shortcode.  By\ndefault only a maximum of 5 days events are returned, but this can be\noverridden by adding the <code>date_end<\/code> parameter.<\/p><\/li>\n<li><p>For the <em>Calendar shortcode<\/em> place the shortcode into a page or post or into a\nshortcode block. The shortcode will look like:<\/p>\n\n<pre><code>[cs-calendar church_name=\"mychurch\"]\n<\/code><\/pre>\n\n<p>(where <code>mychurch<\/code> is the name of your church used to get into your churchsuite).\nThe only parameter that might be used with this apart from <code>church_name<\/code> is\n    date_from which will can be any date which will identify the month to be\ndisplayed - so <code>2025-01-15<\/code> and <code>2025-01-30<\/code> will both display the month\nJanuary in 2025.<\/p><\/li>\n<li><p>For the <em>Smallgroups shortcode<\/em>, place the shortcode into a page or post or into\na shortcode block. The shortcode will be:<\/p>\n\n<pre><code>[cs-smallgroups church_name=\"mychurch\"]\n<\/code><\/pre>\n\n<p>(where <code>mychurch<\/code> is the name of your church.  The more limited set of\nparameters provided by ChurchSuite for small groups can all be used.<\/p><\/li>\n<\/ul>\n\n<p>See <code>https:\/\/github.com\/ChurchSuite\/churchsuite-api\/blob\/master\/modules\/embed.md=calendar-json-feed<\/code>\nfor a full list of parameters that can be used.<\/p>\n\n<h3>License<\/h3>\n\n<p>The plugin itself is released under the GNU General Public License. A copy of\nthis license can be found at the license homepage or in the <code>cs-integration.php<\/code>\nfile in the top comment.<\/p>\n\n<!--section=installation-->\n<ul>\n<li><p>From within Wordpress - In the Wordpress Dashboard use the menu to go to\nPlugins and from there choose 'Add new plugin'.  Search for 'churchsuite'\nand then look for this plugin.  Select the 'install' button on the plugin\nto install it, and once installed use the 'activate' link to activate the\nplugin.<\/p><\/li>\n<li><p>If you want to install from github:<\/p>\n\n<ul>\n<li>Download from 'releases'<\/li>\n<li>Rename the zip file downloaded 'cs-integration.zip' (i.e. remove any\nversion info in the filename)<\/li>\n<li>In Wordpress use the Install New Plugin page to upload the zip file, or\nalternatively, unpack and upload the cs-integration directory to your\n'\/wp-content\/plugins\/' directory.<\/li>\n<li>Once you have done either of the above, Activate the plugin through the\n'Plugins' page in the WordPress dashboard.<\/li>\n<\/ul><\/li>\n<li><p>Once you have used either method to install the plugin, you need to then\nadd a shortcode (see examples below) to your wordpress posts or pages where\nyou need them<\/p><\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"the%20shortcode%20produces%20no%20output\"><h3>The shortcode produces no output<\/h3><\/dt>\n<dd><p>The default behaviour when there is an error is to give no output rather\n    than produce error messages all over your website.  Check that you have\n    supplied the correct churchname, or test it with the churchname 'cambray'\n    to see if that is the problem.  Check that you can actually get to your\n    ChurchSuite JSON api url - try entering the following URL in a browser\n    with your church name instead of <code>mychurch<\/code>:<\/p>\n\n<pre><code>    https:\/\/mychurch.churchsuite.com\/embed\/calendar\/json?num_results=3\n<\/code><\/pre><\/dd>\n<dt id=\"how%20do%20i%20add%20my%20church%20so%20that%20i%20get%20the%20json%20feed%20for%20my%20church%3F\"><h3>How do I add my church so that I get the JSON feed for my church?<\/h3><\/dt>\n<dd><p>You must use the shortcode <code>church_name<\/code> parameter:<\/p>\n\n<pre><code>    [cs-event-cards church_name=\"mychurch\" num_results=\"3\"]\n<\/code><\/pre><\/dd>\n<dt id=\"i%20want%20to%20limit%20the%20number%20of%20events%20in%20the%20shortcode\"><h3>I want to limit the number of events in the shortcode<\/h3><\/dt>\n<dd><p>You can use a shortcode parameter for showing a particular number of events:<\/p>\n\n<pre><code>    [cs-events-list church_name=\"mychurch\" num_results=\"6\"]\n<\/code><\/pre><\/dd>\n<dt id=\"events%20list%20is%20not%20showing%20any%20results\"><h3>Events List is not showing any results<\/h3><\/dt>\n<dd><p>By default the Events List only looks ahead 5 days.  If your future events\n    are beyond that nothing will show.  So just use the days_ahead attribute:<\/p>\n\n<pre><code>    [cs-events-list church_name=\"mychurch\" num_results=\"6\" days_ahead=\"30\"]\n<\/code><\/pre><\/dd>\n<dt id=\"i%20want%20to%20change%20how%20the%20output%20looks%3A\"><h3>I want to change how the output looks:<\/h3><\/dt>\n<dd><p>The output is formatted via css - just override the defaults in your theme<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.8<\/h4>\n\n<p><strong>2026-02-26<\/strong>\n* Refactored the Locale code to use the wordpress site locale rather than\n  the server locale, and to use the wordpress admin settings for full\n  date or time output.  This means the time and date output should always\n  be sympathetic with the Wordpress site settings.  Also moved all the\n  time and date string creation to a new module so it can be easily\n  modified without having to update many files.\n* Version bump to 1.0.8<\/p>\n\n<h4>1.0.7<\/h4>\n\n<p><strong>2026-02-24<\/strong>\n* Added output of dates which takes account of the current Locale of the server\n* Bumped version number\n* Bumped Wordpress Compatibility testing to 6.9<\/p>\n\n<h4>1.0.6<\/h4>\n\n<p><strong>2025-09-08<\/strong>\n* Added a new attribute 'days_ahead' to cs-event-list so that you can specify\n  more than the default 5 days looking ahead for events.  Use like this:<\/p>\n\n<pre><code>[cs-event-list church_name=\"mychurch\" num_results=\"5\" days_ahead=\"30\"]\n<\/code><\/pre>\n\n<h4>1.0.5<\/h4>\n\n<p><strong>2025-09-02<\/strong>\n* Remove FontAwesome and replace with a subset of FontAwesome to reduce the\n    size of the plugin.  Modify the CSS to reflect this. Correct missing css\n    elements to do with cancelled events.<\/p>\n\n<h4>1.0.4<\/h4>\n\n<p><strong>2025-08-26<\/strong>\n* Change to the Calendar display to use DIVs rather than responsive tables\n   to be compatible with the JS version of the plugin and enable better styling<\/p>\n\n<p><strong>2025-03-17<\/strong>\n* Change to the README files to make them more readable on the Wordpress\n    Directory and to include install instructions suitable for the directory.<\/p>\n\n<p><strong>2025-03-13<\/strong>\n* Changes to how the JSON feed is read to remove a security vulnerability. Other\n    minor changes to allow for final Wordpress Directory approval.<\/p>\n\n<h4>1.0.3<\/h4>\n\n<p><strong>2025-03-03<\/strong>\n* Added Event Categories to cs_event class, and the inclusion of an event category\n    class to the html output by the event calendar so that we can colour the events.\n* Added scrolling to the event description within the pop-up\n* Added an additional control on font-size of paragraph tags within the event\n    description to prevent theme definitions of for paragraphs causing large text\n    to be displayed within the small calendar cells, unless the user overrides this.<\/p>\n\n<h4>1.0.2<\/h4>\n\n<p><strong>2025-03-03<\/strong>\n* CSS and HTML changes to allow the dates to be better formatted in the small\n    responsive calendar display\n* Minor changes to respond to two problems reported by the Wordpress plugin checker\n* Change to the main plugin name to fit with requirements for inclusion on the\n    Wordpress Plugin Directory\n* Changes to the README files to reflect the version bump<\/p>\n\n<h4>1.0.1<\/h4>\n\n<p><strong>2025-02-27<\/strong>\n* Added the first of the functionality for the <code>cs-calendar<\/code> shortcode.  Updated\n        README.md to reflect these changes.<\/p>\n\n<p><strong>2025-02-25<\/strong>\n* Changed caching to cache API responses rather than the final HTMl, for security reasons\n* Found that num_results alone causes a 8sec response time, but adding a date_end reduces\n    the API response time to 1.5s regardless of the amount of events returned.  So defaulted\n    the cs-events-list to 5 days just to get reasonable response time. \n* Added basic i18n support\n* Changed all files to reflect 1.0.1 release status<\/p>\n\n<h4>1.0.0<\/h4>\n\n<p><strong>2025-02-20<\/strong>\n* Added caching of responses and displaying cancelled events in the event list correctly<\/p>\n\n<p><strong>2025-02-18<\/strong>\n* All files changes to ensure all code was according to the Wordpress Style Guide\n* Added the Events List shortcode<\/p>\n\n<p><strong>2025-02-11<\/strong>\n* Major changes to everything to code in the style required for submission to Wordpress\n    - Changed to plugin scaffolding based on WPPB\n    - Change from procedural code to Classes and Objects<\/p>\n\n<h4>0.0.1<\/h4>\n\n<p><strong>2025-02-04<\/strong>\n* Initial release - really only a test of what was possible<\/p>","raw_excerpt":"Integration for ChurchSuite is a plugin to enable display of data from ChurchSuite JSON feeds","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/225003","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=225003"}],"author":[{"embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/dramb"}],"wp:attachment":[{"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=225003"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=225003"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=225003"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=225003"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=225003"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/gl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=225003"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}