Jump to content

Featured Replies

Posted

I've been trying for some time to implement the following and unfortunately just do not get on. There is simply a lack of skills 😉


{{if !isset( \IPS\Output::i()->metaTags['og:image'] )}}
    {{$shareLogos = \IPS\Settings::i()->icons_sharer_logo ? json_decode( \IPS\Settings::i()->icons_sharer_logo, true ) : array();}}
    {{foreach $shareLogos as $logo}}
        <meta property="og:image" content="{file="$logo" extension="core_Icons" scheme="full"}">
    {{endforeach}}

 

MISSING HERE 
elseif - it's a forum post, 

then it is <meta property="og:image" content="https://www.domain.tld/img/<<TOPICID>>.jpg" />

 

{{else}}
<meta property="og:image" content="https://www.domain.tld/standardimage.jpg" />
{{endif}}
 


would be cool if someone here ne line for me 🙂
Thanks a lot!
Stephan

Not sure what you want. Either use {{elseif !$something}} or identify a forum post.

  • Author

Hi, thanks for your reply. the code should make a difference 
if the og:image is set > output (works)
== MISSING ==
elseif it is a forum post > output should be this including the postID
<meta property="og:image" content="https://www.domain.tld/img/<<TOPICID>>.jpg" />
== /MISSING ==
else og:image is standard (works)

I think this is what you are asking for...

{{if !isset( \IPS\Output::i()->metaTags['og:image'] )}}
    {{$shareLogos = \IPS\Settings::i()->icons_sharer_logo ? json_decode( \IPS\Settings::i()->icons_sharer_logo, true ) : array();}}
    {{if request.app ==='forums' AND request.controller==='topic'}}
        <meta property="og:image" content="https://www.domain.tld/img/{expression='request.id'}.jpg" />
    {{else}}
	{{foreach $shareLogos as $logo}}
		<meta property="og:image" content="{file="$logo" extension="core_Icons" scheme="full"}">
	{{endforeach}}
    {{endif}}
{{endif}}

 

This would be the code but I'm not sure what you mean with postID. There's no separate page with a post, only topics, so I assumed you mean the topic id which I used in my code.

{{if !isset( \IPS\Output::i()->metaTags['og:image'] )}}
	{{$shareLogos = \IPS\Settings::i()->icons_sharer_logo ? json_decode( \IPS\Settings::i()->icons_sharer_logo, true ) : array();}}
	{{foreach $shareLogos as $logo}}
		<meta property="og:image" content="{file="$logo" extension="core_Icons" scheme="full"}">
	{{endforeach}}
{{elseif \IPS\Request::i()->app == 'forums' AND    \IPS\Request::i()->controller == 'topic'}}
{{$id  = \IPS\Request::i()->id;}}
<meta property='og:image' content='https://www.domain.tld/img/{$id}.jpg'/>
{{else}}
<meta property='og:image' content='https://www.domain.tld/standardimage.jpg'/>
{{endif}}

 

That said, I'm also not sure if it will work at all, the condition looks weird and will probably always return the first part for topics.

 

 

  • Author
14 minutes ago, Nathan Explosion said:

I think this is what you are asking for...

{{if !isset( \IPS\Output::i()->metaTags['og:image'] )}}
    {{$shareLogos = \IPS\Settings::i()->icons_sharer_logo ? json_decode( \IPS\Settings::i()->icons_sharer_logo, true ) : array();}}
    {{if request.app ==='forums' AND request.controller==='topic'}}
        <meta property="og:image" content="https://www.domain.tld/img/{expression='request.id'}.jpg" />
    {{else}}
	{{foreach $shareLogos as $logo}}
		<meta property="og:image" content="{file="$logo" extension="core_Icons" scheme="full"}">
	{{endforeach}}
    {{endif}}
{{endif}}

 

Thanks so much - nearly perfect. There is only one thing missing - if neigher the og: image is set, nor its a forum topic the std-image should be postet

I see no reason for that, to be honest.

Just upload your "std-image" in the ACP (Default share images) and it handles that element of your request...

Could contain: File, Text, Page

 

Edited by Nathan Explosion

  • Author

Yeah, thanks! - Works! 

Thanks a lot and have a nice weekend 🙂

 

Recently Browsing 0

  • No registered users viewing this page.