So for registered members in node selected threads, they only get X views of threads in X days? Then it's blurred recommending upgrade?@Wutime can we please implement thread counting instead of just post counting? I want to purchase but really need this option.
Yes and if we set 0 days then it won't reset. That sounds pretty good.So for registered members in node selected threads, they only get X views of threads in X days? Then it's blurred recommending upgrade?
Is that what you're thinking?
I had the exact same system previously and then created this add-on and found it converted paying subscribers at a much higher rate, just like you explained.I don't like hiding stuff from guests and new members, I want to sell the forum to them. I want them to appreciate the value, but they cannot see that if the text is blurred.
New members to my forum get a few free days full access and a few free posts, then they are moved to a read only user group, where I remove a few forums from view, show them more adverts and use notices to tell them the benefits of buying a subscription for full access.
Over the years, this has proved to be a successful way of getting subscribers. This week, I opened up all the forums to the read-only members, and using this add-on, I blurred a few of the busier forum sections.
The read-only members see the thread, read the first post, but then all other posts in the thread are blurred, but with a link to the paying subs page. This has been a successful trail that has doubled the number of people subscribing.
An excellent add-on (![]()
You can choose the forums/threads to blur, and then choose the number of posts per blurred thread to leave unblurred, before the remaining posts within that thread are blurred.This is great if I can select only a part or a paragraph and not the entire post. In my forum, sometimes users leave phone numbers or links that I would like to be visible only if they register. However, if they can't see the topic at all, I doubt they would be interested. That's why I need only a small part to be restricted.
View attachment 320410
- UPDATE: Add option to blur thread titles on thread list pages when the underlying thread will contain blur
- Thread icon blur will obey system image blur option settings
- UPDATE: Lazyload isBlur() to make it available in templates, access where $thread exists with $thread.isBlur()
- ADDED: Precompilied minified JS to the build compile (now that the auto library is EOL)
ErrorException: Template error: [E_USER_WARNING] Cannot call method isBlur on a non-object (array) src/XF/Template/Templater.php:1267
Generated by: Brunlea 19 March 2025 at 05:19
Stack trace
#0 [internal function]: XF\Template\Templater->handleTemplateError(512, '[E_USER_WARNING...', '/home/brunlea/t...', 1267)
#1 src/XF/Template/Templater.php(1267): trigger_error('Cannot call met...', 512)
#2 internal_data/code_cache/templates/l1/s20/public/post_macros.php(545): XF\Template\Templater->method(Array, 'isBlur', Array)
#3 src/XF/Template/Templater.php(921): XF\Template\Templater->{closure:internal_data/code_cache/templates/l1/s20/public/post_macros.php:518}(Object(apathy\StyleSuite\XF\Template\Templater), Array, NULL)
#4 internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_preview_macros.php(29): XF\Template\Templater->callMacro('post_macros', 'post_user_conte...', Array, Array)
#5 src/XF/Template/Templater.php(1092): XF\Template\Templater->{closure:internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_preview_macros.php:25}(Object(apathy\StyleSuite\XF\Template\Templater), Array, Object(XF\Template\ExtensionSet))
#6 src/XF/Template/Templater.php(1028): XF\Template\Templater->renderExtensionInternal('user_content', Array, Array, Object(XF\Template\ExtensionSet))
#7 internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_preview_macros.php(40): XF\Template\Templater->renderExtension('user_content', Array, Object(XF\Template\ExtensionSet))
#8 src/XF/Template/Templater.php(1092): XF\Template\Templater->{closure:internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_preview_macros.php:36}(Object(apathy\StyleSuite\XF\Template\Templater), Array, Object(XF\Template\ExtensionSet))
#9 src/XF/Template/Templater.php(1028): XF\Template\Templater->renderExtensionInternal('content', Array, Array, Object(XF\Template\ExtensionSet))
#10 internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_preview_macros.php(51): XF\Template\Templater->renderExtension('content', Array, Object(XF\Template\ExtensionSet))
#11 src/XF/Template/Templater.php(1092): XF\Template\Templater->{closure:internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_preview_macros.php:44}(Object(apathy\StyleSuite\XF\Template\Templater), Array, Object(XF\Template\ExtensionSet))
#12 src/XF/Template/Templater.php(1028): XF\Template\Templater->renderExtensionInternal('main_cell_inner', Array, Array, Object(XF\Template\ExtensionSet))
#13 internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_preview_macros.php(63): XF\Template\Templater->renderExtension('main_cell_inner', Array, Object(XF\Template\ExtensionSet))
#14 src/XF/Template/Templater.php(1092): XF\Template\Templater->{closure:internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_preview_macros.php:58}(Object(apathy\StyleSuite\XF\Template\Templater), Array, Object(XF\Template\ExtensionSet))
#15 src/XF/Template/Templater.php(1028): XF\Template\Templater->renderExtensionInternal('main_cell', Array, Array, Object(XF\Template\ExtensionSet))
#16 internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_preview_macros.php(76): XF\Template\Templater->renderExtension('main_cell', Array, Object(XF\Template\ExtensionSet))
#17 src/XF/Template/Templater.php(921): XF\Template\Templater->{closure:internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_preview_macros.php:68}(Object(apathy\StyleSuite\XF\Template\Templater), Array, Object(XF\Template\ExtensionSet))
#18 internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_preview_postbit.php(7): XF\Template\Templater->callMacro('ap_ss_user_styl...', 'test_post', Array, Array)
#19 src/XF/Template/Templater.php(1799): XF\Template\Templater->{closure:internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_preview_postbit.php:4}(Object(apathy\StyleSuite\XF\Template\Templater), Array, NULL)
#20 src/XF/Template/Templater.php(1873): XF\Template\Templater->renderTemplate('ap_ss_user_styl...', Array)
#21 internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_settings_postbit.php(36): XF\Template\Templater->includeTemplate('public:ap_ss_us...', Array)
#22 src/XF/Template/Templater.php(1799): XF\Template\Templater->{closure:internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_settings_postbit.php:4}(Object(apathy\StyleSuite\XF\Template\Templater), Array, NULL)
#23 src/XF/Template/Templater.php(1873): XF\Template\Templater->renderTemplate('ap_ss_user_styl...', Array)
#24 internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_settings_wrapper.php(76): XF\Template\Templater->includeTemplate('public:ap_ss_us...', Array)
#25 src/XF/Template/Templater.php(1799): XF\Template\Templater->{closure:internal_data/code_cache/templates/l1/s20/public/ap_ss_user_style_settings_wrapper.php:4}(Object(apathy\StyleSuite\XF\Template\Templater), Array, NULL)
#26 src/XF/Template/Template.php(24): XF\Template\Templater->renderTemplate('ap_ss_user_styl...', Array)
#27 src/XF/Mvc/Renderer/Html.php(50): XF\Template\Template->render()
#28 src/XF/Mvc/Dispatcher.php(471): XF\Mvc\Renderer\Html->renderView('apathy\\StyleSui...', 'public:ap_ss_us...', Array)
#29 src/XF/Mvc/Dispatcher.php(453): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#30 src/XF/Mvc/Dispatcher.php(412): XF\Mvc\Dispatcher->renderReply(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#31 src/XF/Mvc/Dispatcher.php(66): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'html')
#32 src/XF/App.php(2826): XF\Mvc\Dispatcher->run()
#33 src/XF.php(806): XF\App->run()
#34 index.php(23): XF::runApp('XF\\Pub\\App')
#35 {main}
Request state
array(4) {
["url"] => string(24) "/account/style-settings/"
["referrer"] => string(21) "https://talkgeek.net/"
["_GET"] => array(0) {
}
["_POST"] => array(0) {
}
}
@John917 I'm looking into this and will follow up.@Wutime I'm having trouble understanding how number of posts unblurred works in usergroup permissions. So I set this to 2 posts. My hope was it would unblur the first two post of whatever forum I have this set to. I have the addon option to User Mode instead of Guest Mode. Why are my posts not getting blurred at all? I tried setting "view thread content ublurred" to No and it just blurs all posts if I set this one to No.
Difficult to say without some testing. I don't have that addon to work with unfortunately.Not sure if to post here or the [AP] Style Suite thread, but is there any way of getting [AP] Style Suite to play nice with your addon? I get the following errors when editing my profile. The 'Blur message-cell--user' option also doesn't work with [AP] Style Suite enabled.
This is resolved in the next upcoming release. The issue is exactly as you outlined, under "User Mode" the skipping of posts was being completely ignored.@Wutime I'm having trouble understanding how number of posts unblurred works in usergroup permissions. So I set this to 2 posts. My hope was it would unblur the first two post of whatever forum I have this set to. I have the addon option to User Mode instead of Guest Mode. Why are my posts not getting blurred at all? I tried setting "view thread content ublurred" to No and it just blurs all posts if I set this one to No.
- FIX: [User Mode] -> Number of posts unblurred (was previously being ignored in User Mode)
- UPDATE: Long running articles, after fading paragraphs, now also shows remaining article text blurred and obfuscated
- FIX: Error where creating a thread can throw an error due to thread_id being null
- FIX: Improve debugging issue with node_id and thread_id confusion leading to tail chasing during debug
- REMOVE: Unneccessary XF/Pub/Controller/Forum.php class extension
- REMOVE: Unused...
- BUG FIX: Setting Unblurred Posts to zero (0), or "Inherit 0", would leave all posts unblurred instead of no posts unblurred
- BUG FIX: (Articles/Questions) setting Unblurred Paragraphs to zero would cause: ErrorException: [E_WARNING] preg_match()
- BUG FIX: Obfuscation now always follows individual settings for Users vs Guests
- ADD: Option whether to "Show full article text blurred after fading first X paragraphs?"
- Permission renamed to "How many posts are always unblurred?"...
- FIX: recordUpgradeView() should not require $threadId
- This issue was introduced in v2.2.8 to v2.2.9 and requires immediate upgrade if running those previous versions
- UPDATE: Crawler-detect (v1.3.0 => v1.3.4)
- REMOVED: Installer requirement that page caching be disabled
- ADDED: Installer warning outlining the issues with full page caching for guests and the issue that search engines may index obfuscated content unless obfuscation is disabled for guests.
- ADDED: Validation when enabling guest obfuscation in options, if full page caching is also enabled in config.php, validation will fail
- CHANGE: Made guest obfuscation disabled by default...
We use essential cookies to make this site work, and optional cookies to enhance your experience.