[OzzModz] SEO & Index Tools [Deleted]

I ran into this during the upgrade process from 1.0.6 Beta 9 -> 1.0.6 Release Candidate

Code:
TypeError: mysqli::prepare(): Argument #1 ($query) must be of type string, array given - src/XF/Db/Mysqli/Statement.php:37
      
Stack trace
      
#0 src/XF/Db/Mysqli/Statement.php(37): mysqli->prepare(Array)
#1 src/XF/Db/Mysqli/Statement.php(56): XF\Db\Mysqli\Statement->prepare()
#2 src/XF/Db/AbstractAdapter.php(96): XF\Db\Mysqli\Statement->execute()
#3 src/addons/Nulumia/SeoTools/Install/Upgrade1000650Trait.php(124): XF\Db\AbstractAdapter->query(Array)
#4 src/XF/AddOn/StepRunnerUpgradeTrait.php(124): Nulumia\SeoTools\Setup->upgrade1000650Step3(Array)
#5 src/XF/AddOn/StepRunnerUpgradeTrait.php(73): Nulumia\SeoTools\Setup->upgradeStepRunner(1000650, 3, Array, NULL)
#6 src/XF/Job/AddOnInstallBatch.php(299): Nulumia\SeoTools\Setup->upgrade(Array)
#7 src/XF/Job/AddOnInstallBatch.php(91): XF\Job\AddOnInstallBatch->stepAction(Object(XF\Timer))
#8 src/XF/Job/Manager.php(260): XF\Job\AddOnInstallBatch->run(8)
#9 src/XF/Job/Manager.php(202): XF\Job\Manager->runJobInternal(Array, 8)
#10 src/XF/Job/Manager.php(118): XF\Job\Manager->runJobEntry(Array, 8)
#11 src/XF/Admin/Controller/Tools.php(122): XF\Job\Manager->runByIds(Array, 8)
#12 src/XF/Mvc/Dispatcher.php(352): XF\Admin\Controller\Tools->actionRunJob(Object(XF\Mvc\ParameterBag))
#13 src/XF/Mvc/Dispatcher.php(259): XF\Mvc\Dispatcher->dispatchClass('XF:Tools', 'RunJob', Object(XF\Mvc\RouteMatch), Object(ThemeHouse\UserCriteria\XF\Admin\Controller\Tools), NULL)
#14 src/XF/Mvc/Dispatcher.php(115): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(ThemeHouse\UserCriteria\XF\Admin\Controller\Tools), NULL)
#15 src/XF/Mvc/Dispatcher.php(57): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#16 src/XF/App.php(2353): XF\Mvc\Dispatcher->run()
#17 src/XF.php(524): XF\App->run()
#18 admin.php(13): XF::runApp('XF\\Admin\\App')
#19 {main}
      
      
Request state
      
array(4) {
  ["url"] => string(24) "/admin.php?tools/run-job"
  ["referrer"] => string(49) "https://fortreeforums.xyz/admin.php?tools/run-job"
  ["_GET"] => array(1) {
    ["tools/run-job"] => string(0) ""
  }
  ["_POST"] => array(3) {
    ["_xfRedirect"] => string(85) "https://fortreeforums.xyz/admin.php?add-ons/install-from-archive-complete&batch_id=32"
    ["_xfToken"] => string(8) "********"
    ["only_ids"] => string(5) "11459"
  }
}

I was able to rebuild 1.0.6 Beta 9 without a reinstall so I'm out of the "failed upgrade" state and not in any worry, but thought I'd share it with you regardless.

We'll check it out during the next update.
 
I can't update to this version, when updating, an error pops up and the plugin is not updated


Code:
ErrorException: [E_WARNING] mysqli::prepare() expects parameter 1 to be string, array given in src/XF/Db/Mysqli/Statement.php at line 37
XF::handlePhpError()
mysqli->prepare() in src/XF/Db/Mysqli/Statement.php at line 37
XF\Db\Mysqli\Statement->prepare() in src/XF/Db/Mysqli/Statement.php at line 56
XF\Db\Mysqli\Statement->execute() in src/XF/Db/AbstractAdapter.php at line 96
XF\Db\AbstractAdapter->query() in src/addons/Nulumia/SeoTools/Install/Upgrade1000650Trait.php at line 124
Nulumia\SeoTools\Setup->upgrade1000650Step3() in src/XF/AddOn/StepRunnerUpgradeTrait.php at line 124
Nulumia\SeoTools\Setup->upgradeStepRunner() in src/XF/AddOn/StepRunnerUpgradeTrait.php at line 73
Nulumia\SeoTools\Setup->upgrade() in src/XF/Admin/Controller/AddOn.php at line 597
XF\Admin\Controller\AddOn->actionUpgrade() in src/XF/Mvc/Dispatcher.php at line 352
XF\Mvc\Dispatcher->dispatchClass() in src/XF/Mvc/Dispatcher.php at line 259
XF\Mvc\Dispatcher->dispatchFromMatch() in src/XF/Mvc/Dispatcher.php at line 115
XF\Mvc\Dispatcher->dispatchLoop() in src/XF/Mvc/Dispatcher.php at line 57
XF\Mvc\Dispatcher->run() in src/XF/App.php at line 2353
XF\App->run() in src/XF.php at line 524
XF::runApp() in admin.php at line 13
 
Appreciate having a good dev working on this.

@Ozzy47 - I'm sure you've answered it in here somewhere, but I can't find a definitive answer regarding licences. Ours currently runs through to March 23, do we just stick with the old website, or will you be transferring them across to your own system, or do we just wait until the renewal date?

Are you taking on more of this devs stuff?
 
ScreenShot00495.png

This was not an issue with SEO Tools & AMPXF but with DBTech Usertagging addon. Still this is fixed in new update going up at Ozzy's site.

This is a custom HTML page not using Xenforo from the looks of it so don't think this could be covered by the addon and isn't necessarily an issue with compatibility. Please enter a ticket at Ozzy's site with a link to this specific page so it can be diagnosed
This is a custom style issue. Your scrolling navigation only fires when on mobile size (@xf-responsiveNarrow).

Find this in your custom CSS files:

CSS:
@media (max-width: @xf-responsiveNarrow)
{
    .p-breadcrumbs {
        overflow: auto;
        flex-wrap: nowrap;
    }
}

..and change to this:

CSS:
@media (max-width: @xf-responsiveMedium)
{
    .p-breadcrumbs {
        overflow: auto;
        flex-wrap: nowrap;
    }
}

Add information for Logo and Open Graph: Now no information if all are set correctly.

