Skip to content

Instantly share code, notes, and snippets.

@iamrobert
Last active September 28, 2021 05:07
Show Gist options
  • Select an option

  • Save iamrobert/41c3900f6d6b903ba0107927e748a58f to your computer and use it in GitHub Desktop.

Select an option

Save iamrobert/41c3900f6d6b903ba0107927e748a58f to your computer and use it in GitHub Desktop.
FLEXIcontent add open meta tags for sharing
<?php
//TO AVOID DOUBLE META OG:DESCRIPTION - set your flexi description social suggest to none;
defined( '_JEXEC' )or die( 'Restricted access' );
/* + OPEN GRAPH META TAGSSOCIAL SHARES
https://blog.kissmetrics.com/open-graph-meta-tags/
https://moz.com/blog/meta-data-templates-123
-----------------------------------------------------------------------
REMEMBER TO SET IMAGE FIELD NUMBER line 81
======================================================================
*/
$document = JFactory::getDocument();
// GET OPENGRAPH TYPE:
//https://developers.facebook.com/docs/reference/opengraph/
$fb_og_type = $this->params->get( 'fb_og_type' );
//GET TITLE
$page_title = $document->getTitle();
//GET CURRENT PAGE URL;
$current_page_url = JURI::current();
// COMPANY NAME - guess same as site name;
$company_name = JFactory::getConfig()->get( 'sitename' );
//SET URL
//$document->setMetaData( 'og:url', "$current_page_url" );
$document->setMetaData( 'og:url', "$current_page_url", 'property' );
$document->setMetaData( 'og:type', "$fb_og_type", 'property' );
$document->setMetaData( 'twitter:card', "summary_large_image" );
//SET TITLE
$document->setMetaData( 'og:title', "$page_title", 'property' );
$document->setMetaData( 'twitter:title', "$page_title" );
/* + SET DESCRIPTION
======================================================================*/
//SET INTROTEXT LENGTH
$intro_text_cut_text = $this->params->get( 'intro_text_cut_text', '160' );
$intro_text = JHtmlString::truncate( $item->introtext, $intro_text_cut_text, true, false );
$intro_text = str_replace( '...', '', $intro_text );
//GET META DESCRIPTION:
$meta_description = $document->getMetaData( "description" );
if (!empty($_mp=$menu->params->get('menu-meta_description'))) {
//+ GET MENU META DESCRIPTION
$document->setDescription( $_mp );
$document->setMetaData( 'twitter:description', "$_mp" );
$document->setMetaData( 'og:description', "$_mp", 'property' );
$document->setMetaData( 'description', "$_mp", 'itemprop' );
} elseif ( !empty( $item->metadesc ) ) {
//+ GET ITEM META DESCRIPTION
$meta_item = htmlspecialchars_decode($item->metadesc);
$document->setDescription( $meta_item );
$document->setMetaData( 'twitter:description', "$meta_item" );
$document->setMetaData( 'og:description', "$meta_item", 'property' );
$document->setMetaData( 'description', "$meta_item", 'itemprop' );
} elseif ( !empty( $intro_text ) ) {
//+ GET INTRO TEXT META DESCRIPTION
$document->setDescription("$intro_text");
$document->setMetaData( 'twitter:description', "$intro_text" );
$document->setMetaData( 'og:description', "$intro_text", 'property' );
$document->setMetaData( 'description', "$intro_text", 'itemprop' );
} elseif ( !empty( $meta_description ) ) {
//+ GET SIDE META DESCRIPTION
$document->setDescription("$meta_description");
$document->setMetaData( 'twitter:description', "$meta_description" );
$document->setMetaData( 'og:description', "$meta_description", 'property' );
$document->setMetaData( 'description', "$meta_description", 'itemprop' );
}
//SITENAME
$document->setMetaData( 'og:site_name', "$company_name", 'property' );
/* + SET IMAGE FIELD NUMBER
======================================================================*/
$imagefield = 40;
if ( isset( $item->fieldvalues[ $imagefield ] ) ) {
$siteURL = 'http' . ( empty( $_SERVER[ 'HTTPS' ] ) ? '' : 's' ) . '://' . $_SERVER[ 'SERVER_NAME' ];
$siteURL = $siteURL . $item->fields[ 'image' ]->{"display_large_src"};
$document->setMetaData( 'twitter:image', "$siteURL" );
$document->setMetaData( 'og:image', "$siteURL" );
//$document->setMetaData( 'image', "$siteURL", 'itemprop');
}
// IF WE HAVE 2 IMAGE FIELDS
//$imagefield = 40;
//$socialimagefield = 131;
//if ( isset( $item->fieldvalues[ $socialimagefield ]) ) {
// $siteURL = 'http' . ( empty( $_SERVER[ 'HTTPS' ] ) ? '' : 's' ) . '://' . $_SERVER[ 'SERVER_NAME' ];
// $siteURL = $siteURL . $item->fields[ 'social_image' ]->{"display_large_src"};
// $document->setMetaData( 'twitter:image', "$siteURL" );
// $document->setMetaData( 'og:image', "$siteURL" );
// $document->setMetaData( 'og:image', "$siteURL", 'itemprop' );
//}
//elseif ( isset( $item->fieldvalues[ $imagefield ]) ) {
// $siteURL = 'http' . ( empty( $_SERVER[ 'HTTPS' ] ) ? '' : 's' ) . '://' . $_SERVER[ 'SERVER_NAME' ];
// $siteURL = $siteURL . $item->fields[ 'image' ]->{"display_large_src"};
// $document->setMetaData( 'twitter:image', "$siteURL" );
// $document->setMetaData( 'og:image', "$siteURL" );
// $document->setMetaData( 'og:image', "$siteURL", 'itemprop' );
//}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment