mplodowski / seomanager-plugin-public Goto Github PK
View Code? Open in Web Editor NEWhttps://octobercms.com/plugin/renatio-seomanager
Home Page: https://octobercms.com/plugin/renatio-seomanager
https://octobercms.com/plugin/renatio-seomanager
Home Page: https://octobercms.com/plugin/renatio-seomanager
hello,
Rainlab.Translate installed.
Wereas everything works greats for pages, languages dropdown menus do NOT appear into SEO tag for blog posts โฆ any idea ?
Regards
Hello,
I have installed the plugin, and added the component onto my header partial, and added the values in my CMS static pages, but the tags are not showing up in the front end.
My layout is as follows:
{% partial 'header' %} {% page %} {% partial 'footer' %}
My header partial is as follows:
<html lang="en">
<head>
<link href="{{'plugins/bootstrap-3.3.6/css/bootstrap.min.css'|cdn}}" rel="stylesheet"/>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
{% component 'seoTags' %}
{% styles %}
<script type="text/javascript">//<![CDATA[
var tlJsHost = ((window.location.protocol == "https:") ? "https://secure.comodo.com/" : "http://www.trustlogo.com/");
document.write(unescape("%3Cscript src='" + tlJsHost + "trustlogo/javascript/trustlogo.js' type='text/javascript'%3E%3C/script%3E"));
//]]>
</script>
</head>```
However, when I view the page source on the output I cannot see any SEO tags, please help.
Thank You
I am using October 1.x just updated October after that website stopped working.
error Class 'October\Rain\Support\Facades\Event' not found
how to go back to the old version?
Hi there,
We use your plugin on all our sites but have noticed that the meta description limit is set to 300. Google has since changed the limit to be 150-160 as seen here: https://blog.bit.ai/meta-description-length/. Any chance you can update this or make the limit configurable via a setting or something? I can change the lang file but the countdown and hard limits on save are hard coded. I am using it with October 2 currently.
Thank,
Adrian
Fix for honoring the CMS link policy:
Set currentUrl to path (plugins/renatio/seomanager/components/SeoTags.php)
$this->page['currentUrl'] = request()->path();
Use twig app filter in component markup (plugins/renatio/seomanager/components/seotags/default.htm):
<link rel="canonical" href="{{ seoTag.canonical_url ?: currentUrl|app }}">
...
<meta property="og:url" content="{{ currentUrl|app }}">
I would love to have a way to edit the SEO without giving my clients access to the CMS pages required. A lot of work that I do requires a custom coded template and this would be an awesome thing to have on hand
I would love support for October v3. I would like for you to support Tailor structures and streams.
The current alternative would be to build the structures myself but I would like it to just "work" when a page is a structure or stream
How do I get the featured image of a blog post to appear on social media using og:image? The plugin says it supports both og:image and RainLab blog - is there a specific piece of code that I need to get the featured blog post image into the header? It is not showing by default.
solved: php artisan plugin:refresh Renatio.SeoManager fixed it
Hi Renatio,
I just bought SEO manager and added it to an october project (fresh install Build 443). When updating the october installation via backend I get the following error (even if I select "skip once" as action):
"SQLSTATE[42S02]: Base table or view not found: 1146 Table 'kcb7_october.renatio_seomanager_seo_tags' doesn't exist (SQL: select * from
renatio_seomanager_seo_tagswhere
renatio_seomanager_seo_tags.
seo_tag_id= 9 and
renatio_seomanager_seo_tags.
seo_tag_idis not null and
renatio_seomanager_seo_tags.
seo_tag_type = RainLab\Blog\Models\Post limit 1)" on line 664 of /var/www/virtual/kcb7/html/vendor/laravel/framework/src/Illuminate/Database/Connection.php
Can you help?
Chris (newbie on GitHub and in general)
The database migration files don't set a default length for the VARCHARs so they get created with length of 191. This doesn't work with the Meta Description field which has a limit of 300 characters.
deleted, as I mixed up the seo manager plugin with another one
i have october cms v-1 i updated the plugins and got this error
Symfony\Component\Debug\Exception\FatalThrowableError:
Class 'October\Rain\Support\Facades\Event' not found
in /var/www/vhosts/soske.me/suma.soske.me/plugins/renatio/seomanager/classes/SeoCmsPage.php:21
Hi,
I have problem to get translated Seo tags.
How to fix this problem?
I've implemented the seo tag manager with the
public $implement = ['@RainLab.Translate.Behaviors.TranslatableModel','@Renatio.SeoManager.Behaviors.SeoModel',];
public $translatable = [
'name',
'description',
'subtitle',
'seo_tag[meta_title]',
'seo_tag[meta_description]'
];
But cant save the seo field for other languages (error Call to a member function hasRelation() on array
)
Describe the bug
"There are no commands defined in the "seo" namespace." on line 579 of /var/www/vhosts/sviluppandosulweb.it/httpdocs/vendor/symfony/console/Application.php
To Reproduce
Steps to reproduce the behavior:
I bought the plugin from the OctoberCms portal, inserted in my project. I went to my site's backend to install, download all packages and finally get the following error: "There are no commands defined in the" seo "namespace." at line 579 of /var/www/vhosts/sviluppandosulweb.it/httpdocs/vendor/symfony/console/Application.php
October version
October 2.0 build 476
We got this exception when we render static page:
An exception has been thrown during the rendering of a template ("call_user_func_array() expects parameter 1 to be a valid callback, class 'Cms\Classes\Controller' does not have a method 'og_image_width'").
This is happening, when you have different environments
. I upload OG IMAGE on LOCAL stage, then I commit this static page and deploy it to the TEST stage. The image doesn't exist on TEST stage storage, so you will get this fatal error.
The solution can be put some IF condition into
plugins/renatio/seomanager/components/seotags/default.htm
if image exist.
When trying to install the plugin on a webserver with PHP 7.4 it gets the following exception:
[ErrorException]
Trying to access array offset on value of type int
We expected the problem with RainLab.Sitemap, but this Problem may occur on other Plugins too.
The problem root cause is the SeoModel expects all widget models to implement ExtendableTrait and HasRelationships but there is no check the model does. So when you try to render a Backend Form with Renatio.SeoManager enabled it fails!
The Problem can be found in Renatio\SeoManager\Behaviors\SeoModel line 59 if (isset($widget->model) && $widget->model->isClassExtendedWith(static::class)) {
There should be a Check for Traits used or if model is extending Model class.
It looks like the og:image field is now set as a media finder field. This is causing two issues:
Hey everyone. With the new update of OctoberCMS v2, I was wondering if you guys would support the CMS Extensibility API to integrate the OG Image and the other stuff.
Describe the bug
I am implementing SeoModel on a custom blog model. After upgrade to v3 and October v2 I can no longer save new custom models, and getting an error "Unexpected type of array when attempting to save attribute "translatable", try adding it to the $jsonable property"
.
Noting I have also ran both migration and patches for v3 upgrade.
It looks like the SEO behaviour is adding 'translatable'
To Reproduce
Steps to reproduce the behavior:
'@Renatio.SeoManager.Behaviors.SeoModel'
as per docs on custom model.Expected behavior
The model should be created successfully.
October version
v2.1.28
Plugin version
v3.1.0
Additional context
Adding the below to my model solves the issue. I assume a check that Rainlab.Translatable is running needs to be added before adding the translatable attribute to the model.
protected $jsonable = ['translatable'];
public function beforeSave()
{
unset($this->translatable);
}
The SeoTags component attempts the get og image dimensions in the setOgImageDimensions()
method.
It attempts to get the path for the media directory using
config('cms.storage.media.path')
but this has since been changed in OctoberCMS v2 to
config('system.storage.media.path')
This causes the og_image_width
and og_image_height
properties not to be set so throws an error on the frontend when an seo image is added.
Hi,
where can I change behaviors of default canonicals? I know I can do it manually (every page), but a setting to chose it would be more appreciated.
By default plugin ads canonical without trailing slash "/" and I would like to setup it the way it ads trailing slash to canonical.
ie.
Now:
<link rel="canonical" href="https://example.com/page-1">
Would love to have this:
<link rel="canonical" href="https://example.com/page-1/">
Best regards,
Zbyszek
Is your feature request related to a problem? Please describe.
For our clients we use the richeditor for blog posts rather than the markdown editor. If the seo meta description is empty, It's default values are taken from the content of the post. Because we use the richeditor, it includes the html tags.
Describe the solution you'd like
It would be great if strip_tags() could be used on the default value for meta description.
Describe alternatives you've considered
At the minute, I'm extending the Post model to remove strip tags myself which is fine. Just making a suggestion for when I use this plugin again in the future.
Hello,
I am using v3.0.1, how can I upgrade to v3.1.0?
Thanks
Hi,
Sorry but i'm not really confident with SSH/Composer/... I try to update my october CMS site with your plugin and I always get this error :
Can you explain me what to do ?
Thanks.
Object of class class@anonymous could not be converted to string
Symfony\Component\Debug\Exception\FatalThrowableError: Object of class class@anonymous could not be converted to string in /home/artistro08/.sites/kicksaas/plugins/renatio/seomanager/components/SeoTags.php:102
Stack trace:
#0 /home/artistro08/.sites/kicksaas/plugins/renatio/seomanager/components/SeoTags.php(102): str_replace()
#1 /home/artistro08/.sites/kicksaas/plugins/renatio/seomanager/components/SeoTags.php(87): Renatio\SeoManager\Components\SeoTags->setOgImageDimensions()
#2 /home/artistro08/.sites/kicksaas/plugins/renatio/seomanager/components/SeoTags.php(31): Renatio\SeoManager\Components\SeoTags->prepareSeoTag()
#3 /home/artistro08/.sites/kicksaas/modules/cms/classes/Controller.php(1266): Renatio\SeoManager\Components\SeoTags->onRender()
#4 /home/artistro08/.sites/kicksaas/modules/cms/twig/Extension.php(155): Cms\Classes\Controller->renderComponent()
#5 /home/artistro08/.sites/kicksaas/storage/cms/twig/8b/8b02ab8162368c147b517f5cb613396028f67e09e8822253e4109078696f6aaa.php(52): Cms\Twig\Extension->componentFunction()
#6 /home/artistro08/.sites/kicksaas/vendor/twig/twig/src/Template.php(405): __TwigTemplate_1c1317f35957037cd2208046ba46d6f085b73c8cf2b433d0f191a5b41a02be80->doDisplay()
#7 /home/artistro08/.sites/kicksaas/vendor/twig/twig/src/Template.php(378): Twig\Template->displayWithErrorHandling()
#8 /home/artistro08/.sites/kicksaas/vendor/twig/twig/src/Template.php(390): Twig\Template->display()
#9 /home/artistro08/.sites/kicksaas/modules/cms/classes/Controller.php(1122): Twig\Template->render()
#10 /home/artistro08/.sites/kicksaas/modules/cms/twig/Extension.php(115): Cms\Classes\Controller->renderPartial()
#11 /home/artistro08/.sites/kicksaas/storage/cms/twig/b4/b48c0f3dede825f63e96de397aa31c8de116e34919f4189feb0e23fa1cb41c83.php(42): Cms\Twig\Extension->partialFunction()
#12 /home/artistro08/.sites/kicksaas/vendor/twig/twig/src/Template.php(405): __TwigTemplate_107c8a89757e84573852498997cc344d9b798b66267a01885eb76a50c4238087->doDisplay()
#13 /home/artistro08/.sites/kicksaas/vendor/twig/twig/src/Template.php(378): Twig\Template->displayWithErrorHandling()
#14 /home/artistro08/.sites/kicksaas/vendor/twig/twig/src/Template.php(390): Twig\Template->display()
#15 /home/artistro08/.sites/kicksaas/modules/cms/classes/Controller.php(435): Twig\Template->render()
#16 /home/artistro08/.sites/kicksaas/modules/cms/classes/Controller.php(222): Cms\Classes\Controller->runPage()
#17 /home/artistro08/.sites/kicksaas/modules/cms/classes/CmsController.php(50): Cms\Classes\Controller->run()
#18 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): Cms\Classes\CmsController->run()
#19 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction()
#20 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Routing/Route.php(219): Illuminate\Routing\ControllerDispatcher->dispatch()
#21 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Routing/Route.php(176): Illuminate\Routing\Route->runController()
#22 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Routing/Router.php(681): Illuminate\Routing\Route->run()
#23 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#24 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#25 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#26 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#27 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\View\Middleware\ShareErrorsFromSession->handle()
#28 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(56): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#29 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Session\Middleware\StartSession->handle()
#30 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#31 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle()
#32 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#33 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\EncryptCookies->handle()
#34 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#35 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Routing/Router.php(683): Illuminate\Pipeline\Pipeline->then()
#36 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\Routing\Router->runRouteWithinStack()
#37 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\Routing\Router->runRoute()
#38 /home/artistro08/.sites/kicksaas/vendor/october/rain/src/Router/CoreRouter.php(31): Illuminate\Routing\Router->dispatchToRoute()
#39 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(170): October\Rain\Router\CoreRouter->dispatch()
#40 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#41 /home/artistro08/.sites/kicksaas/plugins/offline/responsiveimages/classes/ResponsiveImagesMiddleware.php(30): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#42 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): OFFLINE\ResponsiveImages\Classes\ResponsiveImagesMiddleware->handle()
#43 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#44 /home/artistro08/.sites/kicksaas/vendor/october/rain/src/Foundation/Http/Middleware/CheckForMaintenanceMode.php(23): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle()
#45 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): October\Rain\Foundation\Http\Middleware\CheckForMaintenanceMode->handle()
#46 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#47 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\Pipeline\Pipeline->then()
#48 /home/artistro08/.sites/kicksaas/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#49 /home/artistro08/.sites/kicksaas/index.php(43): Illuminate\Foundation\Http\Kernel->handle()
#50 /home/artistro08/.config/composer/vendor/cpriego/valet-linux/server.php(232): require('/home/artistro0...')
#51 {main}
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Plugin working without error, and displays SEO content
October version
v2.2.9
Plugin version
3.1.2
If i want install the plugin i get the follow error:
Update failed
"There are no commands defined in the "seo" namespace." on line 579 of /home/admin/domains/domain.com/public_html/vendor/symfony/console/Application.php
On the page i see the follow error:
Class 'October\Rain\Support\Facades\Event' not found
/home/admin/domains/domain.com/public_html/plugins/renatio/seomanager/classes/SeoCmsPage.php line 21
Undefined EXCEPTION
Symfony\Component\Debug\Exception\FatalThrowableError
$this->addTranslatableSeoFields();
}
protected function addSeoFields()
{
Event::listen('cms.template.getTemplateToolbarSettingsButtons', function ($extension, $dataHolder) {
if ($dataHolder->templateType === 'page') {
$dataHolder->buttons[] = [
'button' => 'SEO',
'icon' => 'octo-icon-search',
'popupTitle' => 'renatio.seomanager::lang.settings.description',
'useViewBag' => true,`
Awesome plugin! However, when I collapse the component to reveal the html markup, the plugin no longer works i.e. the component variables don't pull through any SEO data.
Any ideas on how to fix this?
I am running SEO Manager version 1.2.2 and October build 454.
Cheers,
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.