AMPXF - AMP for Xenforo 2

AMPXF - AMP for Xenforo 2 [Paid] 2.3.0 Patch Level 3

No permission to buy (€50.00)
i mean it should be fine on the phone. i just checked on desktop. previously i believe images were stuck on the small thumbnail size with no option to expand them on amp pages. so i guess this is better.

so what's happening now... you are storing size of individual images in database now? also was wondering if it's possible (and a good idea?) to hard code it in non-amp pages?
 
i mean it should be fine on the phone. i just checked on desktop. previously i believe images were stuck on the small thumbnail size with no option to expand them on amp pages. so i guess this is better.

so what's happening now... you are storing size of individual images in database now? also was wondering if it's possible (and a good idea?) to hard code it in non-amp pages?
Yes at the moment it stores the image sizes into a db (unless you disable the option under advanced).. I did a check and ~3500 images from our own forum takes up ~1.5MB in the db, so if the forum has millions of images, it might increase the db size a bit...

Maybe it would be a good idea to update the posts so that the image contains the dimensions instead, but then I'm wondering if it might impact how the normal page renders, which is not the intention of the addon 🤔

One thing that comes to mind is that this current solution works with all other content types from e.g. Bob's addons and the like. If we were to start editing the content it would be more work to support all the types, and always risk that it could mess up some content, which is not so nice if it happens..

It might be possible to use the current db solution for good compatibilty with other addons, but then also automatically edit the posts so that the images contain the image dimensions.. I'll have to look into this a bit, it might be a good idea :) 👍
 
yeah. editing post content is probably not a good idea. very few addons go there probably for a good reason.

i was just worried about how much the post content is now relying on database. oembeds fetch embedded content data from the database. unfurled urls fetch link data from the database. and now image dimensions are also fetched from the database! though i guess most visitors would be hitting the google amp cache so it should be fine loadwise. thanks for this massive update!

i was also wondering if you are planning to add a pretty version of the ampimgsize somewhere in the backend like in logs to show processed and queued images. would be nice to have that. though mostly unnecessary.
 
So I am getting this error today.

The specified layout 'INTRINSIC' is not supported by tag 'amp-social-share'.

Not sure if this was a change made in the latest beta.

It does not seem to be connected with share buttons. But with the new image size functionality. Dead images from some domains are causing this. Not all 404 images cause this error. Fixing illformed links was already a pain lol. This new feature would need you to fix image links as well!
 
Last edited:
So I am getting this error today.

The specified layout 'INTRINSIC' is not supported by tag 'amp-social-share'.

Not sure if this was a change made in the latest beta.

It does not seem to be connected with share buttons. But with the new image size functionality. Dead images from some domains are causing this. Not all 404 images cause this error. Fixing illformed links was already a pain lol. This new feature would need you to fix image links as well!
Yes, we also got a lot of these in GSC today.
Hmm that's odd haven't seen anything like that on our own site.

Could you send over some example links where this happens and I'll have an easier time identifying the issue? :)

If you feel it is critical to not have those pages break until we can get out a fix you can disable the advanced option for this feature and it won't replace anything there.
- It is also a good way to verify that it is related to the image size fixing, but it seems quite likely that it is..
 
Actually, I think it might be related to the proxy images.. Not 100% sure but that is something we don't use on our site so might be the reason we haven't seen it..

I would recommend you guys turn of the Advanced option to fix images for now until we can get out a fixed release.. Please also send me some sample links where GSC complains it occured and I'll have a look :)
 
I fixed the 7-8 links Google highlighted today. One of the image was manually embedded proxied image. A few were hotlinked images from an image service that is no longer operational. I am sure a lot would popup in GSC in coming days. Would share examples as they do!

Also...

I was also wondering why the image dimension table does not have a primary/unique key style column. I am not a database guy but all similar tables in XenForo database have that type of column. From what I have read about it, it improves performance in accessing data if the table gets very large? I could be completely wrong about this though. Just thought I mentioned it here.
 
Last edited:
For AMS the categories hamburger menu button to activate the off canvas menu, this hamburger menu is centered in the middle of the page, instead of at the side where it opens.
 
For AMS the categories hamburger menu button to activate the off canvas menu, this hamburger menu is centered in the middle of the page, instead of at the side where it opens.
Did this start happening with the latest version or just a general bug report? :)
 
This error seems maybe connected with the addon?

Code:
Server error log
ErrorException: Template error: [E_WARNING] include(/home/caf/public_html/internal_data/code_cache/templates/l1/s109/public/_amp_media_site_embed_wikiloops.php): failed to open stream: No such file or directory src/XF/Template/Templater.php:313
Generated by: Unknown account Sep 14, 2021 at 1:30 PM
Stack trace
#0 src/XF/Template/Templater.php(313): XF\Template\Templater->handleTemplateError(2, '[E_WARNING] inc...', '/home/caf/publi...', 313, Array)
#1 src/XF/Template/Templater.php(313): include()
#2 src/XF/Template/Templater.php(684): XF\Template\Templater->getTemplateDataFromSource('public', '_amp_media_site...')
#3 src/XF/Template/Templater.php(1569): XF\Template\Templater->getTemplateData('public', '_amp_media_site...', false)
#4 src/addons/MaZ/AMP/XF/Template/XF22/Templater.php(39): XF\Template\Templater->isKnownTemplate('_amp_media_site...')
#5 src/XF/BbCode/Renderer/Html.php(1033): MaZ\AMP\XF\Template\XF22\Templater->renderTemplate('public:_media_s...', Array)
#6 src/XF/BbCode/Renderer/Html.php(310): XF\BbCode\Renderer\Html->renderTagMedia(Array, 'wikiloops', Array, Array, Object(MaZ\AMP\XF\BbCode\Renderer\Html))
#7 src/XF/BbCode/Traverser.php(63): XF\BbCode\Renderer\Html->renderTag(Array, Array)
#8 src/XF/BbCode/Traverser.php(39): XF\BbCode\Traverser->renderSubTree(Array, Array)
#9 src/XF/BbCode/Traverser.php(22): XF\BbCode\Traverser->renderAst(Array, Object(SV\UserMentionsImprovements\XF\BbCode\RuleSet), Array)
#10 src/XF/SubContainer/BbCode.php(222): XF\BbCode\Traverser->render('Here's an examp...', Object(XF\BbCode\Parser), Object(SV\UserMentionsImprovements\XF\BbCode\RuleSet), Array)
#11 src/XF/Template/Templater.php(2376): XF\SubContainer\BbCode->render('Here's an examp...', 'html', 'post', Object(SV\UserEssentials\XF\Entity\Post), Array)
#12 src/XF/Template/Templater.php(1128): XF\Template\Templater->fnBbCode(Object(MaZ\AMP\XF\Template\XF22\Templater), false, 'Here's an examp...', 'post', Object(SV\UserEssentials\XF\Entity\Post))
#13 internal_data/code_cache/templates/l1/s109/public/post_macros.php(472): XF\Template\Templater->func('bb_code', Array, false)
#14 src/XF/Template/Templater.php(824): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, NULL)
#15 src/addons/MaZ/AMP/XF/Template/Templater.php(103): XF\Template\Templater->callMacro('post_macros', 'post_user_conte...', Array, Array, Object(XF\Template\MacroState))
#16 internal_data/code_cache/templates/l1/s109/public/post_macros.php(59): MaZ\AMP\XF\Template\Templater->callMacro(NULL, 'post_user_conte...', Array, Array)
#17 src/XF/Template/Templater.php(987): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#18 src/XF/Template/Templater.php(923): XF\Template\Templater->renderExtensionInternal('user_content', Array, Array, Object(XF\Template\ExtensionSet))
#19 internal_data/code_cache/templates/l1/s109/public/post_macros.php(99): XF\Template\Templater->renderExtension('user_content', Array, Object(XF\Template\ExtensionSet))
#20 src/XF/Template/Templater.php(987): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#21 src/XF/Template/Templater.php(923): XF\Template\Templater->renderExtensionInternal('content', Array, Array, Object(XF\Template\ExtensionSet))
#22 internal_data/code_cache/templates/l1/s109/public/post_macros.php(128): XF\Template\Templater->renderExtension('content', Array, Object(XF\Template\ExtensionSet))
#23 src/XF/Template/Templater.php(987): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#24 src/XF/Template/Templater.php(923): XF\Template\Templater->renderExtensionInternal('main_cell_inner', Array, Array, Object(XF\Template\ExtensionSet))
#25 internal_data/code_cache/templates/l1/s109/public/post_macros.php(142): XF\Template\Templater->renderExtension('main_cell_inner', Array, Object(XF\Template\ExtensionSet))
#26 src/XF/Template/Templater.php(987): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#27 src/XF/Template/Templater.php(923): XF\Template\Templater->renderExtensionInternal('main_cell', Array, Array, Object(XF\Template\ExtensionSet))
#28 internal_data/code_cache/templates/l1/s109/public/post_macros.php(154): XF\Template\Templater->renderExtension('main_cell', Array, Object(XF\Template\ExtensionSet))
#29 src/XF/Template/Templater.php(987): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#30 src/XF/Template/Templater.php(923): XF\Template\Templater->renderExtensionInternal('full_body', Array, Array, Object(XF\Template\ExtensionSet))
#31 internal_data/code_cache/templates/l1/s109/public/post_macros.php(184): XF\Template\Templater->renderExtension('full_body', Array, Object(XF\Template\ExtensionSet))
#32 src/XF/Template/Templater.php(824): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#33 src/addons/MaZ/AMP/XF/Template/Templater.php(103): XF\Template\Templater->callMacro('post_macros', 'post', Array, Array, Object(XF\Template\MacroState))
#34 internal_data/code_cache/templates/l1/s109/public/thread_view.php(1023): MaZ\AMP\XF\Template\Templater->callMacro(NULL, 'post_macros::po...', Array, Array)
#35 src/XF/Template/Templater.php(1651): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#36 src/addons/MaZ/AMP/XF/Template/XF22/Templater.php(52): XF\Template\Templater->renderTemplate('thread_view', Array, true, NULL)
#37 src/XF/Template/Template.php(24): MaZ\AMP\XF\Template\XF22\Templater->renderTemplate('public:thread_v...', Array)
#38 src/XF/Mvc/Renderer/Html.php(50): XF\Template\Template->render()
#39 src/XF/Mvc/Dispatcher.php(460): XF\Mvc\Renderer\Html->renderView('XF:Thread\\View', 'public:amp_thre...', Array)
#40 src/XF/Mvc/Dispatcher.php(442): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#41 src/XF/Mvc/Dispatcher.php(402): XF\Mvc\Dispatcher->renderReply(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#42 src/XF/Mvc/Dispatcher.php(60): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'html')
#43 src/XF/App.php(2345): XF\Mvc\Dispatcher->run()
#44 src/XF.php(512): XF\App->run()
#45 index.php(20): XF::runApp('XF\\Pub\\App')
#46 {main}
Request state
array(4) {
  ["url"] => string(51) "/threads/effects-pedals-for-saxophones.30839/?amp=1"
  ["referrer"] => bool(false)
  ["_GET"] => array(1) {
    ["amp"] => string(1) "1"
  }
  ["_POST"] => array(0) {
  }
}
 
