Last active
September 28, 2021 05:07
-
-
Save iamrobert/41c3900f6d6b903ba0107927e748a58f to your computer and use it in GitHub Desktop.
FLEXIcontent add open meta tags for sharing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?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