ScreenShot00492.png
The recommendations page now shows success / "No issues" message for every section that is blank (upcoming release at Ozzy's site). You can also change in the Advanced Settings page what things will or won't be tracked for notifications, for those that don't want to or have a need to adjust certain things for their SEO strategy. Eventually virtually all type of recommendations will be listed in a checkbox series to enable/disable.
 
@Ozzy47 -Is there a chance to have a preset "SEO meta description (optional)" for every post?
I mean the description of what I chose and set to be in every post as "SEO meta description (optional)"?
 
Update!
SOLVED: Was a security rule set from my hosting company!

Starting from yesterday after the update, when I press "What's New" button, the style is bugged!
Same for "Credits" button.
Screenshot 2022-11-01 at 14-39-03 What's new.png
111.png
Please help! Thank you.
 
Last edited:
Am getting an issue on uploading attachements due to the mod;

  • XF\Db\Exception: MySQL statement prepare error [1054]: Unknown column 'nl_seo_alt_text' in 'field list'
  • src/XF/Db/AbstractStatement.php:228

Stack trace​


INSERT INTO xf_attachment_data (user_id, filename, file_size, file_hash, file_path, width, height, data_id, upload_date, thumbnail_width, thumbnail_height, attach_count, nl_seo_alt_text) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
------------

#0 src/XF/Db/Mysqli/Statement.php(196): XF\Db\AbstractStatement->getException('MySQL statement...', 1054, '42S22')
#1 src/XF/Db/Mysqli/Statement.php(39): XF\Db\Mysqli\Statement->getException('MySQL statement...', 1054, '42S22')
#2 src/XF/Db/Mysqli/Statement.php(54): XF\Db\Mysqli\Statement->prepare()
#3 src/XF/Db/AbstractAdapter.php(94): XF\Db\Mysqli\Statement->execute()
#4 src/XF/Db/AbstractAdapter.php(218): XF\Db\AbstractAdapter->query('INSERT INTO `x...', Array)
#5 src/XF/Mvc/Entity/Entity.php(1510): XF\Db\AbstractAdapter->insert('xf_attachment_d...', Array, false)
#6 src/XF/Mvc/Entity/Entity.php(1242): XF\Mvc\Entity\Entity->_saveToSource()
#7 src/XF/Service/Attachment/Preparer.php(70): XF\Mvc\Entity\Entity->save(true, false)
#8 src/XF/Service/Attachment/Preparer.php(38): XF\Service\Attachment\Preparer->insertDataFromFile(Object(XF\FileWrapper), 1976, Array)
#9 src/XF/Attachment/Manipulator.php(170): XF\Service\Attachment\Preparer->insertAttachment(Object(XF\Attachment\Post), Object(XF\FileWrapper), Object(SV\WarningAcknowledgement\XF\Entity\User), '0620b8a7d51e1af...')
#10 src/XF/Pub/Controller/Attachment.php(89): XF\Attachment\Manipulator->insertAttachmentFromUpload(Object(XF\Http\Upload), NULL)
#11 src/XF/Mvc/Dispatcher.php(350): XF\Pub\Controller\Attachment->actionUpload(Object(XF\Mvc\ParameterBag))
#12 src/XF/Mvc/Dispatcher.php(257): XF\Mvc\Dispatcher->dispatchClass('XF:Attachment', 'Upload', Object(XF\Mvc\RouteMatch), Object(XF\Pub\Controller\Attachment), NULL)
#13 src/XF/Mvc/Dispatcher.php(113): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(XF\Pub\Controller\Attachment), NULL)
#14 src/XF/Mvc/Dispatcher.php(55): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#15 src/XF/App.php(2344): XF\Mvc\Dispatcher->run()
#16 src/XF.php(512): XF\App->run()
#17 index.php(20): XF::runApp('XF\\Pub\\App')
#18 {main}

Request state​


array(4) {
["url"] => string(92) "/attachments/upload?type=post&context[thread_id]=13583&hash=0620b8a7d51e1af2d45809efbe5faa8c"
["referrer"] => string(71) "https://broncoshq.com/threads/the-random-question-thread.13583/page-597"
["_GET"] => array(3) {
["type"] => string(4) "post"
["context"] => array(1) {
["thread_id"] => string(5) "13583"
}
["hash"] => string(32) "0620b8a7d51e1af2d45809efbe5faa8c"
}
["_POST"] => array(3) {
["_xfToken"] => string(8) "********"
["_xfResponseType"] => string(4) "json"
["_xfWithData"] => string(1) "1"
}
}


Few other errors popping up in the logs too;


  • ErrorException: [E_NOTICE] Undefined variable: slug
  • src/addons/Nulumia/SeoTools/XF/BbCode/Renderer/Html.php:114




  • Stack trace​


    #0 src/addons/Nulumia/SeoTools/XF/BbCode/Renderer/Html.php(114): XF::handlePhpError(8, '[E_NOTICE] Unde...', '/home/broncos/p...', 114, Array)
    #1 [internal function]: Nulumia\SeoTools\XF\BbCode\Renderer\Html->renderTagHeading(Array, '2', 'h3', Object(ArrayObject), Object(LiamW\MentionMiniAvatar\XF\BbCode\Renderer\Html))
    #2 src/XF/BbCode/Renderer/Html.php(308): call_user_func(Array, Array, '2', Array, Array, Object(LiamW\MentionMiniAvatar\XF\BbCode\Renderer\Html))
    #3 src/addons/s9e/MediaSites/XF/BbCode/Renderer/Html.php(14): XF\BbCode\Renderer\Html->renderTag(Array, Array)
    #4 src/XF/BbCode/Traverser.php(61): s9e\MediaSites\XF\BbCode\Renderer\Html->renderTag(Array, Array)
    #5 src/XF/BbCode/Traverser.php(37): XF\BbCode\Traverser->renderSubTree(Array, Array)
    #6 src/XF/BbCode/Traverser.php(20): XF\BbCode\Traverser->renderAst(Array, Object(SV\UserMentionsImprovements\XF\BbCode\RuleSet), Array)
    #7 src/XF/Pub/View/FeedHelper.php(119): XF\BbCode\Traverser->render('

    Quee...', Object(XF\BbCode\Parser), Object(SV\UserMentionsImprovements\XF\BbCode\RuleSet), Array)
    #8 src/XF/Pub/View/Forum/Rss.php(42): XF\Pub\View\FeedHelper::setupEntryForThread(Object(Laminas\Feed\Writer\Entry), Object(SV\ThreadReplyBanTeeth\XF\Entity\Thread), 'last_post_date')
    #9 src/XF/Mvc/Renderer/AbstractRenderer.php(91): XF\Pub\View\Forum\Rss->renderRss()
    #10 src/XF/Mvc/Renderer/Xml.php(74): XF\Mvc\Renderer\AbstractRenderer->renderViewObject('XF:Forum\\Rss', '', Array)
    #11 src/XF/Mvc/Dispatcher.php(458): XF\Mvc\Renderer\Xml->renderView('XF:Forum\\Rss', '', Array)
    #12 src/XF/Mvc/Dispatcher.php(440): XF\Mvc\Dispatcher->renderView(Object(XF\Mvc\Renderer\Rss), Object(XF\Mvc\Reply\View))
    #13 src/XF/Mvc/Dispatcher.php(400): XF\Mvc\Dispatcher->renderReply(Object(XF\Mvc\Renderer\Rss), Object(XF\Mvc\Reply\View))
    #14 src/XF/Mvc/Dispatcher.php(58): XF\Mvc\Dispatcher->render(Object(XF\Mvc\Reply\View), 'rss')
    #15 src/XF/App.php(2344): XF\Mvc\Dispatcher->run()
    #16 src/XF.php(512): XF\App->run()
    #17 index.php(20): XF::runApp('XF\\Pub\\App')
    #18 {main}


    Request state​


    array(4) {
    ["url"] => string(38) "/forums/state-of-origin.2066/index.rss"
    ["referrer"] => bool(false)
    ["_GET"] => array(0) {
    }
    ["_POST"] => array(0) {
    }
    }



 
And in a few weeks we will have to pay again... 12 months and $35 later we are at the same point. And what will the rate be for existing customers?

You will not consider this as a renewal but as a first purchase.

Yes, I was a bit peeved at first, but then realised after 12months you'd be paying again anyway, and who's to say it wouldn't be more once it's out of beta.

Actually, with a lifetime license, I loose in the end, the customer pays one time fee, then has access to updates for the lifetime of the supported versions of XF.

Yes so this sounds fair enough, I generally prefer lifetime to subscription.

BTW @Ozzy47 I made a request earlier for customisable rel=canonical.

This would be fantastic for example articles that you duplicated on another domain. I've tried doing it with conditional for specific forums but ends up being a bit complex.
 
[OzzModz] SEO & Index Tools for XenForo 2.2+ Update 1.0.6 Release Candidate
Disabling the add-on leaves uploading attachments failing, due to xf_attachment_data.nl_seo_alt_text having a null default. Had to alter table xf_attachment_data alter nl_seo_alt_text set default ''; to eradicate errors and allow users to upload/attach files again.
 
Top Bottom