This error seems maybe connected with the addon?

Code:
Server error log
ErrorException: Template error: [E_WARNING] include(/home/caf/public_html/internal_data/code_cache/templates/l1/s109/public/_amp_media_site_embed_wikiloops.php): failed to open stream: No such file or directory src/XF/Template/Templater.php:313
Generated by: Unknown account Sep 14, 2021 at 1:30 PM
Stack trace
#0 src/XF/Template/Templater.php(313): XF\Template\Templater->handleTemplateError(2, '[E_WARNING] inc...', '/home/caf/publi...', 313, Array)
#1 src/XF/Template/Templater.php(313): include()
#2 src/XF/Template/Templater.php(684): XF\Template\Templater->getTemplateDataFromSource('public', '_amp_media_site...')
#3 src/XF/Template/Templater.php(1569): XF\Template\Templater->getTemplateData('public', '_amp_media_site...', false)
#4 src/addons/MaZ/AMP/XF/Template/XF22/Templater.php(39): XF\Template\Templater->isKnownTemplate('_amp_media_site...')
#5 src/XF/BbCode/Renderer/Html.php(1033): MaZ\AMP\XF\Template\XF22\Templater->renderTemplate('public:_media_s...', Array)
#6 src/XF/BbCode/Renderer/Html.php(310): XF\BbCode\Renderer\Html->renderTagMedia(Array, 'wikiloops', Array, Array, Object(MaZ\AMP\XF\BbCode\Renderer\Html))
#7 src/XF/BbCode/Traverser.php(63): XF\BbCode\Renderer\Html->renderTag(Array, Array)
#8 src/XF/BbCode/Traverser.php(39): XF\BbCode\Traverser->renderSubTree(Array, Array)
#9 src/XF/BbCode/Traverser.php(22): XF\BbCode\Traverser->renderAst(Array, Object(SV\UserMentionsImprovements\XF\BbCode\RuleSet), Array)
#10 src/XF/SubContainer/BbCode.php(222): XF\BbCode\Traverser->render('Here's an examp...', Object(XF\BbCode\Parser), Object(SV\UserMentionsImprovements\XF\BbCode\RuleSet), Array)
#11 src/XF/Template/Templater.php(2376): XF\SubContainer\BbCode->render('Here's an examp...', 'html', 'post', Object(SV\UserEssentials\XF\Entity\Post), Array)
#12 src/XF/Template/Templater.php(1128): XF\Template\Templater->fnBbCode(Object(MaZ\AMP\XF\Template\XF22\Templater), false, 'Here's an examp...', 'post', Object(SV\UserEssentials\XF\Entity\Post))
#13 internal_data/code_cache/templates/l1/s109/public/post_macros.php(472): XF\Template\Templater->func('bb_code', Array, false)
#14 src/XF/Template/Templater.php(824): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, NULL)
#15 src/addons/MaZ/AMP/XF/Template/Templater.php(103): XF\Template\Templater->callMacro('post_macros', 'post_user_conte...', Array, Array, Object(XF\Template\MacroState))
#16 internal_data/code_cache/templates/l1/s109/public/post_macros.php(59): MaZ\AMP\XF\Template\Templater->callMacro(NULL, 'post_user_conte...', Array, Array)
#17 src/XF/Template/Templater.php(987): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#18 src/XF/Template/Templater.php(923): XF\Template\Templater->renderExtensionInternal('user_content', Array, Array, Object(XF\Template\ExtensionSet))
#19 internal_data/code_cache/templates/l1/s109/public/post_macros.php(99): XF\Template\Templater->renderExtension('user_content', Array, Object(XF\Template\ExtensionSet))
#20 src/XF/Template/Templater.php(987): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#21 src/XF/Template/Templater.php(923): XF\Template\Templater->renderExtensionInternal('content', Array, Array, Object(XF\Template\ExtensionSet))
#22 internal_data/code_cache/templates/l1/s109/public/post_macros.php(128): XF\Template\Templater->renderExtension('content', Array, Object(XF\Template\ExtensionSet))
#23 src/XF/Template/Templater.php(987): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#24 src/XF/Template/Templater.php(923): XF\Template\Templater->renderExtensionInternal('main_cell_inner', Array, Array, Object(XF\Template\ExtensionSet))
#25 internal_data/code_cache/templates/l1/s109/public/post_macros.php(142): XF\Template\Templater->renderExtension('main_cell_inner', Array, Object(XF\Template\ExtensionSet))
#26 src/XF/Template/Templater.php(987): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#27 src/XF/Template/Templater.php(923): XF\Template\Templater->renderExtensionInternal('main_cell', Array, Array, Object(XF\Template\ExtensionSet))
#28 internal_data/code_cache/templates/l1/s109/public/post_macros.php(154): XF\Template\Templater->renderExtension('main_cell', Array, Object(XF\Template\ExtensionSet))
#29 src/XF/Template/Templater.php(987): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#30 src/XF/Template/Templater.php(923): XF\Template\Templater->renderExtensionInternal('full_body', Array, Array, Object(XF\Template\ExtensionSet))
#31 internal_data/code_cache/templates/l1/s109/public/post_macros.php(184): XF\Template\Templater->renderExtension('full_body', Array, Object(XF\Template\ExtensionSet))
#32 src/XF/Template/Templater.php(824): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#33 src/addons/MaZ/AMP/XF/Template/Templater.php(103): XF\Template\Templater->callMacro('post_macros', 'post', Array, Array, Object(XF\Template\MacroState))
#34 internal_data/code_cache/templates/l1/s109/public/thread_view.php(1023): MaZ\AMP\XF\Template\Templater->callMacro(NULL, 'post_macros::po...', Array, Array)
#35 src/XF/Template/Templater.php(1651): XF\Template\Templater->{closure}(Object(MaZ\AMP\XF\Template\XF22\Templater), Array, Object(XF\Template\ExtensionSet))
#36 src/addons/MaZ/AMP/XF/Template/XF22/Templater.php(52): XF\Template\Templater->renderTemplate('thread_view', Array, true, NULL)
#37 src/XF/Template/Template.php(24): MaZ\AMP\XF\Template\XF22\Templater->renderTemplate('public:thread_v...', Array)
#38 src/XF/Mvc/Renderer/Html.php(50): XF\Template\Template->render()
#39 src/XF/Mvc/Dispatcher.php(460): XF\Mvc\Renderer\Html->renderView('XF:Thread\\View', 'public:amp_thre...', Array)
#40 src/XF/Mvc/Dispatcher.php(442): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#41 src/XF/Mvc/Dispatcher.php(402): XF\Mvc\Dispatcher->renderReply(Object(XF\Mvc\Renderer\Html), Object(XF\Mvc\Reply\View))
#42 src/XF/Mvc/Dispatcher.php(60): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'html')
#43 src/XF/App.php(2345): XF\Mvc\Dispatcher->run()
#44 src/XF.php(512): XF\App->run()
#45 index.php(20): XF::runApp('XF\\Pub\\App')
#46 {main}
Request state
array(4) {
  ["url"] => string(51) "/threads/effects-pedals-for-saxophones.30839/?amp=1"
  ["referrer"] => bool(false)
  ["_GET"] => array(1) {
    ["amp"] => string(1) "1"
  }
  ["_POST"] => array(0) {
  }
}
Yes. Does it happen often or just once?

I'm wondering why/how that error triggered there, because it is triggered inside the "XF Core" functionality isKnownTemplate() check, which explicitly ignores errors if the template is not found 🤔 So it seems that it somehow went further believing the template existed, while it suddenly didn't exist anymore?

If the error happens every time someone e.g. visits that url (/threads/effects-pedals-for-saxophones.30839/?amp=1), please open a support request and we will figure it out :) 👍

Cheers
//Jonathan
 
If the error happens every time someone e.g. visits that url (/threads/effects-pedals-for-saxophones.30839/?amp=1), please open a support request and we will figure it ou
OK, will keep an eye on it. Just tried that URL myself and it all seeemd fine.

Thanks
 
OK, will keep an eye on it. Just tried that URL myself and it all seeemd fine.

Thanks
Has that wikiloops template been edited recently (around the time the bug happened)?

Good that it seems fine because I'm not sure where I'd start figuring that one out 😂👍
 
Back
Top Bottom