Custom Twitter Feeds - Version 1.8.4

Version Description

  • Tweak: When clearing the Twitter cache, caches from common page caching solutions are now also cleared.
  • Tweak: Changed capability check from 'edit_posts' to 'manage_custom_twitter_feeds' when clearing the Twitter cache using AJAX.
  • Tweak: An alert bubble is added to the Twitter Feeds menu item when there are new notifications available.
Download this release

Release Info

Developer Craig at Smash Balloon
Plugin Icon 128x128 Custom Twitter Feeds
Version 1.8.4
Comparing to
See all releases

Code changes from version 1.8.3 to 1.8.4

README.txt CHANGED
@@ -1,308 +1,313 @@
1
- === Custom Twitter Feeds (Tweets Widget) ===
2
- Author: Smash Balloon
3
- Contributors: smashballoon, craig-at-smash-balloon
4
- Support Website: http://smashballoon/custom-twitter-feeds/
5
- Tags: Twitter, Twitter feed, Twitter Tweets, Twitter widget, Custom Twitter Feed
6
- Requires at least: 3.4
7
- Tested up to: 5.8
8
- Stable tag: 1.8.3
9
- License: GPLv2 or later
10
- License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
-
12
- Custom Twitter Feeds allows you to display completely customizable Twitter Tweets from any user timeline, Twitter hashtag, or home timeline on your website.
13
-
14
- == Description ==
15
- Display **completely customizable**, **responsive** and **search engine crawlable** Twitter feeds on your website. The Custom Twitter Feeds plugin will display Tweets that completely match the look and feel of your site and includes tons of customization options!
16
-
17
- = Features =
18
- * **Completely Customizable** - by default the Twitter feeds will inherit your theme's styles
19
- * Twitter feed content is **crawlable by search engines** adding SEO value to your site
20
- * **Completely responsive and mobile optimized** - your Twitter feeds work on any screen size
21
- * Display Tweets from any user, your own Twitter account and those you follow, or from a specific hashtag
22
- * Display **multiple Twitter feeds** from different Twitter users on multiple pages or widgets
23
- * Post caching means that your Twitter feed loads **lightning fast** and minimizes Twitter API requests
24
- * **Infinitely load more** of your Tweets with the 'Load More' button
25
- * Built-in easy to use "Custom Twitter Feeds" Widget makes it easy to display Tweets from any Twitter account
26
- * Fully internationalized and translatable into any language
27
- * Display a beautiful header at the top of your Twitter feed
28
- * Enter your own custom CSS or JavaScript for even deeper customization of your Tweets
29
-
30
- For simple step-by-step directions on how to set up the Custom Twitter Feeds plugin please refer to our [setup guide](http://smashballoon.com/custom-twitter-feeds/free/?utm_source=wordpress&utm_campaign=ctf 'Custom Twitter Feeds setup guide').
31
-
32
- = Benefits =
33
- * **Increase social engagement** between you and your users, customers, or fans
34
- * **Save time** by using the Custom Twitter Feeds plugin to generate dynamic, search engine crawlable content on your website
35
- * **Get more follows** by displaying your Twitter content directly on your site
36
- * **Improve your SEO** as all of that quality keyword-rich Twitter content is directly embedded into your website
37
- * **Keep users on your site** by letting them reply and like your Tweets directly on your site
38
- * Display your Twitter content **your way** to perfectly match your website's style
39
- * The Custom Twitter Feeds plugin is **updated regularly** with new features, bug-fixes and Twitter API changes
40
- * Support is quick and effective
41
- * We're dedicated to providing the **most customizable**, **robust** and **well supported** Twitter feed plugin in the world!
42
-
43
- [View the reviews](https://wordpress.org/support/plugin/custom-twitter-feeds/reviews/) to see what other users are saying about the Custom Twitter Feeds plugin.
44
-
45
- = Feedback or Support =
46
- We're dedicated to providing the most robust and well supported Twitter feed plugin in the world, so if you have an issue or any feedback on how to improve the plugin then please [let us know](https://smashballoon.com/custom-twitter-feeds/support/?utm_source=wordpress&utm_campaign=ctf 'Twitter Feed Support').
47
-
48
- If you like the plugin then please consider leaving a review, as it really helps to support the plugin. If you have an issue then please allow us to help you fix it before leaving a review. Just [let us know](https://smashballoon.com/custom-twitter-feeds/support/?utm_source=wordpress&utm_campaign=ctf 'Twitter Feed Support') what the problem is and we'll get back to you right away.
49
-
50
- = Featured Reviews =
51
- "***Great for Customization** - Great plugin! Superb customization options! Am changing all twitter feeds for all my websites to this! I have tried several Twitter plugins so far. This is the best I have come across :)*" - [@nehavivekpatil](https://wordpress.org/support/topic/great-for-customization-2/)
52
-
53
- "***Excellent plug-in. Excellent support.** - Excellent instructions and guidance. Patient and prompt support for the newbies. Regular updates. You can't lose. Thank you Smash Balloon.* - [@nuspa](https://wordpress.org/support/topic/excellent-plug-in-excellent-support-2/)
54
-
55
- "***Amazing Support and a Great Twitter Plugin** - I am using the free version of this Twitter plugin and identified a real problem in the display on my website. I emailed support and Craig was all over the fix for me. Seven or so emails later (even on a Sunday) the problem was fixed and Craig was still reaching out to make sure all was well.*
56
-
57
- *In a world of crappy support for premium plugins, and even worse support for free plugins, this kind of support (and listening to customers) that Craig and Smash Balloon provided me make their premium products worth every penny. In fact, I am going to buy them on my next project. They deserve it.*
58
-
59
- *Thanks again, Craig!*" - [@kcwebguy](https://wordpress.org/support/topic/amazing-support-and-a-great-twitter-plugin/)
60
-
61
- "***At last a configurable Twitter Feed that WORKS!** - I have messed with Twitter feeds on sites so many times only to be frustrated. This Plugin is the best I have tried. Stable, configurable and not too hefty a drag on performance. Well done!* - [@mikemac67](https://wordpress.org/support/topic/at-last-a-configurable-feed-that-works/)
62
-
63
- "***Everything you'll need in a Twitter feed plugin** - We've tried a few Twitter feed plugins across a bunch of our sites, and this one is now our go-to favorite. Most of the others we've tried have either styling or performance issues, but we've been using this plugin for a few months now, and it's been perfect. There are tons of customization options, the feed looks great, and... it works!*
64
-
65
- *Kudos to the SmashBalloon team on a well supported, tightly developed, feature-packed WordPress Plugin.* - [@laymanlab](https://wordpress.org/support/topic/everything-youll-need-in-a-twitter-feed-plugin/)
66
-
67
- = Pro Version =
68
- We recently released a [Pro version](http://smashballoon.com/custom-twitter-feeds/?utm_source=wordpress&utm_campaign=ctf 'Custom Twitter Feeds Pro') which includes some awesome additional features:
69
-
70
- * Display Tweets from **multiple users or hashtags in the same Twitter feed**
71
- * Display **photos**, **videos**, and **gifs** and view them in a **popup lightbox** directly on your site
72
- * Multi-column **Masonry layout** [demo](http://smashballoon.com/custom-twitter-feeds/demo/masonry?utm_source=wordpress&utm_campaign=ctf 'Custom Twitter Feeds Pro Masonry Demo')
73
- * Allow **filtering** of Twitter timelines include/exclude any/all keywords/hashtags
74
- * Customizable **Carousels** and **Slideshows** of your Tweets
75
- * Fully functional Twitter **search endpoint**
76
- * Display Tweets you're mentioned in
77
- * Tweet-specific **moderation system**
78
- * Visual **Twitter cards** displayed with links which support them
79
- * Include **Tweet replies** (in reply to tweets)
80
- * **Combine multiple Twitter feeds** into one
81
- * **Autoload more Tweets** when scrolling
82
-
83
- Try the Pro version [demo here](http://smashballoon.com/custom-twitter-feeds/demo?utm_source=wordpress&utm_campaign=ctf 'Custom Twitter Feeds Pro Demo')
84
-
85
- == Installation ==
86
- 1. Install the Custom Twitter Feeds plugin either via the WordPress plugin directory, or by uploading the files to your web server (in the /wp-content/plugins/ directory).
87
- 2. Activate the Custom Twitter Feeds plugin through the 'Plugins' menu in WordPress.
88
- 3. Navigate to the 'Twitter Feed' settings page to configure your Twitter feed.
89
- 4. Use the shortcode [custom-twitter-feeds] in your page, post or widget to display your Twitter feed.
90
- 5. You can display multiple Twitter feeds with different configurations by specifying the necessary parameters directly in the shortcode: [custom-twitter-feeds hashtag=#smashballoon].
91
-
92
- For simple step-by-step directions on how to set up the Custom Twitter Feeds plugin please refer to our [setup guide](http://smashballoon.com/custom-twitter-feeds/free/?utm_source=wordpress&utm_campaign=ctf 'Custom Twitter Feeds setup guide').
93
-
94
- = Setting up the Free Custom Twitter Feeds WordPress Plugin =
95
-
96
- If you have an issue or question while setting up or using the plugin then please submit a support ticket and we'll get back to you as soon as we can.
97
-
98
- 1) Once you've installed the Custom Twitter Feeds plugin click on the "Twitter Feeds" item in your WordPress menu
99
-
100
- 2) Click on the large blue Twitter login button to get your Twitter Access Token and Twitter Secret. Note; if you have your own Twitter Developer App set up then you can enter your Twitter information manually by enabling the checkbox below the Twitter login button.
101
-
102
- 3) Authorize the Custom Twitter Feeds plugin to read your Tweets.
103
- Note; the plugin does not obtain permission to edit or write to your Twitter account, only to read your Twitter content.
104
-
105
- 4) Twitter sends back your Twitter Access Token and Twitter Secret which are then automatically saved by the Custom Twitter Feeds plugin. This information is required in order to connect to the Twitter API.
106
-
107
- 5) Enter a Twitter screenname to display Tweets from. Alternatively, choose to display Tweets from your Twitter home timeline or a Twitter hashtag.
108
-
109
- 6) Navigate to the Customize and Style pages to customize your Twitter feed.
110
-
111
- 7) Once you've customized your Twitter feed, click on the "Display Your Feed" tab for directions on how to display your Twitter feed (or multiple Twitter feeds).
112
-
113
- 8) Copy the [custom-twitter-feeds] shortcode and paste it into any page, post or widget where you want the Twitter feed to appear.
114
-
115
- 9) You can paste the [custom-twitter-feeds] shortcode directly into your page editor.
116
-
117
- 10) You can use the default WordPress 'Text' widget to display your Twitter Feed in a sidebar or other widget area.
118
-
119
- 11) View your website to see your Twitter feed(s) in all their glory!
120
-
121
- == Frequently Asked Questions ==
122
-
123
- = Can I display multiple Twitter feeds on my site or on the same page? =
124
-
125
- Yep. You can display multiple Twitter feeds by using our built-in shortcode options, for example: `[custom-twitter-feeds screenname="smashballoon" num=3]`. You can add it to any post, page, or widget, to easily display your Twitter feed in a beautiful Twitter widget.
126
-
127
- = How do I embed the Twitter Feed directly into a WordPress page template? =
128
-
129
- You can embed your Twitter feed directly into a template file by using the WordPress [do_shortcode](http://codex.wordpress.org/Function_Reference/do_shortcode) function: `<?php echo do_shortcode('[custom-twitter-feeds]'); ?>`.
130
-
131
- = Is the content of my Twitter feed crawlable by search engines and how does it help improve my SEO? =
132
-
133
- Unlike other Twitter plugins which use iframes to embed your Twitter feed into your page in a widget, the Custom Twitter Feeds uses server-side code to embed your Twitter feed widget content directly into your page. This adds dynamic, search engine crawlable content to your site.
134
-
135
- = Will Custom Twitter Feeds work with W3 Total Cache or other caching plugins? =
136
-
137
- The Custom Twitter Feeds plugin should work in compatibility with most, if not all, caching plugins, but you may need to tweak the settings in order to allow the Twitter feed to update successfully and display your latest Twitter posts. If you are experiencing problems with your Twitter feed widget not updating then try disabling either 'Page Caching' or 'Object Caching' in W3 Total Cache (or any other similar caching plugin) to see whether that fixes the problem and the Twitter feed displays and updates successfully.
138
-
139
- = The font in my Twitter feed isn't inherited from my website =
140
-
141
- Be default your Twitter feed should inherit the font from your website. If this isn't the case then it's possible that something in the theme is preventing this from happening. An issue that we've run into before is that &lt;code&gt; tags are added into the Twitter feed widget HTML by either the theme, another plugin, or perhaps even the custom-twitter-feeds shortcode being wrapped in code tags in your page editor. To fix this;
142
-
143
- 1) First – go to your page editor, click on the 'Text' tab in the top right of the editor box, and check whether the [custom-twitter-feeds] shortcode is being wrapped in &lt;code&gt; tags, like so: &lt;code&gt;[custom-twitter-feeds]&lt;/code&gt;. If it is, then remove them.
144
-
145
- 2) If this doesn't solve the problem then try adding the following to the plugin's "Custom CSS" section (Twitter Feeds > Customize > Custom CSS):
146
-
147
- `#ctf code { font-family: sans-serif; }`
148
-
149
- You can replace the font-family with whatever font your theme is using.
150
-
151
- = Differences between the free version and Pro version of the Custom Twitter Feeds plugin =
152
-
153
- The main differences between the free version and Pro version of the Custom Twitter Feeds plugin are listed below. The extra features available in the Pro version are as follows:
154
-
155
- - Display photos, videos, and gifs in your Tweets, with support for 3rd party services such as YouTube, Vimeo, Vine, and SoundCloud
156
- - View Twitter media in a pop-up lightbox directly on your site
157
- - Display Tweets in a multi-column Masonry layout
158
- - Display your Twitter feed in rotating Carousels / Slideshows
159
- - Twitter Cards (rich, standout links) are displayed in Tweets for links that support them
160
- - Create advanced Twitter "Search" feeds or use the "Mentions" timeline
161
- - Combine Twitter feeds of multiple types (i.e. User feeds and Hashtag Twitter feeds combined)
162
- - Filter feeds by hashtag, word(s), or remove specific tweets
163
- - Autoload more tweets when scrolling to the bottom of the Twitter feed
164
- - Include Tweet replies ("in reply to")
165
-
166
- You can see the demo of the Custom Twitter Feeds Pro version [here](https://smashballoon.com/custom-twitter-feeds/demo/?utm_source=wordpress&utm_campaign=ctf), and a video screencast [here](https://smashballoon.com/custom-twitter-feeds/#watch-video?utm_source=wordpress&utm_campaign=ctf).
167
-
168
- = I'm receiving an error message when trying to display my Twitter feed =
169
-
170
- If you receive an error message when trying to display your Twitter Feed widget then you can use the error reference below to diagnose the issue and find the relevant solution.
171
-
172
- **Twitter Error:**
173
- Could not authenticate you
174
-
175
- **Causes:**
176
- - You may be using Twitter access tokens that are not valid - See #1 below
177
- - You checked the box to enter your own Twitter app information, but one or more of the fields are incorrect - See #2 below
178
-
179
- **Twitter Error:**
180
- Invalid or expired token
181
-
182
- **Causes:**
183
- - You may not have entered your Twitter access tokens or they are not valid - See #1 below
184
-
185
- **Twitter Error:**
186
- Unable to load tweets (with no other explanation)
187
-
188
- **Causes:**
189
- - You may need to raise the number of tweets to retrieve and display in your Twitter feed widget - See #3 below
190
-
191
- **Twitter Error:**
192
- Sorry, that Twitter page does not exist
193
-
194
- **Causes:**
195
- - There may be a typo in the Twitter screen name or hashtag you are attempting to use
196
-
197
- **Twitter Error:**
198
- Over capacity
199
-
200
- **Causes:**
201
- - Twitter's servers are over capacity so the API is unusable. This will correct itself after some time.
202
-
203
- **Twitter Error:**
204
- Connection timed out after 10000 milliseconds
205
-
206
- **Causes:**
207
- - Most likely this is due to your server blocking access to the Twitter API – See #4 below
208
-
209
- **Solutions**
210
-
211
- **#1 - Your Twitter access tokens might not be valid**
212
-
213
- The easiest way to verify this is by going back to the Settings page for the Custom Twitter Feeds plugin and clicking the big blue Twitter login button on the "Configure" tab to get new Twitter access tokens. If you haven't set up your own Twitter App, the only way to use the Custom Twitter Feeds plugin is to click the big blue button to get a Twitter access token and Twitter access token secret that is compatible with the default Twitter client used by Smash Balloon.
214
-
215
- **#2 - You have checked the box to use your own Twitter app information but one or more of the fields are incorrect**
216
-
217
- All four fields, Twitter consumer token, Twitter consumer secret, Twitter access token, and Twitter access token secret, need to come from the Twitter app that you set up on Twitter.com. Try returning to your personal Twitter app management page https://apps.twitter.com/ and confirming that all four fields, Twitter consumer token, Twitter consumer secret, Twitter access token, and Twitter access token secret are entered correctly in the corresponding fields on the Custom Twitter Feeds plugin's "Configure" tab.
218
-
219
- **#3 - You may need to raise the number of tweets to retrieve**
220
-
221
- Navigate to the type of Twitter feed you are trying to display on twitter.com. For example, if you are displaying a Twitter feed from the screenname "smashballoon", go to https://twitter.com/smashballoon. Make sure there are tweets visible. Then click on the link "Tweets & replies". If there are a more recent replies than original tweets, there may be too many tweets being filtered out to display any. Twitter replies are removed by default. You can raise the number of tweets to retrieve initially by going to the Custom Twitter Feed Settings page, "Customize" tab, and navigating to the "Advanced" area. Then raise the "Tweet Multiplier" and test to see if your Twitter feed now displays tweets.
222
-
223
- If you're still having trouble displaying your Tweets after trying the common issues above then please [contact support](https://smashballoon.com/custom-twitter-feeds/support/?utm_source=wordpress&utm_campaign=ctf) for assistance.
224
-
225
- == Screenshots ==
226
-
227
- 1. By default the Custom Twitter Feeds plugin inherits styles from your theme
228
- 2. Display multiple Twitter feeds and customize each one
229
- 3. Custom Twitter Feeds Settings pages
230
- 4. Built in customization settings make customizing your Twitter feed widget easy
231
- 5. Additional styling options are built into the Custom Twitter Feeds plugin
232
- 6. Use handy shortcode options to customize individual Twitter feeds
233
- 7. To display a Twitter feed just copy and paste the shortcode into a Twitter widget or page
234
-
235
- == Changelog ==
236
- = 1.8.3 =
237
- * Tweak: Added "noopener" attribute to hasthags and account tags linked in tweets.
238
- * Fix: Fixed a compatibility issue with the Complianz Cookie Consent plugin integration.
239
- * Fix: Fixed a compatibility issue with the Web Toffee GDPR Cookie Consent plugin integration.
240
- * Fix: Bio text was missing from the header even when this feature was enabled.
241
-
242
- = 1.8.2 =
243
- * Tested with WordPress 5.8 update.
244
- * Fix: "Display your feed" tab was showing the wrong shortcode for the "layout" setting available in the pro version.
245
- * Fix: Fixed an issue with GDPR Cookie Consent by Web Toffee integration.
246
-
247
- = 1.8.1 =
248
- * Fix: Fixed several issues with GDPR Cookie Consent by Web Toffee integration.
249
- * Tweak: Added an easy link to the [Pro demo](https://smashballoon.com/custom-twitter-feeds/demo/)
250
-
251
- = 1.8 =
252
- * New: The locations of the Twitter feeds on your site will now be logged and listed on a single page for easier management. After this feature has been active for awhile, a "Feed Finder" link will appear next to the Feed Type setting on the plugin Settings page which allows you to see a list of all feeds on your site along with their locations.
253
- * New: Added support for WordPress based translations using language files.
254
- * Tweak: Changed the default method of retrieving posts to use the WP_HTTP class.
255
- * Fix: Updated jQuery methods for compatibility with WordPress 5.7.
256
-
257
- = 1.7 =
258
- * New: Integrations with popular GDPR cookie consent solutions added: Cookie Notice by dFactory, GDPR Cookie Consent by WebToffee, Cookiebot by Cybot A/S, Complianz by Really Simple Plugins, and Borlabs Cookie by Borlabs. Visit the Twitter Feed settings page, Customize tab, Advanced section for more information.
259
- * Tweak: Icon font support was discontinued. Only SVGs will be used for icons in feeds.
260
- * Tweak: Twitter Intents JS updated to the latest version.
261
-
262
- = 1.6.1 =
263
- * Tweak: Added support for improved dashboard notices on the plugin settings page.
264
- * Tweak: HTML attribute rel="noopener noreferrer" added to all outbound links for extra security.
265
- * Fix: Fixed PHP warning "non-numeric value encountered" when setting the tweet multiplier option to something that wasn't a number.
266
-
267
- = 1.6 =
268
- * New: Updated icons in the feed to match Twitter.
269
- * Tweak: Several CSS changes to make the Twitter feed text responsive with more themes.
270
- * Fix: Removed debugging code causing issue when saving settings on the "Customize" tab.
271
-
272
- = 1.5.1 =
273
- * New: To help us improve the plugin we have added usage tracking so that we can understand what features and settings are being used, and which features matter to you the most. The plugin will send a report in the background once per week with your plugin settings and basic information about your website environment. No personal or sensitive data is collected (such as email addresses, Twitter account information, license keys, etc). You can opt-out by simply disabling the setting at: Twitter Feed > Customize > Misc > Enable Usage Tracking. See [here](https://smashballoon.com/custom-twitter-feeds/docs/usage-tracking/) for more information.
274
- * Tweak: When a feed is from a Twitter account that has a lot of reply tweets, the plugin will collect more tweets initially for better performance.
275
- * Tweak: Hashtag feeds have retweets filtered out by default for improved feed performance.
276
- * Fix: Several strings updated to be translatable.
277
-
278
- = 1.5 =
279
- * New: Added a "Twitter Feeds" Gutenberg block to use in the block editor, allowing you to easily add a Twitter feed to posts and pages.
280
- * Tweak: Added function ctf_init() to easily rerun JavaScript for the plugin.
281
- * Tweak: Non Feeds for YouTube admin notices are removed when viewing settings pages for Feeds for YouTube.
282
-
283
- = 1.4.1 =
284
- * Tweak: Added aria-label attributes to SVG icons for improved accessibility.
285
- * Fix: Fixed PHP warning that occurred when a URL in the tweet text did not have a full length URL available from the Twitter API.
286
- * Fix: Using the setting to link the tweet text to Twitter would cause nested links and invalid HTML.
287
- * Fix: Fixed Twitter logo not displaying if avatar, author, and date were hidden.
288
-
289
- = 1.4 =
290
- * New: Twitter logo added to the top right of each tweet to fit with Twitter's display guidelines. Customize the logo on the "Style" tab, "Author" area or hide it using the settings at Twitter Feeds > Customize > Show/Hide.
291
- * New: Minified versions of JavaScript and CSS files now used.
292
- * New: JavaScript file added to the source of the page only when the Custom Twitter Feeds shortcode is used on the page.
293
- * New: SVGs used for icons instead of Font Awesome font file. You can switch back to using the Font Awesome font file using the setting at Twitter Feeds > Customize > Advanced.
294
- * New: Tweets that are replies to the same Twitter account or mention the same account can be included in the Twitter feed widget by enabling the setting "Always include replies to self in the feed".
295
- * New: Added a setting to completely disable Twitter intents widget.js file.
296
- * Tweak: The HTML element used for icons has been switched from "i" to "span" for better accessibility.
297
- * Tweak: Changed styling of Twitter media placeholder icons.
298
- * Tweak: Combined widgets.js file with native JavaScript file for the plugin.
299
- * Tweak: Twitter widgets.js will only be enqueued when "actions" are included in the Twitter feed.
300
- * Tweak: Tweet text line height style set to 1.4.
301
- * Fix: Bio text not displaying in header even when enabled.
302
-
303
- = 1.3 =
304
- * New: You can now choose to only display a certain amount of text characters in the Tweets in your Twitter widget, with a clickable link to display the rest. This is set to be 280 characters by default, but can be changed by using the following setting: Twitter Feeds > Customize > Style > Tweet Text > Text Length, or by using the "textlength" shortcode setting.
305
- * Tweak: Twitter intents JavaScript not loaded on the page if tweet actions are removed
306
- * Fix: Removed target="_blank" from div element
307
-
308
- [See changelog for all versions](https://plugins.svn.wordpress.org/custom-twitter-feeds/trunk/changelog.txt).
 
 
 
 
 
1
+ === Custom Twitter Feeds (Tweets Widget) ===
2
+ Author: Smash Balloon
3
+ Contributors: smashballoon, craig-at-smash-balloon
4
+ Support Website: http://smashballoon/custom-twitter-feeds/
5
+ Tags: Twitter, Twitter feed, Twitter Tweets, Twitter widget, Custom Twitter Feed
6
+ Requires at least: 3.4
7
+ Tested up to: 6.0
8
+ Stable tag: 1.8.4
9
+ License: GPLv2 or later
10
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
+
12
+ Custom Twitter Feeds allows you to display completely customizable Twitter Tweets from any user timeline, Twitter hashtag, or home timeline on your website.
13
+
14
+ == Description ==
15
+ Display **completely customizable**, **responsive** and **search engine crawlable** Twitter feeds on your website. The Custom Twitter Feeds plugin will display Tweets that completely match the look and feel of your site and includes tons of customization options!
16
+
17
+ = Features =
18
+ * **Completely Customizable** - by default the Twitter feeds will inherit your theme's styles
19
+ * Twitter feed content is **crawlable by search engines** adding SEO value to your site
20
+ * **Completely responsive and mobile optimized** - your Twitter feeds work on any screen size
21
+ * Display Tweets from any user, your own Twitter account and those you follow, or from a specific hashtag
22
+ * Display **multiple Twitter feeds** from different Twitter users on multiple pages or widgets
23
+ * Post caching means that your Twitter feed loads **lightning fast** and minimizes Twitter API requests
24
+ * **Infinitely load more** of your Tweets with the 'Load More' button
25
+ * Built-in easy to use "Custom Twitter Feeds" Widget makes it easy to display Tweets from any Twitter account
26
+ * Fully internationalized and translatable into any language
27
+ * Display a beautiful header at the top of your Twitter feed
28
+ * Enter your own custom CSS or JavaScript for even deeper customization of your Tweets
29
+
30
+ For simple step-by-step directions on how to set up the Custom Twitter Feeds plugin please refer to our [setup guide](http://smashballoon.com/custom-twitter-feeds/free/?utm_source=wordpress&utm_campaign=ctf 'Custom Twitter Feeds setup guide').
31
+
32
+ = Benefits =
33
+ * **Increase social engagement** between you and your users, customers, or fans
34
+ * **Save time** by using the Custom Twitter Feeds plugin to generate dynamic, search engine crawlable content on your website
35
+ * **Get more follows** by displaying your Twitter content directly on your site
36
+ * **Improve your SEO** as all of that quality keyword-rich Twitter content is directly embedded into your website
37
+ * **Keep users on your site** by letting them reply and like your Tweets directly on your site
38
+ * Display your Twitter content **your way** to perfectly match your website's style
39
+ * The Custom Twitter Feeds plugin is **updated regularly** with new features, bug-fixes and Twitter API changes
40
+ * Support is quick and effective
41
+ * We're dedicated to providing the **most customizable**, **robust** and **well supported** Twitter feed plugin in the world!
42
+
43
+ [View the reviews](https://wordpress.org/support/plugin/custom-twitter-feeds/reviews/) to see what other users are saying about the Custom Twitter Feeds plugin.
44
+
45
+ = Feedback or Support =
46
+ We're dedicated to providing the most robust and well supported Twitter feed plugin in the world, so if you have an issue or any feedback on how to improve the plugin then please [let us know](https://smashballoon.com/custom-twitter-feeds/support/?utm_source=wordpress&utm_campaign=ctf 'Twitter Feed Support').
47
+
48
+ If you like the plugin then please consider leaving a review, as it really helps to support the plugin. If you have an issue then please allow us to help you fix it before leaving a review. Just [let us know](https://smashballoon.com/custom-twitter-feeds/support/?utm_source=wordpress&utm_campaign=ctf 'Twitter Feed Support') what the problem is and we'll get back to you right away.
49
+
50
+ = Featured Reviews =
51
+ "***Great for Customization** - Great plugin! Superb customization options! Am changing all twitter feeds for all my websites to this! I have tried several Twitter plugins so far. This is the best I have come across :)*" - [@nehavivekpatil](https://wordpress.org/support/topic/great-for-customization-2/)
52
+
53
+ "***Excellent plug-in. Excellent support.** - Excellent instructions and guidance. Patient and prompt support for the newbies. Regular updates. You can't lose. Thank you Smash Balloon.* - [@nuspa](https://wordpress.org/support/topic/excellent-plug-in-excellent-support-2/)
54
+
55
+ "***Amazing Support and a Great Twitter Plugin** - I am using the free version of this Twitter plugin and identified a real problem in the display on my website. I emailed support and Craig was all over the fix for me. Seven or so emails later (even on a Sunday) the problem was fixed and Craig was still reaching out to make sure all was well.*
56
+
57
+ *In a world of crappy support for premium plugins, and even worse support for free plugins, this kind of support (and listening to customers) that Craig and Smash Balloon provided me make their premium products worth every penny. In fact, I am going to buy them on my next project. They deserve it.*
58
+
59
+ *Thanks again, Craig!*" - [@kcwebguy](https://wordpress.org/support/topic/amazing-support-and-a-great-twitter-plugin/)
60
+
61
+ "***At last a configurable Twitter Feed that WORKS!** - I have messed with Twitter feeds on sites so many times only to be frustrated. This Plugin is the best I have tried. Stable, configurable and not too hefty a drag on performance. Well done!* - [@mikemac67](https://wordpress.org/support/topic/at-last-a-configurable-feed-that-works/)
62
+
63
+ "***Everything you'll need in a Twitter feed plugin** - We've tried a few Twitter feed plugins across a bunch of our sites, and this one is now our go-to favorite. Most of the others we've tried have either styling or performance issues, but we've been using this plugin for a few months now, and it's been perfect. There are tons of customization options, the feed looks great, and... it works!*
64
+
65
+ *Kudos to the SmashBalloon team on a well supported, tightly developed, feature-packed WordPress Plugin.* - [@laymanlab](https://wordpress.org/support/topic/everything-youll-need-in-a-twitter-feed-plugin/)
66
+
67
+ = Pro Version =
68
+ We recently released a [Pro version](http://smashballoon.com/custom-twitter-feeds/?utm_source=wordpress&utm_campaign=ctf 'Custom Twitter Feeds Pro') which includes some awesome additional features:
69
+
70
+ * Display Tweets from **multiple users or hashtags in the same Twitter feed**
71
+ * Display **photos**, **videos**, and **gifs** and view them in a **popup lightbox** directly on your site
72
+ * Multi-column **Masonry layout** [demo](http://smashballoon.com/custom-twitter-feeds/demo/masonry?utm_source=wordpress&utm_campaign=ctf 'Custom Twitter Feeds Pro Masonry Demo')
73
+ * Allow **filtering** of Twitter timelines include/exclude any/all keywords/hashtags
74
+ * Customizable **Carousels** and **Slideshows** of your Tweets
75
+ * Fully functional Twitter **search endpoint**
76
+ * Display Tweets you're mentioned in
77
+ * Tweet-specific **moderation system**
78
+ * Visual **Twitter cards** displayed with links which support them
79
+ * Include **Tweet replies** (in reply to tweets)
80
+ * **Combine multiple Twitter feeds** into one
81
+ * **Autoload more Tweets** when scrolling
82
+
83
+ Try the Pro version [demo here](http://smashballoon.com/custom-twitter-feeds/demo?utm_source=wordpress&utm_campaign=ctf 'Custom Twitter Feeds Pro Demo')
84
+
85
+ == Installation ==
86
+ 1. Install the Custom Twitter Feeds plugin either via the WordPress plugin directory, or by uploading the files to your web server (in the /wp-content/plugins/ directory).
87
+ 2. Activate the Custom Twitter Feeds plugin through the 'Plugins' menu in WordPress.
88
+ 3. Navigate to the 'Twitter Feed' settings page to configure your Twitter feed.
89
+ 4. Use the shortcode [custom-twitter-feeds] in your page, post or widget to display your Twitter feed.
90
+ 5. You can display multiple Twitter feeds with different configurations by specifying the necessary parameters directly in the shortcode: [custom-twitter-feeds hashtag=#smashballoon].
91
+
92
+ For simple step-by-step directions on how to set up the Custom Twitter Feeds plugin please refer to our [setup guide](http://smashballoon.com/custom-twitter-feeds/free/?utm_source=wordpress&utm_campaign=ctf 'Custom Twitter Feeds setup guide').
93
+
94
+ = Setting up the Free Custom Twitter Feeds WordPress Plugin =
95
+
96
+ If you have an issue or question while setting up or using the plugin then please submit a support ticket and we'll get back to you as soon as we can.
97
+
98
+ 1) Once you've installed the Custom Twitter Feeds plugin click on the "Twitter Feeds" item in your WordPress menu
99
+
100
+ 2) Click on the large blue Twitter login button to get your Twitter Access Token and Twitter Secret. Note; if you have your own Twitter Developer App set up then you can enter your Twitter information manually by enabling the checkbox below the Twitter login button.
101
+
102
+ 3) Authorize the Custom Twitter Feeds plugin to read your Tweets.
103
+ Note; the plugin does not obtain permission to edit or write to your Twitter account, only to read your Twitter content.
104
+
105
+ 4) Twitter sends back your Twitter Access Token and Twitter Secret which are then automatically saved by the Custom Twitter Feeds plugin. This information is required in order to connect to the Twitter API.
106
+
107
+ 5) Enter a Twitter screenname to display Tweets from. Alternatively, choose to display Tweets from your Twitter home timeline or a Twitter hashtag.
108
+
109
+ 6) Navigate to the Customize and Style pages to customize your Twitter feed.
110
+
111
+ 7) Once you've customized your Twitter feed, click on the "Display Your Feed" tab for directions on how to display your Twitter feed (or multiple Twitter feeds).
112
+
113
+ 8) Copy the [custom-twitter-feeds] shortcode and paste it into any page, post or widget where you want the Twitter feed to appear.
114
+
115
+ 9) You can paste the [custom-twitter-feeds] shortcode directly into your page editor.
116
+
117
+ 10) You can use the default WordPress 'Text' widget to display your Twitter Feed in a sidebar or other widget area.
118
+
119
+ 11) View your website to see your Twitter feed(s) in all their glory!
120
+
121
+ == Frequently Asked Questions ==
122
+
123
+ = Can I display multiple Twitter feeds on my site or on the same page? =
124
+
125
+ Yep. You can display multiple Twitter feeds by using our built-in shortcode options, for example: `[custom-twitter-feeds screenname="smashballoon" num=3]`. You can add it to any post, page, or widget, to easily display your Twitter feed in a beautiful Twitter widget.
126
+
127
+ = How do I embed the Twitter Feed directly into a WordPress page template? =
128
+
129
+ You can embed your Twitter feed directly into a template file by using the WordPress [do_shortcode](http://codex.wordpress.org/Function_Reference/do_shortcode) function: `<?php echo do_shortcode('[custom-twitter-feeds]'); ?>`.
130
+
131
+ = Is the content of my Twitter feed crawlable by search engines and how does it help improve my SEO? =
132
+
133
+ Unlike other Twitter plugins which use iframes to embed your Twitter feed into your page in a widget, the Custom Twitter Feeds uses server-side code to embed your Twitter feed widget content directly into your page. This adds dynamic, search engine crawlable content to your site.
134
+
135
+ = Will Custom Twitter Feeds work with W3 Total Cache or other caching plugins? =
136
+
137
+ The Custom Twitter Feeds plugin should work in compatibility with most, if not all, caching plugins, but you may need to tweak the settings in order to allow the Twitter feed to update successfully and display your latest Twitter posts. If you are experiencing problems with your Twitter feed widget not updating then try disabling either 'Page Caching' or 'Object Caching' in W3 Total Cache (or any other similar caching plugin) to see whether that fixes the problem and the Twitter feed displays and updates successfully.
138
+
139
+ = The font in my Twitter feed isn't inherited from my website =
140
+
141
+ Be default your Twitter feed should inherit the font from your website. If this isn't the case then it's possible that something in the theme is preventing this from happening. An issue that we've run into before is that &lt;code&gt; tags are added into the Twitter feed widget HTML by either the theme, another plugin, or perhaps even the custom-twitter-feeds shortcode being wrapped in code tags in your page editor. To fix this;
142
+
143
+ 1) First – go to your page editor, click on the 'Text' tab in the top right of the editor box, and check whether the [custom-twitter-feeds] shortcode is being wrapped in &lt;code&gt; tags, like so: &lt;code&gt;[custom-twitter-feeds]&lt;/code&gt;. If it is, then remove them.
144
+
145
+ 2) If this doesn't solve the problem then try adding the following to the plugin's "Custom CSS" section (Twitter Feeds > Customize > Custom CSS):
146
+
147
+ `#ctf code { font-family: sans-serif; }`
148
+
149
+ You can replace the font-family with whatever font your theme is using.
150
+
151
+ = Differences between the free version and Pro version of the Custom Twitter Feeds plugin =
152
+
153
+ The main differences between the free version and Pro version of the Custom Twitter Feeds plugin are listed below. The extra features available in the Pro version are as follows:
154
+
155
+ - Display photos, videos, and gifs in your Tweets, with support for 3rd party services such as YouTube, Vimeo, Vine, and SoundCloud
156
+ - View Twitter media in a pop-up lightbox directly on your site
157
+ - Display Tweets in a multi-column Masonry layout
158
+ - Display your Twitter feed in rotating Carousels / Slideshows
159
+ - Twitter Cards (rich, standout links) are displayed in Tweets for links that support them
160
+ - Create advanced Twitter "Search" feeds or use the "Mentions" timeline
161
+ - Combine Twitter feeds of multiple types (i.e. User feeds and Hashtag Twitter feeds combined)
162
+ - Filter feeds by hashtag, word(s), or remove specific tweets
163
+ - Autoload more tweets when scrolling to the bottom of the Twitter feed
164
+ - Include Tweet replies ("in reply to")
165
+
166
+ You can see the demo of the Custom Twitter Feeds Pro version [here](https://smashballoon.com/custom-twitter-feeds/demo/?utm_source=wordpress&utm_campaign=ctf), and a video screencast [here](https://smashballoon.com/custom-twitter-feeds/#watch-video?utm_source=wordpress&utm_campaign=ctf).
167
+
168
+ = I'm receiving an error message when trying to display my Twitter feed =
169
+
170
+ If you receive an error message when trying to display your Twitter Feed widget then you can use the error reference below to diagnose the issue and find the relevant solution.
171
+
172
+ **Twitter Error:**
173
+ Could not authenticate you
174
+
175
+ **Causes:**
176
+ - You may be using Twitter access tokens that are not valid - See #1 below
177
+ - You checked the box to enter your own Twitter app information, but one or more of the fields are incorrect - See #2 below
178
+
179
+ **Twitter Error:**
180
+ Invalid or expired token
181
+
182
+ **Causes:**
183
+ - You may not have entered your Twitter access tokens or they are not valid - See #1 below
184
+
185
+ **Twitter Error:**
186
+ Unable to load tweets (with no other explanation)
187
+
188
+ **Causes:**
189
+ - You may need to raise the number of tweets to retrieve and display in your Twitter feed widget - See #3 below
190
+
191
+ **Twitter Error:**
192
+ Sorry, that Twitter page does not exist
193
+
194
+ **Causes:**
195
+ - There may be a typo in the Twitter screen name or hashtag you are attempting to use
196
+
197
+ **Twitter Error:**
198
+ Over capacity
199
+
200
+ **Causes:**
201
+ - Twitter's servers are over capacity so the API is unusable. This will correct itself after some time.
202
+
203
+ **Twitter Error:**
204
+ Connection timed out after 10000 milliseconds
205
+
206
+ **Causes:**
207
+ - Most likely this is due to your server blocking access to the Twitter API – See #4 below
208
+
209
+ **Solutions**
210
+
211
+ **#1 - Your Twitter access tokens might not be valid**
212
+
213
+ The easiest way to verify this is by going back to the Settings page for the Custom Twitter Feeds plugin and clicking the big blue Twitter login button on the "Configure" tab to get new Twitter access tokens. If you haven't set up your own Twitter App, the only way to use the Custom Twitter Feeds plugin is to click the big blue button to get a Twitter access token and Twitter access token secret that is compatible with the default Twitter client used by Smash Balloon.
214
+
215
+ **#2 - You have checked the box to use your own Twitter app information but one or more of the fields are incorrect**
216
+
217
+ All four fields, Twitter consumer token, Twitter consumer secret, Twitter access token, and Twitter access token secret, need to come from the Twitter app that you set up on Twitter.com. Try returning to your personal Twitter app management page https://apps.twitter.com/ and confirming that all four fields, Twitter consumer token, Twitter consumer secret, Twitter access token, and Twitter access token secret are entered correctly in the corresponding fields on the Custom Twitter Feeds plugin's "Configure" tab.
218
+
219
+ **#3 - You may need to raise the number of tweets to retrieve**
220
+
221
+ Navigate to the type of Twitter feed you are trying to display on twitter.com. For example, if you are displaying a Twitter feed from the screenname "smashballoon", go to https://twitter.com/smashballoon. Make sure there are tweets visible. Then click on the link "Tweets & replies". If there are a more recent replies than original tweets, there may be too many tweets being filtered out to display any. Twitter replies are removed by default. You can raise the number of tweets to retrieve initially by going to the Custom Twitter Feed Settings page, "Customize" tab, and navigating to the "Advanced" area. Then raise the "Tweet Multiplier" and test to see if your Twitter feed now displays tweets.
222
+
223
+ If you're still having trouble displaying your Tweets after trying the common issues above then please [contact support](https://smashballoon.com/custom-twitter-feeds/support/?utm_source=wordpress&utm_campaign=ctf) for assistance.
224
+
225
+ == Screenshots ==
226
+
227
+ 1. By default the Custom Twitter Feeds plugin inherits styles from your theme
228
+ 2. Display multiple Twitter feeds and customize each one
229
+ 3. Custom Twitter Feeds Settings pages
230
+ 4. Built in customization settings make customizing your Twitter feed widget easy
231
+ 5. Additional styling options are built into the Custom Twitter Feeds plugin
232
+ 6. Use handy shortcode options to customize individual Twitter feeds
233
+ 7. To display a Twitter feed just copy and paste the shortcode into a Twitter widget or page
234
+
235
+ == Changelog ==
236
+ = 1.8.4 =
237
+ * Tweak: When clearing the Twitter cache, caches from common page caching solutions are now also cleared.
238
+ * Tweak: Changed capability check from 'edit_posts' to 'manage_custom_twitter_feeds' when clearing the Twitter cache using AJAX.
239
+ * Tweak: An alert bubble is added to the Twitter Feeds menu item when there are new notifications available.
240
+
241
+ = 1.8.3 =
242
+ * Tweak: Added "noopener" attribute to hasthags and account tags linked in tweets.
243
+ * Fix: Fixed a compatibility issue with the Complianz Cookie Consent plugin integration.
244
+ * Fix: Fixed a compatibility issue with the Web Toffee GDPR Cookie Consent plugin integration.
245
+ * Fix: Bio text was missing from the header even when this feature was enabled.
246
+
247
+ = 1.8.2 =
248
+ * Tested with WordPress 5.8 update.
249
+ * Fix: "Display your feed" tab was showing the wrong shortcode for the "layout" setting available in the pro version.
250
+ * Fix: Fixed an issue with GDPR Cookie Consent by Web Toffee integration.
251
+
252
+ = 1.8.1 =
253
+ * Fix: Fixed several issues with GDPR Cookie Consent by Web Toffee integration.
254
+ * Tweak: Added an easy link to the [Pro demo](https://smashballoon.com/custom-twitter-feeds/demo/)
255
+
256
+ = 1.8 =
257
+ * New: The locations of the Twitter feeds on your site will now be logged and listed on a single page for easier management. After this feature has been active for awhile, a "Feed Finder" link will appear next to the Feed Type setting on the plugin Settings page which allows you to see a list of all feeds on your site along with their locations.
258
+ * New: Added support for WordPress based translations using language files.
259
+ * Tweak: Changed the default method of retrieving posts to use the WP_HTTP class.
260
+ * Fix: Updated jQuery methods for compatibility with WordPress 5.7.
261
+
262
+ = 1.7 =
263
+ * New: Integrations with popular GDPR cookie consent solutions added: Cookie Notice by dFactory, GDPR Cookie Consent by WebToffee, Cookiebot by Cybot A/S, Complianz by Really Simple Plugins, and Borlabs Cookie by Borlabs. Visit the Twitter Feed settings page, Customize tab, Advanced section for more information.
264
+ * Tweak: Icon font support was discontinued. Only SVGs will be used for icons in feeds.
265
+ * Tweak: Twitter Intents JS updated to the latest version.
266
+
267
+ = 1.6.1 =
268
+ * Tweak: Added support for improved dashboard notices on the plugin settings page.
269
+ * Tweak: HTML attribute rel="noopener noreferrer" added to all outbound links for extra security.
270
+ * Fix: Fixed PHP warning "non-numeric value encountered" when setting the tweet multiplier option to something that wasn't a number.
271
+
272
+ = 1.6 =
273
+ * New: Updated icons in the feed to match Twitter.
274
+ * Tweak: Several CSS changes to make the Twitter feed text responsive with more themes.
275
+ * Fix: Removed debugging code causing issue when saving settings on the "Customize" tab.
276
+
277
+ = 1.5.1 =
278
+ * New: To help us improve the plugin we have added usage tracking so that we can understand what features and settings are being used, and which features matter to you the most. The plugin will send a report in the background once per week with your plugin settings and basic information about your website environment. No personal or sensitive data is collected (such as email addresses, Twitter account information, license keys, etc). You can opt-out by simply disabling the setting at: Twitter Feed > Customize > Misc > Enable Usage Tracking. See [here](https://smashballoon.com/custom-twitter-feeds/docs/usage-tracking/) for more information.
279
+ * Tweak: When a feed is from a Twitter account that has a lot of reply tweets, the plugin will collect more tweets initially for better performance.
280
+ * Tweak: Hashtag feeds have retweets filtered out by default for improved feed performance.
281
+ * Fix: Several strings updated to be translatable.
282
+
283
+ = 1.5 =
284
+ * New: Added a "Twitter Feeds" Gutenberg block to use in the block editor, allowing you to easily add a Twitter feed to posts and pages.
285
+ * Tweak: Added function ctf_init() to easily rerun JavaScript for the plugin.
286
+ * Tweak: Non Feeds for YouTube admin notices are removed when viewing settings pages for Feeds for YouTube.
287
+
288
+ = 1.4.1 =
289
+ * Tweak: Added aria-label attributes to SVG icons for improved accessibility.
290
+ * Fix: Fixed PHP warning that occurred when a URL in the tweet text did not have a full length URL available from the Twitter API.
291
+ * Fix: Using the setting to link the tweet text to Twitter would cause nested links and invalid HTML.
292
+ * Fix: Fixed Twitter logo not displaying if avatar, author, and date were hidden.
293
+
294
+ = 1.4 =
295
+ * New: Twitter logo added to the top right of each tweet to fit with Twitter's display guidelines. Customize the logo on the "Style" tab, "Author" area or hide it using the settings at Twitter Feeds > Customize > Show/Hide.
296
+ * New: Minified versions of JavaScript and CSS files now used.
297
+ * New: JavaScript file added to the source of the page only when the Custom Twitter Feeds shortcode is used on the page.
298
+ * New: SVGs used for icons instead of Font Awesome font file. You can switch back to using the Font Awesome font file using the setting at Twitter Feeds > Customize > Advanced.
299
+ * New: Tweets that are replies to the same Twitter account or mention the same account can be included in the Twitter feed widget by enabling the setting "Always include replies to self in the feed".
300
+ * New: Added a setting to completely disable Twitter intents widget.js file.
301
+ * Tweak: The HTML element used for icons has been switched from "i" to "span" for better accessibility.
302
+ * Tweak: Changed styling of Twitter media placeholder icons.
303
+ * Tweak: Combined widgets.js file with native JavaScript file for the plugin.
304
+ * Tweak: Twitter widgets.js will only be enqueued when "actions" are included in the Twitter feed.
305
+ * Tweak: Tweet text line height style set to 1.4.
306
+ * Fix: Bio text not displaying in header even when enabled.
307
+
308
+ = 1.3 =
309
+ * New: You can now choose to only display a certain amount of text characters in the Tweets in your Twitter widget, with a clickable link to display the rest. This is set to be 280 characters by default, but can be changed by using the following setting: Twitter Feeds > Customize > Style > Tweet Text > Text Length, or by using the "textlength" shortcode setting.
310
+ * Tweak: Twitter intents JavaScript not loaded on the page if tweet actions are removed
311
+ * Fix: Removed target="_blank" from div element
312
+
313
+ [See changelog for all versions](https://plugins.svn.wordpress.org/custom-twitter-feeds/trunk/changelog.txt).
changelog.txt CHANGED
@@ -1,15 +1,4 @@
1
  == Changelog ==
2
- = 1.8.3 =
3
- * Tweak: Added "noopener" attribute to hasthags and account tags linked in tweets.
4
- * Fix: Fixed a compatibility issue with the Complianz Cookie Consent plugin integration.
5
- * Fix: Fixed a compatibility issue with the Web Toffee GDPR Cookie Consent plugin integration.
6
- * Fix: Bio text was missing from the header even when this feature was enabled.
7
-
8
- = 1.8.2 =
9
- * Tested with WordPress 5.8 update.
10
- * Fix: "Display your feed" tab was showing the wrong shortcode for the "layout" setting available in the pro version.
11
- * Fix: Fixed an issue with GDPR Cookie Consent by Web Toffee integration.
12
-
13
  = 1.8.1 =
14
  * Fix: Fixed several issues with GDPR Cookie Consent by Web Toffee integration.
15
 
1
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
2
  = 1.8.1 =
3
  * Fix: Fixed several issues with GDPR Cookie Consent by Web Toffee integration.
4
 
css/admin-notifications.css CHANGED
File without changes
css/ctf-admin-styles.css CHANGED
@@ -1328,4 +1328,21 @@
1328
  display: table;
1329
  content: "";
1330
  clear: both;
1331
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1328
  display: table;
1329
  content: "";
1330
  clear: both;
1331
+ }
1332
+ .ctf-notice-alert {
1333
+ display: inline-block;
1334
+ position: absolute;
1335
+ vertical-align: top;
1336
+ box-sizing: border-box;
1337
+ margin: 1px 0 0 4px;
1338
+ padding: 0 5px;
1339
+ min-width: 18px;
1340
+ height: 18px;
1341
+ border-radius: 9px;
1342
+ background-color: #d63638;
1343
+ color: #fff;
1344
+ font-size: 11px;
1345
+ line-height: 1.6;
1346
+ text-align: center;
1347
+ z-index: 26;
1348
+ }
custom-twitter-feed.php CHANGED
@@ -3,13 +3,13 @@
3
  Plugin Name: Custom Twitter Feeds
4
  Plugin URI: http://smashballoon.com/custom-twitter-feeds
5
  Description: Customizable Twitter feeds for your website
6
- Version: 1.8.3
7
  Author: Smash Balloon
8
  Author URI: http://smashballoon.com/
9
  Text Domain: custom-twitter-feeds
10
  */
11
  /*
12
- Copyright 2021 Smash Balloon LLC (email : hey@smashballoon.com)
13
  This program is free software; you can redistribute it and/or modify
14
  it under the terms of the GNU General Public License as published by
15
  the Free Software Foundation; either version 2 of the License, or
@@ -24,7 +24,7 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24
  */
25
 
26
  define( 'CTF_URL', plugin_dir_path( __FILE__ ) );
27
- define( 'CTF_VERSION', '1.8.3' );
28
  define( 'CTF_TITLE', 'Custom Twitter Feeds' );
29
  define( 'CTF_JS_URL', plugins_url( '/js/ctf-scripts.min.js?ver=' . CTF_VERSION , __FILE__ ) );
30
  define( 'OAUTH_PROCESSOR_URL', 'https://api.smashballoon.com/twitter-login.php?return_uri=' );
@@ -171,7 +171,7 @@ if ( is_admin() ) {
171
  * Generates the Twitter feed wherever the shortcode is placed
172
  *
173
  * @param $atts array shortcode arguments
174
- *
175
  * @return string
176
  */
177
  function ctf_init( $atts ) {
@@ -189,7 +189,7 @@ function ctf_init( $atts ) {
189
  return $twitter_feed->getErrorHtml();
190
  } else {
191
  $twitter_feed->maybeCacheTweets();
192
-
193
  $feed_html = $twitter_feed->getFeedOpeningHtml();
194
  $feed_html .= $twitter_feed->getTweetSetHtml();
195
  $feed_html .= $twitter_feed->getFeedClosingHtml();
@@ -326,7 +326,7 @@ function ctf_show( $part, $feed_options ) {
326
  */
327
  function ctf_get_formatted_date( $raw_date, $feed_options, $utc_offset ) {
328
  include_once( CTF_URL . '/inc/CtfDateTime.php' );
329
-
330
  $options = get_option( 'ctf_options' );
331
  $timezone = isset( $options['timezone'] ) ? $options['timezone'] : 'default';
332
  // use php DateTimeZone class to handle the date formatting and offsets
@@ -491,18 +491,18 @@ function ctf_get_fa_el( $icon ) {
491
  * retrieved with the big blue button
492
  */
493
  function ctf_auto_save_tokens() {
494
- if ( current_user_can( 'edit_posts' ) ) {
495
- wp_cache_delete ( 'alloptions', 'options' );
 
 
496
 
497
- $options = get_option( 'ctf_options', array() );
498
 
499
- $options['access_token'] = sanitize_text_field( $_POST['access_token'] );
500
- $options['access_token_secret'] = sanitize_text_field( $_POST['access_token_secret'] );
501
 
502
- update_option( 'ctf_options', $options );
503
- delete_transient( 'ctf_reauthenticate' );
504
- die();
505
- }
506
  die();
507
  }
508
  add_action( 'wp_ajax_ctf_auto_save_tokens', 'ctf_auto_save_tokens' );
@@ -528,10 +528,15 @@ function ctf_clear_cache() {
528
  WHERE `option_name` LIKE ('%\_transient\_timeout\_ctf\_%')
529
  ");
530
 
 
 
531
  }
532
  add_action( 'ctf_cron_job', 'ctf_clear_cache' );
533
 
534
  function ctf_clear_cache_admin() {
 
 
 
535
 
536
  //Delete all transients
537
  global $wpdb;
@@ -547,6 +552,9 @@ function ctf_clear_cache_admin() {
547
  WHERE `option_name` LIKE ('%\_transient\_timeout\_ctf\_%')
548
  ");
549
 
 
 
 
550
  }
551
  add_action( 'wp_ajax_ctf_clear_cache_admin', 'ctf_clear_cache_admin' );
552
 
@@ -557,22 +565,22 @@ add_action( 'wp_ajax_ctf_clear_cache_admin', 'ctf_clear_cache_admin' );
557
  */
558
 
559
  function ctf_clear_persistent_cache() {
560
- if ( current_user_can( 'edit_posts' ) ) {
561
- //Delete all persistent caches (start with ctf_!)
562
- global $wpdb;
563
- $table_name = $wpdb->prefix . "options";
564
- $result = $wpdb->query("
565
- DELETE
566
- FROM $table_name
567
- WHERE `option_name` LIKE ('%ctf\_\!%')
568
- ");
569
- delete_option( 'ctf_cache_list' );
570
- return $result;
571
- } else {
572
- return false;
573
- }
574
-
575
- die();
576
  }
577
  add_action( 'wp_ajax_ctf_clear_persistent_cache', 'ctf_clear_persistent_cache' );
578
 
@@ -732,4 +740,32 @@ function ctf_get_database_settings() {
732
 
733
  return $options;
734
 
735
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  Plugin Name: Custom Twitter Feeds
4
  Plugin URI: http://smashballoon.com/custom-twitter-feeds
5
  Description: Customizable Twitter feeds for your website
6
+ Version: 1.8.4
7
  Author: Smash Balloon
8
  Author URI: http://smashballoon.com/
9
  Text Domain: custom-twitter-feeds
10
  */
11
  /*
12
+ Copyright 2022 Smash Balloon LLC (email : hey@smashballoon.com)
13
  This program is free software; you can redistribute it and/or modify
14
  it under the terms of the GNU General Public License as published by
15
  the Free Software Foundation; either version 2 of the License, or
24
  */
25
 
26
  define( 'CTF_URL', plugin_dir_path( __FILE__ ) );
27
+ define( 'CTF_VERSION', '1.8.4' );
28
  define( 'CTF_TITLE', 'Custom Twitter Feeds' );
29
  define( 'CTF_JS_URL', plugins_url( '/js/ctf-scripts.min.js?ver=' . CTF_VERSION , __FILE__ ) );
30
  define( 'OAUTH_PROCESSOR_URL', 'https://api.smashballoon.com/twitter-login.php?return_uri=' );
171
  * Generates the Twitter feed wherever the shortcode is placed
172
  *
173
  * @param $atts array shortcode arguments
174
+ *
175
  * @return string
176
  */
177
  function ctf_init( $atts ) {
189
  return $twitter_feed->getErrorHtml();
190
  } else {
191
  $twitter_feed->maybeCacheTweets();
192
+
193
  $feed_html = $twitter_feed->getFeedOpeningHtml();
194
  $feed_html .= $twitter_feed->getTweetSetHtml();
195
  $feed_html .= $twitter_feed->getFeedClosingHtml();
326
  */
327
  function ctf_get_formatted_date( $raw_date, $feed_options, $utc_offset ) {
328
  include_once( CTF_URL . '/inc/CtfDateTime.php' );
329
+
330
  $options = get_option( 'ctf_options' );
331
  $timezone = isset( $options['timezone'] ) ? $options['timezone'] : 'default';
332
  // use php DateTimeZone class to handle the date formatting and offsets
491
  * retrieved with the big blue button
492
  */
493
  function ctf_auto_save_tokens() {
494
+ if ( ! current_user_can( 'manage_custom_twitter_feeds_options' ) ) {
495
+ wp_send_json_error();
496
+ }
497
+ wp_cache_delete ( 'alloptions', 'options' );
498
 
499
+ $options = get_option( 'ctf_options', array() );
500
 
501
+ $options['access_token'] = sanitize_text_field( $_POST['access_token'] );
502
+ $options['access_token_secret'] = sanitize_text_field( $_POST['access_token_secret'] );
503
 
504
+ update_option( 'ctf_options', $options );
505
+ delete_transient( 'ctf_reauthenticate' );
 
 
506
  die();
507
  }
508
  add_action( 'wp_ajax_ctf_auto_save_tokens', 'ctf_auto_save_tokens' );
528
  WHERE `option_name` LIKE ('%\_transient\_timeout\_ctf\_%')
529
  ");
530
 
531
+ ctf_clear_page_caches();
532
+
533
  }
534
  add_action( 'ctf_cron_job', 'ctf_clear_cache' );
535
 
536
  function ctf_clear_cache_admin() {
537
+ if ( ! current_user_can( 'manage_custom_twitter_feeds_options' ) ) {
538
+ wp_send_json_error();
539
+ }
540
 
541
  //Delete all transients
542
  global $wpdb;
552
  WHERE `option_name` LIKE ('%\_transient\_timeout\_ctf\_%')
553
  ");
554
 
555
+ ctf_clear_page_caches();
556
+
557
+ wp_send_json_success();
558
  }
559
  add_action( 'wp_ajax_ctf_clear_cache_admin', 'ctf_clear_cache_admin' );
560
 
565
  */
566
 
567
  function ctf_clear_persistent_cache() {
568
+ if ( ! current_user_can( 'manage_custom_twitter_feeds_options' ) ) {
569
+ wp_send_json_error();
570
+ }
571
+ //Delete all persistent caches (start with ctf_!)
572
+ global $wpdb;
573
+ $table_name = $wpdb->prefix . "options";
574
+ $result = $wpdb->query("
575
+ DELETE
576
+ FROM $table_name
577
+ WHERE `option_name` LIKE ('%ctf\_\!%')
578
+ ");
579
+ delete_option( 'ctf_cache_list' );
580
+
581
+ ctf_clear_page_caches();
582
+
583
+ wp_send_json_success();
584
  }
585
  add_action( 'wp_ajax_ctf_clear_persistent_cache', 'ctf_clear_persistent_cache' );
586
 
740
 
741
  return $options;
742
 
743
+ }
744
+
745
+ function ctf_clear_page_caches() {
746
+ //Clear cache of major caching plugins
747
+ if(isset($GLOBALS['wp_fastest_cache']) && method_exists($GLOBALS['wp_fastest_cache'], 'deleteCache')){
748
+ $GLOBALS['wp_fastest_cache']->deleteCache();
749
+ }
750
+ //WP Super Cache
751
+ if (function_exists('wp_cache_clear_cache')) {
752
+ wp_cache_clear_cache();
753
+ }
754
+ //W3 Total Cache
755
+ if (function_exists('w3tc_flush_all')) {
756
+ w3tc_flush_all();
757
+ }
758
+ if (function_exists('sg_cachepress_purge_cache')) {
759
+ sg_cachepress_purge_cache();
760
+ }
761
+
762
+ // Litespeed Cache (older method)
763
+ if ( method_exists( 'LiteSpeed_Cache_API', 'purge' ) ) {
764
+ LiteSpeed_Cache_API::purge( 'esi.custom-twitter-feeds' );
765
+ }
766
+
767
+ // Litespeed Cache (new method)
768
+ if(has_action('litespeed_purge')) {
769
+ do_action( 'litespeed_purge', 'esi.custom-twitter-feeds' );
770
+ }
771
+ }
img/ctf-icon.jpg ADDED
Binary file
inc/CtfAdmin.php CHANGED
@@ -16,15 +16,15 @@ class CtfAdmin
16
  {
17
  add_action( 'admin_menu', array( $this, 'add_menu' ) );
18
  add_action( 'admin_init', array( $this, 'options_page_init' ) );
19
- add_action( 'admin_init', array( $this, 'ctf_current_user_can' ) );
20
  }
21
 
22
- public function ctf_current_user_can( $cap ) {
23
  if ( $cap === 'manage_custom_twitter_feeds_options' ) {
24
  $cap = current_user_can( 'manage_custom_twitter_feeds_options' ) ? 'manage_custom_twitter_feeds_options' : 'manage_options';
25
  }
26
  $cap = apply_filters( 'ctf_settings_pages_capability', $cap );
27
-
28
  return current_user_can( $cap );
29
  }
30
 
@@ -33,10 +33,16 @@ class CtfAdmin
33
  $cap = current_user_can( 'manage_custom_twitter_feeds_options' ) ? 'manage_custom_twitter_feeds_options' : 'manage_options';
34
 
35
  $cap = apply_filters( 'ctf_settings_pages_capability', $cap );
 
 
36
 
 
 
 
 
37
  add_menu_page(
38
  'Twitter Feeds',
39
- 'Twitter Feeds',
40
  $cap,
41
  'custom-twitter-feeds',
42
  array( $this, 'create_options_page' ),
@@ -117,7 +123,7 @@ class CtfAdmin
117
  );
118
 
119
  }
120
-
121
 
122
  public static function get_active_tab( $tab = '' )
123
  {
@@ -525,7 +531,7 @@ public function social_wall_page() {
525
  Eg: include=author,date
526
  Eg: exclude=actions
527
  Options: avatar, author,
528
- logo, text, placeholder,
529
  date, actions, linkbox </code>', // label for the input field
530
  'callback' => 'include_exclude_checkbox', // name of the function that outputs the html
531
  'page' => 'ctf_options_showandhide', // matches the section name
@@ -2092,4 +2098,4 @@ public function social_wall_page() {
2092
 
2093
  return $new;
2094
  }
2095
- }
16
  {
17
  add_action( 'admin_menu', array( $this, 'add_menu' ) );
18
  add_action( 'admin_init', array( $this, 'options_page_init' ) );
19
+ add_action( 'admin_init', array( $this, 'ctf_current_user_can' ) );
20
  }
21
 
22
+ public function ctf_current_user_can( $cap ) {
23
  if ( $cap === 'manage_custom_twitter_feeds_options' ) {
24
  $cap = current_user_can( 'manage_custom_twitter_feeds_options' ) ? 'manage_custom_twitter_feeds_options' : 'manage_options';
25
  }
26
  $cap = apply_filters( 'ctf_settings_pages_capability', $cap );
27
+
28
  return current_user_can( $cap );
29
  }
30
 
33
  $cap = current_user_can( 'manage_custom_twitter_feeds_options' ) ? 'manage_custom_twitter_feeds_options' : 'manage_options';
34
 
35
  $cap = apply_filters( 'ctf_settings_pages_capability', $cap );
36
+ $ctf_notifications = new CTF_Notifications();
37
+ $notifications = $ctf_notifications->get();
38
 
39
+ $notice_bubble = '';
40
+ if ( empty( $notice ) && ! empty( $notifications ) && is_array( $notifications ) ) {
41
+ $notice_bubble = ' <span class="ctf-notice-alert"><span>'.count( $notifications ).'</span></span>';
42
+ }
43
  add_menu_page(
44
  'Twitter Feeds',
45
+ 'Twitter Feeds' . $notice_bubble,
46
  $cap,
47
  'custom-twitter-feeds',
48
  array( $this, 'create_options_page' ),
123
  );
124
 
125
  }
126
+
127
 
128
  public static function get_active_tab( $tab = '' )
129
  {
531
  Eg: include=author,date
532
  Eg: exclude=actions
533
  Options: avatar, author,
534
+ logo, text, placeholder,
535
  date, actions, linkbox </code>', // label for the input field
536
  'callback' => 'include_exclude_checkbox', // name of the function that outputs the html
537
  'page' => 'ctf_options_showandhide', // matches the section name
2098
 
2099
  return $new;
2100
  }
2101
+ }
inc/CtfFeed.php CHANGED
@@ -1342,7 +1342,7 @@ class CtfFeed
1342
  return $twitter_connect->performRequest();
1343
  }
1344
 
1345
- private function getTweetsSinceID( $since_id, $end_point = 'search', $feed_term, $count )
1346
  {
1347
  // Only can be set in the options page
1348
  $request_settings = array(
1342
  return $twitter_connect->performRequest();
1343
  }
1344
 
1345
+ private function getTweetsSinceID( $since_id, $end_point = 'search', $feed_term = '', $count = 0 )
1346
  {
1347
  // Only can be set in the options page
1348
  $request_settings = array(
inc/admin-hooks.php CHANGED
@@ -343,6 +343,10 @@ function ctf_add_filter_section_to_customize() {
343
  }
344
 
345
  function ctf_lite_dismiss() {
 
 
 
 
346
  $nonce = isset( $_POST['ctf_nonce'] ) ? sanitize_text_field( $_POST['ctf_nonce'] ) : '';
347
 
348
  if ( ! wp_verify_nonce( $nonce, 'ctf-smash-balloon' ) ) {
@@ -404,4 +408,4 @@ function ctf_admin_hide_unrelated_notices() {
404
  }
405
  }
406
  }
407
- add_action( 'admin_print_scripts', 'ctf_admin_hide_unrelated_notices' );
343
  }
344
 
345
  function ctf_lite_dismiss() {
346
+ if ( ! current_user_can( 'manage_custom_twitter_feeds_options' ) ) {
347
+ wp_send_json_error();
348
+ }
349
+
350
  $nonce = isset( $_POST['ctf_nonce'] ) ? sanitize_text_field( $_POST['ctf_nonce'] ) : '';
351
 
352
  if ( ! wp_verify_nonce( $nonce, 'ctf-smash-balloon' ) ) {
408
  }
409
  }
410
  }
411
+ add_action( 'admin_print_scripts', 'ctf_admin_hide_unrelated_notices' );
inc/admin/PluginSilentUpgrader.php CHANGED
File without changes
inc/admin/PluginSilentUpgraderSkin.php CHANGED
File without changes
inc/admin/class-ctf-new-user.php CHANGED
@@ -19,7 +19,7 @@ class CTF_New_User extends CTF_Notifications {
19
  *
20
  * @var string
21
  */
22
- const SOURCE_URL = 'http://plugin.smashballoon.com/newuser.json';
23
 
24
  /**
25
  * @var string
19
  *
20
  * @var string
21
  */
22
+ const SOURCE_URL = 'https://plugin.smashballoon.com/newuser.json';
23
 
24
  /**
25
  * @var string
inc/admin/class-ctf-notifications.php CHANGED
@@ -17,7 +17,7 @@ class CTF_Notifications {
17
  *
18
  * @var string
19
  */
20
- const SOURCE_URL = 'http://plugin.smashballoon.com/notifications.json';
21
 
22
  /**
23
  * @var string
@@ -174,6 +174,35 @@ class CTF_Notifications {
174
  $option = $this->get_option();
175
 
176
  foreach ( $notifications as $notification ) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
 
178
  // The message and license should never be empty, if they are, ignore.
179
  if ( empty( $notification['content'] ) || empty( $notification['type'] ) ) {
@@ -232,11 +261,60 @@ class CTF_Notifications {
232
  || ( ! empty( $notification['end'] ) && ctf_get_current_time() > strtotime( $notification['end'] ) ) ) {
233
  unset( $notifications[ $key ] );
234
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
235
  }
236
 
237
  return $notifications;
238
  }
239
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
240
  /**
241
  * Get notification data.
242
  *
@@ -418,6 +496,11 @@ class CTF_Notifications {
418
  * @since 1.7/1.11
419
  */
420
  public function output() {
 
 
 
 
 
421
  $notifications = $this->get();
422
 
423
  if ( empty( $notifications ) ) {
17
  *
18
  * @var string
19
  */
20
+ const SOURCE_URL = 'https://plugin.smashballoon.com/notifications.json';
21
 
22
  /**
23
  * @var string
174
  $option = $this->get_option();
175
 
176
  foreach ( $notifications as $notification ) {
177
+ // Ignore if not a targeted plugin
178
+ if ( ! empty( $notification['plugin'] ) && is_array( $notification['plugin'] ) && ! in_array( self::PLUGIN, $notification['plugin'], true ) ) {
179
+ continue;
180
+ }
181
+
182
+ // Ignore if max wp version detected
183
+ if ( ! empty( $notification['maxwpver'] ) && version_compare( get_bloginfo( 'version' ), $notification['maxwpver'], '>' ) ) {
184
+ continue;
185
+ }
186
+
187
+ // Ignore if max version has been reached
188
+ if ( ! empty( $notification['maxver'] ) && version_compare( $notification['maxver'], CTF_VERSION ) < 0 ) {
189
+ continue;
190
+ }
191
+
192
+ // Ignore if min version has not been reached
193
+ if ( ! empty( $notification['minver'] ) && version_compare( $notification['minver'], CTF_VERSION ) > 0 ) {
194
+ continue;
195
+ }
196
+
197
+ // Ignore if a specific ctf_status is empty or false
198
+ if ( ! empty( $notification['statuscheck'] ) ) {
199
+ $status_key = sanitize_key( $notification['statuscheck'] );
200
+ $ctf_statuses_option = get_option( 'ctf_statuses', array() );
201
+
202
+ if ( empty( $ctf_statuses_option[ $status_key ] ) ) {
203
+ continue;
204
+ }
205
+ }
206
 
207
  // The message and license should never be empty, if they are, ignore.
208
  if ( empty( $notification['content'] ) || empty( $notification['type'] ) ) {
261
  || ( ! empty( $notification['end'] ) && ctf_get_current_time() > strtotime( $notification['end'] ) ) ) {
262
  unset( $notifications[ $key ] );
263
  }
264
+
265
+ if ( empty( $notification['recent_install_override'] ) && $this->recently_installed() ) {
266
+ unset( $notifications[ $key ] );
267
+ }
268
+
269
+ // Ignore if max version has been reached
270
+ if ( ! empty( $notification['maxver'] ) && version_compare( $notification['maxver'], CTF_VERSION ) < 0 ) {
271
+ unset( $notifications[ $key ] );
272
+ }
273
+
274
+ // Ignore if max wp version detected
275
+ if ( ! empty( $notification['maxwpver'] ) && version_compare( get_bloginfo( 'version' ), $notification['maxwpver'], '>' ) ) {
276
+ unset( $notifications[ $key ] );
277
+ }
278
+
279
+ // Ignore if min version has not been reached
280
+ if ( ! empty( $notification['minver'] ) && version_compare( $notification['minver'], CTF_VERSION ) > 0 ) {
281
+ unset( $notifications[ $key ] );
282
+ }
283
+
284
+ // Ignore if a specific ctf_status is empty or false
285
+ if ( ! empty( $notification['statuscheck'] ) ) {
286
+ $status_key = sanitize_key( $notification['statuscheck'] );
287
+ $ctf_statuses_option = get_option( 'ctf_statuses', array() );
288
+
289
+ if ( empty( $ctf_statuses_option[ $status_key ] ) ) {
290
+ unset( $notifications[ $key ] );
291
+ }
292
+ }
293
  }
294
 
295
  return $notifications;
296
  }
297
 
298
+ /**
299
+ * @return bool
300
+ *
301
+ * @since 1.4.5/1.4.2
302
+ */
303
+ public function recently_installed() {
304
+ $ctf_statuses_option = get_option( 'ctf_statuses', array() );
305
+
306
+ if ( ! isset( $ctf_statuses_option['first_install'] ) ) {
307
+ return false;
308
+ }
309
+
310
+ // Plugin was installed less than a week ago
311
+ if ( (int) $ctf_statuses_option['first_install'] > time() - WEEK_IN_SECONDS ) {
312
+ return true;
313
+ }
314
+
315
+ return false;
316
+ }
317
+
318
  /**
319
  * Get notification data.
320
  *
496
  * @since 1.7/1.11
497
  */
498
  public function output() {
499
+ // if we are one single feed page then return
500
+ if ( isset( $_GET['feed_id'] ) ) {
501
+ return;
502
+ }
503
+
504
  $notifications = $this->get();
505
 
506
  if ( empty( $notifications ) ) {
inc/admin/class-install-skin.php CHANGED
File without changes
inc/notices.php CHANGED
@@ -111,6 +111,9 @@ function ctf_usage_opt_in() {
111
  }
112
 
113
  function ctf_usage_opt_in_or_out() {
 
 
 
114
  if ( ! isset( $_POST['opted_in'] ) ) {
115
  die ( 'You did not do this the right way!' );
116
  }
@@ -123,4 +126,4 @@ function ctf_usage_opt_in_or_out() {
123
 
124
  die();
125
  }
126
- add_action( 'wp_ajax_ctf_usage_opt_in_or_out', 'ctf_usage_opt_in_or_out' );
111
  }
112
 
113
  function ctf_usage_opt_in_or_out() {
114
+ if ( ! current_user_can( 'manage_custom_twitter_feeds_options' ) ) {
115
+ wp_send_json_error();
116
+ }
117
  if ( ! isset( $_POST['opted_in'] ) ) {
118
  die ( 'You did not do this the right way!' );
119
  }
126
 
127
  die();
128
  }
129
+ add_action( 'wp_ajax_ctf_usage_opt_in_or_out', 'ctf_usage_opt_in_or_out' );
js/admin-notifications.js CHANGED
File without changes
js/ctf-admin-scripts.js CHANGED
@@ -53,7 +53,7 @@ jQuery(document).ready(function($){
53
  $ctfHaveOwnTokens.on('change', function() {
54
  toggleAccessInputs();
55
  });
56
-
57
  // variables for time triggered validator
58
  var typingTimer,
59
  doneTypingInterval = 1000,
@@ -139,7 +139,7 @@ jQuery(document).ready(function($){
139
  toggleIncludeReplies();
140
 
141
  $('.ctf-feed-settings-radio').on('change', function() {
142
- toggleIncludeReplies();
143
 
144
  if( $('#ctf-admin #ctf_usertimeline_radio').is(':checked') ) {
145
  userValidator();
@@ -262,11 +262,7 @@ jQuery(document).ready(function($){
262
  },
263
  success : function(data) {
264
  $ctfClearPersistentCacheButton.prop('disabled',false);
265
- if(!data===false) {
266
- $ctfClearPersistentCacheButton.after('<span id="ctf-clear-cache-success" class="fa fa-check-circle ctf-success"></span>');
267
- } else {
268
- $ctfClearPersistentCacheButton.after('<span>error</span>');
269
- }
270
  }
271
  }); // ajax call
272
  }); // clear-persistent-cache click
@@ -668,4 +664,4 @@ jQuery(document).ready(function($){
668
 
669
  window.SmashAdmin = SmashAdmin;
670
 
671
- })( jQuery );
53
  $ctfHaveOwnTokens.on('change', function() {
54
  toggleAccessInputs();
55
  });
56
+
57
  // variables for time triggered validator
58
  var typingTimer,
59
  doneTypingInterval = 1000,
139
  toggleIncludeReplies();
140
 
141
  $('.ctf-feed-settings-radio').on('change', function() {
142
+ toggleIncludeReplies();
143
 
144
  if( $('#ctf-admin #ctf_usertimeline_radio').is(':checked') ) {
145
  userValidator();
262
  },
263
  success : function(data) {
264
  $ctfClearPersistentCacheButton.prop('disabled',false);
265
+ $ctfClearPersistentCacheButton.after('<span id="ctf-clear-cache-success" class="fa fa-check-circle ctf-success"></span>');
 
 
 
 
266
  }
267
  }); // ajax call
268
  }); // clear-persistent-cache click
664
 
665
  window.SmashAdmin = SmashAdmin;
666
 
667
+ })( jQuery );
js/jquery.matchHeight-min.js CHANGED
File without changes
uninstall.php CHANGED
@@ -1,54 +1,54 @@
1
- <?php
2
- if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
3
- exit();
4
- }
5
-
6
- //If the user is preserving the settings then don't delete them
7
- $options = get_option( 'ctf_options' );
8
- $ctf_preserve_settings = isset( $options[ 'preserve_settings' ] ) ? $options[ 'preserve_settings' ] : false;
9
-
10
- // allow the user to preserve their settings in case they are upgrading
11
- if ( ! $ctf_preserve_settings ) {
12
- // clean up options from the database
13
- delete_option( 'ctf_configure' );
14
- delete_option( 'ctf_customize' );
15
- delete_option( 'ctf_style' );
16
- delete_option( 'ctf_options' );
17
- delete_option( 'ctf_version' );
18
- delete_option( 'ctf_rating_notice' );
19
- delete_transient( 'custom_twitter_feeds_rating_notice_waiting' );
20
- delete_option( 'ctf_notifications' );
21
- delete_option( 'ctf_newuser_notifications' );
22
-
23
- // delete tweet cache in transients
24
- global $wpdb;
25
- $table_name = $wpdb->prefix . "options";
26
- $wpdb->query( "
27
- DELETE
28
- FROM $table_name
29
- WHERE `option_name` LIKE ('%\_transient\_ctf\_%')
30
- " );
31
- $wpdb->query( "
32
- DELETE
33
- FROM $table_name
34
- WHERE `option_name` LIKE ('%\_transient\_timeout\_ctf\_%')
35
- " );
36
-
37
- //Delete all persistent caches (start with ctf_!)
38
- global $wpdb;
39
- $table_name = $wpdb->prefix . "options";
40
- $result = $wpdb->query("
41
- DELETE
42
- FROM $table_name
43
- WHERE `option_name` LIKE ('%ctf\_\!%')
44
- ");
45
- delete_option( 'ctf_cache_list' );
46
-
47
- // remove any scheduled cron jobs
48
- wp_clear_scheduled_hook( 'ctf_cron_job' );
49
-
50
- delete_option( 'ctf_usage_tracking_config' );
51
- delete_option( 'ctf_usage_tracking' );
52
- wp_clear_scheduled_hook( 'ctf_usage_tracking_cron' );
53
- }
54
-
1
+ <?php
2
+ if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
3
+ exit();
4
+ }
5
+
6
+ //If the user is preserving the settings then don't delete them
7
+ $options = get_option( 'ctf_options' );
8
+ $ctf_preserve_settings = isset( $options[ 'preserve_settings' ] ) ? $options[ 'preserve_settings' ] : false;
9
+
10
+ // allow the user to preserve their settings in case they are upgrading
11
+ if ( ! $ctf_preserve_settings ) {
12
+ // clean up options from the database
13
+ delete_option( 'ctf_configure' );
14
+ delete_option( 'ctf_customize' );
15
+ delete_option( 'ctf_style' );
16
+ delete_option( 'ctf_options' );
17
+ delete_option( 'ctf_version' );
18
+ delete_option( 'ctf_rating_notice' );
19
+ delete_transient( 'custom_twitter_feeds_rating_notice_waiting' );
20
+ delete_option( 'ctf_notifications' );
21
+ delete_option( 'ctf_newuser_notifications' );
22
+
23
+ // delete tweet cache in transients
24
+ global $wpdb;
25
+ $table_name = $wpdb->prefix . "options";
26
+ $wpdb->query( "
27
+ DELETE
28
+ FROM $table_name
29
+ WHERE `option_name` LIKE ('%\_transient\_ctf\_%')
30
+ " );
31
+ $wpdb->query( "
32
+ DELETE
33
+ FROM $table_name
34
+ WHERE `option_name` LIKE ('%\_transient\_timeout\_ctf\_%')
35
+ " );
36
+
37
+ //Delete all persistent caches (start with ctf_!)
38
+ global $wpdb;
39
+ $table_name = $wpdb->prefix . "options";
40
+ $result = $wpdb->query("
41
+ DELETE
42
+ FROM $table_name
43
+ WHERE `option_name` LIKE ('%ctf\_\!%')
44
+ ");
45
+ delete_option( 'ctf_cache_list' );
46
+
47
+ // remove any scheduled cron jobs
48
+ wp_clear_scheduled_hook( 'ctf_cron_job' );
49
+
50
+ delete_option( 'ctf_usage_tracking_config' );
51
+ delete_option( 'ctf_usage_tracking' );
52
+ wp_clear_scheduled_hook( 'ctf_usage_tracking_cron' );
53
+ }
54
+
views/admin/configure.php CHANGED
@@ -1,12 +1,12 @@
1
- <?php
2
- settings_errors(); ?>
3
- <form method="post" action="options.php">
4
- <input type="hidden" name="ctf_options[tab]" value="configure" />
5
- <?php settings_fields('ctf_options'); // matches the options name ?>
6
- <?php do_settings_sections('ctf_options_connect'); // matches the section name ?>
7
- <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
8
- <hr>
9
- <?php do_settings_sections('ctf_options_feed_settings'); // matches the section name ?>
10
- <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
11
- </form>
12
- <p><span class="fa fa-chevron-circle-right" aria-hidden="true"></span>&nbsp; <?php _e('Next Step: <a href="?page=custom-twitter-feeds&tab=customize">Customize your Feed</a>'); ?></p>
1
+ <?php
2
+ settings_errors(); ?>
3
+ <form method="post" action="options.php">
4
+ <input type="hidden" name="ctf_options[tab]" value="configure" />
5
+ <?php settings_fields('ctf_options'); // matches the options name ?>
6
+ <?php do_settings_sections('ctf_options_connect'); // matches the section name ?>
7
+ <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
8
+ <hr>
9
+ <?php do_settings_sections('ctf_options_feed_settings'); // matches the section name ?>
10
+ <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
11
+ </form>
12
+ <p><span class="fa fa-chevron-circle-right" aria-hidden="true"></span>&nbsp; <?php _e('Next Step: <a href="?page=custom-twitter-feeds&tab=customize">Customize your Feed</a>'); ?></p>
views/admin/customize.php CHANGED
@@ -1,61 +1,61 @@
1
- <?php
2
- settings_errors(); ?>
3
- <p class="ctf-contents-links" id="general">
4
- <span>Quick links: </span>
5
- <?php
6
- $quick_links = array();
7
- $quick_links = apply_filters( 'ctf_admin_customize_quick_links', $quick_links );
8
-
9
- foreach ( $quick_links as $quick_link ) {
10
- echo '<a href="#' . $quick_link[0] . '">' . $quick_link[1] . '</a>';
11
- }
12
- //echo '<pre>';
13
- //var_dump( get_option('ctf_options'));
14
- //echo '</pre>';
15
- ?>
16
- </p>
17
- <form method="post" action="options.php">
18
- <input type="hidden" name="ctf_options[tab]" value="customize" />
19
- <?php settings_fields( 'ctf_options' ); // matches the options name ?>
20
- <?php do_settings_sections( 'ctf_options_general' ); // matches the section name ?>
21
- <hr>
22
- <?php do_settings_sections( 'ctf_options_layout' ); // matches the section name ?>
23
- <hr>
24
- <a id="showhide"></a>
25
- <?php do_settings_sections( 'ctf_options_showandhide' ); // matches the section name ?>
26
- <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
27
- <hr>
28
- <?php do_action( 'ctf_admin_add_settings_sections_to_customize' ); ?>
29
- <a id="misc"></a>
30
- <?php do_settings_sections( 'ctf_options_misc' ); // matches the section name ?>
31
- <hr>
32
- <a id="gdpr"></a>
33
- <?php do_settings_sections( 'ctf_options_gdpr' ); // matches the section name ?>
34
- <hr>
35
- <a id="advanced"></a>
36
- <?php do_settings_sections('ctf_options_advanced'); // matches the section name
37
- $usage_tracking = get_option( 'ctf_usage_tracking', false );
38
- $text_domain = 'custom-twitter-feeds';
39
-
40
- $ctf_usage_tracking_enable = isset( $usage_tracking['enabled'] ) ? $usage_tracking['enabled'] : true;
41
-
42
- // only show this setting after they have opted in or opted out using the admin notice
43
- ?>
44
- <table class="form-table" role="presentation">
45
- <tbody>
46
- <tr>
47
-
48
- <th scope="row"><label class="bump-left"><?php _e("Enable Usage Tracking", $text_domain ); ?></label></th>
49
- <td>
50
- <input name="ctf_usage_tracking_enable" type="hidden" value="off" />
51
- <input name="ctf_usage_tracking_enable" type="checkbox" id="ctf_usage_tracking_enable" <?php if( $ctf_usage_tracking_enable ) echo "checked"; ?> />
52
- <label for="ctf_usage_tracking_enable"><?php _e('Yes', $text_domain); ?></label>
53
- <a class="ctf-tooltip-link" href="JavaScript:void(0);"><?php _e('What is usage tracking?', $text_domain ); ?></a>
54
- <p class="ctf-tooltip ctf-more-info"><?php _e("Custom Twitter Feeds will record information and statistics about your site in order for the team at Smash Balloon to learn more about how our plugins are used. The plugin will never collect any sensitive information like access tokens, email addresses, or user information.", $text_domain ); echo sprintf( ' ' . __( '%sMore Information%s', 'custom-twitter-feeds'), '<a href="https://smashballoon.com/custom-twitter-feeds/docs/usage-tracking/" target="_blank" rel="noopener noreferrer">', '</a>') ?></p>
55
- </td>
56
- </tr>
57
- </tbody>
58
- </table>
59
- <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
60
- </form>
61
- <p><span class="fa fa-chevron-circle-right" aria-hidden="true"></span>&nbsp; <?php _e('<b>Next Step:</b> <a href="?page=custom-twitter-feeds&tab=style">Style your Feed</a>'); ?></p>
1
+ <?php
2
+ settings_errors(); ?>
3
+ <p class="ctf-contents-links" id="general">
4
+ <span>Quick links: </span>
5
+ <?php
6
+ $quick_links = array();
7
+ $quick_links = apply_filters( 'ctf_admin_customize_quick_links', $quick_links );
8
+
9
+ foreach ( $quick_links as $quick_link ) {
10
+ echo '<a href="#' . $quick_link[0] . '">' . $quick_link[1] . '</a>';
11
+ }
12
+ //echo '<pre>';
13
+ //var_dump( get_option('ctf_options'));
14
+ //echo '</pre>';
15
+ ?>
16
+ </p>
17
+ <form method="post" action="options.php">
18
+ <input type="hidden" name="ctf_options[tab]" value="customize" />
19
+ <?php settings_fields( 'ctf_options' ); // matches the options name ?>
20
+ <?php do_settings_sections( 'ctf_options_general' ); // matches the section name ?>
21
+ <hr>
22
+ <?php do_settings_sections( 'ctf_options_layout' ); // matches the section name ?>
23
+ <hr>
24
+ <a id="showhide"></a>
25
+ <?php do_settings_sections( 'ctf_options_showandhide' ); // matches the section name ?>
26
+ <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
27
+ <hr>
28
+ <?php do_action( 'ctf_admin_add_settings_sections_to_customize' ); ?>
29
+ <a id="misc"></a>
30
+ <?php do_settings_sections( 'ctf_options_misc' ); // matches the section name ?>
31
+ <hr>
32
+ <a id="gdpr"></a>
33
+ <?php do_settings_sections( 'ctf_options_gdpr' ); // matches the section name ?>
34
+ <hr>
35
+ <a id="advanced"></a>
36
+ <?php do_settings_sections('ctf_options_advanced'); // matches the section name
37
+ $usage_tracking = get_option( 'ctf_usage_tracking', false );
38
+ $text_domain = 'custom-twitter-feeds';
39
+
40
+ $ctf_usage_tracking_enable = isset( $usage_tracking['enabled'] ) ? $usage_tracking['enabled'] : true;
41
+
42
+ // only show this setting after they have opted in or opted out using the admin notice
43
+ ?>
44
+ <table class="form-table" role="presentation">
45
+ <tbody>
46
+ <tr>
47
+
48
+ <th scope="row"><label class="bump-left"><?php _e("Enable Usage Tracking", $text_domain ); ?></label></th>
49
+ <td>
50
+ <input name="ctf_usage_tracking_enable" type="hidden" value="off" />
51
+ <input name="ctf_usage_tracking_enable" type="checkbox" id="ctf_usage_tracking_enable" <?php if( $ctf_usage_tracking_enable ) echo "checked"; ?> />
52
+ <label for="ctf_usage_tracking_enable"><?php _e('Yes', $text_domain); ?></label>
53
+ <a class="ctf-tooltip-link" href="JavaScript:void(0);"><?php _e('What is usage tracking?', $text_domain ); ?></a>
54
+ <p class="ctf-tooltip ctf-more-info"><?php _e("Custom Twitter Feeds will record information and statistics about your site in order for the team at Smash Balloon to learn more about how our plugins are used. The plugin will never collect any sensitive information like access tokens, email addresses, or user information.", $text_domain ); echo sprintf( ' ' . __( '%sMore Information%s', 'custom-twitter-feeds'), '<a href="https://smashballoon.com/custom-twitter-feeds/docs/usage-tracking/" target="_blank" rel="noopener noreferrer">', '</a>') ?></p>
55
+ </td>
56
+ </tr>
57
+ </tbody>
58
+ </table>
59
+ <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
60
+ </form>
61
+ <p><span class="fa fa-chevron-circle-right" aria-hidden="true"></span>&nbsp; <?php _e('<b>Next Step:</b> <a href="?page=custom-twitter-feeds&tab=style">Style your Feed</a>'); ?></p>
views/admin/display.php CHANGED
@@ -1,261 +1,261 @@
1
- <?php ?>
2
-
3
- <h3><?php _e( 'Display your Feed', 'custom-twitter-feeds' ); ?></h3>
4
- <p><?php _e( "Copy and paste the following shortcode directly into the page, post or widget where you'd like the feed to show up:", 'custom-twitter-feeds' ); ?></p>
5
- <input type="text" value="[custom-twitter-feeds]" size="20" readonly="readonly" style="text-align: center;" onclick="this.focus();this.select()" title="<?php _e( 'To copy, click the field then press Ctrl + C (PC) or Cmd + C (Mac).', 'custom-twitter-feeds' ); ?>" />
6
-
7
- <h3 style="padding-top: 10px;"><?php _e( 'Multiple Feeds', 'custom-twitter-feeds' ); ?></h3>
8
- <p><?php _e( "If you'd like to display multiple feeds then you can set different settings directly in the shortcode like so:", 'custom-twitter-feeds' ); ?>
9
- </br><code>[custom-twitter-feeds screenname=gopro num=9]</code></p>
10
- <p><?php _e( "You can display as many different feeds as you like, on either the same page or on different pages, by just using the shortcode options below. For example:", 'custom-twitter-feeds' ); ?><br />
11
- <code>[custom-twitter-feeds]</code><br />
12
- <code>[custom-twitter-feeds screenname="ANOTHER_SCREEN_NAME"]</code><br />
13
- <code>[custom-twitter-feeds hashtag="#YOUR_HASHTAG" num=4 showheader=false]</code>
14
- </p>
15
- <p><?php _e( "See the table below for a full list of available shortcode options:", 'custom-twitter-feeds' ); ?></p>
16
-
17
- <!-- <p><span class="ctf_table_key"></span><?php _e( 'Pro version only', 'custom-twitter-feeds' ); ?></p> -->
18
-
19
- <table class="ctf_shortcode_table">
20
- <tbody>
21
- <tr valign="top">
22
- <th scope="row"><?php _e( 'Shortcode option', 'custom-twitter-feeds' ); ?></th>
23
- <th scope="row"><?php _e( 'Description', 'custom-twitter-feeds' ); ?></th>
24
- <th scope="row"><?php _e( 'Example', 'custom-twitter-feeds' ); ?></th>
25
- </tr>
26
-
27
- <tr class="ctf_table_header"><td colspan=3><?php _e( "Configure Options", 'custom-twitter-feeds' ); ?></td></tr>
28
- <tr>
29
- <td>screenname</td>
30
- <td><?php _e( 'A user account name/Twitter handle. This will generate a user timeline feed', 'custom-twitter-feeds' ); ?></td>
31
- <td><code>[custom-twitter-feeds screenname="gopro"]</code></td>
32
- </tr>
33
- <tr>
34
- <td>hashtag</td>
35
- <td><?php _e( 'Any hashtag. This will generate a hashtag feed', 'custom-twitter-feeds' ); ?></td>
36
- <td><code>[custom-twitter-feeds hashtag="#awesome"]</code></td>
37
- </tr>
38
- <tr>
39
- <td>home</td>
40
- <td><?php _e( 'A home timeline will automatically use the account attached to your access token credentials', 'custom-twitter-feeds' ); ?></td>
41
- <td><code>[custom-twitter-feeds home=true]</code></td>
42
- </tr>
43
- <!-- <tr class="ctf_pro">
44
- <td>type</td>
45
- <td><?php _e( "Display tweets from multiple user accounts/Twitter handles<br />Display tweets from multiple hashtags/search terms<br />Display tweets that \"@\" mention your account", 'custom-twitter-feeds' ); ?></td>
46
- <td><code>[custom-twitter-feeds screenname="gopro, NBA"]</code><br /><code>[custom-twitter-feeds search="#awesome OR @nba"]</code><br/><code>[custom-twitter-feeds mentions=true]</code></td>
47
- </tr>
48
- <tr class="ctf_pro">
49
- <td>user</td>
50
- <td><?php _e( 'A user account name/Twitter handle, separated by commas', 'custom-twitter-feeds' ); ?></td>
51
- <td><code>[custom-twitter-feeds screenname="gopro, NBA"]</code></td>
52
- </tr>
53
- <tr class="ctf_pro">
54
- <td>searchterm</td>
55
- <td><?php _e( 'Any search term or terms. Separate multiple terms by "+".', 'custom-twitter-feeds' ); ?></td>
56
- <td><code>[custom-twitter-feeds search="#awesome+@nba"]</code></td>
57
- </tr>
58
- <tr class="ctf_pro">
59
- <td>(no argument needed)</td>
60
- <td><?php _e( 'A mentions timeline will automatically use the account attached to your access token credentials', 'custom-twitter-feeds' ); ?></td>
61
- <td><code>[custom-twitter-feeds mentions=true]</code></td>
62
- </tr> -->
63
- <tr>
64
- <td>num</td>
65
- <td><?php _e( 'Number of Tweets to display', 'custom-twitter-feeds' ); ?></td>
66
- <td><code>[custom-twitter-feeds num=20]</code></td>
67
- </tr>
68
-
69
- <tr class="ctf_table_header"><td colspan=3><?php _e("Customize Options", 'custom-twitter-feeds' ); ?></td></tr>
70
- <tr class="ctf_pro">
71
- <td>layout</td>
72
- <td><?php _e("How posts are arranged visually in the feed.", 'custom-twitter-feeds' ); ?> 'list', 'carousel', or 'masonry'</td>
73
- <td><code>[custom-twitter-feeds layout=carousel]</code></td>
74
- </tr>
75
- <tr>
76
- <td>class</td>
77
- <td><?php _e( "A custom CSS class added to the feed", 'custom-twitter-feeds' ); ?></td>
78
- <td><code>[custom-twitter-feeds class="my-class"]</code></td>
79
- </tr>
80
- <tr>
81
- <td>headertext</td>
82
- <td><?php _e( "Custom text for the header", 'custom-twitter-feeds' ); ?></td>
83
- <td><code>[custom-twitter-feeds headertext="My Tweets"]</code></td>
84
- </tr>
85
- <tr class="ctf_table_header"><td colspan=3><?php _e("Show/Hide Options", 'custom-twitter-feeds' ); ?></td></tr>
86
- <tr>
87
- <td>showheader</td>
88
- <td><?php _e( "Include a header for this feed", 'custom-twitter-feeds' ); ?></td>
89
- <td><code>[custom-twitter-feeds showheader=true]</code></td>
90
- </tr>
91
- <tr>
92
- <td>include</td>
93
- <td><?php _e( "Parts of the Tweet to include in the feed", 'custom-twitter-feeds' ); ?></td>
94
- <td><code>[custom-twitter-feeds include="author,date,text,avatar,logo"]</code></td>
95
- </tr>
96
- <tr>
97
- <td>exclude</td>
98
- <td><?php _e( "Parts of the Tweet to exclude in the feed", 'custom-twitter-feeds' ); ?></td>
99
- <td><code>[custom-twitter-feeds exclude="retweeter,actions,linkbox,twitterlink"]</code></td>
100
- </tr>
101
- <tr>
102
- <td>creditctf</td>
103
- <td><?php _e( "Include a credit link to Custom Twitter Feeds homepage at the bottom of the feed", 'custom-twitter-feeds' ); ?></td>
104
- <td><code>[custom-twitter-feeds creditctf=true]</code></td>
105
- </tr>
106
- <tr>
107
- <td>showbutton</td>
108
- <td><?php _e( "Show the button that loads more tweets", 'custom-twitter-feeds' ); ?></td>
109
- <td><code>[custom-twitter-feeds showbutton=false]</code></td>
110
- </tr>
111
- <tr class="ctf_table_header"><td colspan=3><?php _e("Date Options", 'custom-twitter-feeds' ); ?></td></tr>
112
- <tr>
113
- <td>dateformat</td>
114
- <td><?php _e( "Number of one of the default date formats", 'custom-twitter-feeds' ); ?></td>
115
- <td><code>[custom-twitter-feeds dateformat=3]</code></td>
116
- </tr>
117
- <tr>
118
- <td>datecustom</td>
119
- <td><?php _e( "Manually entered custom date format", 'custom-twitter-feeds' ); ?></td>
120
- <td><code>[custom-twitter-feeds datecustom="D M jS, Y"]</code></td>
121
- </tr>
122
- <tr>
123
- <td>mtime</td>
124
- <td><?php _e( "Translation for \"m\" time unit (English minute)", 'custom-twitter-feeds' ); ?></td>
125
- <td><code>[custom-twitter-feeds mtime="M"]</code></td>
126
- </tr>
127
- <tr>
128
- <td>htime</td>
129
- <td><?php _e( "Translation for \"h\" time unit (English hour)", 'custom-twitter-feeds' ); ?></td>
130
- <td><code>[custom-twitter-feeds htime="S"]</code></td>
131
- </tr>
132
- <tr>
133
- <td>nowtime</td>
134
- <td><?php _e( "Translation for English \"now\"", 'custom-twitter-feeds' ); ?></td>
135
- <td><code>[custom-twitter-feeds nowtime="jetzt"]</code></td>
136
- </tr>
137
- <tr class="ctf_table_header"><td colspan=3><?php _e("Link Options", 'custom-twitter-feeds' ); ?></td></tr>
138
- <tr>
139
- <td>disablelinks</td>
140
- <td><?php _e( "Disable the links in the text of the tweet", 'custom-twitter-feeds' ); ?></td>
141
- <td><code>[custom-twitter-feeds disablelinks=false]</code></td>
142
- </tr>
143
- <tr>
144
- <td>linktexttotwitter</td>
145
- <td><?php _e( "Link the tweet text to Twitter", 'custom-twitter-feeds' ); ?></td>
146
- <td><code>[custom-twitter-feeds linktexttotwitter=false]</code></td>
147
- </tr>
148
- <tr>
149
- <td>twitterlinktext</td>
150
- <td><?php _e( "Custom text for the Twitter link", 'custom-twitter-feeds' ); ?></td>
151
- <td><code>[custom-twitter-feeds twitterlinktext="view on Twitter"]</code></td>
152
- </tr>
153
- <tr>
154
- <td>multiplier</td>
155
- <td><?php _e( 'A multiplying factor 1-3 to help with tweet filtering', 'custom-twitter-feeds' ); ?></td>
156
- <td><code>[custom-twitter-feeds multiplier=2.25]</code></td>
157
- </tr>
158
-
159
- <tr class="ctf_table_header"><td colspan=3><?php _e("Style Options", 'custom-twitter-feeds' ); ?></td></tr>
160
- <tr>
161
- <td>width</td>
162
- <td><?php _e( "The width of your feed. Any number with a unit like \"px\" or \"%\".", 'custom-twitter-feeds' ); ?></td>
163
- <td><code>[custom-twitter-feeds width=400px]</code></td>
164
- </tr>
165
- <tr>
166
- <td>height</td>
167
- <td><?php _e( "The height of your feed. Any number with a unit like \"px\" or \"em\".", 'custom-twitter-feeds' ); ?></td>
168
- <td><code>[custom-twitter-feeds height=500px]</code></td>
169
- </tr>
170
- <tr>
171
- <td>bgcolor</td>
172
- <td><?php _e( "Background color for the feed. Any hex color code", 'custom-twitter-feeds' ); ?></td>
173
- <td><code>[custom-twitter-feeds bgcolor="eee"]</code></td>
174
- </tr>
175
- <tr>
176
- <td>tweetbgcolor</td>
177
- <td><?php _e( "Background color for each tweet. Any hex color code", 'custom-twitter-feeds' ); ?></td>
178
- <td><code>[custom-twitter-feeds tweetbgcolor="ddd"]</code></td>
179
- </tr>
180
- <tr class="ctf_table_header"><td colspan=3><?php _e("Typography Options", 'custom-twitter-feeds' ); ?></td></tr>
181
- <tr>
182
- <td>authortextsize</td>
183
- <td><?php _e( "Size of author info font in pixels", 'custom-twitter-feeds' ); ?></td>
184
- <td><code>[custom-twitter-feeds authortextsize="16"]</code></td>
185
- </tr>
186
- <tr>
187
- <td>authortextweight</td>
188
- <td><?php _e( "Weight of author info font inherit, bold, or normal", 'custom-twitter-feeds' ); ?></td>
189
- <td><code>[custom-twitter-feeds authortextweight="bold"]</code></td>
190
- </tr>
191
- <tr>
192
- <td>logosize</td>
193
- <td><?php _e( "Size of Twitter logo in pixels", 'custom-twitter-feeds' ); ?></td>
194
- <td><code>[custom-twitter-feeds logosize="16"]</code></td>
195
- </tr>
196
- <tr>
197
- <td>logocolor</td>
198
- <td><?php _e( "Color of Twitter logo. Any color hex code.", 'custom-twitter-feeds' ); ?></td>
199
- <td><code>[custom-twitter-feeds logocolor="0ff"]</code></td>
200
- </tr>
201
- <tr>
202
- <td>datetextsize</td>
203
- <td><?php _e( "Size of date info font in pixels", 'custom-twitter-feeds' ); ?></td>
204
- <td><code>[custom-twitter-feeds datetextsize="16"]</code></td>
205
- </tr>
206
- <tr>
207
- <td>datetextweight</td>
208
- <td><?php _e( "Weight of date info font inherit, bold, or normal", 'custom-twitter-feeds' ); ?></td>
209
- <td><code>[custom-twitter-feeds datetextweight="bold"]</code></td>
210
- </tr>
211
- <tr>
212
- <td>quotedtextsize</td>
213
- <td><?php _e( "Size of quoted author info font in pixels", 'custom-twitter-feeds' ); ?></td>
214
- <td><code>[custom-twitter-feeds quotedauthorsize="16"]</code></td>
215
- </tr>
216
- <tr>
217
- <td>quotedtextweight</td>
218
- <td><?php _e( "Weight of quoted author info font inherit, bold, or normal", 'custom-twitter-feeds' ); ?></td>
219
- <td><code>[custom-twitter-feeds quotedauthorweight="bold"]</code></td>
220
- </tr>
221
- <tr>
222
- <td>textcolor</td>
223
- <td><?php _e( "Color of the text. Any color hex code", 'custom-twitter-feeds' ); ?></td>
224
- <td><code>[custom-twitter-feeds textcolor="333"]</code></td>
225
- </tr>
226
- <tr>
227
- <td>linktextcolor</td>
228
- <td><?php _e( "Color of the links inside the tweet text. Any color hex code", 'custom-twitter-feeds' ); ?></td>
229
- <td><code>[custom-twitter-feeds linktextcolor="00f"]</code></td>
230
- </tr>
231
- <tr>
232
- <td>iconsize</td>
233
- <td><?php _e( "Size of the icons in pixels", 'custom-twitter-feeds' ); ?></td>
234
- <td><code>[custom-twitter-feeds iconsize="16"]</code></td>
235
- </tr>
236
- <tr>
237
- <td>iconcolor</td>
238
- <td><?php _e( "Color of the icons. Any color hex code", 'custom-twitter-feeds' ); ?></td>
239
- <td><code>[custom-twitter-feeds iconcolor="e00"]</code></td>
240
- </tr>
241
- <tr class="ctf_table_header"><td colspan=3><?php _e("\"Load More\" Button Options", 'custom-twitter-feeds' ); ?></td></tr>
242
- <tr>
243
- <td>buttoncolor</td>
244
- <td><?php _e( "Color of the background of the button. Any color hex code", 'custom-twitter-feeds' ); ?></td>
245
- <td><code>[custom-twitter-feeds buttoncolor="00e"]</code></td>
246
- </tr>
247
- <tr>
248
- <td>buttontextcolor</td>
249
- <td><?php _e( "Color of the text of the button. Any color hex code", 'custom-twitter-feeds' ); ?></td>
250
- <td><code>[custom-twitter-feeds buttoncolor="333"]</code></td>
251
- </tr>
252
- <tr>
253
- <td>buttontext</td>
254
- <td><?php _e( "Custom text inside the button", 'custom-twitter-feeds' ); ?></td>
255
- <td><code>[custom-twitter-feeds buttontext="More..."]</code></td>
256
- </tr>
257
-
258
-
259
- </tbody>
260
- </table>
261
- <p><span class="fa fa-question-circle" aria-hidden="true"></span>&nbsp; <?php _e('Need help? <a href="?page=custom-twitter-feeds&tab=support">Get Support</a>.'); ?></p>
1
+ <?php ?>
2
+
3
+ <h3><?php _e( 'Display your Feed', 'custom-twitter-feeds' ); ?></h3>
4
+ <p><?php _e( "Copy and paste the following shortcode directly into the page, post or widget where you'd like the feed to show up:", 'custom-twitter-feeds' ); ?></p>
5
+ <input type="text" value="[custom-twitter-feeds]" size="20" readonly="readonly" style="text-align: center;" onclick="this.focus();this.select()" title="<?php _e( 'To copy, click the field then press Ctrl + C (PC) or Cmd + C (Mac).', 'custom-twitter-feeds' ); ?>" />
6
+
7
+ <h3 style="padding-top: 10px;"><?php _e( 'Multiple Feeds', 'custom-twitter-feeds' ); ?></h3>
8
+ <p><?php _e( "If you'd like to display multiple feeds then you can set different settings directly in the shortcode like so:", 'custom-twitter-feeds' ); ?>
9
+ </br><code>[custom-twitter-feeds screenname=gopro num=9]</code></p>
10
+ <p><?php _e( "You can display as many different feeds as you like, on either the same page or on different pages, by just using the shortcode options below. For example:", 'custom-twitter-feeds' ); ?><br />
11
+ <code>[custom-twitter-feeds]</code><br />
12
+ <code>[custom-twitter-feeds screenname="ANOTHER_SCREEN_NAME"]</code><br />
13
+ <code>[custom-twitter-feeds hashtag="#YOUR_HASHTAG" num=4 showheader=false]</code>
14
+ </p>
15
+ <p><?php _e( "See the table below for a full list of available shortcode options:", 'custom-twitter-feeds' ); ?></p>
16
+
17
+ <!-- <p><span class="ctf_table_key"></span><?php _e( 'Pro version only', 'custom-twitter-feeds' ); ?></p> -->
18
+
19
+ <table class="ctf_shortcode_table">
20
+ <tbody>
21
+ <tr valign="top">
22
+ <th scope="row"><?php _e( 'Shortcode option', 'custom-twitter-feeds' ); ?></th>
23
+ <th scope="row"><?php _e( 'Description', 'custom-twitter-feeds' ); ?></th>
24
+ <th scope="row"><?php _e( 'Example', 'custom-twitter-feeds' ); ?></th>
25
+ </tr>
26
+
27
+ <tr class="ctf_table_header"><td colspan=3><?php _e( "Configure Options", 'custom-twitter-feeds' ); ?></td></tr>
28
+ <tr>
29
+ <td>screenname</td>
30
+ <td><?php _e( 'A user account name/Twitter handle. This will generate a user timeline feed', 'custom-twitter-feeds' ); ?></td>
31
+ <td><code>[custom-twitter-feeds screenname="gopro"]</code></td>
32
+ </tr>
33
+ <tr>
34
+ <td>hashtag</td>
35
+ <td><?php _e( 'Any hashtag. This will generate a hashtag feed', 'custom-twitter-feeds' ); ?></td>
36
+ <td><code>[custom-twitter-feeds hashtag="#awesome"]</code></td>
37
+ </tr>
38
+ <tr>
39
+ <td>home</td>
40
+ <td><?php _e( 'A home timeline will automatically use the account attached to your access token credentials', 'custom-twitter-feeds' ); ?></td>
41
+ <td><code>[custom-twitter-feeds home=true]</code></td>
42
+ </tr>
43
+ <!-- <tr class="ctf_pro">
44
+ <td>type</td>
45
+ <td><?php _e( "Display tweets from multiple user accounts/Twitter handles<br />Display tweets from multiple hashtags/search terms<br />Display tweets that \"@\" mention your account", 'custom-twitter-feeds' ); ?></td>
46
+ <td><code>[custom-twitter-feeds screenname="gopro, NBA"]</code><br /><code>[custom-twitter-feeds search="#awesome OR @nba"]</code><br/><code>[custom-twitter-feeds mentions=true]</code></td>
47
+ </tr>
48
+ <tr class="ctf_pro">
49
+ <td>user</td>
50
+ <td><?php _e( 'A user account name/Twitter handle, separated by commas', 'custom-twitter-feeds' ); ?></td>
51
+ <td><code>[custom-twitter-feeds screenname="gopro, NBA"]</code></td>
52
+ </tr>
53
+ <tr class="ctf_pro">
54
+ <td>searchterm</td>
55
+ <td><?php _e( 'Any search term or terms. Separate multiple terms by "+".', 'custom-twitter-feeds' ); ?></td>
56
+ <td><code>[custom-twitter-feeds search="#awesome+@nba"]</code></td>
57
+ </tr>
58
+ <tr class="ctf_pro">
59
+ <td>(no argument needed)</td>
60
+ <td><?php _e( 'A mentions timeline will automatically use the account attached to your access token credentials', 'custom-twitter-feeds' ); ?></td>
61
+ <td><code>[custom-twitter-feeds mentions=true]</code></td>
62
+ </tr> -->
63
+ <tr>
64
+ <td>num</td>
65
+ <td><?php _e( 'Number of Tweets to display', 'custom-twitter-feeds' ); ?></td>
66
+ <td><code>[custom-twitter-feeds num=20]</code></td>
67
+ </tr>
68
+
69
+ <tr class="ctf_table_header"><td colspan=3><?php _e("Customize Options", 'custom-twitter-feeds' ); ?></td></tr>
70
+ <tr class="ctf_pro">
71
+ <td>layout</td>
72
+ <td><?php _e("How posts are arranged visually in the feed.", 'custom-twitter-feeds' ); ?> 'list', 'carousel', or 'masonry'</td>
73
+ <td><code>[custom-twitter-feeds layout=carousel]</code></td>
74
+ </tr>
75
+ <tr>
76
+ <td>class</td>
77
+ <td><?php _e( "A custom CSS class added to the feed", 'custom-twitter-feeds' ); ?></td>
78
+ <td><code>[custom-twitter-feeds class="my-class"]</code></td>
79
+ </tr>
80
+ <tr>
81
+ <td>headertext</td>
82
+ <td><?php _e( "Custom text for the header", 'custom-twitter-feeds' ); ?></td>
83
+ <td><code>[custom-twitter-feeds headertext="My Tweets"]</code></td>
84
+ </tr>
85
+ <tr class="ctf_table_header"><td colspan=3><?php _e("Show/Hide Options", 'custom-twitter-feeds' ); ?></td></tr>
86
+ <tr>
87
+ <td>showheader</td>
88
+ <td><?php _e( "Include a header for this feed", 'custom-twitter-feeds' ); ?></td>
89
+ <td><code>[custom-twitter-feeds showheader=true]</code></td>
90
+ </tr>
91
+ <tr>
92
+ <td>include</td>
93
+ <td><?php _e( "Parts of the Tweet to include in the feed", 'custom-twitter-feeds' ); ?></td>
94
+ <td><code>[custom-twitter-feeds include="author,date,text,avatar,logo"]</code></td>
95
+ </tr>
96
+ <tr>
97
+ <td>exclude</td>
98
+ <td><?php _e( "Parts of the Tweet to exclude in the feed", 'custom-twitter-feeds' ); ?></td>
99
+ <td><code>[custom-twitter-feeds exclude="retweeter,actions,linkbox,twitterlink"]</code></td>
100
+ </tr>
101
+ <tr>
102
+ <td>creditctf</td>
103
+ <td><?php _e( "Include a credit link to Custom Twitter Feeds homepage at the bottom of the feed", 'custom-twitter-feeds' ); ?></td>
104
+ <td><code>[custom-twitter-feeds creditctf=true]</code></td>
105
+ </tr>
106
+ <tr>
107
+ <td>showbutton</td>
108
+ <td><?php _e( "Show the button that loads more tweets", 'custom-twitter-feeds' ); ?></td>
109
+ <td><code>[custom-twitter-feeds showbutton=false]</code></td>
110
+ </tr>
111
+ <tr class="ctf_table_header"><td colspan=3><?php _e("Date Options", 'custom-twitter-feeds' ); ?></td></tr>
112
+ <tr>
113
+ <td>dateformat</td>
114
+ <td><?php _e( "Number of one of the default date formats", 'custom-twitter-feeds' ); ?></td>
115
+ <td><code>[custom-twitter-feeds dateformat=3]</code></td>
116
+ </tr>
117
+ <tr>
118
+ <td>datecustom</td>
119
+ <td><?php _e( "Manually entered custom date format", 'custom-twitter-feeds' ); ?></td>
120
+ <td><code>[custom-twitter-feeds datecustom="D M jS, Y"]</code></td>
121
+ </tr>
122
+ <tr>
123
+ <td>mtime</td>
124
+ <td><?php _e( "Translation for \"m\" time unit (English minute)", 'custom-twitter-feeds' ); ?></td>
125
+ <td><code>[custom-twitter-feeds mtime="M"]</code></td>
126
+ </tr>
127
+ <tr>
128
+ <td>htime</td>
129
+ <td><?php _e( "Translation for \"h\" time unit (English hour)", 'custom-twitter-feeds' ); ?></td>
130
+ <td><code>[custom-twitter-feeds htime="S"]</code></td>
131
+ </tr>
132
+ <tr>
133
+ <td>nowtime</td>
134
+ <td><?php _e( "Translation for English \"now\"", 'custom-twitter-feeds' ); ?></td>
135
+ <td><code>[custom-twitter-feeds nowtime="jetzt"]</code></td>
136
+ </tr>
137
+ <tr class="ctf_table_header"><td colspan=3><?php _e("Link Options", 'custom-twitter-feeds' ); ?></td></tr>
138
+ <tr>
139
+ <td>disablelinks</td>
140
+ <td><?php _e( "Disable the links in the text of the tweet", 'custom-twitter-feeds' ); ?></td>
141
+ <td><code>[custom-twitter-feeds disablelinks=false]</code></td>
142
+ </tr>
143
+ <tr>
144
+ <td>linktexttotwitter</td>
145
+ <td><?php _e( "Link the tweet text to Twitter", 'custom-twitter-feeds' ); ?></td>
146
+ <td><code>[custom-twitter-feeds linktexttotwitter=false]</code></td>
147
+ </tr>
148
+ <tr>
149
+ <td>twitterlinktext</td>
150
+ <td><?php _e( "Custom text for the Twitter link", 'custom-twitter-feeds' ); ?></td>
151
+ <td><code>[custom-twitter-feeds twitterlinktext="view on Twitter"]</code></td>
152
+ </tr>
153
+ <tr>
154
+ <td>multiplier</td>
155
+ <td><?php _e( 'A multiplying factor 1-3 to help with tweet filtering', 'custom-twitter-feeds' ); ?></td>
156
+ <td><code>[custom-twitter-feeds multiplier=2.25]</code></td>
157
+ </tr>
158
+
159
+ <tr class="ctf_table_header"><td colspan=3><?php _e("Style Options", 'custom-twitter-feeds' ); ?></td></tr>
160
+ <tr>
161
+ <td>width</td>
162
+ <td><?php _e( "The width of your feed. Any number with a unit like \"px\" or \"%\".", 'custom-twitter-feeds' ); ?></td>
163
+ <td><code>[custom-twitter-feeds width=400px]</code></td>
164
+ </tr>
165
+ <tr>
166
+ <td>height</td>
167
+ <td><?php _e( "The height of your feed. Any number with a unit like \"px\" or \"em\".", 'custom-twitter-feeds' ); ?></td>
168
+ <td><code>[custom-twitter-feeds height=500px]</code></td>
169
+ </tr>
170
+ <tr>
171
+ <td>bgcolor</td>
172
+ <td><?php _e( "Background color for the feed. Any hex color code", 'custom-twitter-feeds' ); ?></td>
173
+ <td><code>[custom-twitter-feeds bgcolor="eee"]</code></td>
174
+ </tr>
175
+ <tr>
176
+ <td>tweetbgcolor</td>
177
+ <td><?php _e( "Background color for each tweet. Any hex color code", 'custom-twitter-feeds' ); ?></td>
178
+ <td><code>[custom-twitter-feeds tweetbgcolor="ddd"]</code></td>
179
+ </tr>
180
+ <tr class="ctf_table_header"><td colspan=3><?php _e("Typography Options", 'custom-twitter-feeds' ); ?></td></tr>
181
+ <tr>
182
+ <td>authortextsize</td>
183
+ <td><?php _e( "Size of author info font in pixels", 'custom-twitter-feeds' ); ?></td>
184
+ <td><code>[custom-twitter-feeds authortextsize="16"]</code></td>
185
+ </tr>
186
+ <tr>
187
+ <td>authortextweight</td>
188
+ <td><?php _e( "Weight of author info font inherit, bold, or normal", 'custom-twitter-feeds' ); ?></td>
189
+ <td><code>[custom-twitter-feeds authortextweight="bold"]</code></td>
190
+ </tr>
191
+ <tr>
192
+ <td>logosize</td>
193
+ <td><?php _e( "Size of Twitter logo in pixels", 'custom-twitter-feeds' ); ?></td>
194
+ <td><code>[custom-twitter-feeds logosize="16"]</code></td>
195
+ </tr>
196
+ <tr>
197
+ <td>logocolor</td>
198
+ <td><?php _e( "Color of Twitter logo. Any color hex code.", 'custom-twitter-feeds' ); ?></td>
199
+ <td><code>[custom-twitter-feeds logocolor="0ff"]</code></td>
200
+ </tr>
201
+ <tr>
202
+ <td>datetextsize</td>
203
+ <td><?php _e( "Size of date info font in pixels", 'custom-twitter-feeds' ); ?></td>
204
+ <td><code>[custom-twitter-feeds datetextsize="16"]</code></td>
205
+ </tr>
206
+ <tr>
207
+ <td>datetextweight</td>
208
+ <td><?php _e( "Weight of date info font inherit, bold, or normal", 'custom-twitter-feeds' ); ?></td>
209
+ <td><code>[custom-twitter-feeds datetextweight="bold"]</code></td>
210
+ </tr>
211
+ <tr>
212
+ <td>quotedtextsize</td>
213
+ <td><?php _e( "Size of quoted author info font in pixels", 'custom-twitter-feeds' ); ?></td>
214
+ <td><code>[custom-twitter-feeds quotedauthorsize="16"]</code></td>
215
+ </tr>
216
+ <tr>
217
+ <td>quotedtextweight</td>
218
+ <td><?php _e( "Weight of quoted author info font inherit, bold, or normal", 'custom-twitter-feeds' ); ?></td>
219
+ <td><code>[custom-twitter-feeds quotedauthorweight="bold"]</code></td>
220
+ </tr>
221
+ <tr>
222
+ <td>textcolor</td>
223
+ <td><?php _e( "Color of the text. Any color hex code", 'custom-twitter-feeds' ); ?></td>
224
+ <td><code>[custom-twitter-feeds textcolor="333"]</code></td>
225
+ </tr>
226
+ <tr>
227
+ <td>linktextcolor</td>
228
+ <td><?php _e( "Color of the links inside the tweet text. Any color hex code", 'custom-twitter-feeds' ); ?></td>
229
+ <td><code>[custom-twitter-feeds linktextcolor="00f"]</code></td>
230
+ </tr>
231
+ <tr>
232
+ <td>iconsize</td>
233
+ <td><?php _e( "Size of the icons in pixels", 'custom-twitter-feeds' ); ?></td>
234
+ <td><code>[custom-twitter-feeds iconsize="16"]</code></td>
235
+ </tr>
236
+ <tr>
237
+ <td>iconcolor</td>
238
+ <td><?php _e( "Color of the icons. Any color hex code", 'custom-twitter-feeds' ); ?></td>
239
+ <td><code>[custom-twitter-feeds iconcolor="e00"]</code></td>
240
+ </tr>
241
+ <tr class="ctf_table_header"><td colspan=3><?php _e("\"Load More\" Button Options", 'custom-twitter-feeds' ); ?></td></tr>
242
+ <tr>
243
+ <td>buttoncolor</td>
244
+ <td><?php _e( "Color of the background of the button. Any color hex code", 'custom-twitter-feeds' ); ?></td>
245
+ <td><code>[custom-twitter-feeds buttoncolor="00e"]</code></td>
246
+ </tr>
247
+ <tr>
248
+ <td>buttontextcolor</td>
249
+ <td><?php _e( "Color of the text of the button. Any color hex code", 'custom-twitter-feeds' ); ?></td>
250
+ <td><code>[custom-twitter-feeds buttoncolor="333"]</code></td>
251
+ </tr>
252
+ <tr>
253
+ <td>buttontext</td>
254
+ <td><?php _e( "Custom text inside the button", 'custom-twitter-feeds' ); ?></td>
255
+ <td><code>[custom-twitter-feeds buttontext="More..."]</code></td>
256
+ </tr>
257
+
258
+
259
+ </tbody>
260
+ </table>
261
+ <p><span class="fa fa-question-circle" aria-hidden="true"></span>&nbsp; <?php _e('Need help? <a href="?page=custom-twitter-feeds&tab=support">Get Support</a>.'); ?></p>
views/admin/locator-summary.php CHANGED
@@ -1,116 +1,116 @@
1
- <?php
2
- /**
3
- * Custom Feeds for Twitter Feed Locator Summary Template
4
- * Creates the HTML for the feed locator summary
5
- *
6
- * @version 1.14 Custom Feeds for Twitter Pro by Smash Balloon
7
- *
8
- */
9
- // Don't load directly
10
- if ( ! defined( 'ABSPATH' ) ) {
11
- die( '-1' );
12
- }
13
- $locator_summary = CTF_Feed_Locator::summary();
14
- $database_settings = ctf_get_database_settings();
15
- ?>
16
- <div class="ctf-feed-locator-summary-wrap">
17
- <h3><?php esc_html_e( 'Feed Finder Summary', 'custom-twitter-feeds' ); ?></h3>
18
- <p><?php esc_html_e( 'The table below shows a record of all feeds found on your site. A feed may not show up here immediately after being created.', 'custom-twitter-feeds' ); ?></p>
19
- <?php
20
- if ( ! empty( $locator_summary ) ) : ?>
21
-
22
- <?php foreach ( $locator_summary as $locator_section ) :
23
- if ( ! empty( $locator_section['results'] ) ) : ?>
24
- <div class="ctf-single-location">
25
- <h4><?php echo esc_html( $locator_section['label'] ); ?></h4>
26
- <table class="widefat striped">
27
- <thead>
28
- <tr>
29
- <th><?php esc_html_e( 'Type', 'custom-twitter-feeds' ); ?></th>
30
- <th><?php esc_html_e( 'Sources', 'custom-twitter-feeds' ); ?></th>
31
- <th><?php esc_html_e( 'Shortcode', 'custom-twitter-feeds' ); ?></th>
32
- <th><?php esc_html_e( 'Location', 'custom-twitter-feeds' ); ?></th>
33
- </tr>
34
- </thead>
35
- <tbody>
36
-
37
- <?php
38
- $atts_for_page = array();
39
- foreach ( $locator_section['results'] as $result ) :
40
- $should_add = true;
41
- if ( ! empty( $atts_for_page[ $result['post_id'] ] ) ) {
42
- foreach ( $atts_for_page[ $result['post_id'] ] as $existing_atts ) {
43
- if ( $existing_atts === $result['shortcode_atts'] ) {
44
- $should_add = false;
45
- }
46
- }
47
- }
48
- if ( $should_add ) {
49
- $atts_for_page[ $result['post_id'] ][] = $result['shortcode_atts'];
50
- $shortcode_atts = json_decode( $result['shortcode_atts'], true );
51
- $shortcode_atts = is_array( $shortcode_atts ) ? $shortcode_atts : array();
52
- include_once( CTF_URL . '/inc/CtfFeed.php' );
53
-
54
- $twitter_feed = CtfFeed::init( $shortcode_atts );
55
- $settings = $twitter_feed->feed_options;
56
-
57
- $display_terms = str_replace( ' -filter:retweets', '', $settings['feed_term'] );
58
- $comma_separated = $display_terms;
59
- $display = $comma_separated;
60
- if ( strlen( $comma_separated ) > 31 ) {
61
- $display = '<span class="ctf-condensed-wrap">' . esc_html( substr( $comma_separated, 0, 30 ) ) . '<a class="ctf-locator-more" href="JavaScript:void(0);">...</a></span>';
62
- $comma_separated = '<span class="ctf-full-wrap">' . esc_html( $comma_separated ) . '</span>';
63
- } else {
64
- $comma_separated = '';
65
- }
66
- $type = isset( $settings['type'] ) ? $settings['type'] : 'usertimeline';
67
- switch ( $type ) {
68
- case 'usertimeline':
69
- $type = __( 'User Timeline', 'custom-twitter-feeds' );
70
- break;
71
- case 'hometimeline':
72
- $type = __( 'Home Timeline', 'custom-twitter-feeds' );
73
- break;
74
- case 'mentionstimeline':
75
- $type = __( 'Mentions Timeline', 'custom-twitter-feeds' );
76
- break;
77
- case 'search':
78
- $type = __( 'Search/Hashtag', 'custom-twitter-feeds' );
79
- break;
80
- case 'hashtag':
81
- $type = __( 'Search/Hashtag', 'custom-twitter-feeds' );
82
- break;
83
- case 'lists':
84
- $type = __( 'Lists', 'custom-twitter-feeds' );
85
- break;
86
- } $full_shortcode_string = '[custom-twitter-feeds';
87
- foreach ( $shortcode_atts as $key => $value ) {
88
- $full_shortcode_string .= ' ' . esc_html( $key ) . '="' . esc_html( $value ) . '"';
89
- }
90
- $full_shortcode_string .= ']';
91
- ?>
92
- <tr>
93
- <td><?php echo esc_html( $type ); ?></td>
94
- <td><?php echo $display . $comma_separated; ?></td>
95
- <td>
96
- <span class="ctf-condensed-wrap"><a class="ctf-locator-more" href="JavaScript:void(0);"><?php esc_html_e( 'Show', 'custom-twitter-feeds' ); ?></a></span>
97
- <span class="ctf-full-wrap"><?php echo $full_shortcode_string; ?></span>
98
- </td>
99
- <td><a href="<?php echo esc_url( get_the_permalink( $result['post_id'] ) ); ?>" target="_blank" rel="noopener"><?php echo esc_html( get_the_title( $result['post_id'] ) ); ?></a></td>
100
- </tr>
101
- <?php
102
- }
103
-
104
- endforeach; ?>
105
-
106
-
107
- </tbody>
108
- </table>
109
- </div>
110
-
111
- <?php endif;
112
- endforeach;
113
- else: ?>
114
- <p><?php esc_html_e( 'Locations of your feeds are currently being detected. You\'ll see more information posted here soon!', 'custom-twitter-feeds' ); ?></p>
115
- <?php endif; ?>
116
  </div>
1
+ <?php
2
+ /**
3
+ * Custom Feeds for Twitter Feed Locator Summary Template
4
+ * Creates the HTML for the feed locator summary
5
+ *
6
+ * @version 1.14 Custom Feeds for Twitter Pro by Smash Balloon
7
+ *
8
+ */
9
+ // Don't load directly
10
+ if ( ! defined( 'ABSPATH' ) ) {
11
+ die( '-1' );
12
+ }
13
+ $locator_summary = CTF_Feed_Locator::summary();
14
+ $database_settings = ctf_get_database_settings();
15
+ ?>
16
+ <div class="ctf-feed-locator-summary-wrap">
17
+ <h3><?php esc_html_e( 'Feed Finder Summary', 'custom-twitter-feeds' ); ?></h3>
18
+ <p><?php esc_html_e( 'The table below shows a record of all feeds found on your site. A feed may not show up here immediately after being created.', 'custom-twitter-feeds' ); ?></p>
19
+ <?php
20
+ if ( ! empty( $locator_summary ) ) : ?>
21
+
22
+ <?php foreach ( $locator_summary as $locator_section ) :
23
+ if ( ! empty( $locator_section['results'] ) ) : ?>
24
+ <div class="ctf-single-location">
25
+ <h4><?php echo esc_html( $locator_section['label'] ); ?></h4>
26
+ <table class="widefat striped">
27
+ <thead>
28
+ <tr>
29
+ <th><?php esc_html_e( 'Type', 'custom-twitter-feeds' ); ?></th>
30
+ <th><?php esc_html_e( 'Sources', 'custom-twitter-feeds' ); ?></th>
31
+ <th><?php esc_html_e( 'Shortcode', 'custom-twitter-feeds' ); ?></th>
32
+ <th><?php esc_html_e( 'Location', 'custom-twitter-feeds' ); ?></th>
33
+ </tr>
34
+ </thead>
35
+ <tbody>
36
+
37
+ <?php
38
+ $atts_for_page = array();
39
+ foreach ( $locator_section['results'] as $result ) :
40
+ $should_add = true;
41
+ if ( ! empty( $atts_for_page[ $result['post_id'] ] ) ) {
42
+ foreach ( $atts_for_page[ $result['post_id'] ] as $existing_atts ) {
43
+ if ( $existing_atts === $result['shortcode_atts'] ) {
44
+ $should_add = false;
45
+ }
46
+ }
47
+ }
48
+ if ( $should_add ) {
49
+ $atts_for_page[ $result['post_id'] ][] = $result['shortcode_atts'];
50
+ $shortcode_atts = json_decode( $result['shortcode_atts'], true );
51
+ $shortcode_atts = is_array( $shortcode_atts ) ? $shortcode_atts : array();
52
+ include_once( CTF_URL . '/inc/CtfFeed.php' );
53
+
54
+ $twitter_feed = CtfFeed::init( $shortcode_atts );
55
+ $settings = $twitter_feed->feed_options;
56
+
57
+ $display_terms = str_replace( ' -filter:retweets', '', $settings['feed_term'] );
58
+ $comma_separated = $display_terms;
59
+ $display = $comma_separated;
60
+ if ( strlen( $comma_separated ) > 31 ) {
61
+ $display = '<span class="ctf-condensed-wrap">' . esc_html( substr( $comma_separated, 0, 30 ) ) . '<a class="ctf-locator-more" href="JavaScript:void(0);">...</a></span>';
62
+ $comma_separated = '<span class="ctf-full-wrap">' . esc_html( $comma_separated ) . '</span>';
63
+ } else {
64
+ $comma_separated = '';
65
+ }
66
+ $type = isset( $settings['type'] ) ? $settings['type'] : 'usertimeline';
67
+ switch ( $type ) {
68
+ case 'usertimeline':
69
+ $type = __( 'User Timeline', 'custom-twitter-feeds' );
70
+ break;
71
+ case 'hometimeline':
72
+ $type = __( 'Home Timeline', 'custom-twitter-feeds' );
73
+ break;
74
+ case 'mentionstimeline':
75
+ $type = __( 'Mentions Timeline', 'custom-twitter-feeds' );
76
+ break;
77
+ case 'search':
78
+ $type = __( 'Search/Hashtag', 'custom-twitter-feeds' );
79
+ break;
80
+ case 'hashtag':
81
+ $type = __( 'Search/Hashtag', 'custom-twitter-feeds' );
82
+ break;
83
+ case 'lists':
84
+ $type = __( 'Lists', 'custom-twitter-feeds' );
85
+ break;
86
+ } $full_shortcode_string = '[custom-twitter-feeds';
87
+ foreach ( $shortcode_atts as $key => $value ) {
88
+ $full_shortcode_string .= ' ' . esc_html( $key ) . '="' . esc_html( $value ) . '"';
89
+ }
90
+ $full_shortcode_string .= ']';
91
+ ?>
92
+ <tr>
93
+ <td><?php echo esc_html( $type ); ?></td>
94
+ <td><?php echo $display . $comma_separated; ?></td>
95
+ <td>
96
+ <span class="ctf-condensed-wrap"><a class="ctf-locator-more" href="JavaScript:void(0);"><?php esc_html_e( 'Show', 'custom-twitter-feeds' ); ?></a></span>
97
+ <span class="ctf-full-wrap"><?php echo $full_shortcode_string; ?></span>
98
+ </td>
99
+ <td><a href="<?php echo esc_url( get_the_permalink( $result['post_id'] ) ); ?>" target="_blank" rel="noopener"><?php echo esc_html( get_the_title( $result['post_id'] ) ); ?></a></td>
100
+ </tr>
101
+ <?php
102
+ }
103
+
104
+ endforeach; ?>
105
+
106
+
107
+ </tbody>
108
+ </table>
109
+ </div>
110
+
111
+ <?php endif;
112
+ endforeach;
113
+ else: ?>
114
+ <p><?php esc_html_e( 'Locations of your feeds are currently being detected. You\'ll see more information posted here soon!', 'custom-twitter-feeds' ); ?></p>
115
+ <?php endif; ?>
116
  </div>
views/admin/main.php CHANGED
@@ -1,70 +1,70 @@
1
- <div id="ctf-admin" class="wrap">
2
- <?php do_action( 'ctf_admin_overview_before_title' ); ?>
3
-
4
- <?php
5
- $lite_notice_dismissed = get_transient( 'twitter_feed_dismiss_lite' );
6
-
7
- if ( ! $lite_notice_dismissed ) :
8
- ?>
9
- <div id="ctf-notice-bar" style="display:none">
10
- <span class="ctf-notice-bar-message"><?php _e( 'You\'re using Custom Twitter Feeds Lite. To unlock more features consider <a href="https://smashballoon.com/custom-twitter-feeds/?utm_campaign=twitter-free&utm_source=noticebar&utm_medium=litenotice" target="_blank" rel="noopener noreferrer">upgrading to Pro</a>.', 'custom-twitter-feeds'); ?></span>
11
- <button type="button" class="dismiss" title="<?php _e( 'Dismiss this message.', 'custom-twitter-feeds'); ?>" data-page="overview">
12
- </button>
13
- </div>
14
- <?php endif; ?>
15
-
16
- <h1>Custom Twitter Feeds</h1>
17
- <?php
18
- // this controls which view is included based on the selected tab
19
- if ( ! isset ( $tab ) ) {
20
- $tab = isset( $_GET["tab"] ) ? $_GET["tab"] : '';
21
- }
22
- $active_tab = CtfAdmin::get_active_tab( $tab );
23
- ?>
24
-
25
- <!-- Display the tabs along with styling for the 'active' tab -->
26
- <h2 class="nav-tab-wrapper">
27
- <a href="admin.php?page=custom-twitter-feeds&tab=configure" class="nav-tab <?php if ( $active_tab == 'configure' ){ echo 'nav-tab-active'; } ?>"><?php _e( '1. Configure', 'ctf' ); ?></a>
28
- <a href="admin.php?page=custom-twitter-feeds&tab=customize" class="nav-tab <?php if ( $active_tab == 'customize' ){ echo 'nav-tab-active'; } ?>"><?php _e( '2. Customize', 'ctf' ); ?></a>
29
- <a href="admin.php?page=custom-twitter-feeds&tab=style" class="nav-tab <?php if ( $active_tab == 'style' ){ echo 'nav-tab-active'; } ?>"><?php _e( '3. Style', 'ctf' ); ?></a>
30
- <a href="admin.php?page=custom-twitter-feeds&tab=display" class="nav-tab <?php if ( $active_tab == 'display' ){ echo 'nav-tab-active'; } ?>"><?php _e( '4. Display Your Feed', 'ctf' ); ?></a>
31
- <a href="admin.php?page=custom-twitter-feeds&tab=support" class="nav-tab <?php if ( $active_tab == 'support' ){ echo 'nav-tab-active'; } ?>"><?php _e( 'Support', 'ctf' ); ?></a>
32
- <a href="admin.php?page=custom-twitter-feeds&amp;tab=more" class="nav-tab <?php echo $active_tab == 'more' ? 'nav-tab-active' : ''; ?>"><?php _e('More Social Feeds', 'ctf'); ?>
33
- </a>
34
- </h2>
35
- <?php
36
-
37
- if ( isset( $active_tab ) ) {
38
- if ( $active_tab === 'customize' ) {
39
- require_once CTF_URL . 'views/admin/customize.php';
40
- } elseif ( $active_tab === 'style' ) {
41
- require_once CTF_URL . 'views/admin/style.php';
42
- } elseif ( $active_tab === 'configure' ) {
43
- require_once CTF_URL . 'views/admin/configure.php';
44
- } elseif ( $active_tab === 'display' ) {
45
- require_once CTF_URL .'views/admin/display.php';
46
- } elseif ( $active_tab === 'allfeeds' ) {
47
- require_once CTF_URL .'views/admin/locator-summary.php';
48
- } elseif ( $active_tab === 'support' ) {
49
- require_once CTF_URL .'views/admin/support.php';
50
- } elseif ( $active_tab === 'more' ) {
51
- require_once CTF_URL .'views/admin/more-social-feeds.php';
52
- }
53
- }
54
- ?>
55
-
56
- <p><span class="fa fa-life-ring" aria-hidden="true"></span>&nbsp; <?php _e('Need help setting up the plugin? Check out our <a href="https://smashballoon.com/custom-twitter-feeds/free/?utm_campaign=twitter-free&utm_source=settings&utm_medium=helpsetup" target="_blank">setup directions</a>', 'custom-twitter-feeds'); ?></p>
57
-
58
- <div class="ctf-quick-start">
59
- <h3><span class="fa fa-rocket" aria-hidden="true"></span>&nbsp; <?php _e( 'Display your feed', 'custom-twitter-feeds'); ?></h3>
60
- <p><?php _e( "Copy and paste this shortcode directly into the page, post or widget where you'd like to display the feed:", "custom-twitter-feeds" ); ?>
61
- <input type="text" value="[custom-twitter-feeds]" size="18" readonly="readonly" style="text-align: center;" onclick="this.focus();this.select()" title="<?php _e( 'To copy, click the field then press Ctrl + C (PC) or Cmd + C (Mac).', 'custom-twitter-feeds' ); ?>" /></p>
62
- <p><?php _e( "Find out how to display <a href='?page=custom-twitter-feeds&tab=display'>multiple feeds</a>.", "custom-twitter-feeds" ); ?></p>
63
- </div>
64
-
65
- <a href="https://smashballoon.com/custom-twitter-feeds/demo?utm_campaign=twitter-free&utm_source=settings&utm_medium=pronotice" target="_blank" class="ctf-pro-notice">
66
- <img src="<?php echo plugins_url( '../../img/pro-notice.png?1' , __FILE__ ) ?>" alt="Custom Twitter Feeds Pro" />
67
- </a>
68
-
69
- <p class="ctf-footnote dashicons-before dashicons-admin-plugins"> Check out our free plugins: <a href="https://wordpress.org/plugins/custom-facebook-feed/" target="_blank">Facebook</a>, <a href="https://wordpress.org/plugins/instagram-feed/" target="_blank">Instagram</a>, and <a href="https://wordpress.org/plugins/feeds-for-youtube/" target="_blank">YouTube</a>.</p>
70
  </div>
1
+ <div id="ctf-admin" class="wrap">
2
+ <?php do_action( 'ctf_admin_overview_before_title' ); ?>
3
+
4
+ <?php
5
+ $lite_notice_dismissed = get_transient( 'twitter_feed_dismiss_lite' );
6
+
7
+ if ( ! $lite_notice_dismissed ) :
8
+ ?>
9
+ <div id="ctf-notice-bar" style="display:none">
10
+ <span class="ctf-notice-bar-message"><?php _e( 'You\'re using Custom Twitter Feeds Lite. To unlock more features consider <a href="https://smashballoon.com/custom-twitter-feeds/?utm_campaign=twitter-free&utm_source=noticebar&utm_medium=litenotice" target="_blank" rel="noopener noreferrer">upgrading to Pro</a>.', 'custom-twitter-feeds'); ?></span>
11
+ <button type="button" class="dismiss" title="<?php _e( 'Dismiss this message.', 'custom-twitter-feeds'); ?>" data-page="overview">
12
+ </button>
13
+ </div>
14
+ <?php endif; ?>
15
+
16
+ <h1>Custom Twitter Feeds</h1>
17
+ <?php
18
+ // this controls which view is included based on the selected tab
19
+ if ( ! isset ( $tab ) ) {
20
+ $tab = isset( $_GET["tab"] ) ? $_GET["tab"] : '';
21
+ }
22
+ $active_tab = CtfAdmin::get_active_tab( $tab );
23
+ ?>
24
+
25
+ <!-- Display the tabs along with styling for the 'active' tab -->
26
+ <h2 class="nav-tab-wrapper">
27
+ <a href="admin.php?page=custom-twitter-feeds&tab=configure" class="nav-tab <?php if ( $active_tab == 'configure' ){ echo 'nav-tab-active'; } ?>"><?php _e( '1. Configure', 'ctf' ); ?></a>
28
+ <a href="admin.php?page=custom-twitter-feeds&tab=customize" class="nav-tab <?php if ( $active_tab == 'customize' ){ echo 'nav-tab-active'; } ?>"><?php _e( '2. Customize', 'ctf' ); ?></a>
29
+ <a href="admin.php?page=custom-twitter-feeds&tab=style" class="nav-tab <?php if ( $active_tab == 'style' ){ echo 'nav-tab-active'; } ?>"><?php _e( '3. Style', 'ctf' ); ?></a>
30
+ <a href="admin.php?page=custom-twitter-feeds&tab=display" class="nav-tab <?php if ( $active_tab == 'display' ){ echo 'nav-tab-active'; } ?>"><?php _e( '4. Display Your Feed', 'ctf' ); ?></a>
31
+ <a href="admin.php?page=custom-twitter-feeds&tab=support" class="nav-tab <?php if ( $active_tab == 'support' ){ echo 'nav-tab-active'; } ?>"><?php _e( 'Support', 'ctf' ); ?></a>
32
+ <a href="admin.php?page=custom-twitter-feeds&amp;tab=more" class="nav-tab <?php echo $active_tab == 'more' ? 'nav-tab-active' : ''; ?>"><?php _e('More Social Feeds', 'ctf'); ?>
33
+ </a>
34
+ </h2>
35
+ <?php
36
+
37
+ if ( isset( $active_tab ) ) {
38
+ if ( $active_tab === 'customize' ) {
39
+ require_once CTF_URL . 'views/admin/customize.php';
40
+ } elseif ( $active_tab === 'style' ) {
41
+ require_once CTF_URL . 'views/admin/style.php';
42
+ } elseif ( $active_tab === 'configure' ) {
43
+ require_once CTF_URL . 'views/admin/configure.php';
44
+ } elseif ( $active_tab === 'display' ) {
45
+ require_once CTF_URL .'views/admin/display.php';
46
+ } elseif ( $active_tab === 'allfeeds' ) {
47
+ require_once CTF_URL .'views/admin/locator-summary.php';
48
+ } elseif ( $active_tab === 'support' ) {
49
+ require_once CTF_URL .'views/admin/support.php';
50
+ } elseif ( $active_tab === 'more' ) {
51
+ require_once CTF_URL .'views/admin/more-social-feeds.php';
52
+ }
53
+ }
54
+ ?>
55
+
56
+ <p><span class="fa fa-life-ring" aria-hidden="true"></span>&nbsp; <?php _e('Need help setting up the plugin? Check out our <a href="https://smashballoon.com/custom-twitter-feeds/free/?utm_campaign=twitter-free&utm_source=settings&utm_medium=helpsetup" target="_blank">setup directions</a>', 'custom-twitter-feeds'); ?></p>
57
+
58
+ <div class="ctf-quick-start">
59
+ <h3><span class="fa fa-rocket" aria-hidden="true"></span>&nbsp; <?php _e( 'Display your feed', 'custom-twitter-feeds'); ?></h3>
60
+ <p><?php _e( "Copy and paste this shortcode directly into the page, post or widget where you'd like to display the feed:", "custom-twitter-feeds" ); ?>
61
+ <input type="text" value="[custom-twitter-feeds]" size="18" readonly="readonly" style="text-align: center;" onclick="this.focus();this.select()" title="<?php _e( 'To copy, click the field then press Ctrl + C (PC) or Cmd + C (Mac).', 'custom-twitter-feeds' ); ?>" /></p>
62
+ <p><?php _e( "Find out how to display <a href='?page=custom-twitter-feeds&tab=display'>multiple feeds</a>.", "custom-twitter-feeds" ); ?></p>
63
+ </div>
64
+
65
+ <a href="https://smashballoon.com/custom-twitter-feeds/demo?utm_campaign=twitter-free&utm_source=settings&utm_medium=pronotice" target="_blank" class="ctf-pro-notice">
66
+ <img src="<?php echo plugins_url( '../../img/pro-notice.png?1' , __FILE__ ) ?>" alt="Custom Twitter Feeds Pro" />
67
+ </a>
68
+
69
+ <p class="ctf-footnote dashicons-before dashicons-admin-plugins"> Check out our free plugins: <a href="https://wordpress.org/plugins/custom-facebook-feed/" target="_blank">Facebook</a>, <a href="https://wordpress.org/plugins/instagram-feed/" target="_blank">Instagram</a>, and <a href="https://wordpress.org/plugins/feeds-for-youtube/" target="_blank">YouTube</a>.</p>
70
  </div>
views/admin/more-social-feeds.php CHANGED
@@ -1,256 +1,256 @@
1
- <div class="ctf_more_plugins" id="ctf-admin-about">
2
-
3
- <div class="ctf-more-plugins-intro">
4
- <h3><?php _e( "Here's some more <span>free</span> plugins you might like!", 'ctf' ); ?></h3>
5
- <p><?php _e( "As you're already using one of our free plugins we thought we'd suggest some others you might like to. Check out our other free plugins below:", 'ctf' ); ?></p>
6
- </div>
7
-
8
- <?php function get_am_plugins() {
9
-
10
- $images_url = CTF_PLUGIN_URL . 'img/about/';
11
-
12
- return array(
13
- 'instagram-feed/instagram-feed.php' => array(
14
- 'icon' => $images_url . 'plugin-if.png',
15
- 'name' => esc_html__( 'Instagram Feed', 'ctf' ),
16
- 'desc' => esc_html__( 'Instagram Feed is a clean and beautiful way to add your Instagram posts to your website. Grab your visitors attention and keep them engaged with your site longer.', 'ctf' ),
17
- 'url' => 'https://downloads.wordpress.org/plugin/instagram-feed.zip',
18
- 'pro' => array(
19
- 'plug' => 'instagram-feed-pro/instagram-feed.php',
20
- 'icon' => $images_url . 'plugin-if.png',
21
- 'name' => esc_html__( 'Instagram Feed Pro', 'ctf' ),
22
- 'desc' => esc_html__( 'Instagram Feed is a clean and beautiful way to add your Instagram posts to your website. Grab your visitors attention and keep them engaged with your site longer.', 'ctf' ),
23
- 'url' => 'https://smashballoon.com/instagram-feed/?utm_campaign=facebook-free&utm_source=cross&utm_medium=ctfinstaller',
24
- 'act' => 'go-to-url',
25
- ),
26
- ),
27
- 'custom-facebook-feed/custom-facebook-feed.php' => array(
28
- 'icon' => $images_url . 'plugin-fb.png',
29
- 'name' => esc_html__( 'Custom Facebook Feed', 'ctf' ),
30
- 'desc' => esc_html__( 'Custom Facebook Feed makes displaying your Facebook posts easy. Keep your site visitors informed and increase engagement with your Facebook page by displaying a feed on your website.', 'ctf' ),
31
- 'url' => 'https://downloads.wordpress.org/plugin/custom-facebook-feed.zip',
32
- 'pro' => array(
33
- 'plug' => 'custom-facebook-feed-pro/custom-facebook-feed.php',
34
- 'icon' => $images_url . 'plugin-fb.png',
35
- 'name' => esc_html__( 'Custom Facebook Feed Pro', 'ctf' ),
36
- 'desc' => esc_html__( 'Custom Facebook Feed makes displaying your Facebook posts easy. Keep your site visitors informed and increase engagement with your Facebook page by displaying a feed on your website.', 'ctf' ),
37
- 'url' => 'https://smashballoon.com/custom-facebook-feed/?utm_campaign=instagram-free&utm_source=cross&utm_medium=ctfinstaller',
38
- 'act' => 'go-to-url',
39
- )
40
- ),
41
-
42
- 'custom-twitter-feeds/custom-twitter-feed.php' => array(
43
- 'icon' => $images_url . 'plugin-tw.jpg',
44
- 'name' => esc_html__( 'Custom Twitter Feeds', 'ctf' ),
45
- 'desc' => esc_html__( 'Custom Twitter Feeds is a highly customizable way to display tweets from your Twitter account. Promote your latest content and update your site content automatically.', 'ctf' ),
46
- 'url' => 'https://downloads.wordpress.org/plugin/custom-twitter-feeds.zip',
47
- 'pro' => array(
48
- 'plug' => 'custom-twitter-feeds-pro/custom-twitter-feed.php',
49
- 'icon' => $images_url . 'plugin-tw.jpg',
50
- 'name' => esc_html__( 'Custom Twitter Feeds Pro', 'ctf' ),
51
- 'desc' => esc_html__( 'Custom Twitter Feeds is a highly customizable way to display tweets from your Twitter account. Promote your latest content and update your site content automatically.', 'ctf' ),
52
- 'url' => 'https://smashballoon.com/custom-twitter-feeds/?utm_campaign=instagram-free&utm_source=cross&utm_medium=ctfinstaller',
53
- 'act' => 'go-to-url',
54
- )
55
- ),
56
-
57
- 'feeds-for-youtube/youtube-feed.php' => array(
58
- 'icon' => $images_url . 'plugin-yt.png',
59
- 'name' => esc_html__( 'Feeds for YouTube', 'ctf' ),
60
- 'desc' => esc_html__( 'Feeds for YouTube is a simple yet powerful way to display videos from YouTube on your website. Increase engagement with your channel while keeping visitors on your website.', 'ctf' ),
61
- 'url' => 'https://downloads.wordpress.org/plugin/feeds-for-youtube.zip',
62
- 'pro' => array(
63
- 'plug' => 'youtube-feed-pro/youtube-feed.php',
64
- 'icon' => $images_url . 'plugin-yt.png',
65
- 'name' => esc_html__( 'Feeds for YouTube Pro', 'ctf' ),
66
- 'desc' => esc_html__( 'Feeds for YouTube is a simple yet powerful way to display videos from YouTube on your website. Increase engagement with your channel while keeping visitors on your website.', 'ctf' ),
67
- 'url' => 'https://smashballoon.com/youtube-feed/?utm_campaign=instagram-free&utm_source=cross&utm_medium=sbyinstaller',
68
- 'act' => 'go-to-url',
69
- )
70
- ),
71
- );
72
-
73
- }
74
-
75
- function output_about_addons() {
76
-
77
- if ( version_compare( PHP_VERSION, '5.3.0' ) <= 0
78
- || version_compare( get_bloginfo('version'), '4.6' , '<' ) ){
79
- return;
80
- }
81
-
82
- $all_plugins = get_plugins();
83
- $am_plugins = get_am_plugins();
84
- $has_all_plugins = true;
85
-
86
- ?>
87
- <div id="ctf-admin-addons">
88
- <div class="addons-container">
89
- <?php
90
- foreach ( $am_plugins as $plugin => $details ) :
91
-
92
- $free_only = true;
93
- $plugin_data = get_the_plugin_data( $plugin, $details, $all_plugins, $free_only );
94
- $plugin_slug = strtolower( str_replace( ' ', '_', $plugin_data['details']['name'] ) );
95
-
96
- //Only show the plugin if both free/pro versions aren't already active
97
- isset( $plugin_data['details']['plug'] ) ? $pro_plugin_source = $plugin_data['details']['plug'] : $pro_plugin_source = '';
98
-
99
- if( !is_plugin_active( $plugin ) && !is_plugin_active( $pro_plugin_source ) ){
100
- $has_all_plugins = false;
101
- ?>
102
- <div class="addon-container" id="install_<?php echo $plugin_slug; ?>">
103
- <div class="addon-item">
104
- <div class="details ctf-clear">
105
- <img src="<?php echo esc_url( $plugin_data['details']['icon'] ); ?>">
106
- <h5 class="addon-name">
107
- <?php echo esc_html( $plugin_data['details']['name'] ); ?>
108
- </h5>
109
- <p class="addon-desc">
110
- <?php echo wp_kses_post( $plugin_data['details']['desc'] ); ?>
111
- </p>
112
- </div>
113
- <div class="actions ctf-clear">
114
- <div class="status">
115
- <strong>
116
- <?php _e( 'Price:', 'ctf' );
117
- echo ' <span style="color: green;">';
118
- _e( 'Free', 'ctf' );
119
- echo '</span>'; ?>
120
- </strong>
121
- </div>
122
- <div class="action-button">
123
- <button class="<?php echo esc_attr( $plugin_data['action_class'] ); ?>" data-plugin="<?php echo esc_attr( $plugin_data['plugin_src'] ); ?>" data-type="plugin">
124
- <?php echo wp_kses_post( $plugin_data['action_text'] ); ?>
125
- </button>
126
- </div>
127
- </div>
128
- </div>
129
- </div>
130
-
131
- <?php } ?>
132
-
133
- <?php endforeach;
134
-
135
- if( $has_all_plugins == true ){ ?>
136
-
137
- <style type="text/css">.ctf-more-plugins-intro{display:none;}</style>
138
- <h2><?php _e( 'You already have all of our free plugins. Awesome!', 'ctf' ); ?></h2>
139
-
140
- <p><?php _e( 'Thank you so much for using our plugins. We appreciate you trusting us to power your social media feeds.', 'ctf' ); ?></p>
141
- <p><?php _e( 'If you want to support us in our mission to make bringing social media content to your website both easy and reliable, then consider upgrading to one of our Pro plugins.', 'ctf' ); ?></p>
142
-
143
- <div class="ctf-cols-4">
144
- <?php //Show a list of Pro plugins which aren't currently active ?>
145
- <?php foreach ( $am_plugins as $plugin => $details ) :
146
-
147
- $plugin_data = get_the_plugin_data( $plugin, $details, $all_plugins );
148
- $plugin_slug = strtolower( str_replace( ' ', '_', $plugin_data['details']['name'] ) );
149
-
150
- isset( $plugin_data['details']['plug'] ) ? $pro_plugin_source = $plugin_data['details']['plug'] : $pro_plugin_source = '';
151
- if( !is_plugin_active( $pro_plugin_source ) ){
152
- ?>
153
-
154
- <div class="addon-container" id="install_<?php echo $plugin_slug; ?>">
155
- <div class="addon-item">
156
- <div class="details ctf-clear">
157
- <img src="<?php echo esc_url( $plugin_data['details']['icon'] ); ?>">
158
- <h5 class="addon-name">
159
- <?php echo esc_html( $plugin_data['details']['name'] ); ?>
160
- </h5>
161
- <p class="addon-desc">
162
- <?php echo wp_kses_post( $plugin_data['details']['desc'] ); ?>
163
- </p>
164
- </div>
165
- <div class="actions ctf-clear">
166
- <div class="action-button">
167
- <a href="<?php echo esc_attr( $details['pro']['url'] ); ?>" target="_blank" class="status-go-to-url button button-primary">
168
- <?php _e( 'Upgrade to Pro', 'ctf' ); ?>
169
- </a>
170
- </div>
171
- </div>
172
- </div>
173
- </div>
174
-
175
- <?php } ?>
176
-
177
- <?php endforeach; ?>
178
- </div>
179
-
180
- <?php } ?>
181
-
182
- </div>
183
- </div>
184
- <?php
185
- }
186
-
187
-
188
- function get_the_plugin_data( $plugin, $details, $all_plugins, $free_only = false ) {
189
-
190
- $have_pro = ( ! empty( $details['pro'] ) && ! empty( $details['pro']['plug'] ) );
191
- $show_pro = false;
192
-
193
- $plugin_data = array();
194
-
195
- if( $free_only ) $have_pro = false;
196
-
197
- if ( $have_pro ) {
198
- if ( array_key_exists( $plugin, $all_plugins ) ) {
199
- if ( is_plugin_active( $plugin ) ) {
200
- $show_pro = true;
201
- }
202
- }
203
- if ( array_key_exists( $details['pro']['plug'], $all_plugins ) ) {
204
- $show_pro = true;
205
- }
206
- if ( $show_pro ) {
207
- $plugin = $details['pro']['plug'];
208
- $details = $details['pro'];
209
- }
210
- }
211
-
212
- if( $free_only ) $show_pro = false;
213
-
214
- if ( array_key_exists( $plugin, $all_plugins ) ) {
215
- if ( is_plugin_active( $plugin ) ) {
216
- // Status text/status.
217
- $plugin_data['status_class'] = 'status-active';
218
- $plugin_data['status_text'] = esc_html__( 'Active', 'ctf' );
219
- // Button text/status.
220
- $plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-secondary disabled';
221
- $plugin_data['action_text'] = esc_html__( 'Activated', 'ctf' );
222
- $plugin_data['plugin_src'] = esc_attr( $plugin );
223
- } else {
224
- // Status text/status.
225
- $plugin_data['status_class'] = 'status-inactive';
226
- $plugin_data['status_text'] = esc_html__( 'Inactive', 'ctf' );
227
- // Button text/status.
228
- $plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-secondary';
229
- $plugin_data['action_text'] = esc_html__( 'Activate', 'ctf' );
230
- $plugin_data['plugin_src'] = esc_attr( $plugin );
231
- }
232
- } else {
233
- // Doesn't exist, install.
234
- // Status text/status.
235
- $plugin_data['status_class'] = 'status-download';
236
- if ( isset( $details['act'] ) && 'go-to-url' === $details['act'] ) {
237
- $plugin_data['status_class'] = 'status-go-to-url';
238
- }
239
- $plugin_data['status_text'] = esc_html__( 'Not Installed', 'ctf' );
240
- // Button text/status.
241
- $plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-primary';
242
- $plugin_data['action_text'] = esc_html__( 'Install Plugin', 'ctf' );
243
- $plugin_data['plugin_src'] = esc_url( $details['url'] );
244
- }
245
-
246
- $plugin_data['details'] = $details;
247
-
248
- return $plugin_data;
249
- }
250
-
251
-
252
- output_about_addons();
253
-
254
- ?>
255
- <style>.ctf_quickstart, .ctf-pro-notice, .ctf_plugins_promo, .ctf_share_plugin{ display: none !Important; }</style>
256
  </div>
1
+ <div class="ctf_more_plugins" id="ctf-admin-about">
2
+
3
+ <div class="ctf-more-plugins-intro">
4
+ <h3><?php _e( "Here's some more <span>free</span> plugins you might like!", 'ctf' ); ?></h3>
5
+ <p><?php _e( "As you're already using one of our free plugins we thought we'd suggest some others you might like to. Check out our other free plugins below:", 'ctf' ); ?></p>
6
+ </div>
7
+
8
+ <?php function get_am_plugins() {
9
+
10
+ $images_url = CTF_PLUGIN_URL . 'img/about/';
11
+
12
+ return array(
13
+ 'instagram-feed/instagram-feed.php' => array(
14
+ 'icon' => $images_url . 'plugin-if.png',
15
+ 'name' => esc_html__( 'Instagram Feed', 'ctf' ),
16
+ 'desc' => esc_html__( 'Instagram Feed is a clean and beautiful way to add your Instagram posts to your website. Grab your visitors attention and keep them engaged with your site longer.', 'ctf' ),
17
+ 'url' => 'https://downloads.wordpress.org/plugin/instagram-feed.zip',
18
+ 'pro' => array(
19
+ 'plug' => 'instagram-feed-pro/instagram-feed.php',
20
+ 'icon' => $images_url . 'plugin-if.png',
21
+ 'name' => esc_html__( 'Instagram Feed Pro', 'ctf' ),
22
+ 'desc' => esc_html__( 'Instagram Feed is a clean and beautiful way to add your Instagram posts to your website. Grab your visitors attention and keep them engaged with your site longer.', 'ctf' ),
23
+ 'url' => 'https://smashballoon.com/instagram-feed/?utm_campaign=facebook-free&utm_source=cross&utm_medium=ctfinstaller',
24
+ 'act' => 'go-to-url',
25
+ ),
26
+ ),
27
+ 'custom-facebook-feed/custom-facebook-feed.php' => array(
28
+ 'icon' => $images_url . 'plugin-fb.png',
29
+ 'name' => esc_html__( 'Custom Facebook Feed', 'ctf' ),
30
+ 'desc' => esc_html__( 'Custom Facebook Feed makes displaying your Facebook posts easy. Keep your site visitors informed and increase engagement with your Facebook page by displaying a feed on your website.', 'ctf' ),
31
+ 'url' => 'https://downloads.wordpress.org/plugin/custom-facebook-feed.zip',
32
+ 'pro' => array(
33
+ 'plug' => 'custom-facebook-feed-pro/custom-facebook-feed.php',
34
+ 'icon' => $images_url . 'plugin-fb.png',
35
+ 'name' => esc_html__( 'Custom Facebook Feed Pro', 'ctf' ),
36
+ 'desc' => esc_html__( 'Custom Facebook Feed makes displaying your Facebook posts easy. Keep your site visitors informed and increase engagement with your Facebook page by displaying a feed on your website.', 'ctf' ),
37
+ 'url' => 'https://smashballoon.com/custom-facebook-feed/?utm_campaign=instagram-free&utm_source=cross&utm_medium=ctfinstaller',
38
+ 'act' => 'go-to-url',
39
+ )
40
+ ),
41
+
42
+ 'custom-twitter-feeds/custom-twitter-feed.php' => array(
43
+ 'icon' => $images_url . 'plugin-tw.jpg',
44
+ 'name' => esc_html__( 'Custom Twitter Feeds', 'ctf' ),
45
+ 'desc' => esc_html__( 'Custom Twitter Feeds is a highly customizable way to display tweets from your Twitter account. Promote your latest content and update your site content automatically.', 'ctf' ),
46
+ 'url' => 'https://downloads.wordpress.org/plugin/custom-twitter-feeds.zip',
47
+ 'pro' => array(
48
+ 'plug' => 'custom-twitter-feeds-pro/custom-twitter-feed.php',
49
+ 'icon' => $images_url . 'plugin-tw.jpg',
50
+ 'name' => esc_html__( 'Custom Twitter Feeds Pro', 'ctf' ),
51
+ 'desc' => esc_html__( 'Custom Twitter Feeds is a highly customizable way to display tweets from your Twitter account. Promote your latest content and update your site content automatically.', 'ctf' ),
52
+ 'url' => 'https://smashballoon.com/custom-twitter-feeds/?utm_campaign=instagram-free&utm_source=cross&utm_medium=ctfinstaller',
53
+ 'act' => 'go-to-url',
54
+ )
55
+ ),
56
+
57
+ 'feeds-for-youtube/youtube-feed.php' => array(
58
+ 'icon' => $images_url . 'plugin-yt.png',
59
+ 'name' => esc_html__( 'Feeds for YouTube', 'ctf' ),
60
+ 'desc' => esc_html__( 'Feeds for YouTube is a simple yet powerful way to display videos from YouTube on your website. Increase engagement with your channel while keeping visitors on your website.', 'ctf' ),
61
+ 'url' => 'https://downloads.wordpress.org/plugin/feeds-for-youtube.zip',
62
+ 'pro' => array(
63
+ 'plug' => 'youtube-feed-pro/youtube-feed.php',
64
+ 'icon' => $images_url . 'plugin-yt.png',
65
+ 'name' => esc_html__( 'Feeds for YouTube Pro', 'ctf' ),
66
+ 'desc' => esc_html__( 'Feeds for YouTube is a simple yet powerful way to display videos from YouTube on your website. Increase engagement with your channel while keeping visitors on your website.', 'ctf' ),
67
+ 'url' => 'https://smashballoon.com/youtube-feed/?utm_campaign=instagram-free&utm_source=cross&utm_medium=sbyinstaller',
68
+ 'act' => 'go-to-url',
69
+ )
70
+ ),
71
+ );
72
+
73
+ }
74
+
75
+ function output_about_addons() {
76
+
77
+ if ( version_compare( PHP_VERSION, '5.3.0' ) <= 0
78
+ || version_compare( get_bloginfo('version'), '4.6' , '<' ) ){
79
+ return;
80
+ }
81
+
82
+ $all_plugins = get_plugins();
83
+ $am_plugins = get_am_plugins();
84
+ $has_all_plugins = true;
85
+
86
+ ?>
87
+ <div id="ctf-admin-addons">
88
+ <div class="addons-container">
89
+ <?php
90
+ foreach ( $am_plugins as $plugin => $details ) :
91
+
92
+ $free_only = true;
93
+ $plugin_data = get_the_plugin_data( $plugin, $details, $all_plugins, $free_only );
94
+ $plugin_slug = strtolower( str_replace( ' ', '_', $plugin_data['details']['name'] ) );
95
+
96
+ //Only show the plugin if both free/pro versions aren't already active
97
+ isset( $plugin_data['details']['plug'] ) ? $pro_plugin_source = $plugin_data['details']['plug'] : $pro_plugin_source = '';
98
+
99
+ if( !is_plugin_active( $plugin ) && !is_plugin_active( $pro_plugin_source ) ){
100
+ $has_all_plugins = false;
101
+ ?>
102
+ <div class="addon-container" id="install_<?php echo $plugin_slug; ?>">
103
+ <div class="addon-item">
104
+ <div class="details ctf-clear">
105
+ <img src="<?php echo esc_url( $plugin_data['details']['icon'] ); ?>">
106
+ <h5 class="addon-name">
107
+ <?php echo esc_html( $plugin_data['details']['name'] ); ?>
108
+ </h5>
109
+ <p class="addon-desc">
110
+ <?php echo wp_kses_post( $plugin_data['details']['desc'] ); ?>
111
+ </p>
112
+ </div>
113
+ <div class="actions ctf-clear">
114
+ <div class="status">
115
+ <strong>
116
+ <?php _e( 'Price:', 'ctf' );
117
+ echo ' <span style="color: green;">';
118
+ _e( 'Free', 'ctf' );
119
+ echo '</span>'; ?>
120
+ </strong>
121
+ </div>
122
+ <div class="action-button">
123
+ <button class="<?php echo esc_attr( $plugin_data['action_class'] ); ?>" data-plugin="<?php echo esc_attr( $plugin_data['plugin_src'] ); ?>" data-type="plugin">
124
+ <?php echo wp_kses_post( $plugin_data['action_text'] ); ?>
125
+ </button>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </div>
130
+
131
+ <?php } ?>
132
+
133
+ <?php endforeach;
134
+
135
+ if( $has_all_plugins == true ){ ?>
136
+
137
+ <style type="text/css">.ctf-more-plugins-intro{display:none;}</style>
138
+ <h2><?php _e( 'You already have all of our free plugins. Awesome!', 'ctf' ); ?></h2>
139
+
140
+ <p><?php _e( 'Thank you so much for using our plugins. We appreciate you trusting us to power your social media feeds.', 'ctf' ); ?></p>
141
+ <p><?php _e( 'If you want to support us in our mission to make bringing social media content to your website both easy and reliable, then consider upgrading to one of our Pro plugins.', 'ctf' ); ?></p>
142
+
143
+ <div class="ctf-cols-4">
144
+ <?php //Show a list of Pro plugins which aren't currently active ?>
145
+ <?php foreach ( $am_plugins as $plugin => $details ) :
146
+
147
+ $plugin_data = get_the_plugin_data( $plugin, $details, $all_plugins );
148
+ $plugin_slug = strtolower( str_replace( ' ', '_', $plugin_data['details']['name'] ) );
149
+
150
+ isset( $plugin_data['details']['plug'] ) ? $pro_plugin_source = $plugin_data['details']['plug'] : $pro_plugin_source = '';
151
+ if( !is_plugin_active( $pro_plugin_source ) ){
152
+ ?>
153
+
154
+ <div class="addon-container" id="install_<?php echo $plugin_slug; ?>">
155
+ <div class="addon-item">
156
+ <div class="details ctf-clear">
157
+ <img src="<?php echo esc_url( $plugin_data['details']['icon'] ); ?>">
158
+ <h5 class="addon-name">
159
+ <?php echo esc_html( $plugin_data['details']['name'] ); ?>
160
+ </h5>
161
+ <p class="addon-desc">
162
+ <?php echo wp_kses_post( $plugin_data['details']['desc'] ); ?>
163
+ </p>
164
+ </div>
165
+ <div class="actions ctf-clear">
166
+ <div class="action-button">
167
+ <a href="<?php echo esc_attr( $details['pro']['url'] ); ?>" target="_blank" class="status-go-to-url button button-primary">
168
+ <?php _e( 'Upgrade to Pro', 'ctf' ); ?>
169
+ </a>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ </div>
174
+
175
+ <?php } ?>
176
+
177
+ <?php endforeach; ?>
178
+ </div>
179
+
180
+ <?php } ?>
181
+
182
+ </div>
183
+ </div>
184
+ <?php
185
+ }
186
+
187
+
188
+ function get_the_plugin_data( $plugin, $details, $all_plugins, $free_only = false ) {
189
+
190
+ $have_pro = ( ! empty( $details['pro'] ) && ! empty( $details['pro']['plug'] ) );
191
+ $show_pro = false;
192
+
193
+ $plugin_data = array();
194
+
195
+ if( $free_only ) $have_pro = false;
196
+
197
+ if ( $have_pro ) {
198
+ if ( array_key_exists( $plugin, $all_plugins ) ) {
199
+ if ( is_plugin_active( $plugin ) ) {
200
+ $show_pro = true;
201
+ }
202
+ }
203
+ if ( array_key_exists( $details['pro']['plug'], $all_plugins ) ) {
204
+ $show_pro = true;
205
+ }
206
+ if ( $show_pro ) {
207
+ $plugin = $details['pro']['plug'];
208
+ $details = $details['pro'];
209
+ }
210
+ }
211
+
212
+ if( $free_only ) $show_pro = false;
213
+
214
+ if ( array_key_exists( $plugin, $all_plugins ) ) {
215
+ if ( is_plugin_active( $plugin ) ) {
216
+ // Status text/status.
217
+ $plugin_data['status_class'] = 'status-active';
218
+ $plugin_data['status_text'] = esc_html__( 'Active', 'ctf' );
219
+ // Button text/status.
220
+ $plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-secondary disabled';
221
+ $plugin_data['action_text'] = esc_html__( 'Activated', 'ctf' );
222
+ $plugin_data['plugin_src'] = esc_attr( $plugin );
223
+ } else {
224
+ // Status text/status.
225
+ $plugin_data['status_class'] = 'status-inactive';
226
+ $plugin_data['status_text'] = esc_html__( 'Inactive', 'ctf' );
227
+ // Button text/status.
228
+ $plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-secondary';
229
+ $plugin_data['action_text'] = esc_html__( 'Activate', 'ctf' );
230
+ $plugin_data['plugin_src'] = esc_attr( $plugin );
231
+ }
232
+ } else {
233
+ // Doesn't exist, install.
234
+ // Status text/status.
235
+ $plugin_data['status_class'] = 'status-download';
236
+ if ( isset( $details['act'] ) && 'go-to-url' === $details['act'] ) {
237
+ $plugin_data['status_class'] = 'status-go-to-url';
238
+ }
239
+ $plugin_data['status_text'] = esc_html__( 'Not Installed', 'ctf' );
240
+ // Button text/status.
241
+ $plugin_data['action_class'] = $plugin_data['status_class'] . ' button button-primary';
242
+ $plugin_data['action_text'] = esc_html__( 'Install Plugin', 'ctf' );
243
+ $plugin_data['plugin_src'] = esc_url( $details['url'] );
244
+ }
245
+
246
+ $plugin_data['details'] = $details;
247
+
248
+ return $plugin_data;
249
+ }
250
+
251
+
252
+ output_about_addons();
253
+
254
+ ?>
255
+ <style>.ctf_quickstart, .ctf-pro-notice, .ctf_plugins_promo, .ctf_share_plugin{ display: none !Important; }</style>
256
  </div>
views/admin/social-wall.php CHANGED
@@ -1,63 +1,63 @@
1
- <?php ( is_plugin_active( 'social-wall/social-wall.php' ) ) ? $ctf_sw_active = true : $ctf_sw_active = false; ?>
2
-
3
- <div id="ctf-admin" class="wrap sw-landing-page">
4
-
5
- <?php $plus_svg = '<span class="ctf-sb-plus"><svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="plus" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" class="svg-inline--fa fa-plus fa-w-12 fa-2x"><path fill="currentColor" d="M376 232H216V72c0-4.42-3.58-8-8-8h-32c-4.42 0-8 3.58-8 8v160H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h160v160c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V280h160c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8z" class=""></path></svg></span>'; ?>
6
-
7
- <div class="ctf-sw-icons">
8
-
9
- <span style="display: inline-block; padding: 0 0 12px 0; width: 360px; max-width: 100%;">
10
- <svg viewBox="0 0 9161 1878" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2">
11
- <path d="M671.51192 492.98498c-131.56765-59.12206-268.60859-147.41608-396.53319-188.5154 45.4516 108.39585 83.81326 223.88002 123.5099 338.03081-79.17849 59.49897-171.6647 105.68858-260.02357 156.01204C213.65642 872.8361 320.1446 915.85885 404.9893 980.52836c-67.96118 83.8619-201.48512 171.0179-234.02089 247.0198 140.6921-17.62678 304.63665-46.21028 435.53762-52.00414 28.76425 144.58318 43.59867 303.0974 84.5075 435.5368 60.92028-175.2656 116.0013-356.3729 188.5158-520.0447 111.90636 46.28566 248.28994 102.72599 357.52876 130.01178-76.6463-107.53462-146.59336-221.76932-214.51645-338.02878 100.51155-72.83872 202.17166-144.52441 299.02516-221.02077-136.89504-12.61227-278.73407-20.28825-422.53587-25.99863-22.85286-148.332-16.84825-325.5158-52.00496-461.53949-53.19323 111.48812-115.96685 213.3914-175.51405 318.52475m65.00509 1228.60643c-18.07949 77.37581 41.48757 109.11319 32.50294 156.01204-58.81404-20.26799-103.0575-30.6796-182.01552-19.50201 2.47017-60.37032 56.76657-68.90954 45.50428-143.0107-841.40803-95.6632-843.09804-1616.06909-6.50107-1709.64388C1672.04777-111.55711 1704.8713 1694.70523 736.517 1721.5914" fill="#e34f0e"/>
12
- <path d="M847.02597 174.46023c35.15671 136.0237 29.1521 313.20749 52.00455 461.53544 143.80221 5.71443 285.63962 13.38636 422.53628 26.00268-96.8531 76.49636-198.51483 148.18205-299.02556 221.01874 67.92349 116.2623 137.87014 230.49416 214.51847 338.03-109.24085-27.2866-245.62443-83.72572-357.5308-130.0126-72.51448 163.67262-127.5955 344.77992-188.51538 520.04553-40.90924-132.4394-55.74325-290.95364-84.5079-435.53681-130.90057 5.79548-294.84472 34.37736-435.53722 52.00415 32.53577-76.0007 166.0589-163.15589 234.02008-247.02021-84.8451-64.67032-191.33207-107.69066-266.52343-182.01472 88.35886-50.32346 180.84346-96.51307 260.02276-156.01609-39.69705-114.14674-78.05668-229.63091-123.50868-338.02675C402.9013 345.5689 539.94427 433.86292 671.51192 492.98498c59.5468-105.13335 122.32082-207.03663 175.51405-318.52475" fill="#fff"/>
13
- <path d="M1782.27033 1236.51938c41.18267 21.61921 126.79927 44.31938 214.58338 44.31938 213.49962 0 311.03752-107.01507 311.03752-232.40646 0-101.61027-58.52274-171.87269-189.65702-220.5159-92.11913-33.50977-131.13429-48.6432-131.13429-85.39586 0-32.4288 32.51263-54.04801 92.11913-54.04801 72.61154 0 126.79927 20.53824 158.22814 34.59073l41.18267-155.65828c-47.6852-21.6192-110.54295-37.83361-197.2433-37.83361-184.23826 0-293.69746 99.44834-293.69746 228.08262 0 108.09602 82.36534 176.19652 205.91335 219.43493 82.36533 28.10497 114.87797 48.64321 114.87797 84.3149 0 36.75265-32.51264 59.45282-99.70541 59.45282-73.6953 0-145.2231-22.70017-189.65703-45.40034l-36.84765 161.06308zM3019.37602 1270.02915h189.65702l-36.84765-728.56722h-256.8498l-55.27148 194.57285c-21.67508 76.74818-45.51768 179.4394-66.10902 268.07815h-3.25126c-15.17256-88.63875-36.84765-185.92517-57.43898-266.99719l-47.6852-195.6538h-263.35233l-45.51768 728.56721h179.90323l11.9213-260.51142c3.25127-83.23394 6.50253-191.32997 10.83755-294.0212h2.1675c17.34008 99.44835 39.01517 207.54438 58.52274 286.45448l60.69025 252.9447h152.80938l72.61154-254.02566c23.8426-79.99106 54.18773-189.16805 76.94657-285.37352h3.25126c0 113.50083 1.08376 210.78726 4.33502 294.0212l8.67004 260.51142zM3699.9738 1101.39935l46.60144 168.6298h211.33211l-217.83464-728.56722H3478.8879l-211.33211 728.56722h202.66208l41.18267-168.6298h188.57327zm-162.56317-143.76772l31.42888-130.79619c9.7538-41.07649 20.59134-101.61026 31.42888-143.76771h2.1675c11.9213 42.15745 26.01012 102.69122 36.84766 143.76771l33.59639 130.7962h-135.4693zM4016.4301 1236.51938c41.18266 21.61921 126.79926 44.31938 214.58337 44.31938 213.49962 0 311.03752-107.01507 311.03752-232.40646 0-101.61027-58.52274-171.87269-189.65702-220.5159-92.11913-33.50977-131.1343-48.6432-131.1343-85.39586 0-32.4288 32.51264-54.04801 92.11914-54.04801 72.61154 0 126.79926 20.53824 158.22814 34.59073l41.18267-155.65828c-47.6852-21.6192-110.54295-37.83361-197.2433-37.83361-184.23826 0-293.69746 99.44834-293.69746 228.08262 0 108.09602 82.36534 176.19652 205.91335 219.43493 82.36533 28.10497 114.87797 48.64321 114.87797 84.3149 0 36.75265-32.51264 59.45282-99.70541 59.45282-73.6953 0-145.2231-22.70017-189.65703-45.40034l-36.84765 161.06308zM4623.27688 541.46193v728.56722h196.15955V981.41276h237.34222v288.6164h196.15955V541.46192h-196.15955v269.1591h-237.34222v-269.1591h-196.15955z" fill="#282828" fill-rule="nonzero"/>
14
- <g>
15
- <path d="M6900.00785 293.7053c5.29-14.371 11.90999-24.77099 19.84998-31.19998 7.94-6.429 16.07-9.644 24.38998-9.644 8.32 0 15.7 2.08 22.12999 6.241 6.43 4.16 10.39999 9.265 11.90999 15.31599 2.27 43.86896 4.16 92.65493 5.67 146.35689 1.51 53.70296 2.65 109.86291 3.4 168.48187.76 58.61796 1.52 118.74891 2.26999 180.39386.76 61.64396 1.33 122.71991 1.71 183.22987.37 60.50695.56 119.1269.56 175.85686 0 56.72996.38 109.28992 1.14 157.69988-3.78 12.1-10.59 20.98999-20.41999 26.65998-9.83999 5.68-19.85998 8.14-30.06997 7.38-10.21-.76-19.28999-4.73-27.22998-11.91-7.94-7.18999-11.91-17.58998-11.91-31.19997l-3.4-983.66226zm173.57987 0c5.3-14.371 11.90999-24.77099 19.85998-31.19998 7.94-6.429 16.06999-9.644 24.38998-9.644 8.32 0 15.69 2.08 22.11999 6.241 6.43 4.16 10.39999 9.265 11.91999 15.31599 2.27 43.86896 4.15 92.65493 5.67 146.35689 1.51 53.70296 2.64 109.86291 3.4 168.48187.76 58.61796 1.51999 118.74891 2.26999 180.39386.76 61.64396 1.33 122.71991 1.7 183.22987.38 60.50695.57 119.1269.57 175.85686 0 56.72996.38 109.28992 1.13 157.69988-3.78 12.1-10.59 20.98999-20.41999 26.65998-9.82999 5.68-19.84998 8.14-30.05998 7.38-10.20999-.76-19.28998-4.73-27.22997-11.91-7.94-7.18999-11.92-17.58998-11.92-31.19997l-3.4-983.66226zm-419.49969 980.25225c-6.81-4.54-13.60999-12.66999-20.41998-24.38998-6.81-11.71999-13.61-24.57998-20.41999-38.57997-6.81-13.98999-13.61999-28.16998-20.41998-42.53997-6.81-14.36999-13.99999-26.84998-21.55998-37.43997-7.56-10.58999-15.51-18.33998-23.82999-23.25998-8.31999-4.92-17.38998-4.73-27.22998.57-15.11998 24.95998-30.43997 49.15996-45.93996 72.60994-15.50999 23.44999-32.52998 43.48997-51.05996 60.12996-18.52999 16.63999-39.70997 28.35998-63.52995 35.16997-23.82999 6.81-51.62997 6.05-83.38994-2.27-31.01998-8.31999-56.16996-24.57998-75.44994-48.77996-19.28999-24.20998-33.65998-52.94996-43.10997-86.22993-9.46-33.27998-14.19-69.77995-14.19-109.48992 0-39.70397 4.35-79.22394 13.05-118.55591 8.7-39.33097 21.36998-77.14894 38.00997-113.45492 16.63999-36.30597 36.67997-67.50595 60.12995-93.60093 23.44999-26.09398 50.10997-45.75996 79.98994-58.99595 29.86998-13.237 62.20996-16.82999 96.99993-10.779 32.51998 6.051 59.36996 19.855 80.54994 41.41198 21.17998 21.55598 38.76997 47.65096 52.75996 78.28394 13.98999 30.63297 24.95998 64.47995 32.89998 101.54192 7.93999 37.06197 15.12998 74.12394 21.55998 111.18692 6.43 37.06197 12.85999 72.42194 19.28999 106.08192 6.41999 33.65997 14.92998 62.58995 25.51998 86.78993 10.58999 24.20998 24.01998 41.97997 40.27997 53.32996 16.25998 11.34 37.62997 12.84999 64.09995 4.53 30.25997-31.00998 54.45996-51.61996 72.60994-61.82996 18.15999-10.20999 31.38998-13.60999 39.70997-10.20999 8.32 3.4 11.91 11.91 10.78 25.52998-1.13 13.61-6.05 28.73998-14.75 45.37997-8.69999 16.63999-20.60998 32.89997-35.73997 48.77996-15.11999 15.88999-32.32997 27.98998-51.61996 36.30997-19.28998 8.32-40.46997 11.16-63.52995 8.51-23.06998-2.65-47.08997-14.56-72.04995-35.73998zm2413.83818 6.81c-2.26-39.32997-5.67-82.25994-10.20999-128.7699-4.53-46.51997-10.58-92.84993-18.14999-138.9899-7.55999-46.13396-16.63998-89.81493-27.22998-131.0369-10.58999-41.22197-23.06998-76.01494-37.43997-104.37892-14.36999-28.36298-30.81997-48.21797-49.34996-59.56396-18.52999-11.34499-39.51997-9.83199-62.96995 4.539-23.44998 14.37099-49.34997 43.30197-77.71994 86.79293-28.35998 43.49097-59.93996 106.08092-94.72993 187.76786-3.03 6.05-7 15.88-11.91 29.49998-4.91999 13.60999-10.20999 28.92998-15.88998 45.94997-5.67 17.01998-11.91 34.97997-18.71999 53.88996-6.8 18.90998-13.03999 37.05997-18.71998 54.45995-5.67 17.4-10.78 32.89998-15.31 46.50997-4.53999 13.61999-7.56999 23.82998-9.07998 30.63998-6.05 15.11998-13.62 23.62998-22.68999 25.52998-9.08 1.89-18.14998.18-27.22998-5.11-9.07999-5.3-17.39998-12.47999-24.95998-21.55998-7.56-9.07-12.09999-17.01999-13.61999-23.81999 6.81-26.47998 12.86-55.96995 18.15999-88.49993 5.29-32.51997 9.45-69.57995 12.47999-111.17991 3.02-41.60397 4.16-88.68794 3.4-141.2559-.76-52.56696-4.54-112.13091-11.35-178.69186 8.32-17.39599 16.65-27.03998 24.96999-28.93098 8.31999-1.891 16.63998.756 24.94998 7.942 8.32 7.18499 16.07999 17.77498 23.25998 31.76697 7.19 13.99299 13.61999 28.17498 19.28999 42.54597 5.67 14.37099 10.20999 27.79698 13.61998 40.27697 3.4 12.47999 5.1 20.61098 5.1 24.39298 16.63999-14.371 31.95998-32.71298 45.94997-55.02596 13.98999-22.31298 28.35997-44.62597 43.10996-66.93895 14.75-22.31298 30.82998-42.16697 48.21997-59.56396 17.39998-17.39598 38.19997-27.98597 62.39995-31.76697 49.91996-9.077 92.27993-3.215 127.0699 17.58499 34.79998 20.79998 63.34996 50.67696 85.65994 89.62993 22.30998 38.95297 39.32997 84.14593 51.05996 135.5789 11.72 51.43296 20.03999 103.05492 24.95998 154.86588 4.91 51.80996 6.99 101.34992 6.24 148.62989-.76 47.26996-2.65 86.02993-5.68 116.2899-8.32 17.39-19.46998 26.08999-33.46997 26.08999-13.99 0-25.13998-8.7-33.46998-26.08998zm-1029.72922-9.08c-43.86997-18.14998-78.46994-41.97996-103.80992-71.46994-25.33998-29.49998-43.10997-61.83995-53.32996-97.00993-10.21-35.16997-13.61-72.03994-10.21-110.61791 3.41-38.57497 12.48-76.20395 27.22999-112.88792 14.74998-36.68397 34.41997-71.28794 58.99995-103.81092 24.57998-32.52398 52.56996-60.32095 83.95994-83.38994 31.38997-23.06898 65.79995-40.08797 103.23992-51.05496 37.43997-10.967 76.20994-13.42599 116.28991-7.375 33.27998 5.295 61.83995 20.99 85.65994 47.08397 23.82998 26.09498 42.73996 58.42996 56.72995 97.00493 13.99 38.57397 22.87999 80.93094 26.65998 127.0699 3.78 46.13797 1.7 91.70893-6.24 136.7079-7.93999 45.00996-21.55997 86.79993-40.83996 125.3699-19.28999 38.57998-44.62997 69.77995-76.01994 93.59993-31.38998 23.82999-69.39995 37.81998-114.01992 41.97997-44.62996 4.16-96.05992-6.24-154.29988-31.19997zm-642.42952 0c-43.86996-18.14998-78.46994-41.97996-103.80992-71.46994-25.33998-29.49998-43.10997-61.83995-53.31996-97.00993-10.20999-35.16997-13.61999-72.03994-10.20999-110.61791 3.4-38.57497 12.48-76.20395 27.21998-112.88792 14.74999-36.68397 34.41997-71.28794 58.99996-103.81092 24.57998-32.52398 52.56996-60.32095 83.95993-83.38994 31.38998-23.06898 65.79995-40.08797 103.23992-51.05496 37.43998-10.967 76.20995-13.42599 116.29992-7.375 33.27997 5.295 61.82995 20.99 85.64993 47.08397 23.82998 26.09498 42.73997 58.42996 56.72996 97.00493 13.98999 38.57397 22.87998 80.93094 26.65998 127.0699 3.79 46.13797 1.71 91.70893-6.24 136.7079-7.94 45.00996-21.54998 86.79993-40.83997 125.3699-19.28998 38.57998-44.62996 69.77995-76.01994 93.59993-31.38997 23.82999-69.38995 37.81998-114.01991 41.97997-44.61997 4.16-96.05993-6.24-154.29989-31.19997zm-1823.64862-14.69998c-5.29-34.31998-9.64-71.39995-13.04999-111.24992-3.4-39.85997-6.24-80.95994-8.5-123.2999-2.27-42.34497-3.79-85.24294-4.54-128.6939-.75999-43.45198-1.13999-86.07294-1.13999-127.86391 0-41.78997.38-81.91994 1.14-120.38991.75-38.46997 1.89-74.30995 3.4-107.52092 2.27-9.41 8.13-15.63699 17.58998-18.68199 9.45-3.044 19.65999-3.736 30.62998-2.075 10.97 1.66 20.98998 5.12 30.06998 10.378 9.07 5.259 13.98999 11.48599 14.73999 18.68198-1.51 31.54998-2.64 62.40896-3.4 92.57593-.76 30.16698-.57 59.91796.57 89.25494 1.13 29.33597 3.4 58.81095 6.81 88.42493 3.4 29.61298 8.12999 59.64095 14.17998 90.08493 35.54998-34.31797 72.03995-55.90596 109.47992-64.76195 37.43997-8.856 72.79995-8.441 106.07992 1.245 33.27998 9.687 63.72995 26.56898 91.32993 50.64796 27.60998 24.07798 49.54996 51.61496 65.80995 82.61194 16.25999 31.00198 25.89998 63.65195 28.92998 97.97192 3.02 34.31998-3.22 66.41995-18.71999 96.30993-15.50998 29.88998-41.40996 55.62996-77.71994 77.21994-36.29997 21.58999-85.46993 35.42998-147.48989 41.50997-27.22998 2.77-50.86996 4.99-70.90994 6.65-20.03999 1.66-38.94997 1.8-56.72996.41-17.76999-1.38-35.91997-5.12-54.45996-11.21-18.52998-6.08999-39.89997-15.49998-64.09995-28.22997zm85.08994-154.42989c-9.83 32.09998-11.34 58.25996-4.53 78.45994 6.8 20.20999 18.89998 35.00998 36.29997 44.41997 17.39999 9.41 38.57997 14.11999 63.53995 14.11999 24.95998 0 50.66997-3.74 77.13995-11.21 26.47998-7.46999 52.37996-18.12998 77.71994-31.96997 25.33998-13.83999 47.08996-30.15997 65.23995-48.97996 13.60999-13.83999 20.79998-30.58998 21.55998-50.23996.75-19.64999-2.84-39.70997-10.78-60.18996-7.94998-20.47998-19.85998-40.13097-35.73996-58.95095-15.88-18.81999-33.65998-34.31798-53.31996-46.49597-19.66999-12.17699-40.65997-19.64998-62.96996-22.41698-22.31998-2.768-44.24996 1.799-65.80995 13.69899-21.54998 11.90099-41.78996 32.10397-60.69995 60.61095-18.90999 28.50398-34.78997 68.22395-47.64996 119.14391zm2380.9882 74.95995c49.15996 31.76997 93.21993 45.00996 132.1799 39.70997 38.94997-5.29 71.65995-21.92999 98.12993-49.91997 26.47998-27.97997 46.32996-63.71995 59.56995-107.20991 13.24-43.48997 18.90999-87.92994 17.01999-133.3119-1.9-45.38197-11.73-87.54994-29.49998-126.5029-17.77999-38.95298-44.81997-68.26196-81.11994-87.92694-20.41998-10.59-44.24997-10.022-71.47994 1.701-27.22998 11.72399-53.88996 30.63297-79.97994 56.72795-26.09998 26.09498-49.73997 57.29496-70.90995 93.60093-21.17999 36.30498-35.54997 73.55695-43.11997 111.75292-7.56 38.19897-6.62 75.06894 2.84 110.61892 9.45 35.54997 31.57998 65.79995 66.36995 90.75993zm-642.42952 0c49.16997 31.76997 93.21993 45.00996 132.1799 39.70997 38.94997-5.29 71.65995-21.92999 98.13993-49.91997 26.46998-27.97997 46.31997-63.71995 59.55996-107.20991 13.23999-43.48997 18.90998-87.92994 17.01998-133.3119-1.89-45.38197-11.71999-87.54994-29.49998-126.5029-17.76998-38.95298-44.80996-68.26196-81.11993-87.92694-20.41999-10.59-44.24997-10.022-71.47995 1.701-27.22998 11.72399-53.88996 30.63297-79.97994 56.72795-26.09998 26.09498-49.72996 57.29496-70.90995 93.60093-21.17998 36.30498-35.54997 73.55695-43.10996 111.75292-7.57 38.19897-6.62 75.06894 2.83 110.61892 9.45999 35.54997 31.57997 65.79995 66.36994 90.75993zm-1159.18912-39.69997c19.65998 30.24997 40.26997 47.64996 61.82995 52.18996 21.55999 4.53 42.53997.56 62.96995-11.92 20.41999-12.47998 39.70997-31.00997 57.85996-55.58995 18.14999-24.57998 33.65998-50.86996 46.51997-78.84994 12.84999-27.98998 22.30998-55.40696 28.35997-82.25794 6.05-26.85098 7.56-48.97496 4.54-66.37095-3.78-18.15299-6.81-34.41497-9.08-48.78596-2.27-14.371-4.72999-27.22898-7.36999-38.57497-2.65-11.345-5.68-21.74599-9.07999-31.19998-3.4-9.455-8.13-19.09799-14.17999-28.93098-30.25998-21.17898-58.42996-29.49898-84.52994-24.95998-26.08998 4.538-49.53996 17.39599-70.33994 38.57397-20.79999 21.17898-38.18997 48.40796-52.18996 81.68794-13.99 33.27997-24.19998 68.07295-30.62998 104.37892-6.43 36.30597-8.51 71.47995-6.24 105.50992 2.27 34.03998 9.45 62.39995 21.55999 85.09994z" fill="#282828" fill-rule="nonzero"/>
16
- <path d="M6892.93785 1141.07765l-2.93-847.33736c-.01-1.191.2-2.374.61-3.492 6.06-16.43098 13.87-28.16497 22.94999-35.51497 9.95999-8.065 20.24998-11.87199 30.67997-11.87199 10.37 0 19.54999 2.66 27.55998 7.845 8.86 5.732 14.1 12.94799 16.18 21.28698.16.625.25 1.264.29 1.908 2.26999 43.93997 4.15999 92.80393 5.67999 146.59289 1.51 53.75096 2.65 109.96191 3.4 168.63387.76 58.61996 1.52 118.75391 2.27 180.39986.76 61.66396 1.33 122.76091 1.71 183.28987.37 60.52995.56 119.1699.56 175.91986 0 56.66996.38 109.18992 1.13999 157.54988.01 1.06-.14 2.12-.46 3.13-4.6 14.73-12.99999 25.43998-24.96998 32.34998-11.7 6.75-23.64998 9.58-35.79997 8.68-12.44-.92-23.51999-5.71-33.19998-14.47-9.87-8.93-15.19999-21.69998-15.19999-38.57997l-.25-72.25994c-2.06 5.06-4.48 10.24999-7.27 15.58998-9.08998 17.41-21.52998 34.43998-37.35996 51.04997-16.08 16.88998-34.38998 29.74997-54.89996 38.58997-20.83999 8.98999-43.70997 12.12999-68.62995 9.25999-24.60998-2.82-50.33996-15.20999-76.94994-37.68997-7.62-5.23-15.41999-14.25-23.02998-27.34998-6.92-11.92-13.84-24.98998-20.75999-39.21997-6.83-14.02-13.64999-28.23998-20.46998-42.63997-6.53-13.77999-13.4-25.75998-20.65999-35.90997-6.62-9.27-13.48999-16.15999-20.76998-20.45999-4.67-2.76-9.71-2.7-15.12-.35-14.69998 24.18998-29.57997 47.66997-44.62996 70.42995-16.00999 24.20998-33.58997 44.87997-52.71996 62.05995-19.67998 17.66999-42.16997 30.11998-67.46995 37.34997-25.32998 7.23-54.88996 6.63-88.72993-2.23-33.15997-8.89999-60.03995-26.31997-80.66994-52.20995-20.07998-25.18998-35.06997-55.08996-44.90996-89.72994-9.7-34.10997-14.57-71.50994-14.57-112.21991 0-40.42697 4.43-80.66694 13.29-120.71491 8.84999-40.02697 21.73998-78.51394 38.67997-115.46191 17.08998-37.28898 37.69997-69.31695 61.77995-96.11793 24.43998-27.19398 52.23996-47.66197 83.36994-61.45595 31.65997-14.024 65.90995-17.899 102.88992-11.467 34.67997 6.452 63.26995 21.24799 85.85994 44.23397 21.94998 22.34798 40.20996 49.38096 54.70995 81.13794 14.28 31.25498 25.48998 65.78695 33.58998 103.60192 7.97 37.19097 15.17999 74.38195 21.62998 111.57192 6.42 37.00197 12.84 72.31194 19.25999 105.91192 6.27 32.82997 14.53999 61.05995 24.85998 84.65993 9.73 22.24999 21.89998 38.70997 36.83997 49.12997 13.55 9.45999 31.25998 10.32999 53.02996 3.92 30.31998-30.90998 54.72996-51.40997 73.05995-61.72996 12.16999-6.84 22.40998-10.8 30.62997-12.17 7.06-1.17999 12.97-.53999 17.76999 1.42 3.08 1.26 5.82 2.97 8.15 5.15zm171.26987-850.82935c-.41 1.118-.62 2.301-.62 3.492l3.4 983.65725c0 16.87999 5.34 29.64998 15.21 38.57997 9.67998 8.76 20.75997 13.55 33.19997 14.47 12.14999.9 24.09998-1.93 35.79997-8.68 11.95999-6.91 20.36998-17.61999 24.96998-32.34998.32-1.01.47-2.07.45-3.13-.75-48.35996-1.13-100.87992-1.13-157.54988 0-56.74995-.19-115.3899-.57-175.91986-.38-60.52896-.94-121.62591-1.7-183.28987-.76-61.64595-1.51-121.7799-2.27-180.39986-.76-58.67196-1.89-114.88291-3.41-168.63387-1.51-53.78896-3.4-102.65292-5.67999-146.5929-.03-.644-.13-1.283-.28-1.90799-2.09-8.339-7.32-15.55499-16.17999-21.28698-8.02-5.185-17.18998-7.845-27.55998-7.845-10.43999 0-20.71998 3.807-30.68997 11.872-9.08 7.34999-16.88999 19.08398-22.93999 35.51497zm1588.0788 521.3466c11.02-11.49199 21.36999-24.98198 31.06998-40.44997 14.03-22.37998 28.44998-44.75996 43.23997-67.13995 15.13999-22.89798 31.63998-43.26796 49.48996-61.12095 18.93999-18.93699 41.57997-30.45998 67.67995-34.53497 52.65996-9.574 97.29993-3.098 133.9899 18.84098 36.21997 21.64899 65.98995 52.69896 89.20993 93.24193 22.76999 39.74697 40.15997 85.84694 52.12996 138.3279 11.82 51.85696 20.20999 103.90492 25.15998 156.14788 4.96 52.18996 7.05 102.09992 6.29 149.72989-.77 47.60996-2.68 86.64993-5.73 117.1199-.11 1.16-.43 2.28-.92 3.32-10.40999 21.74999-24.99998 31.77998-42.49996 31.77998-17.48999 0-32.07998-10.03-42.48997-31.77997-.56-1.17-.88-2.44-.96-3.73-2.26-39.21997-5.65-82.00994-10.18-128.3799-4.51999-46.29997-10.53998-92.40994-18.06998-138.3399-7.51-45.82997-16.51999-89.21993-27.03998-130.1689-10.38999-40.41497-22.58998-74.53795-36.67997-102.34693-13.35999-26.36698-28.42998-45.00796-45.64997-55.55495-15.47998-9.474-32.93997-7.465-52.51996 4.536-22.56998 13.82998-47.26996 41.87496-74.56994 83.72993-28.12998 43.12897-59.40996 105.21592-93.90993 186.22486-.08.19-.17.37-.26.55-2.91 5.83-6.71 15.30999-11.45 28.42998-4.88999 13.53999-10.15998 28.77998-15.79998 45.70996-5.7 17.09-11.95999 35.12998-18.79998 54.11996-6.77 18.80999-12.98 36.85997-18.61999 54.16996-5.68 17.41999-10.79 32.93998-15.33999 46.57997-4.39 13.16999-7.33 23.04998-8.8 29.63997-.12.52-.28 1.04-.48 1.54-7.70999 19.27999-18.35998 29.19998-29.92997 31.59998-11.43 2.39-22.87998.41-34.30997-6.25-10.03-5.85-19.24999-13.76999-27.59998-23.78998-8.86-10.63999-13.93-20.08998-15.7-28.05998-.33999-1.54-.30999-3.14.08-4.66 6.74-26.20997 12.73-55.41995 17.97-87.60993 5.25-32.26997 9.36999-69.03995 12.36999-110.30991 3.01-41.34297 4.13-88.13794 3.38-140.3819-.75-52.31096-4.52-111.58291-11.29-177.81786-.19-1.829.13-3.674.92-5.332 10.19-21.30698 21.57999-32.05198 31.76998-34.36797 11.17999-2.541 22.52998.468 33.70997 10.12499 9.13 7.881 17.73999 19.41898 25.61998 34.76697 7.34 14.288 13.9 28.76898 19.68999 43.44197 5.82 14.74199 10.46999 28.51598 13.95999 41.31797.7 2.54 1.32 4.919 1.87 7.135zm-1260.43904 469.29265c-45.43997-18.81999-81.21994-43.59997-107.46992-74.15995-26.30998-30.62997-44.73997-64.20995-55.34996-100.72992-10.55-36.33997-14.07999-74.42994-10.56-114.28691 3.48-39.54797 12.79-78.12894 27.90999-115.73892 15.06999-37.49597 35.16997-72.86794 60.28995-106.11092 25.18998-33.31797 53.85996-61.78595 86.01994-85.41793 32.32997-23.76398 67.77995-41.29597 106.34992-52.59396 38.82997-11.373 79.02994-13.941 120.6799-7.653 35.51998 5.652 66.02996 22.35899 91.46994 50.21697 24.64998 26.99898 44.25996 60.42495 58.73995 100.33692 14.28 39.36297 23.36998 82.58094 27.22998 129.6629 3.85 46.99997 1.73 93.42293-6.36 139.2649-8.10999 45.98996-22.03998 88.68993-41.74996 128.1099-20.00999 40.01997-46.33997 72.36995-78.90994 97.08993-32.80998 24.89998-72.49995 39.61997-119.13991 43.96996-46.01997 4.29-99.08993-6.22-159.14988-31.95997zm642.41951 0c-45.43996-18.81999-81.21994-43.59997-107.46992-74.15995-26.30998-30.62997-44.73996-64.20995-55.33995-100.72992-10.55-36.33997-14.08-74.42994-10.57-114.28691 3.49-39.54797 12.79-78.12894 27.90998-115.73892 15.08-37.49597 35.17998-72.86794 60.29996-106.11092 25.17998-33.31797 53.85996-61.78595 86.00993-85.41793 32.33998-23.76398 67.78995-41.29597 106.35992-52.59396 38.82997-11.373 79.01994-13.941 120.66991-7.653 35.52997 5.652 66.03995 22.35899 91.47993 50.21697 24.64998 26.99898 44.25997 60.42495 58.73996 100.33692 14.27999 39.36297 23.36998 82.58094 27.22998 129.6629 3.85 46.99997 1.73 93.42293-6.36 139.2649-8.12 45.98996-22.03998 88.68993-41.74997 128.1099-20.00998 40.01997-46.33996 72.36995-78.90994 97.08993-32.80997 24.89998-72.49994 39.61997-119.1399 43.96996-46.01997 4.29-99.09993-6.22-159.15989-31.95997zM6968.3578 276.0543c-1.1-3.399-3.7-6.152-7.41999-8.557-4.84-3.135-10.41999-4.636-16.68999-4.636-6.2 0-12.17999 2.622-18.09998 7.417-6.5 5.259-11.73 13.762-16.13999 25.24198l3.4 981.84726c0 10.31 2.6 18.33999 8.62 23.77998 6.20999 5.62 13.27998 8.76 21.25998 9.36 8.26999.61 16.35998-1.47 24.32998-6.07 7.31-4.21 12.36999-10.78 15.39999-19.52998-.75-47.98997-1.12-100.04993-1.12-156.16989 0-56.70995-.19-115.30991-.56-175.79486-.38-60.48896-.95-121.54591-1.7-183.16987-.76-61.64195-1.52-121.7709-2.27-180.38686-.76-58.56596-1.89-114.67491-3.4-168.32887-1.5-53.15996-3.37-101.49493-5.61-145.0029zm173.57988 0c-1.1-3.399-3.69-6.152-7.41-8.557-4.84-3.135-10.42-4.636-16.68999-4.636-6.21 0-12.17999 2.622-18.09998 7.417-6.5 5.259-11.74 13.762-16.14 25.24198l3.39 981.84726c0 10.31 2.61 18.33999 8.63 23.77998 6.2 5.62 13.27999 8.76 21.25998 9.36 8.27.61 16.36-1.47 24.31999-6.07 7.31-4.21 12.36999-10.78 15.39998-19.52998-.74-47.98997-1.11-100.04993-1.11-156.16989 0-56.70995-.19-115.30991-.57-175.79486-.37-60.48896-.94-121.54591-1.7-183.16987-.75-61.64195-1.51-121.7709-2.27-180.38686-.75-58.56596-1.88999-114.67491-3.39999-168.32887-1.49-53.15996-3.36-101.49493-5.61-145.0029zm-1474.8589 611.05154c32.78998-28.61098 66.40996-46.87097 100.71993-54.98596 39.23997-9.282 76.29994-8.777 111.17992 1.375 34.64997 10.08599 66.35995 27.64098 95.10993 52.71196 28.56997 24.91798 51.24996 53.42596 68.07995 85.50393 16.88998 32.18698 26.89997 66.10695 30.03997 101.73693 3.2 36.27997-3.42 70.20994-19.80998 101.79992-16.27999 31.37997-43.34997 58.53995-81.47994 81.19994-37.32997 22.19998-87.83993 36.60997-151.58989 42.86996-27.29998 2.78-50.99996 5-71.08994 6.66-20.60999 1.71-40.05997 1.84-58.32996.42-18.53999-1.44-37.47997-5.33-56.80996-11.68-18.96998-6.22999-40.84997-15.83998-65.62995-28.87997-2.81-1.47-4.75-4.19-5.23-7.32-5.32999-34.52997-9.70999-71.83994-13.12998-111.92991-3.41-39.95997-6.26-81.15994-8.53-123.6199-2.28-42.45897-3.79-85.47694-4.55-129.0499-.76-43.51098-1.14-86.18994-1.14-128.03791 0-41.85797.38-82.05394 1.14-120.58691.76-38.56197 1.89-74.48795 3.41-107.77892.03-.637.12-1.27.27-1.889 3.13-12.99999 11.18-21.65098 24.23999-25.85598 10.86999-3.498 22.58998-4.353 35.19997-2.445 12.24999 1.856 23.43998 5.739 33.57997 11.614 12.52 7.25499 18.62999 16.35998 19.67999 26.28797.05.506.07 1.016.04 1.524-1.51 31.47298-2.64 62.25596-3.39 92.34793-.75 29.95198-.57 59.49096.56 88.61794 1.12 29.08597 3.37 58.30895 6.75 87.66993 2.72 23.63898 6.28 47.54596 10.70999 71.71995zm992.55926 378.53171c-5.84-3.89-11.48-11.03-17.31999-21.08998-6.7-11.53-13.38999-24.16999-20.07998-37.92998-6.79-13.95998-13.58-28.10997-20.37999-42.44996-7.08-14.97-14.57999-27.94998-22.44998-38.97997-8.51-11.9-17.51999-20.51999-26.87998-26.04998-11.32-6.69-23.67998-6.83-37.05997.37-1.57.85-2.88 2.1-3.81 3.62-15.05999 24.84997-30.29998 48.93996-45.73996 72.27994-15 22.68998-31.45998 42.10997-49.38997 58.20995-17.37998 15.61-37.24997 26.60998-59.59995 32.99998-22.31999 6.37-48.34997 5.46-78.10994-2.33-28.79998-7.73-52.21996-22.82998-70.15995-45.34996-18.49999-23.20999-32.24998-50.79997-41.31997-82.71994-9.21-32.44998-13.79999-68.03995-13.79999-106.75992 0-38.98097 4.27-77.78094 12.81-116.39591 8.54998-38.63497 20.98998-75.78495 37.33996-111.44792 16.19-35.32397 35.65998-65.69495 58.47996-91.08393 22.45998-24.99598 47.97996-43.85797 76.59994-56.53696 28.08998-12.44899 58.50996-15.75999 91.23993-10.069 30.24998 5.628 55.35996 18.44 75.12995 38.56698 20.39998 20.76598 37.30997 45.92097 50.78996 75.43094 13.70999 30.00998 24.43998 63.17396 32.21997 99.48293 7.92 36.93297 15.08 73.86594 21.48999 110.79991 6.43 37.12298 12.86999 72.53295 19.30998 106.24292 6.59 34.48998 15.34 64.12996 26.18998 88.92994 11.45 26.16998 26.13998 45.24996 43.71997 57.51995 18.48999 12.9 42.71997 15.33 72.81994 5.87 1.58-.49 3.01-1.37 4.16-2.55 29.34998-30.08998 52.73996-50.19996 70.35995-60.09995 8.15-4.59 15.17999-7.72 21.11998-9.24 4.06-1.05 7.35-1.48 9.9-.44 4.83 1.98 5.26 7.53 4.6 15.45-1.04 12.47998-5.67 26.31997-13.65 41.57996-8.3 15.86999-19.68998 31.36998-34.11997 46.51997-14.17 14.87998-30.26998 26.22998-48.33997 34.01997-17.73998 7.65-37.21997 10.19-58.42995 7.76-21.40999-2.46-43.55997-13.78-66.71995-33.42998l-.92-.7zm2465.44814 12.35c2.91-29.76999 4.72-67.65996 5.46-113.66992.75-46.92997-1.32-96.09993-6.2-147.5199-4.87-51.38895-13.12999-102.58491-24.74998-153.59388-11.49-50.38496-28.12998-94.67092-49.98996-132.8309-21.39999-37.36197-48.73997-66.06595-82.10994-86.01693-32.88998-19.65999-72.95995-24.90898-120.38991-16.28799-22.05998 3.447-41.01997 13.102-56.87996 28.95798-16.93999 16.93999-32.57997 36.27997-46.93996 58.00796-14.71 22.24498-29.03998 44.49096-42.98997 66.73695-14.56999 23.23798-30.54998 42.31396-47.87996 57.28095-2.96 2.557-7.14 3.153-10.7 1.525-3.56-1.628-5.84-5.181-5.84-9.093 0-3.38099-1.70999-10.60698-4.74999-21.76198-3.32-12.15799-7.74-25.23598-13.26999-39.23597-5.55-14.06799-11.84999-27.95098-18.87998-41.64996-6.49-12.637-13.39-22.27799-20.89999-28.76698-5.47-4.718-10.73999-7-16.20999-5.759-2.45.558-4.67 2.587-7.11999 5.432-3.3 3.817-6.54 9.02999-9.82 15.58699 6.66 65.73995 10.36 124.6399 11.11 176.70886.76 52.89196-.39 100.26493-3.43 142.1199-3.05 41.92996-7.25 79.28994-12.57999 112.06991-5.18 31.79998-11.08 60.72995-17.68999 86.79993 1.68 5.13 5.45 10.9 10.96 17.51 6.77 8.11999 14.18999 14.57998 22.31998 19.31998 6.72 3.93 13.41999 5.36 20.14998 3.96 6.46-1.35 10.86-8.16 15.16-18.77 1.62-7.01999 4.65999-17.27998 9.15999-30.76997 4.53-13.58999 9.62999-29.07998 15.29998-46.44996 5.7-17.48999 11.97-35.73998 18.80999-54.74996 6.78-18.82999 12.99999-36.71997 18.63999-53.65996 5.71-17.10999 11.02999-32.49998 15.96998-46.18997 5.02-13.88999 9.11-23.97298 12.22-30.26797 35.04997-82.24394 66.88994-145.2539 95.45992-189.06286 29.42998-45.12797 56.52996-74.94494 80.85994-89.85593 27.31998-16.744 51.82996-17.75999 73.41995-4.541 19.83998 12.144 37.66997 33.21197 53.04996 63.57295 14.64998 28.91898 27.40998 64.38095 38.20997 106.40992 10.65999 41.49597 19.79998 85.46594 27.40998 131.9149 7.6 46.34997 13.67999 92.88993 18.23998 139.6299 4.47 45.84996 7.84 88.22993 10.12 127.1199 6.08999 12 13.56998 18.70999 23.59998 18.70999 10.08999 0 17.58998-6.77 23.68998-18.86999zm-1725.4887-15.54c-42.25997-17.47998-75.64994-40.33997-100.04992-68.74995-24.36999-28.36997-41.48997-59.44995-51.30996-93.27993-9.87-33.99997-13.14-69.64994-9.85-106.94891 3.31-37.60098 12.17-74.27895 26.53998-110.03592 14.43-35.87297 33.65998-69.70795 57.69996-101.51292 23.97998-31.72998 51.27996-58.85496 81.89994-81.36094 30.43997-22.37399 63.81995-38.87897 100.12992-49.51597 36.05997-10.56199 73.38995-12.91099 111.98992-7.084 30.95997 4.925 57.54995 19.607 79.76994 43.93898 22.99998 25.18998 41.19997 56.43395 54.70996 93.67193 13.70999 37.78597 22.38998 79.28094 26.09998 124.4769 3.71 45.27597 1.67 89.99593-6.12 134.1609-7.77 44.01997-21.07998 84.89994-39.94997 122.6299-18.55999 37.11998-42.89997 67.17996-73.10994 90.10994-29.96998 22.74998-66.29995 36.00997-108.90992 39.98997-43.22997 4.03-93.00993-6.26-149.42989-30.43998l-.11-.05zm642.41952 0c-42.24997-17.47998-75.63995-40.33997-100.04993-68.74995-24.35998-28.36997-41.47997-59.44995-51.29996-93.27993-9.87-33.99997-13.14999-69.64994-9.86-106.94891 3.32-37.60098 12.17-74.27895 26.54999-110.03592 14.41999-35.87297 33.65997-69.70795 57.69995-101.51292 23.97999-31.72998 51.27997-58.85496 81.89994-81.36094 30.43998-22.37399 63.81995-38.87897 100.12993-49.51597 36.05997-10.56199 73.38994-12.91099 111.98991-7.084 30.94998 4.925 57.54996 19.607 79.76994 43.93898 22.99999 25.18998 41.19997 56.43395 54.70996 93.67193 13.7 37.78597 22.38998 79.28094 26.08998 124.4769 3.71 45.27597 1.68 89.99593-6.12 134.1609-7.76999 44.01997-21.06998 84.89994-39.93996 122.6299-18.55999 37.11998-42.90997 67.17996-73.10995 90.10994-29.96998 22.74998-66.29995 36.00997-108.90992 39.98997-43.22996 4.03-93.00993-6.26-149.42988-30.43998l-.12-.05zM5632.4288 546.7151c-.72-4.174-4.34-7.351-9.72999-10.47199-8.01-4.642-16.86999-7.678-26.54998-9.144-9.33-1.413-18.01998-.883-26.06998 1.707-5.56 1.792-9.16 5.322-10.71 10.675-1.47999 32.83197-2.59999 68.23495-3.33999 106.20592-.76 38.40597-1.14 78.47094-1.14 120.1929 0 41.73398.38 84.29694 1.14 127.68891.75 43.32997 2.26 86.10694 4.52 128.3289 2.26 42.23997 5.09 83.22994 8.49 122.97991 3.21999 37.68997 7.27999 72.88995 12.20998 105.58992 21.78999 11.26 41.14997 19.67999 58.09996 25.24998 17.72999 5.83 35.09997 9.42 52.10996 10.74 17.26999 1.35 35.64997 1.2 55.11996-.41 19.99998-1.66 43.56997-3.87 70.75994-6.63 60.26996-5.91 108.08992-19.17999 143.3599-40.15997 34.48997-20.49998 59.21995-44.82997 73.94994-73.21994 14.61999-28.18998 20.48999-58.46996 17.63999-90.82994-2.91-32.99997-12.19-64.39995-27.82998-94.20593-15.68999-29.91597-36.86997-56.48395-63.51995-79.72193-26.46998-23.08499-55.63996-39.29498-87.54994-48.58197-31.67997-9.221-65.34995-9.546-100.98992-1.115-35.87997 8.488-70.76995 29.33298-104.83992 62.22396-2.63 2.541-6.44 3.442-9.93 2.349-3.49-1.093-6.10999-4.005-6.81999-7.594-6.11-30.71598-10.88-61.01395-14.30999-90.89293-3.43-29.86598-5.72-59.59296-6.86-89.17993-1.15-29.54598-1.34-59.50996-.58-89.89194.75-29.94797 1.88-60.57595 3.37-91.88193zm15.14 553.17259c13.18998-52.14997 29.57997-92.78993 48.95996-122.00191 19.95998-30.08698 41.44996-51.27696 64.19995-63.83695 23.53998-12.994 47.49996-17.891 71.86994-14.869 23.73999 2.944 46.07997 10.883 66.99995 23.83899 20.53999 12.71799 39.10997 28.89298 55.69996 48.54796 16.63999 19.71899 29.09998 40.32097 37.41997 61.78096 8.47 21.83998 12.25 43.24996 11.45 64.19995-.86 22.23998-9.01 41.18997-24.34999 56.78995-18.82998 19.51999-41.36997 36.46998-67.63995 50.81997-26.01998 14.20999-52.61996 25.13998-79.79994 32.80997-27.39998 7.74-54.02996 11.59-79.85994 11.59-26.84998 0-49.58996-5.2-68.29994-15.32-19.60999-10.60999-33.33998-27.23998-41.01997-50.02996-7.32-21.70998-6.15-49.83996 4.37-84.31993zm19.33998 5.12c12.51999-49.58997 27.86998-88.30994 46.28996-116.06692 17.85999-26.92498 36.82998-46.14197 57.19996-57.38296 19.56999-10.80799 39.46997-15.04399 59.73996-12.52999 20.87998 2.59 40.51996 9.597 58.92995 20.99499 18.78999 11.63699 35.76997 26.45898 50.94996 44.44396 15.12 17.92099 26.48998 36.61097 34.04998 56.11096 7.42 19.12999 10.81999 37.84997 10.10999 56.19996-.65 17.04998-6.87 31.58997-18.68999 43.59996-17.54998 18.2-38.49997 33.89998-62.89995 47.22997-24.65998 13.46999-49.86996 23.83998-75.63994 31.10998-25.53998 7.20999-50.34996 10.83999-74.42995 10.83999-23.07998 0-42.69996-4.21-58.77995-12.91-15.18-8.20999-25.64998-21.19998-31.58998-38.81996-6.28-18.63999-4.44-42.72997 4.63-72.33995l.13-.48zm1723.4387 80.90993c51.62996 33.36998 98.03992 46.77997 138.9499 41.21997 41.29996-5.61 75.97994-23.27998 104.04991-52.95996 27.45998-29.02998 48.13997-66.05995 61.86996-111.16992 13.55999-44.57996 19.37998-90.12293 17.43998-136.6379-1.95-46.72396-12.08999-90.13293-30.38997-130.2379-18.71999-41.02096-47.21997-71.85994-85.45994-92.56893-23.01998-11.93999-49.70996-11.81599-80.18994 1.31-28.27998 12.173-56.00995 31.74398-83.09993 58.84096-26.66998 26.66498-50.83997 58.53395-72.47995 95.63293-21.75998 37.30897-36.50997 75.59694-44.27997 114.84991-7.87999 39.75097-6.86 78.13094 2.98 115.13091 10.02 37.67997 33.31998 69.85995 70.19995 96.31993l.41.27zm642.41951 0c51.62996 33.36998 98.04993 46.77997 138.9499 41.21997 41.30997-5.61 75.98994-23.27998 104.05992-52.95996 27.45998-29.02998 48.12996-66.05995 61.86995-111.16992 13.56-44.57996 19.37999-90.12293 17.43999-136.6379-1.95-46.72396-12.09-90.13293-30.38998-130.2379-18.71998-41.02096-47.22996-71.85994-85.45993-92.56893-23.01998-11.93999-49.70996-11.81599-80.18994 1.31-28.27998 12.173-56.00996 31.74398-83.10994 58.84096-26.65998 26.66498-50.82996 58.53395-72.46994 95.63293-21.76999 37.30897-36.51998 75.59694-44.28997 114.84991-7.87 39.75097-6.86 78.13094 2.98 115.13091 10.02999 37.67997 33.32997 69.85995 70.20994 96.31993l.4.27zm11.07-16.65999c46.60996 30.07998 88.23993 43.08997 125.1899 38.06997 36.59997-4.98 67.34995-20.58998 92.21993-46.88996 25.47998-26.93998 44.51997-61.38995 57.25996-103.24992 12.90999-42.40997 18.43998-85.73594 16.58999-129.9859-1.83-44.03997-11.35-84.96594-28.59998-122.76691-16.82999-36.88497-42.40997-64.66495-76.62995-83.20194-17.97998-9.323-38.93997-8.313-62.91995 2.009-26.17998 11.274-51.76996 29.52098-76.85994 54.61396-25.52998 25.52498-48.62996 56.05596-69.34995 91.56793-20.58998 35.30297-34.57997 71.51695-41.93997 108.65792-7.24999 36.63597-6.38 72.00594 2.69 106.10592 8.87 33.34997 29.74998 61.62995 62.34996 85.06993zm-642.42952 0c46.60996 30.07998 88.24993 43.08997 125.1899 38.06997 36.59998-4.98 67.34995-20.58998 92.21994-46.88996 25.48998-26.93998 44.51996-61.38995 57.25995-103.24992 12.91-42.40997 18.43999-85.73594 16.59999-129.9859-1.84-44.03997-11.36-84.96594-28.60998-122.76691-16.82999-36.88497-42.39997-64.66495-76.61994-83.20194-17.97999-9.323-38.94997-8.313-62.91995 2.009-26.18998 11.274-51.77996 29.52098-76.86995 54.61396-25.52998 25.52498-48.62996 56.05596-69.33994 91.56793-20.59999 35.30297-34.58998 71.51695-41.94997 108.65792-7.25 36.63597-6.37 72.00594 2.7 106.10592 8.86999 33.34997 29.73997 61.62995 62.33995 85.06993zm-1173.21912-25.98998c21.51999 33.09998 44.56997 51.54996 68.15995 56.51996 24.03999 5.06 47.46997.75 70.23995-13.16999 21.39998-13.06999 41.66997-32.41998 60.68995-58.17996 18.56-25.12998 34.41998-52.00996 47.55997-80.61994 13.16999-28.64997 22.83998-56.73495 29.03998-84.22993 6.4-28.42898 7.83-51.86396 4.63-70.28295l-.06-.326c-3.75-17.97399-6.74-34.07597-8.99-48.30596-2.31-14.636-4.82-27.73198-7.52-39.28697-2.74-11.752-5.86999-22.52199-9.39999-32.31498-3.62-10.059-8.64-20.32498-15.06999-30.78498-.72-1.164-1.67-2.168-2.79-2.952-32.86997-23.00798-63.61995-31.54997-91.96992-26.61997-28.08998 4.885-53.36996 18.62598-75.75995 41.41997-21.60998 21.99998-39.73997 50.24796-54.27996 84.81893-14.26999 33.96098-24.69998 69.46395-31.25997 106.51092-6.57 37.13497-8.69 73.11395-6.37 107.92392 2.38 35.65997 10.03 65.34995 22.70999 89.12993l.44.75zm223.31984-388.7207c-26.98998-18.50399-52.01996-26.18998-75.36995-22.12799-24.10998 4.192-45.70996 16.16699-64.91995 35.72898-19.99998 20.35698-36.65997 46.56796-50.10996 78.55694-13.70999 32.59997-23.70998 66.68295-29.99998 102.24692-6.29 35.47697-8.33 69.84595-6.11 103.10592 2.15 32.21998 8.8 59.13996 20.2 80.67994 17.73998 27.17998 35.82996 43.38997 55.26995 47.47996 19.06999 4.02 37.61997.38 55.68996-10.65999 19.44998-11.87999 37.74997-29.59997 55.02996-52.99996 17.74998-24.02998 32.90997-49.72996 45.47996-77.08994 12.55-27.30998 21.78999-54.06896 27.68998-80.27594 5.69-25.21598 7.29-45.98996 4.46-62.34495-3.79-18.24499-6.83-34.59698-9.12-49.05396-2.22-14.106-4.63-26.72698-7.22999-37.86298-2.55-10.93899-5.47-20.96898-8.75-30.08497-2.98-8.28-7.05999-16.709-12.20998-25.29798z" fill="#fff"/>
17
- </g>
18
- </svg>
19
- </span>
20
- <br />
21
-
22
- <span style="width: 34px; top: -5px;"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="facebook" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="svg-inline--fa fa-facebook fa-w-16 fa-2x"><path fill="#475e8f" d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z" class=""></path></svg></span>
23
-
24
- <?php echo $plus_svg; ?>
25
-
26
- <span><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="instagram" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="svg-inline--fa fa-instagram fa-w-14 fa-2x"><path fill="#e15073" d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z" class=""></path></svg></span>
27
-
28
- <?php echo $plus_svg; ?>
29
-
30
- <span style="top: -4px;"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="svg-inline--fa fa-twitter fa-w-16 fa-2x"><path fill="#1a92dc" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z" class=""></path></svg></span>
31
-
32
- <?php echo $plus_svg; ?>
33
-
34
- <span style="width: 35px; top: -5px;"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="youtube" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="svg-inline--fa fa-youtube fa-w-18 fa-2x"><path fill="#f5413d" d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z" class=""></path></svg></span>
35
- </div>
36
-
37
- <h1>Combine all your social media channels into one single wall.</h1>
38
- <h2>Maximize your social content and get more followers.</h2>
39
-
40
- <div style="text-align: center;">
41
- <a href="https://smashballoon.com/social-wall/?utm_source=plugin-pro&utm_campaign=ctf&utm_medium=sw-cta-1" target="_blank" class="cta button button-primary">Get the Social Wall plugin</a>
42
- </div>
43
-
44
- <div class="ctf-sw-info">
45
- <div class="ctf-sw-features">
46
- <p><span>A dash of Instagram</span>Add posts from your profile, public hashtag posts, or posts you're tagged in.</p>
47
- <p><span>A sprinkle of Facebook</span>Include posts from your page or group timeline, or from your photos, videos, albums, and events pages.</p>
48
- <p><span>A spoonful of Twitter</span>Add Tweets from any Twitter account, hashtag Tweets, mentions, and more.</p>
49
- <p><span>And a dollop of YouTube</span>Embed videos from any public YouTube channel, playlists, searches, and more.</p>
50
- <p><span>All in the same feed</span>Combine feeds from all of our Smash Balloon Pro plugins into one single wall feed, and show off all your social media content in one place.</p>
51
- </div>
52
- <a class="ctf-sw-screenshot" href="https://smashballoon.com/social-wall/demo?utm_source=plugin-pro&utm_campaign=ctf&utm_medium=sw-demo" target="_blank">
53
- <span class="cta">View Demo</span>
54
-
55
- <img src="<?php echo CTF_PLUGIN_URL . 'img/sw-screenshot.png'; ?>" alt="Smash Balloon Social Wall plugin screenshot showing Facebook, Instagram, Twitter, and YouTube posts combined into one wall.">
56
- </a>
57
- </div>
58
-
59
- <div class="ctf-sw-footer-cta">
60
- <a href="https://smashballoon.com/social-wall/?utm_source=plugin-pro&utm_campaign=ctf&utm_medium=sw-cta-2" target="_blank"><span>🚀</span>Get Social Wall and Increase Engagement >></a>
61
- </div>
62
-
63
  </div>
1
+ <?php ( is_plugin_active( 'social-wall/social-wall.php' ) ) ? $ctf_sw_active = true : $ctf_sw_active = false; ?>
2
+
3
+ <div id="ctf-admin" class="wrap sw-landing-page">
4
+
5
+ <?php $plus_svg = '<span class="ctf-sb-plus"><svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="plus" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" class="svg-inline--fa fa-plus fa-w-12 fa-2x"><path fill="currentColor" d="M376 232H216V72c0-4.42-3.58-8-8-8h-32c-4.42 0-8 3.58-8 8v160H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h160v160c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V280h160c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8z" class=""></path></svg></span>'; ?>
6
+
7
+ <div class="ctf-sw-icons">
8
+
9
+ <span style="display: inline-block; padding: 0 0 12px 0; width: 360px; max-width: 100%;">
10
+ <svg viewBox="0 0 9161 1878" xmlns="http://www.w3.org/2000/svg" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2">
11
+ <path d="M671.51192 492.98498c-131.56765-59.12206-268.60859-147.41608-396.53319-188.5154 45.4516 108.39585 83.81326 223.88002 123.5099 338.03081-79.17849 59.49897-171.6647 105.68858-260.02357 156.01204C213.65642 872.8361 320.1446 915.85885 404.9893 980.52836c-67.96118 83.8619-201.48512 171.0179-234.02089 247.0198 140.6921-17.62678 304.63665-46.21028 435.53762-52.00414 28.76425 144.58318 43.59867 303.0974 84.5075 435.5368 60.92028-175.2656 116.0013-356.3729 188.5158-520.0447 111.90636 46.28566 248.28994 102.72599 357.52876 130.01178-76.6463-107.53462-146.59336-221.76932-214.51645-338.02878 100.51155-72.83872 202.17166-144.52441 299.02516-221.02077-136.89504-12.61227-278.73407-20.28825-422.53587-25.99863-22.85286-148.332-16.84825-325.5158-52.00496-461.53949-53.19323 111.48812-115.96685 213.3914-175.51405 318.52475m65.00509 1228.60643c-18.07949 77.37581 41.48757 109.11319 32.50294 156.01204-58.81404-20.26799-103.0575-30.6796-182.01552-19.50201 2.47017-60.37032 56.76657-68.90954 45.50428-143.0107-841.40803-95.6632-843.09804-1616.06909-6.50107-1709.64388C1672.04777-111.55711 1704.8713 1694.70523 736.517 1721.5914" fill="#e34f0e"/>
12
+ <path d="M847.02597 174.46023c35.15671 136.0237 29.1521 313.20749 52.00455 461.53544 143.80221 5.71443 285.63962 13.38636 422.53628 26.00268-96.8531 76.49636-198.51483 148.18205-299.02556 221.01874 67.92349 116.2623 137.87014 230.49416 214.51847 338.03-109.24085-27.2866-245.62443-83.72572-357.5308-130.0126-72.51448 163.67262-127.5955 344.77992-188.51538 520.04553-40.90924-132.4394-55.74325-290.95364-84.5079-435.53681-130.90057 5.79548-294.84472 34.37736-435.53722 52.00415 32.53577-76.0007 166.0589-163.15589 234.02008-247.02021-84.8451-64.67032-191.33207-107.69066-266.52343-182.01472 88.35886-50.32346 180.84346-96.51307 260.02276-156.01609-39.69705-114.14674-78.05668-229.63091-123.50868-338.02675C402.9013 345.5689 539.94427 433.86292 671.51192 492.98498c59.5468-105.13335 122.32082-207.03663 175.51405-318.52475" fill="#fff"/>
13
+ <path d="M1782.27033 1236.51938c41.18267 21.61921 126.79927 44.31938 214.58338 44.31938 213.49962 0 311.03752-107.01507 311.03752-232.40646 0-101.61027-58.52274-171.87269-189.65702-220.5159-92.11913-33.50977-131.13429-48.6432-131.13429-85.39586 0-32.4288 32.51263-54.04801 92.11913-54.04801 72.61154 0 126.79927 20.53824 158.22814 34.59073l41.18267-155.65828c-47.6852-21.6192-110.54295-37.83361-197.2433-37.83361-184.23826 0-293.69746 99.44834-293.69746 228.08262 0 108.09602 82.36534 176.19652 205.91335 219.43493 82.36533 28.10497 114.87797 48.64321 114.87797 84.3149 0 36.75265-32.51264 59.45282-99.70541 59.45282-73.6953 0-145.2231-22.70017-189.65703-45.40034l-36.84765 161.06308zM3019.37602 1270.02915h189.65702l-36.84765-728.56722h-256.8498l-55.27148 194.57285c-21.67508 76.74818-45.51768 179.4394-66.10902 268.07815h-3.25126c-15.17256-88.63875-36.84765-185.92517-57.43898-266.99719l-47.6852-195.6538h-263.35233l-45.51768 728.56721h179.90323l11.9213-260.51142c3.25127-83.23394 6.50253-191.32997 10.83755-294.0212h2.1675c17.34008 99.44835 39.01517 207.54438 58.52274 286.45448l60.69025 252.9447h152.80938l72.61154-254.02566c23.8426-79.99106 54.18773-189.16805 76.94657-285.37352h3.25126c0 113.50083 1.08376 210.78726 4.33502 294.0212l8.67004 260.51142zM3699.9738 1101.39935l46.60144 168.6298h211.33211l-217.83464-728.56722H3478.8879l-211.33211 728.56722h202.66208l41.18267-168.6298h188.57327zm-162.56317-143.76772l31.42888-130.79619c9.7538-41.07649 20.59134-101.61026 31.42888-143.76771h2.1675c11.9213 42.15745 26.01012 102.69122 36.84766 143.76771l33.59639 130.7962h-135.4693zM4016.4301 1236.51938c41.18266 21.61921 126.79926 44.31938 214.58337 44.31938 213.49962 0 311.03752-107.01507 311.03752-232.40646 0-101.61027-58.52274-171.87269-189.65702-220.5159-92.11913-33.50977-131.1343-48.6432-131.1343-85.39586 0-32.4288 32.51264-54.04801 92.11914-54.04801 72.61154 0 126.79926 20.53824 158.22814 34.59073l41.18267-155.65828c-47.6852-21.6192-110.54295-37.83361-197.2433-37.83361-184.23826 0-293.69746 99.44834-293.69746 228.08262 0 108.09602 82.36534 176.19652 205.91335 219.43493 82.36533 28.10497 114.87797 48.64321 114.87797 84.3149 0 36.75265-32.51264 59.45282-99.70541 59.45282-73.6953 0-145.2231-22.70017-189.65703-45.40034l-36.84765 161.06308zM4623.27688 541.46193v728.56722h196.15955V981.41276h237.34222v288.6164h196.15955V541.46192h-196.15955v269.1591h-237.34222v-269.1591h-196.15955z" fill="#282828" fill-rule="nonzero"/>
14
+ <g>
15
+ <path d="M6900.00785 293.7053c5.29-14.371 11.90999-24.77099 19.84998-31.19998 7.94-6.429 16.07-9.644 24.38998-9.644 8.32 0 15.7 2.08 22.12999 6.241 6.43 4.16 10.39999 9.265 11.90999 15.31599 2.27 43.86896 4.16 92.65493 5.67 146.35689 1.51 53.70296 2.65 109.86291 3.4 168.48187.76 58.61796 1.52 118.74891 2.26999 180.39386.76 61.64396 1.33 122.71991 1.71 183.22987.37 60.50695.56 119.1269.56 175.85686 0 56.72996.38 109.28992 1.14 157.69988-3.78 12.1-10.59 20.98999-20.41999 26.65998-9.83999 5.68-19.85998 8.14-30.06997 7.38-10.21-.76-19.28999-4.73-27.22998-11.91-7.94-7.18999-11.91-17.58998-11.91-31.19997l-3.4-983.66226zm173.57987 0c5.3-14.371 11.90999-24.77099 19.85998-31.19998 7.94-6.429 16.06999-9.644 24.38998-9.644 8.32 0 15.69 2.08 22.11999 6.241 6.43 4.16 10.39999 9.265 11.91999 15.31599 2.27 43.86896 4.15 92.65493 5.67 146.35689 1.51 53.70296 2.64 109.86291 3.4 168.48187.76 58.61796 1.51999 118.74891 2.26999 180.39386.76 61.64396 1.33 122.71991 1.7 183.22987.38 60.50695.57 119.1269.57 175.85686 0 56.72996.38 109.28992 1.13 157.69988-3.78 12.1-10.59 20.98999-20.41999 26.65998-9.82999 5.68-19.84998 8.14-30.05998 7.38-10.20999-.76-19.28998-4.73-27.22997-11.91-7.94-7.18999-11.92-17.58998-11.92-31.19997l-3.4-983.66226zm-419.49969 980.25225c-6.81-4.54-13.60999-12.66999-20.41998-24.38998-6.81-11.71999-13.61-24.57998-20.41999-38.57997-6.81-13.98999-13.61999-28.16998-20.41998-42.53997-6.81-14.36999-13.99999-26.84998-21.55998-37.43997-7.56-10.58999-15.51-18.33998-23.82999-23.25998-8.31999-4.92-17.38998-4.73-27.22998.57-15.11998 24.95998-30.43997 49.15996-45.93996 72.60994-15.50999 23.44999-32.52998 43.48997-51.05996 60.12996-18.52999 16.63999-39.70997 28.35998-63.52995 35.16997-23.82999 6.81-51.62997 6.05-83.38994-2.27-31.01998-8.31999-56.16996-24.57998-75.44994-48.77996-19.28999-24.20998-33.65998-52.94996-43.10997-86.22993-9.46-33.27998-14.19-69.77995-14.19-109.48992 0-39.70397 4.35-79.22394 13.05-118.55591 8.7-39.33097 21.36998-77.14894 38.00997-113.45492 16.63999-36.30597 36.67997-67.50595 60.12995-93.60093 23.44999-26.09398 50.10997-45.75996 79.98994-58.99595 29.86998-13.237 62.20996-16.82999 96.99993-10.779 32.51998 6.051 59.36996 19.855 80.54994 41.41198 21.17998 21.55598 38.76997 47.65096 52.75996 78.28394 13.98999 30.63297 24.95998 64.47995 32.89998 101.54192 7.93999 37.06197 15.12998 74.12394 21.55998 111.18692 6.43 37.06197 12.85999 72.42194 19.28999 106.08192 6.41999 33.65997 14.92998 62.58995 25.51998 86.78993 10.58999 24.20998 24.01998 41.97997 40.27997 53.32996 16.25998 11.34 37.62997 12.84999 64.09995 4.53 30.25997-31.00998 54.45996-51.61996 72.60994-61.82996 18.15999-10.20999 31.38998-13.60999 39.70997-10.20999 8.32 3.4 11.91 11.91 10.78 25.52998-1.13 13.61-6.05 28.73998-14.75 45.37997-8.69999 16.63999-20.60998 32.89997-35.73997 48.77996-15.11999 15.88999-32.32997 27.98998-51.61996 36.30997-19.28998 8.32-40.46997 11.16-63.52995 8.51-23.06998-2.65-47.08997-14.56-72.04995-35.73998zm2413.83818 6.81c-2.26-39.32997-5.67-82.25994-10.20999-128.7699-4.53-46.51997-10.58-92.84993-18.14999-138.9899-7.55999-46.13396-16.63998-89.81493-27.22998-131.0369-10.58999-41.22197-23.06998-76.01494-37.43997-104.37892-14.36999-28.36298-30.81997-48.21797-49.34996-59.56396-18.52999-11.34499-39.51997-9.83199-62.96995 4.539-23.44998 14.37099-49.34997 43.30197-77.71994 86.79293-28.35998 43.49097-59.93996 106.08092-94.72993 187.76786-3.03 6.05-7 15.88-11.91 29.49998-4.91999 13.60999-10.20999 28.92998-15.88998 45.94997-5.67 17.01998-11.91 34.97997-18.71999 53.88996-6.8 18.90998-13.03999 37.05997-18.71998 54.45995-5.67 17.4-10.78 32.89998-15.31 46.50997-4.53999 13.61999-7.56999 23.82998-9.07998 30.63998-6.05 15.11998-13.62 23.62998-22.68999 25.52998-9.08 1.89-18.14998.18-27.22998-5.11-9.07999-5.3-17.39998-12.47999-24.95998-21.55998-7.56-9.07-12.09999-17.01999-13.61999-23.81999 6.81-26.47998 12.86-55.96995 18.15999-88.49993 5.29-32.51997 9.45-69.57995 12.47999-111.17991 3.02-41.60397 4.16-88.68794 3.4-141.2559-.76-52.56696-4.54-112.13091-11.35-178.69186 8.32-17.39599 16.65-27.03998 24.96999-28.93098 8.31999-1.891 16.63998.756 24.94998 7.942 8.32 7.18499 16.07999 17.77498 23.25998 31.76697 7.19 13.99299 13.61999 28.17498 19.28999 42.54597 5.67 14.37099 10.20999 27.79698 13.61998 40.27697 3.4 12.47999 5.1 20.61098 5.1 24.39298 16.63999-14.371 31.95998-32.71298 45.94997-55.02596 13.98999-22.31298 28.35997-44.62597 43.10996-66.93895 14.75-22.31298 30.82998-42.16697 48.21997-59.56396 17.39998-17.39598 38.19997-27.98597 62.39995-31.76697 49.91996-9.077 92.27993-3.215 127.0699 17.58499 34.79998 20.79998 63.34996 50.67696 85.65994 89.62993 22.30998 38.95297 39.32997 84.14593 51.05996 135.5789 11.72 51.43296 20.03999 103.05492 24.95998 154.86588 4.91 51.80996 6.99 101.34992 6.24 148.62989-.76 47.26996-2.65 86.02993-5.68 116.2899-8.32 17.39-19.46998 26.08999-33.46997 26.08999-13.99 0-25.13998-8.7-33.46998-26.08998zm-1029.72922-9.08c-43.86997-18.14998-78.46994-41.97996-103.80992-71.46994-25.33998-29.49998-43.10997-61.83995-53.32996-97.00993-10.21-35.16997-13.61-72.03994-10.21-110.61791 3.41-38.57497 12.48-76.20395 27.22999-112.88792 14.74998-36.68397 34.41997-71.28794 58.99995-103.81092 24.57998-32.52398 52.56996-60.32095 83.95994-83.38994 31.38997-23.06898 65.79995-40.08797 103.23992-51.05496 37.43997-10.967 76.20994-13.42599 116.28991-7.375 33.27998 5.295 61.83995 20.99 85.65994 47.08397 23.82998 26.09498 42.73996 58.42996 56.72995 97.00493 13.99 38.57397 22.87999 80.93094 26.65998 127.0699 3.78 46.13797 1.7 91.70893-6.24 136.7079-7.93999 45.00996-21.55997 86.79993-40.83996 125.3699-19.28999 38.57998-44.62997 69.77995-76.01994 93.59993-31.38998 23.82999-69.39995 37.81998-114.01992 41.97997-44.62996 4.16-96.05992-6.24-154.29988-31.19997zm-642.42952 0c-43.86996-18.14998-78.46994-41.97996-103.80992-71.46994-25.33998-29.49998-43.10997-61.83995-53.31996-97.00993-10.20999-35.16997-13.61999-72.03994-10.20999-110.61791 3.4-38.57497 12.48-76.20395 27.21998-112.88792 14.74999-36.68397 34.41997-71.28794 58.99996-103.81092 24.57998-32.52398 52.56996-60.32095 83.95993-83.38994 31.38998-23.06898 65.79995-40.08797 103.23992-51.05496 37.43998-10.967 76.20995-13.42599 116.29992-7.375 33.27997 5.295 61.82995 20.99 85.64993 47.08397 23.82998 26.09498 42.73997 58.42996 56.72996 97.00493 13.98999 38.57397 22.87998 80.93094 26.65998 127.0699 3.79 46.13797 1.71 91.70893-6.24 136.7079-7.94 45.00996-21.54998 86.79993-40.83997 125.3699-19.28998 38.57998-44.62996 69.77995-76.01994 93.59993-31.38997 23.82999-69.38995 37.81998-114.01991 41.97997-44.61997 4.16-96.05993-6.24-154.29989-31.19997zm-1823.64862-14.69998c-5.29-34.31998-9.64-71.39995-13.04999-111.24992-3.4-39.85997-6.24-80.95994-8.5-123.2999-2.27-42.34497-3.79-85.24294-4.54-128.6939-.75999-43.45198-1.13999-86.07294-1.13999-127.86391 0-41.78997.38-81.91994 1.14-120.38991.75-38.46997 1.89-74.30995 3.4-107.52092 2.27-9.41 8.13-15.63699 17.58998-18.68199 9.45-3.044 19.65999-3.736 30.62998-2.075 10.97 1.66 20.98998 5.12 30.06998 10.378 9.07 5.259 13.98999 11.48599 14.73999 18.68198-1.51 31.54998-2.64 62.40896-3.4 92.57593-.76 30.16698-.57 59.91796.57 89.25494 1.13 29.33597 3.4 58.81095 6.81 88.42493 3.4 29.61298 8.12999 59.64095 14.17998 90.08493 35.54998-34.31797 72.03995-55.90596 109.47992-64.76195 37.43997-8.856 72.79995-8.441 106.07992 1.245 33.27998 9.687 63.72995 26.56898 91.32993 50.64796 27.60998 24.07798 49.54996 51.61496 65.80995 82.61194 16.25999 31.00198 25.89998 63.65195 28.92998 97.97192 3.02 34.31998-3.22 66.41995-18.71999 96.30993-15.50998 29.88998-41.40996 55.62996-77.71994 77.21994-36.29997 21.58999-85.46993 35.42998-147.48989 41.50997-27.22998 2.77-50.86996 4.99-70.90994 6.65-20.03999 1.66-38.94997 1.8-56.72996.41-17.76999-1.38-35.91997-5.12-54.45996-11.21-18.52998-6.08999-39.89997-15.49998-64.09995-28.22997zm85.08994-154.42989c-9.83 32.09998-11.34 58.25996-4.53 78.45994 6.8 20.20999 18.89998 35.00998 36.29997 44.41997 17.39999 9.41 38.57997 14.11999 63.53995 14.11999 24.95998 0 50.66997-3.74 77.13995-11.21 26.47998-7.46999 52.37996-18.12998 77.71994-31.96997 25.33998-13.83999 47.08996-30.15997 65.23995-48.97996 13.60999-13.83999 20.79998-30.58998 21.55998-50.23996.75-19.64999-2.84-39.70997-10.78-60.18996-7.94998-20.47998-19.85998-40.13097-35.73996-58.95095-15.88-18.81999-33.65998-34.31798-53.31996-46.49597-19.66999-12.17699-40.65997-19.64998-62.96996-22.41698-22.31998-2.768-44.24996 1.799-65.80995 13.69899-21.54998 11.90099-41.78996 32.10397-60.69995 60.61095-18.90999 28.50398-34.78997 68.22395-47.64996 119.14391zm2380.9882 74.95995c49.15996 31.76997 93.21993 45.00996 132.1799 39.70997 38.94997-5.29 71.65995-21.92999 98.12993-49.91997 26.47998-27.97997 46.32996-63.71995 59.56995-107.20991 13.24-43.48997 18.90999-87.92994 17.01999-133.3119-1.9-45.38197-11.73-87.54994-29.49998-126.5029-17.77999-38.95298-44.81997-68.26196-81.11994-87.92694-20.41998-10.59-44.24997-10.022-71.47994 1.701-27.22998 11.72399-53.88996 30.63297-79.97994 56.72795-26.09998 26.09498-49.73997 57.29496-70.90995 93.60093-21.17999 36.30498-35.54997 73.55695-43.11997 111.75292-7.56 38.19897-6.62 75.06894 2.84 110.61892 9.45 35.54997 31.57998 65.79995 66.36995 90.75993zm-642.42952 0c49.16997 31.76997 93.21993 45.00996 132.1799 39.70997 38.94997-5.29 71.65995-21.92999 98.13993-49.91997 26.46998-27.97997 46.31997-63.71995 59.55996-107.20991 13.23999-43.48997 18.90998-87.92994 17.01998-133.3119-1.89-45.38197-11.71999-87.54994-29.49998-126.5029-17.76998-38.95298-44.80996-68.26196-81.11993-87.92694-20.41999-10.59-44.24997-10.022-71.47995 1.701-27.22998 11.72399-53.88996 30.63297-79.97994 56.72795-26.09998 26.09498-49.72996 57.29496-70.90995 93.60093-21.17998 36.30498-35.54997 73.55695-43.10996 111.75292-7.57 38.19897-6.62 75.06894 2.83 110.61892 9.45999 35.54997 31.57997 65.79995 66.36994 90.75993zm-1159.18912-39.69997c19.65998 30.24997 40.26997 47.64996 61.82995 52.18996 21.55999 4.53 42.53997.56 62.96995-11.92 20.41999-12.47998 39.70997-31.00997 57.85996-55.58995 18.14999-24.57998 33.65998-50.86996 46.51997-78.84994 12.84999-27.98998 22.30998-55.40696 28.35997-82.25794 6.05-26.85098 7.56-48.97496 4.54-66.37095-3.78-18.15299-6.81-34.41497-9.08-48.78596-2.27-14.371-4.72999-27.22898-7.36999-38.57497-2.65-11.345-5.68-21.74599-9.07999-31.19998-3.4-9.455-8.13-19.09799-14.17999-28.93098-30.25998-21.17898-58.42996-29.49898-84.52994-24.95998-26.08998 4.538-49.53996 17.39599-70.33994 38.57397-20.79999 21.17898-38.18997 48.40796-52.18996 81.68794-13.99 33.27997-24.19998 68.07295-30.62998 104.37892-6.43 36.30597-8.51 71.47995-6.24 105.50992 2.27 34.03998 9.45 62.39995 21.55999 85.09994z" fill="#282828" fill-rule="nonzero"/>
16
+ <path d="M6892.93785 1141.07765l-2.93-847.33736c-.01-1.191.2-2.374.61-3.492 6.06-16.43098 13.87-28.16497 22.94999-35.51497 9.95999-8.065 20.24998-11.87199 30.67997-11.87199 10.37 0 19.54999 2.66 27.55998 7.845 8.86 5.732 14.1 12.94799 16.18 21.28698.16.625.25 1.264.29 1.908 2.26999 43.93997 4.15999 92.80393 5.67999 146.59289 1.51 53.75096 2.65 109.96191 3.4 168.63387.76 58.61996 1.52 118.75391 2.27 180.39986.76 61.66396 1.33 122.76091 1.71 183.28987.37 60.52995.56 119.1699.56 175.91986 0 56.66996.38 109.18992 1.13999 157.54988.01 1.06-.14 2.12-.46 3.13-4.6 14.73-12.99999 25.43998-24.96998 32.34998-11.7 6.75-23.64998 9.58-35.79997 8.68-12.44-.92-23.51999-5.71-33.19998-14.47-9.87-8.93-15.19999-21.69998-15.19999-38.57997l-.25-72.25994c-2.06 5.06-4.48 10.24999-7.27 15.58998-9.08998 17.41-21.52998 34.43998-37.35996 51.04997-16.08 16.88998-34.38998 29.74997-54.89996 38.58997-20.83999 8.98999-43.70997 12.12999-68.62995 9.25999-24.60998-2.82-50.33996-15.20999-76.94994-37.68997-7.62-5.23-15.41999-14.25-23.02998-27.34998-6.92-11.92-13.84-24.98998-20.75999-39.21997-6.83-14.02-13.64999-28.23998-20.46998-42.63997-6.53-13.77999-13.4-25.75998-20.65999-35.90997-6.62-9.27-13.48999-16.15999-20.76998-20.45999-4.67-2.76-9.71-2.7-15.12-.35-14.69998 24.18998-29.57997 47.66997-44.62996 70.42995-16.00999 24.20998-33.58997 44.87997-52.71996 62.05995-19.67998 17.66999-42.16997 30.11998-67.46995 37.34997-25.32998 7.23-54.88996 6.63-88.72993-2.23-33.15997-8.89999-60.03995-26.31997-80.66994-52.20995-20.07998-25.18998-35.06997-55.08996-44.90996-89.72994-9.7-34.10997-14.57-71.50994-14.57-112.21991 0-40.42697 4.43-80.66694 13.29-120.71491 8.84999-40.02697 21.73998-78.51394 38.67997-115.46191 17.08998-37.28898 37.69997-69.31695 61.77995-96.11793 24.43998-27.19398 52.23996-47.66197 83.36994-61.45595 31.65997-14.024 65.90995-17.899 102.88992-11.467 34.67997 6.452 63.26995 21.24799 85.85994 44.23397 21.94998 22.34798 40.20996 49.38096 54.70995 81.13794 14.28 31.25498 25.48998 65.78695 33.58998 103.60192 7.97 37.19097 15.17999 74.38195 21.62998 111.57192 6.42 37.00197 12.84 72.31194 19.25999 105.91192 6.27 32.82997 14.53999 61.05995 24.85998 84.65993 9.73 22.24999 21.89998 38.70997 36.83997 49.12997 13.55 9.45999 31.25998 10.32999 53.02996 3.92 30.31998-30.90998 54.72996-51.40997 73.05995-61.72996 12.16999-6.84 22.40998-10.8 30.62997-12.17 7.06-1.17999 12.97-.53999 17.76999 1.42 3.08 1.26 5.82 2.97 8.15 5.15zm171.26987-850.82935c-.41 1.118-.62 2.301-.62 3.492l3.4 983.65725c0 16.87999 5.34 29.64998 15.21 38.57997 9.67998 8.76 20.75997 13.55 33.19997 14.47 12.14999.9 24.09998-1.93 35.79997-8.68 11.95999-6.91 20.36998-17.61999 24.96998-32.34998.32-1.01.47-2.07.45-3.13-.75-48.35996-1.13-100.87992-1.13-157.54988 0-56.74995-.19-115.3899-.57-175.91986-.38-60.52896-.94-121.62591-1.7-183.28987-.76-61.64595-1.51-121.7799-2.27-180.39986-.76-58.67196-1.89-114.88291-3.41-168.63387-1.51-53.78896-3.4-102.65292-5.67999-146.5929-.03-.644-.13-1.283-.28-1.90799-2.09-8.339-7.32-15.55499-16.17999-21.28698-8.02-5.185-17.18998-7.845-27.55998-7.845-10.43999 0-20.71998 3.807-30.68997 11.872-9.08 7.34999-16.88999 19.08398-22.93999 35.51497zm1588.0788 521.3466c11.02-11.49199 21.36999-24.98198 31.06998-40.44997 14.03-22.37998 28.44998-44.75996 43.23997-67.13995 15.13999-22.89798 31.63998-43.26796 49.48996-61.12095 18.93999-18.93699 41.57997-30.45998 67.67995-34.53497 52.65996-9.574 97.29993-3.098 133.9899 18.84098 36.21997 21.64899 65.98995 52.69896 89.20993 93.24193 22.76999 39.74697 40.15997 85.84694 52.12996 138.3279 11.82 51.85696 20.20999 103.90492 25.15998 156.14788 4.96 52.18996 7.05 102.09992 6.29 149.72989-.77 47.60996-2.68 86.64993-5.73 117.1199-.11 1.16-.43 2.28-.92 3.32-10.40999 21.74999-24.99998 31.77998-42.49996 31.77998-17.48999 0-32.07998-10.03-42.48997-31.77997-.56-1.17-.88-2.44-.96-3.73-2.26-39.21997-5.65-82.00994-10.18-128.3799-4.51999-46.29997-10.53998-92.40994-18.06998-138.3399-7.51-45.82997-16.51999-89.21993-27.03998-130.1689-10.38999-40.41497-22.58998-74.53795-36.67997-102.34693-13.35999-26.36698-28.42998-45.00796-45.64997-55.55495-15.47998-9.474-32.93997-7.465-52.51996 4.536-22.56998 13.82998-47.26996 41.87496-74.56994 83.72993-28.12998 43.12897-59.40996 105.21592-93.90993 186.22486-.08.19-.17.37-.26.55-2.91 5.83-6.71 15.30999-11.45 28.42998-4.88999 13.53999-10.15998 28.77998-15.79998 45.70996-5.7 17.09-11.95999 35.12998-18.79998 54.11996-6.77 18.80999-12.98 36.85997-18.61999 54.16996-5.68 17.41999-10.79 32.93998-15.33999 46.57997-4.39 13.16999-7.33 23.04998-8.8 29.63997-.12.52-.28 1.04-.48 1.54-7.70999 19.27999-18.35998 29.19998-29.92997 31.59998-11.43 2.39-22.87998.41-34.30997-6.25-10.03-5.85-19.24999-13.76999-27.59998-23.78998-8.86-10.63999-13.93-20.08998-15.7-28.05998-.33999-1.54-.30999-3.14.08-4.66 6.74-26.20997 12.73-55.41995 17.97-87.60993 5.25-32.26997 9.36999-69.03995 12.36999-110.30991 3.01-41.34297 4.13-88.13794 3.38-140.3819-.75-52.31096-4.52-111.58291-11.29-177.81786-.19-1.829.13-3.674.92-5.332 10.19-21.30698 21.57999-32.05198 31.76998-34.36797 11.17999-2.541 22.52998.468 33.70997 10.12499 9.13 7.881 17.73999 19.41898 25.61998 34.76697 7.34 14.288 13.9 28.76898 19.68999 43.44197 5.82 14.74199 10.46999 28.51598 13.95999 41.31797.7 2.54 1.32 4.919 1.87 7.135zm-1260.43904 469.29265c-45.43997-18.81999-81.21994-43.59997-107.46992-74.15995-26.30998-30.62997-44.73997-64.20995-55.34996-100.72992-10.55-36.33997-14.07999-74.42994-10.56-114.28691 3.48-39.54797 12.79-78.12894 27.90999-115.73892 15.06999-37.49597 35.16997-72.86794 60.28995-106.11092 25.18998-33.31797 53.85996-61.78595 86.01994-85.41793 32.32997-23.76398 67.77995-41.29597 106.34992-52.59396 38.82997-11.373 79.02994-13.941 120.6799-7.653 35.51998 5.652 66.02996 22.35899 91.46994 50.21697 24.64998 26.99898 44.25996 60.42495 58.73995 100.33692 14.28 39.36297 23.36998 82.58094 27.22998 129.6629 3.85 46.99997 1.73 93.42293-6.36 139.2649-8.10999 45.98996-22.03998 88.68993-41.74996 128.1099-20.00999 40.01997-46.33997 72.36995-78.90994 97.08993-32.80998 24.89998-72.49995 39.61997-119.13991 43.96996-46.01997 4.29-99.08993-6.22-159.14988-31.95997zm642.41951 0c-45.43996-18.81999-81.21994-43.59997-107.46992-74.15995-26.30998-30.62997-44.73996-64.20995-55.33995-100.72992-10.55-36.33997-14.08-74.42994-10.57-114.28691 3.49-39.54797 12.79-78.12894 27.90998-115.73892 15.08-37.49597 35.17998-72.86794 60.29996-106.11092 25.17998-33.31797 53.85996-61.78595 86.00993-85.41793 32.33998-23.76398 67.78995-41.29597 106.35992-52.59396 38.82997-11.373 79.01994-13.941 120.66991-7.653 35.52997 5.652 66.03995 22.35899 91.47993 50.21697 24.64998 26.99898 44.25997 60.42495 58.73996 100.33692 14.27999 39.36297 23.36998 82.58094 27.22998 129.6629 3.85 46.99997 1.73 93.42293-6.36 139.2649-8.12 45.98996-22.03998 88.68993-41.74997 128.1099-20.00998 40.01997-46.33996 72.36995-78.90994 97.08993-32.80997 24.89998-72.49994 39.61997-119.1399 43.96996-46.01997 4.29-99.09993-6.22-159.15989-31.95997zM6968.3578 276.0543c-1.1-3.399-3.7-6.152-7.41999-8.557-4.84-3.135-10.41999-4.636-16.68999-4.636-6.2 0-12.17999 2.622-18.09998 7.417-6.5 5.259-11.73 13.762-16.13999 25.24198l3.4 981.84726c0 10.31 2.6 18.33999 8.62 23.77998 6.20999 5.62 13.27998 8.76 21.25998 9.36 8.26999.61 16.35998-1.47 24.32998-6.07 7.31-4.21 12.36999-10.78 15.39999-19.52998-.75-47.98997-1.12-100.04993-1.12-156.16989 0-56.70995-.19-115.30991-.56-175.79486-.38-60.48896-.95-121.54591-1.7-183.16987-.76-61.64195-1.52-121.7709-2.27-180.38686-.76-58.56596-1.89-114.67491-3.4-168.32887-1.5-53.15996-3.37-101.49493-5.61-145.0029zm173.57988 0c-1.1-3.399-3.69-6.152-7.41-8.557-4.84-3.135-10.42-4.636-16.68999-4.636-6.21 0-12.17999 2.622-18.09998 7.417-6.5 5.259-11.74 13.762-16.14 25.24198l3.39 981.84726c0 10.31 2.61 18.33999 8.63 23.77998 6.2 5.62 13.27999 8.76 21.25998 9.36 8.27.61 16.36-1.47 24.31999-6.07 7.31-4.21 12.36999-10.78 15.39998-19.52998-.74-47.98997-1.11-100.04993-1.11-156.16989 0-56.70995-.19-115.30991-.57-175.79486-.37-60.48896-.94-121.54591-1.7-183.16987-.75-61.64195-1.51-121.7709-2.27-180.38686-.75-58.56596-1.88999-114.67491-3.39999-168.32887-1.49-53.15996-3.36-101.49493-5.61-145.0029zm-1474.8589 611.05154c32.78998-28.61098 66.40996-46.87097 100.71993-54.98596 39.23997-9.282 76.29994-8.777 111.17992 1.375 34.64997 10.08599 66.35995 27.64098 95.10993 52.71196 28.56997 24.91798 51.24996 53.42596 68.07995 85.50393 16.88998 32.18698 26.89997 66.10695 30.03997 101.73693 3.2 36.27997-3.42 70.20994-19.80998 101.79992-16.27999 31.37997-43.34997 58.53995-81.47994 81.19994-37.32997 22.19998-87.83993 36.60997-151.58989 42.86996-27.29998 2.78-50.99996 5-71.08994 6.66-20.60999 1.71-40.05997 1.84-58.32996.42-18.53999-1.44-37.47997-5.33-56.80996-11.68-18.96998-6.22999-40.84997-15.83998-65.62995-28.87997-2.81-1.47-4.75-4.19-5.23-7.32-5.32999-34.52997-9.70999-71.83994-13.12998-111.92991-3.41-39.95997-6.26-81.15994-8.53-123.6199-2.28-42.45897-3.79-85.47694-4.55-129.0499-.76-43.51098-1.14-86.18994-1.14-128.03791 0-41.85797.38-82.05394 1.14-120.58691.76-38.56197 1.89-74.48795 3.41-107.77892.03-.637.12-1.27.27-1.889 3.13-12.99999 11.18-21.65098 24.23999-25.85598 10.86999-3.498 22.58998-4.353 35.19997-2.445 12.24999 1.856 23.43998 5.739 33.57997 11.614 12.52 7.25499 18.62999 16.35998 19.67999 26.28797.05.506.07 1.016.04 1.524-1.51 31.47298-2.64 62.25596-3.39 92.34793-.75 29.95198-.57 59.49096.56 88.61794 1.12 29.08597 3.37 58.30895 6.75 87.66993 2.72 23.63898 6.28 47.54596 10.70999 71.71995zm992.55926 378.53171c-5.84-3.89-11.48-11.03-17.31999-21.08998-6.7-11.53-13.38999-24.16999-20.07998-37.92998-6.79-13.95998-13.58-28.10997-20.37999-42.44996-7.08-14.97-14.57999-27.94998-22.44998-38.97997-8.51-11.9-17.51999-20.51999-26.87998-26.04998-11.32-6.69-23.67998-6.83-37.05997.37-1.57.85-2.88 2.1-3.81 3.62-15.05999 24.84997-30.29998 48.93996-45.73996 72.27994-15 22.68998-31.45998 42.10997-49.38997 58.20995-17.37998 15.61-37.24997 26.60998-59.59995 32.99998-22.31999 6.37-48.34997 5.46-78.10994-2.33-28.79998-7.73-52.21996-22.82998-70.15995-45.34996-18.49999-23.20999-32.24998-50.79997-41.31997-82.71994-9.21-32.44998-13.79999-68.03995-13.79999-106.75992 0-38.98097 4.27-77.78094 12.81-116.39591 8.54998-38.63497 20.98998-75.78495 37.33996-111.44792 16.19-35.32397 35.65998-65.69495 58.47996-91.08393 22.45998-24.99598 47.97996-43.85797 76.59994-56.53696 28.08998-12.44899 58.50996-15.75999 91.23993-10.069 30.24998 5.628 55.35996 18.44 75.12995 38.56698 20.39998 20.76598 37.30997 45.92097 50.78996 75.43094 13.70999 30.00998 24.43998 63.17396 32.21997 99.48293 7.92 36.93297 15.08 73.86594 21.48999 110.79991 6.43 37.12298 12.86999 72.53295 19.30998 106.24292 6.59 34.48998 15.34 64.12996 26.18998 88.92994 11.45 26.16998 26.13998 45.24996 43.71997 57.51995 18.48999 12.9 42.71997 15.33 72.81994 5.87 1.58-.49 3.01-1.37 4.16-2.55 29.34998-30.08998 52.73996-50.19996 70.35995-60.09995 8.15-4.59 15.17999-7.72 21.11998-9.24 4.06-1.05 7.35-1.48 9.9-.44 4.83 1.98 5.26 7.53 4.6 15.45-1.04 12.47998-5.67 26.31997-13.65 41.57996-8.3 15.86999-19.68998 31.36998-34.11997 46.51997-14.17 14.87998-30.26998 26.22998-48.33997 34.01997-17.73998 7.65-37.21997 10.19-58.42995 7.76-21.40999-2.46-43.55997-13.78-66.71995-33.42998l-.92-.7zm2465.44814 12.35c2.91-29.76999 4.72-67.65996 5.46-113.66992.75-46.92997-1.32-96.09993-6.2-147.5199-4.87-51.38895-13.12999-102.58491-24.74998-153.59388-11.49-50.38496-28.12998-94.67092-49.98996-132.8309-21.39999-37.36197-48.73997-66.06595-82.10994-86.01693-32.88998-19.65999-72.95995-24.90898-120.38991-16.28799-22.05998 3.447-41.01997 13.102-56.87996 28.95798-16.93999 16.93999-32.57997 36.27997-46.93996 58.00796-14.71 22.24498-29.03998 44.49096-42.98997 66.73695-14.56999 23.23798-30.54998 42.31396-47.87996 57.28095-2.96 2.557-7.14 3.153-10.7 1.525-3.56-1.628-5.84-5.181-5.84-9.093 0-3.38099-1.70999-10.60698-4.74999-21.76198-3.32-12.15799-7.74-25.23598-13.26999-39.23597-5.55-14.06799-11.84999-27.95098-18.87998-41.64996-6.49-12.637-13.39-22.27799-20.89999-28.76698-5.47-4.718-10.73999-7-16.20999-5.759-2.45.558-4.67 2.587-7.11999 5.432-3.3 3.817-6.54 9.02999-9.82 15.58699 6.66 65.73995 10.36 124.6399 11.11 176.70886.76 52.89196-.39 100.26493-3.43 142.1199-3.05 41.92996-7.25 79.28994-12.57999 112.06991-5.18 31.79998-11.08 60.72995-17.68999 86.79993 1.68 5.13 5.45 10.9 10.96 17.51 6.77 8.11999 14.18999 14.57998 22.31998 19.31998 6.72 3.93 13.41999 5.36 20.14998 3.96 6.46-1.35 10.86-8.16 15.16-18.77 1.62-7.01999 4.65999-17.27998 9.15999-30.76997 4.53-13.58999 9.62999-29.07998 15.29998-46.44996 5.7-17.48999 11.97-35.73998 18.80999-54.74996 6.78-18.82999 12.99999-36.71997 18.63999-53.65996 5.71-17.10999 11.02999-32.49998 15.96998-46.18997 5.02-13.88999 9.11-23.97298 12.22-30.26797 35.04997-82.24394 66.88994-145.2539 95.45992-189.06286 29.42998-45.12797 56.52996-74.94494 80.85994-89.85593 27.31998-16.744 51.82996-17.75999 73.41995-4.541 19.83998 12.144 37.66997 33.21197 53.04996 63.57295 14.64998 28.91898 27.40998 64.38095 38.20997 106.40992 10.65999 41.49597 19.79998 85.46594 27.40998 131.9149 7.6 46.34997 13.67999 92.88993 18.23998 139.6299 4.47 45.84996 7.84 88.22993 10.12 127.1199 6.08999 12 13.56998 18.70999 23.59998 18.70999 10.08999 0 17.58998-6.77 23.68998-18.86999zm-1725.4887-15.54c-42.25997-17.47998-75.64994-40.33997-100.04992-68.74995-24.36999-28.36997-41.48997-59.44995-51.30996-93.27993-9.87-33.99997-13.14-69.64994-9.85-106.94891 3.31-37.60098 12.17-74.27895 26.53998-110.03592 14.43-35.87297 33.65998-69.70795 57.69996-101.51292 23.97998-31.72998 51.27996-58.85496 81.89994-81.36094 30.43997-22.37399 63.81995-38.87897 100.12992-49.51597 36.05997-10.56199 73.38995-12.91099 111.98992-7.084 30.95997 4.925 57.54995 19.607 79.76994 43.93898 22.99998 25.18998 41.19997 56.43395 54.70996 93.67193 13.70999 37.78597 22.38998 79.28094 26.09998 124.4769 3.71 45.27597 1.67 89.99593-6.12 134.1609-7.77 44.01997-21.07998 84.89994-39.94997 122.6299-18.55999 37.11998-42.89997 67.17996-73.10994 90.10994-29.96998 22.74998-66.29995 36.00997-108.90992 39.98997-43.22997 4.03-93.00993-6.26-149.42989-30.43998l-.11-.05zm642.41952 0c-42.24997-17.47998-75.63995-40.33997-100.04993-68.74995-24.35998-28.36997-41.47997-59.44995-51.29996-93.27993-9.87-33.99997-13.14999-69.64994-9.86-106.94891 3.32-37.60098 12.17-74.27895 26.54999-110.03592 14.41999-35.87297 33.65997-69.70795 57.69995-101.51292 23.97999-31.72998 51.27997-58.85496 81.89994-81.36094 30.43998-22.37399 63.81995-38.87897 100.12993-49.51597 36.05997-10.56199 73.38994-12.91099 111.98991-7.084 30.94998 4.925 57.54996 19.607 79.76994 43.93898 22.99999 25.18998 41.19997 56.43395 54.70996 93.67193 13.7 37.78597 22.38998 79.28094 26.08998 124.4769 3.71 45.27597 1.68 89.99593-6.12 134.1609-7.76999 44.01997-21.06998 84.89994-39.93996 122.6299-18.55999 37.11998-42.90997 67.17996-73.10995 90.10994-29.96998 22.74998-66.29995 36.00997-108.90992 39.98997-43.22996 4.03-93.00993-6.26-149.42988-30.43998l-.12-.05zM5632.4288 546.7151c-.72-4.174-4.34-7.351-9.72999-10.47199-8.01-4.642-16.86999-7.678-26.54998-9.144-9.33-1.413-18.01998-.883-26.06998 1.707-5.56 1.792-9.16 5.322-10.71 10.675-1.47999 32.83197-2.59999 68.23495-3.33999 106.20592-.76 38.40597-1.14 78.47094-1.14 120.1929 0 41.73398.38 84.29694 1.14 127.68891.75 43.32997 2.26 86.10694 4.52 128.3289 2.26 42.23997 5.09 83.22994 8.49 122.97991 3.21999 37.68997 7.27999 72.88995 12.20998 105.58992 21.78999 11.26 41.14997 19.67999 58.09996 25.24998 17.72999 5.83 35.09997 9.42 52.10996 10.74 17.26999 1.35 35.64997 1.2 55.11996-.41 19.99998-1.66 43.56997-3.87 70.75994-6.63 60.26996-5.91 108.08992-19.17999 143.3599-40.15997 34.48997-20.49998 59.21995-44.82997 73.94994-73.21994 14.61999-28.18998 20.48999-58.46996 17.63999-90.82994-2.91-32.99997-12.19-64.39995-27.82998-94.20593-15.68999-29.91597-36.86997-56.48395-63.51995-79.72193-26.46998-23.08499-55.63996-39.29498-87.54994-48.58197-31.67997-9.221-65.34995-9.546-100.98992-1.115-35.87997 8.488-70.76995 29.33298-104.83992 62.22396-2.63 2.541-6.44 3.442-9.93 2.349-3.49-1.093-6.10999-4.005-6.81999-7.594-6.11-30.71598-10.88-61.01395-14.30999-90.89293-3.43-29.86598-5.72-59.59296-6.86-89.17993-1.15-29.54598-1.34-59.50996-.58-89.89194.75-29.94797 1.88-60.57595 3.37-91.88193zm15.14 553.17259c13.18998-52.14997 29.57997-92.78993 48.95996-122.00191 19.95998-30.08698 41.44996-51.27696 64.19995-63.83695 23.53998-12.994 47.49996-17.891 71.86994-14.869 23.73999 2.944 46.07997 10.883 66.99995 23.83899 20.53999 12.71799 39.10997 28.89298 55.69996 48.54796 16.63999 19.71899 29.09998 40.32097 37.41997 61.78096 8.47 21.83998 12.25 43.24996 11.45 64.19995-.86 22.23998-9.01 41.18997-24.34999 56.78995-18.82998 19.51999-41.36997 36.46998-67.63995 50.81997-26.01998 14.20999-52.61996 25.13998-79.79994 32.80997-27.39998 7.74-54.02996 11.59-79.85994 11.59-26.84998 0-49.58996-5.2-68.29994-15.32-19.60999-10.60999-33.33998-27.23998-41.01997-50.02996-7.32-21.70998-6.15-49.83996 4.37-84.31993zm19.33998 5.12c12.51999-49.58997 27.86998-88.30994 46.28996-116.06692 17.85999-26.92498 36.82998-46.14197 57.19996-57.38296 19.56999-10.80799 39.46997-15.04399 59.73996-12.52999 20.87998 2.59 40.51996 9.597 58.92995 20.99499 18.78999 11.63699 35.76997 26.45898 50.94996 44.44396 15.12 17.92099 26.48998 36.61097 34.04998 56.11096 7.42 19.12999 10.81999 37.84997 10.10999 56.19996-.65 17.04998-6.87 31.58997-18.68999 43.59996-17.54998 18.2-38.49997 33.89998-62.89995 47.22997-24.65998 13.46999-49.86996 23.83998-75.63994 31.10998-25.53998 7.20999-50.34996 10.83999-74.42995 10.83999-23.07998 0-42.69996-4.21-58.77995-12.91-15.18-8.20999-25.64998-21.19998-31.58998-38.81996-6.28-18.63999-4.44-42.72997 4.63-72.33995l.13-.48zm1723.4387 80.90993c51.62996 33.36998 98.03992 46.77997 138.9499 41.21997 41.29996-5.61 75.97994-23.27998 104.04991-52.95996 27.45998-29.02998 48.13997-66.05995 61.86996-111.16992 13.55999-44.57996 19.37998-90.12293 17.43998-136.6379-1.95-46.72396-12.08999-90.13293-30.38997-130.2379-18.71999-41.02096-47.21997-71.85994-85.45994-92.56893-23.01998-11.93999-49.70996-11.81599-80.18994 1.31-28.27998 12.173-56.00995 31.74398-83.09993 58.84096-26.66998 26.66498-50.83997 58.53395-72.47995 95.63293-21.75998 37.30897-36.50997 75.59694-44.27997 114.84991-7.87999 39.75097-6.86 78.13094 2.98 115.13091 10.02 37.67997 33.31998 69.85995 70.19995 96.31993l.41.27zm642.41951 0c51.62996 33.36998 98.04993 46.77997 138.9499 41.21997 41.30997-5.61 75.98994-23.27998 104.05992-52.95996 27.45998-29.02998 48.12996-66.05995 61.86995-111.16992 13.56-44.57996 19.37999-90.12293 17.43999-136.6379-1.95-46.72396-12.09-90.13293-30.38998-130.2379-18.71998-41.02096-47.22996-71.85994-85.45993-92.56893-23.01998-11.93999-49.70996-11.81599-80.18994 1.31-28.27998 12.173-56.00996 31.74398-83.10994 58.84096-26.65998 26.66498-50.82996 58.53395-72.46994 95.63293-21.76999 37.30897-36.51998 75.59694-44.28997 114.84991-7.87 39.75097-6.86 78.13094 2.98 115.13091 10.02999 37.67997 33.32997 69.85995 70.20994 96.31993l.4.27zm11.07-16.65999c46.60996 30.07998 88.23993 43.08997 125.1899 38.06997 36.59997-4.98 67.34995-20.58998 92.21993-46.88996 25.47998-26.93998 44.51997-61.38995 57.25996-103.24992 12.90999-42.40997 18.43998-85.73594 16.58999-129.9859-1.83-44.03997-11.35-84.96594-28.59998-122.76691-16.82999-36.88497-42.40997-64.66495-76.62995-83.20194-17.97998-9.323-38.93997-8.313-62.91995 2.009-26.17998 11.274-51.76996 29.52098-76.85994 54.61396-25.52998 25.52498-48.62996 56.05596-69.34995 91.56793-20.58998 35.30297-34.57997 71.51695-41.93997 108.65792-7.24999 36.63597-6.38 72.00594 2.69 106.10592 8.87 33.34997 29.74998 61.62995 62.34996 85.06993zm-642.42952 0c46.60996 30.07998 88.24993 43.08997 125.1899 38.06997 36.59998-4.98 67.34995-20.58998 92.21994-46.88996 25.48998-26.93998 44.51996-61.38995 57.25995-103.24992 12.91-42.40997 18.43999-85.73594 16.59999-129.9859-1.84-44.03997-11.36-84.96594-28.60998-122.76691-16.82999-36.88497-42.39997-64.66495-76.61994-83.20194-17.97999-9.323-38.94997-8.313-62.91995 2.009-26.18998 11.274-51.77996 29.52098-76.86995 54.61396-25.52998 25.52498-48.62996 56.05596-69.33994 91.56793-20.59999 35.30297-34.58998 71.51695-41.94997 108.65792-7.25 36.63597-6.37 72.00594 2.7 106.10592 8.86999 33.34997 29.73997 61.62995 62.33995 85.06993zm-1173.21912-25.98998c21.51999 33.09998 44.56997 51.54996 68.15995 56.51996 24.03999 5.06 47.46997.75 70.23995-13.16999 21.39998-13.06999 41.66997-32.41998 60.68995-58.17996 18.56-25.12998 34.41998-52.00996 47.55997-80.61994 13.16999-28.64997 22.83998-56.73495 29.03998-84.22993 6.4-28.42898 7.83-51.86396 4.63-70.28295l-.06-.326c-3.75-17.97399-6.74-34.07597-8.99-48.30596-2.31-14.636-4.82-27.73198-7.52-39.28697-2.74-11.752-5.86999-22.52199-9.39999-32.31498-3.62-10.059-8.64-20.32498-15.06999-30.78498-.72-1.164-1.67-2.168-2.79-2.952-32.86997-23.00798-63.61995-31.54997-91.96992-26.61997-28.08998 4.885-53.36996 18.62598-75.75995 41.41997-21.60998 21.99998-39.73997 50.24796-54.27996 84.81893-14.26999 33.96098-24.69998 69.46395-31.25997 106.51092-6.57 37.13497-8.69 73.11395-6.37 107.92392 2.38 35.65997 10.03 65.34995 22.70999 89.12993l.44.75zm223.31984-388.7207c-26.98998-18.50399-52.01996-26.18998-75.36995-22.12799-24.10998 4.192-45.70996 16.16699-64.91995 35.72898-19.99998 20.35698-36.65997 46.56796-50.10996 78.55694-13.70999 32.59997-23.70998 66.68295-29.99998 102.24692-6.29 35.47697-8.33 69.84595-6.11 103.10592 2.15 32.21998 8.8 59.13996 20.2 80.67994 17.73998 27.17998 35.82996 43.38997 55.26995 47.47996 19.06999 4.02 37.61997.38 55.68996-10.65999 19.44998-11.87999 37.74997-29.59997 55.02996-52.99996 17.74998-24.02998 32.90997-49.72996 45.47996-77.08994 12.55-27.30998 21.78999-54.06896 27.68998-80.27594 5.69-25.21598 7.29-45.98996 4.46-62.34495-3.79-18.24499-6.83-34.59698-9.12-49.05396-2.22-14.106-4.63-26.72698-7.22999-37.86298-2.55-10.93899-5.47-20.96898-8.75-30.08497-2.98-8.28-7.05999-16.709-12.20998-25.29798z" fill="#fff"/>
17
+ </g>
18
+ </svg>
19
+ </span>
20
+ <br />
21
+
22
+ <span style="width: 34px; top: -5px;"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="facebook" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="svg-inline--fa fa-facebook fa-w-16 fa-2x"><path fill="#475e8f" d="M504 256C504 119 393 8 256 8S8 119 8 256c0 123.78 90.69 226.38 209.25 245V327.69h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.31 482.38 504 379.78 504 256z" class=""></path></svg></span>
23
+
24
+ <?php echo $plus_svg; ?>
25
+
26
+ <span><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="instagram" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" class="svg-inline--fa fa-instagram fa-w-14 fa-2x"><path fill="#e15073" d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z" class=""></path></svg></span>
27
+
28
+ <?php echo $plus_svg; ?>
29
+
30
+ <span style="top: -4px;"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" class="svg-inline--fa fa-twitter fa-w-16 fa-2x"><path fill="#1a92dc" d="M459.37 151.716c.325 4.548.325 9.097.325 13.645 0 138.72-105.583 298.558-298.558 298.558-59.452 0-114.68-17.219-161.137-47.106 8.447.974 16.568 1.299 25.34 1.299 49.055 0 94.213-16.568 130.274-44.832-46.132-.975-84.792-31.188-98.112-72.772 6.498.974 12.995 1.624 19.818 1.624 9.421 0 18.843-1.3 27.614-3.573-48.081-9.747-84.143-51.98-84.143-102.985v-1.299c13.969 7.797 30.214 12.67 47.431 13.319-28.264-18.843-46.781-51.005-46.781-87.391 0-19.492 5.197-37.36 14.294-52.954 51.655 63.675 129.3 105.258 216.365 109.807-1.624-7.797-2.599-15.918-2.599-24.04 0-57.828 46.782-104.934 104.934-104.934 30.213 0 57.502 12.67 76.67 33.137 23.715-4.548 46.456-13.32 66.599-25.34-7.798 24.366-24.366 44.833-46.132 57.827 21.117-2.273 41.584-8.122 60.426-16.243-14.292 20.791-32.161 39.308-52.628 54.253z" class=""></path></svg></span>
31
+
32
+ <?php echo $plus_svg; ?>
33
+
34
+ <span style="width: 35px; top: -5px;"><svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="youtube" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="svg-inline--fa fa-youtube fa-w-18 fa-2x"><path fill="#f5413d" d="M549.655 124.083c-6.281-23.65-24.787-42.276-48.284-48.597C458.781 64 288 64 288 64S117.22 64 74.629 75.486c-23.497 6.322-42.003 24.947-48.284 48.597-11.412 42.867-11.412 132.305-11.412 132.305s0 89.438 11.412 132.305c6.281 23.65 24.787 41.5 48.284 47.821C117.22 448 288 448 288 448s170.78 0 213.371-11.486c23.497-6.321 42.003-24.171 48.284-47.821 11.412-42.867 11.412-132.305 11.412-132.305s0-89.438-11.412-132.305zm-317.51 213.508V175.185l142.739 81.205-142.739 81.201z" class=""></path></svg></span>
35
+ </div>
36
+
37
+ <h1>Combine all your social media channels into one single wall.</h1>
38
+ <h2>Maximize your social content and get more followers.</h2>
39
+
40
+ <div style="text-align: center;">
41
+ <a href="https://smashballoon.com/social-wall/?utm_source=plugin-pro&utm_campaign=ctf&utm_medium=sw-cta-1" target="_blank" class="cta button button-primary">Get the Social Wall plugin</a>
42
+ </div>
43
+
44
+ <div class="ctf-sw-info">
45
+ <div class="ctf-sw-features">
46
+ <p><span>A dash of Instagram</span>Add posts from your profile, public hashtag posts, or posts you're tagged in.</p>
47
+ <p><span>A sprinkle of Facebook</span>Include posts from your page or group timeline, or from your photos, videos, albums, and events pages.</p>
48
+ <p><span>A spoonful of Twitter</span>Add Tweets from any Twitter account, hashtag Tweets, mentions, and more.</p>
49
+ <p><span>And a dollop of YouTube</span>Embed videos from any public YouTube channel, playlists, searches, and more.</p>
50
+ <p><span>All in the same feed</span>Combine feeds from all of our Smash Balloon Pro plugins into one single wall feed, and show off all your social media content in one place.</p>
51
+ </div>
52
+ <a class="ctf-sw-screenshot" href="https://smashballoon.com/social-wall/demo?utm_source=plugin-pro&utm_campaign=ctf&utm_medium=sw-demo" target="_blank">
53
+ <span class="cta">View Demo</span>
54
+
55
+ <img src="<?php echo CTF_PLUGIN_URL . 'img/sw-screenshot.png'; ?>" alt="Smash Balloon Social Wall plugin screenshot showing Facebook, Instagram, Twitter, and YouTube posts combined into one wall.">
56
+ </a>
57
+ </div>
58
+
59
+ <div class="ctf-sw-footer-cta">
60
+ <a href="https://smashballoon.com/social-wall/?utm_source=plugin-pro&utm_campaign=ctf&utm_medium=sw-cta-2" target="_blank"><span>🚀</span>Get Social Wall and Increase Engagement >></a>
61
+ </div>
62
+
63
  </div>
views/admin/style.php CHANGED
@@ -1,50 +1,50 @@
1
- <?php
2
- settings_errors(); ?>
3
- <p class="ctf-contents-links" id="general">
4
- <span>Quick links: </span>
5
- <?php
6
- $quick_links = array();
7
- $quick_links = apply_filters( 'ctf_admin_style_quick_links', $quick_links );
8
-
9
- foreach ( $quick_links as $quick_link ) {
10
- echo '<a href="#' . $quick_link[0] . '">' . $quick_link[1] . '</a>';
11
- }
12
- //echo '<pre>';
13
- //var_dump( get_option('ctf_options'));
14
- //echo '</pre>';
15
- ?>
16
- </p>
17
- <form method="post" action="options.php">
18
- <input type="hidden" name="ctf_options[tab]" value="style" />
19
- <?php settings_fields( 'ctf_options' ); // matches the options name ?>
20
- <?php do_settings_sections( 'ctf_options_general_style' ); // matches the section name ?>
21
- <hr>
22
- <a id="header"></a>
23
- <?php do_settings_sections( 'ctf_options_header' ); // matches the section name ?>
24
- <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
25
- <hr>
26
- <a id="date"></a>
27
- <?php do_settings_sections( 'ctf_options_date' ); // matches the section name ?>
28
- <hr>
29
- <a id="author"></a>
30
- <?php do_settings_sections( 'ctf_options_author' ); // matches the section name ?>
31
- <hr>
32
- <a id="text"></a>
33
- <?php do_settings_sections( 'ctf_options_text' ); // matches the section name ?>
34
- <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
35
- <hr>
36
- <a id="links"></a>
37
- <?php do_settings_sections( 'ctf_options_links' ); // matches the section name ?>
38
- <hr>
39
- <a id="quoted"></a>
40
- <?php do_settings_sections( 'ctf_options_quoted' ); // matches the section name ?>
41
- <hr>
42
- <a id="actions"></a>
43
- <?php do_settings_sections( 'ctf_options_actions' ); // matches the section name ?>
44
- <hr>
45
- <a id="load"></a>
46
- <?php do_settings_sections( 'ctf_options_load' ); // matches the section name ?>
47
- <?php do_action( 'ctf_admin_add_settings_sections_to_style' ); ?>
48
- <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
49
- </form>
50
- <p><span class="fa fa-chevron-circle-right" aria-hidden="true"></span>&nbsp; <?php _e('Next Step: <a href="?page=custom-twitter-feeds&tab=display">Display your Feed</a>'); ?></p>
1
+ <?php
2
+ settings_errors(); ?>
3
+ <p class="ctf-contents-links" id="general">
4
+ <span>Quick links: </span>
5
+ <?php
6
+ $quick_links = array();
7
+ $quick_links = apply_filters( 'ctf_admin_style_quick_links', $quick_links );
8
+
9
+ foreach ( $quick_links as $quick_link ) {
10
+ echo '<a href="#' . $quick_link[0] . '">' . $quick_link[1] . '</a>';
11
+ }
12
+ //echo '<pre>';
13
+ //var_dump( get_option('ctf_options'));
14
+ //echo '</pre>';
15
+ ?>
16
+ </p>
17
+ <form method="post" action="options.php">
18
+ <input type="hidden" name="ctf_options[tab]" value="style" />
19
+ <?php settings_fields( 'ctf_options' ); // matches the options name ?>
20
+ <?php do_settings_sections( 'ctf_options_general_style' ); // matches the section name ?>
21
+ <hr>
22
+ <a id="header"></a>
23
+ <?php do_settings_sections( 'ctf_options_header' ); // matches the section name ?>
24
+ <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
25
+ <hr>
26
+ <a id="date"></a>
27
+ <?php do_settings_sections( 'ctf_options_date' ); // matches the section name ?>
28
+ <hr>
29
+ <a id="author"></a>
30
+ <?php do_settings_sections( 'ctf_options_author' ); // matches the section name ?>
31
+ <hr>
32
+ <a id="text"></a>
33
+ <?php do_settings_sections( 'ctf_options_text' ); // matches the section name ?>
34
+ <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
35
+ <hr>
36
+ <a id="links"></a>
37
+ <?php do_settings_sections( 'ctf_options_links' ); // matches the section name ?>
38
+ <hr>
39
+ <a id="quoted"></a>
40
+ <?php do_settings_sections( 'ctf_options_quoted' ); // matches the section name ?>
41
+ <hr>
42
+ <a id="actions"></a>
43
+ <?php do_settings_sections( 'ctf_options_actions' ); // matches the section name ?>
44
+ <hr>
45
+ <a id="load"></a>
46
+ <?php do_settings_sections( 'ctf_options_load' ); // matches the section name ?>
47
+ <?php do_action( 'ctf_admin_add_settings_sections_to_style' ); ?>
48
+ <p class="submit"><input class="button-primary" type="submit" name="save" value="<?php esc_attr_e( 'Save Changes' ); ?>" /></p>
49
+ </form>
50
+ <p><span class="fa fa-chevron-circle-right" aria-hidden="true"></span>&nbsp; <?php _e('Next Step: <a href="?page=custom-twitter-feeds&tab=display">Display your Feed</a>'); ?></p>
views/admin/support.php CHANGED
@@ -1,128 +1,128 @@
1
- <h3><?php _e( 'Need help?', 'custom-twitter-feeds' ); ?></h3>
2
-
3
- <p><span class="fa fa-life-ring" aria-hidden="true"></span>&nbsp; <?php _e( 'Check out our ', 'custom-twitter-feeds'); ?><a href="https://smashballoon.com/custom-twitter-feeds/docs/?utm_campaign=twitter-free&utm_source=support&utm_medium=setup" target="_blank"><?php _e( 'setup directions', 'custom-twitter-feeds' ); ?></a> <?php _e( 'for a step-by-step guide on how to setup and use the plugin', 'custom-twitter-feeds' ); ?>.</p>
4
-
5
- <p><span class="fa fa-envelope" aria-hidden="true"></span>&nbsp; <?php _e( 'Have a problem? Submit a ', 'custom-twitter-feeds' ); ?><a href="https://smashballoon.com/custom-twitter-feeds/support/?utm_campaign=twitter-free&utm_source=support&utm_medium=ticket" target="_blank"><?php _e( 'support ticket', 'custom-twitter-feeds' ); ?></a> <?php _e( 'on our website', 'custom-twitter-feeds' ); ?>. <?php _e( 'Please include your <b>System Info</b> below with all support requests.', 'custom-twitter-feeds' ); ?></p>
6
-
7
- <br />
8
- <h3><?php _e('System Info', 'custom-twitter-feeds' ); ?> &nbsp; <span style="color: #666; font-size: 11px; font-weight: normal;"><?php _e( 'Click the text below to select all', 'custom-twitter-feeds' ); ?></span></h3>
9
-
10
- <textarea readonly="readonly" onclick="this.focus();this.select()" title="To copy, click the field then press Ctrl + C (PC) or Cmd + C (Mac)." style="width: 70%; height: 500px; white-space: pre; font-family: Menlo,Monaco,monospace;">
11
- ## SITE/SERVER INFO: ##
12
- Plugin Version: <?php echo CTF_TITLE . ' v' . CTF_VERSION. "\n"; ?>
13
- Site URL: <?php echo site_url() . "\n"; ?>
14
- Home URL: <?php echo home_url() . "\n"; ?>
15
- WordPress Version: <?php echo get_bloginfo( 'version' ) . "\n"; ?>
16
- PHP Version: <?php echo PHP_VERSION . "\n"; ?>
17
- Web Server Info: <?php echo $_SERVER['SERVER_SOFTWARE'] . "\n"; ?>
18
- PHP allow_url_fopen: <?php echo ini_get( 'allow_url_fopen' ) ? "Yes" . "\n" : "No" . "\n"; ?>
19
- PHP cURL: <?php echo is_callable('curl_init') ? "Yes" . "\n" : "No" . "\n"; ?>
20
- JSON: <?php echo function_exists("json_decode") ? "Yes" . "\n" : "No" . "\n" ?>
21
- SSL Stream: <?php echo in_array('https', stream_get_wrappers()) ? "Yes" . "\n" : "No" . "\n" //extension=php_openssl.dll in php.ini ?>
22
-
23
- ## ACTIVE PLUGINS: ##
24
- <?php
25
- $plugins = get_plugins();
26
- $active_plugins = get_option( 'active_plugins', array() );
27
-
28
- foreach ( $plugins as $plugin_path => $plugin ) {
29
- // If the plugin isn't active, don't show it.
30
- if ( in_array( $plugin_path, $active_plugins ) ) {
31
- echo $plugin['Name'] . ': ' . $plugin['Version'] ."\n";
32
- }
33
- }
34
- ?>
35
-
36
- ## OPTIONS: ##
37
- <?php
38
- $options = get_option( 'ctf_options' );
39
- foreach ( $options as $key => $val ) {
40
- $label = $key . ':';
41
- $value = isset( $val ) ? esc_attr( $val ) : 'unset';
42
- echo str_pad( $label, 24 ) . $value ."\n";
43
- }
44
-
45
- $options = get_option( 'ctf_options' );
46
- $consumer_key = ! empty( $options['consumer_key'] ) && $options['have_own_tokens'] ? $options['consumer_key'] : 'FPYSYWIdyUIQ76Yz5hdYo5r7y';
47
- $consumer_secret = ! empty( $options['consumer_secret'] ) && $options['have_own_tokens'] ? $options['consumer_secret'] : 'GqPj9BPgJXjRKIGXCULJljocGPC62wN2eeMSnmZpVelWreFk9z';
48
- $request_settings = array(
49
- 'consumer_key' => $consumer_key,
50
- 'consumer_secret' => $consumer_secret,
51
- 'access_token' => $options['access_token'],
52
- 'access_token_secret' => $options['access_token_secret']
53
- );
54
-
55
- $request_method = $options['request_method'];
56
-
57
- include_once( CTF_URL . '/inc/CtfOauthConnect.php' );
58
- $twitter_api = new CtfOauthConnect( $request_settings, 'usertimeline' );
59
- $twitter_api->setUrlBase();
60
- $get_fields = array( 'count' => '1' );
61
- $twitter_api->setGetFields( $get_fields );
62
- $twitter_api->setRequestMethod( $request_method );
63
-
64
- $twitter_api->performRequest();
65
- $code = '';
66
- $message = '';
67
- if ( ! is_wp_error( $twitter_api->json ) ) {
68
- $response = json_decode( $twitter_api->json , $assoc = true );
69
- $screen_name = isset( $response[0] ) ? $response[0]['user']['screen_name'] : 'error';
70
- if ( $screen_name == 'error' ) {
71
- if ( isset( $response['errors'][0] ) ) {
72
- $twitter_api->api_error_no = $response['errors'][0]['code'];
73
- $twitter_api->api_error_message = $response['errors'][0]['message'];
74
- $code = 'Error No: ' . $twitter_api->api_error_no."\n";
75
- $message = 'Error Message: ' . $twitter_api->api_error_message."\n";
76
- }
77
- }
78
-
79
- } else {
80
- $screen_name = 'ERROR';
81
- $response = $twitter_api->json;
82
-
83
- if ( isset( $response->errors ) ) {
84
- $message = 'Error Message: ';
85
- foreach ( $response->errors as $key => $item ) {
86
- $message .= $key . ' => ' . $item[0] . "\n";
87
- }
88
- }
89
- }
90
-
91
- ?>
92
-
93
- ## Location Summary: ##
94
- <?php
95
- $locator_summary = CTF_Feed_Locator::summary();
96
- $condensed_shortcode_atts = array( 'search', 'screenname', 'hashtag', 'hometimeline', 'mentionstimeline', 'lists', 'layout', 'whitelist', 'includewords' );
97
-
98
- if ( ! empty( $locator_summary) ) {
99
-
100
- foreach ( $locator_summary as $locator_section ) {
101
- if ( ! empty( $locator_section['results'] ) ) {
102
- $first_five = array_slice( $locator_section['results'], 0, 5 );
103
- foreach ( $first_five as $result ) {
104
- $condensed_shortcode_string = '[custom-twitter-feeds';
105
- $shortcode_atts = json_decode( $result['shortcode_atts'], true );
106
- $shortcode_atts = is_array( $shortcode_atts ) ? $shortcode_atts : array();
107
- foreach ( $shortcode_atts as $key => $value ) {
108
- if ( in_array( $key, $condensed_shortcode_atts, true ) ) {
109
- $condensed_shortcode_string .= ' ' . esc_html( $key ). '="' . esc_html( $value ) . '"';
110
- }
111
- }
112
- $condensed_shortcode_string .= ']';
113
- echo esc_url( get_the_permalink( $result['post_id'] ) ) . ' ' . $condensed_shortcode_string . "\n";
114
- }
115
-
116
- }
117
- }
118
- }?>
119
-
120
- ## Twitter API RESPONSE: ##
121
- <?php
122
- echo 'Screen Name: ' . $screen_name."\n";
123
- echo $code;
124
- echo $message;
125
-
126
- ?>
127
-
128
  </textarea>
1
+ <h3><?php _e( 'Need help?', 'custom-twitter-feeds' ); ?></h3>
2
+
3
+ <p><span class="fa fa-life-ring" aria-hidden="true"></span>&nbsp; <?php _e( 'Check out our ', 'custom-twitter-feeds'); ?><a href="https://smashballoon.com/custom-twitter-feeds/docs/?utm_campaign=twitter-free&utm_source=support&utm_medium=setup" target="_blank"><?php _e( 'setup directions', 'custom-twitter-feeds' ); ?></a> <?php _e( 'for a step-by-step guide on how to setup and use the plugin', 'custom-twitter-feeds' ); ?>.</p>
4
+
5
+ <p><span class="fa fa-envelope" aria-hidden="true"></span>&nbsp; <?php _e( 'Have a problem? Submit a ', 'custom-twitter-feeds' ); ?><a href="https://smashballoon.com/custom-twitter-feeds/support/?utm_campaign=twitter-free&utm_source=support&utm_medium=ticket" target="_blank"><?php _e( 'support ticket', 'custom-twitter-feeds' ); ?></a> <?php _e( 'on our website', 'custom-twitter-feeds' ); ?>. <?php _e( 'Please include your <b>System Info</b> below with all support requests.', 'custom-twitter-feeds' ); ?></p>
6
+
7
+ <br />
8
+ <h3><?php _e('System Info', 'custom-twitter-feeds' ); ?> &nbsp; <span style="color: #666; font-size: 11px; font-weight: normal;"><?php _e( 'Click the text below to select all', 'custom-twitter-feeds' ); ?></span></h3>
9
+
10
+ <textarea readonly="readonly" onclick="this.focus();this.select()" title="To copy, click the field then press Ctrl + C (PC) or Cmd + C (Mac)." style="width: 70%; height: 500px; white-space: pre; font-family: Menlo,Monaco,monospace;">
11
+ ## SITE/SERVER INFO: ##
12
+ Plugin Version: <?php echo CTF_TITLE . ' v' . CTF_VERSION. "\n"; ?>
13
+ Site URL: <?php echo site_url() . "\n"; ?>
14
+ Home URL: <?php echo home_url() . "\n"; ?>
15
+ WordPress Version: <?php echo get_bloginfo( 'version' ) . "\n"; ?>
16
+ PHP Version: <?php echo PHP_VERSION . "\n"; ?>
17
+ Web Server Info: <?php echo $_SERVER['SERVER_SOFTWARE'] . "\n"; ?>
18
+ PHP allow_url_fopen: <?php echo ini_get( 'allow_url_fopen' ) ? "Yes" . "\n" : "No" . "\n"; ?>
19
+ PHP cURL: <?php echo is_callable('curl_init') ? "Yes" . "\n" : "No" . "\n"; ?>
20
+ JSON: <?php echo function_exists("json_decode") ? "Yes" . "\n" : "No" . "\n" ?>
21
+ SSL Stream: <?php echo in_array('https', stream_get_wrappers()) ? "Yes" . "\n" : "No" . "\n" //extension=php_openssl.dll in php.ini ?>
22
+
23
+ ## ACTIVE PLUGINS: ##
24
+ <?php
25
+ $plugins = get_plugins();
26
+ $active_plugins = get_option( 'active_plugins', array() );
27
+
28
+ foreach ( $plugins as $plugin_path => $plugin ) {
29
+ // If the plugin isn't active, don't show it.
30
+ if ( in_array( $plugin_path, $active_plugins ) ) {
31
+ echo $plugin['Name'] . ': ' . $plugin['Version'] ."\n";
32
+ }
33
+ }
34
+ ?>
35
+
36
+ ## OPTIONS: ##
37
+ <?php
38
+ $options = get_option( 'ctf_options' );
39
+ foreach ( $options as $key => $val ) {
40
+ $label = $key . ':';
41
+ $value = isset( $val ) ? esc_attr( $val ) : 'unset';
42
+ echo str_pad( $label, 24 ) . $value ."\n";
43
+ }
44
+
45
+ $options = get_option( 'ctf_options' );
46
+ $consumer_key = ! empty( $options['consumer_key'] ) && $options['have_own_tokens'] ? $options['consumer_key'] : 'FPYSYWIdyUIQ76Yz5hdYo5r7y';
47
+ $consumer_secret = ! empty( $options['consumer_secret'] ) && $options['have_own_tokens'] ? $options['consumer_secret'] : 'GqPj9BPgJXjRKIGXCULJljocGPC62wN2eeMSnmZpVelWreFk9z';
48
+ $request_settings = array(
49
+ 'consumer_key' => $consumer_key,
50
+ 'consumer_secret' => $consumer_secret,
51
+ 'access_token' => $options['access_token'],
52
+ 'access_token_secret' => $options['access_token_secret']
53
+ );
54
+
55
+ $request_method = $options['request_method'];
56
+
57
+ include_once( CTF_URL . '/inc/CtfOauthConnect.php' );
58
+ $twitter_api = new CtfOauthConnect( $request_settings, 'usertimeline' );
59
+ $twitter_api->setUrlBase();
60
+ $get_fields = array( 'count' => '1' );
61
+ $twitter_api->setGetFields( $get_fields );
62
+ $twitter_api->setRequestMethod( $request_method );
63
+
64
+ $twitter_api->performRequest();
65
+ $code = '';
66
+ $message = '';
67
+ if ( ! is_wp_error( $twitter_api->json ) ) {
68
+ $response = json_decode( $twitter_api->json , $assoc = true );
69
+ $screen_name = isset( $response[0] ) ? $response[0]['user']['screen_name'] : 'error';
70
+ if ( $screen_name == 'error' ) {
71
+ if ( isset( $response['errors'][0] ) ) {
72
+ $twitter_api->api_error_no = $response['errors'][0]['code'];
73
+ $twitter_api->api_error_message = $response['errors'][0]['message'];
74
+ $code = 'Error No: ' . $twitter_api->api_error_no."\n";
75
+ $message = 'Error Message: ' . $twitter_api->api_error_message."\n";
76
+ }
77
+ }
78
+
79
+ } else {
80
+ $screen_name = 'ERROR';
81
+ $response = $twitter_api->json;
82
+
83
+ if ( isset( $response->errors ) ) {
84
+ $message = 'Error Message: ';
85
+ foreach ( $response->errors as $key => $item ) {
86
+ $message .= $key . ' => ' . $item[0] . "\n";
87
+ }
88
+ }
89
+ }
90
+
91
+ ?>
92
+
93
+ ## Location Summary: ##
94
+ <?php
95
+ $locator_summary = CTF_Feed_Locator::summary();
96
+ $condensed_shortcode_atts = array( 'search', 'screenname', 'hashtag', 'hometimeline', 'mentionstimeline', 'lists', 'layout', 'whitelist', 'includewords' );
97
+
98
+ if ( ! empty( $locator_summary) ) {
99
+
100
+ foreach ( $locator_summary as $locator_section ) {
101
+ if ( ! empty( $locator_section['results'] ) ) {
102
+ $first_five = array_slice( $locator_section['results'], 0, 5 );
103
+ foreach ( $first_five as $result ) {
104
+ $condensed_shortcode_string = '[custom-twitter-feeds';
105
+ $shortcode_atts = json_decode( $result['shortcode_atts'], true );
106
+ $shortcode_atts = is_array( $shortcode_atts ) ? $shortcode_atts : array();
107
+ foreach ( $shortcode_atts as $key => $value ) {
108
+ if ( in_array( $key, $condensed_shortcode_atts, true ) ) {
109
+ $condensed_shortcode_string .= ' ' . esc_html( $key ). '="' . esc_html( $value ) . '"';
110
+ }
111
+ }
112
+ $condensed_shortcode_string .= ']';
113
+ echo esc_url( get_the_permalink( $result['post_id'] ) ) . ' ' . $condensed_shortcode_string . "\n";
114
+ }
115
+
116
+ }
117
+ }
118
+ }?>
119
+
120
+ ## Twitter API RESPONSE: ##
121
+ <?php
122
+ echo 'Screen Name: ' . $screen_name."\n";
123
+ echo $code;
124
+ echo $message;
125
+
126
+ ?>
127
+
128
  </textarea>