Welcome to Geeklog, Anonymous Sunday, December 22 2024 @ 06:58 am EST
Geeklog Forums
Better SEO for GL with media gallery.
Status: offline
Chase
Forum User
Regular Poster
Registered: 03/14/08
Posts: 110
Location:Karachi, Pakistan
I just update lib-common.
Now all of my stories and all the items in media gallery now get a distinct
description and keyword meta tag.
The change for media gallery was done only today so the result needs to be seen.
But the changes in the story section have yielded great results.
where earlier my pages were not comming in any searches have started to appear now.
I would like that someone from the GL team can take this code add it in next GL release.
and if they have time then improve it.
Text Formatted Code
function COM_siteHeader( $what = 'menu', $pagetitle = '', $headercode = '' )
{
global $_CONF, $_TABLES, $_USER, $LANG01, $LANG_BUTTONS, $LANG_DIRECTION,
$_IMAGE_TYPE, $topic, $_COM_VERBOSE;
/////////////////////////////////////////////
//Following new line added
$media_flag_cx=0;
// If the theme implemented this for us then call their version instead.
$function = $_CONF['theme'] . '_siteHeader';
if( function_exists( $function ))
{
return $function( $what, $pagetitle, $headercode );
}
// send out the charset header
header( 'Content-Type: text/html; charset=' . COM_getCharset());
// If we reach here then either we have the default theme OR
// the current theme only needs the default variable substitutions
$header = new Template( $_CONF['path_layout'] );
$header->set_file( array(
'header' => 'header.thtml',
'menuitem' => 'menuitem.thtml',
'menuitem_last' => 'menuitem_last.thtml',
'menuitem_none' => 'menuitem_none.thtml',
'leftblocks' => 'leftblocks.thtml',
'rightblocks' => 'rightblocks.thtml'
));
$header->set_var( 'xhtml', XHTML );
// get topic if not on home page
if( !isset( $_GET['topic'] ))
{
if( isset( $_GET['story'] ))
{
$sid = COM_applyFilter( $_GET['story'] );
//Following 3 new lines added
// story intro text
$sql_cx = "SELECT SUBSTRING(introtext,1,200) as seo_text FROM {$_TABLES['stories']} WHERE sid = '$sid'";
$result_cx = DB_query ($sql_cx);
$SEO_PACK = DB_fetchArray ($result_cx);
}
elseif( isset( $_GET['sid'] ))
{
$sid = COM_applyFilter( $_GET['sid'] );
//Following 3 new lines added
// story intro text
$sql_cx = "SELECT SUBSTRING( introtext,1,200) as seo_text FROM {$_TABLES['stories']} WHERE sid = '$sid'";
$result_cx = DB_query ($sql_cx);
$SEO_PACK = DB_fetchArray ($result_cx);
}
elseif( isset( $_POST['story'] ))
{
$sid = COM_applyFilter( $_POST['story'] );
//Following 3 new lines added
$sql_cx = "SELECT SUBSTRING( introtext,1,200) as seo_text FROM {$_TABLES['stories']} WHERE sid = '$sid'";
$result_cx = DB_query ($sql_cx);
$SEO_PACK = DB_fetchArray ($result_cx);
}
elseif( isset( $_GET['s'] ))
{
$s_cx = COM_applyFilter( $_GET['s'] );
//Following 4 new lines added
$media_flag_cx=1;
$sql_cx = "SELECT media_desc as seo_text, media_keywords FROM {$_TABLES['mg_media']} WHERE media_id = '$s_cx'";
$result_cx = DB_query ($sql_cx);
$SEO_PACK = DB_fetchArray ($result_cx);
}
if( empty( $sid ) && $_CONF['url_rewrite'] &&
( strpos( $_SERVER['PHP_SELF'], 'article.php' ) !== false ))
{
COM_setArgNames( array( 'story', 'mode' ));
$sid = COM_applyFilter( COM_getArgument( 'story' ));
//Following 3 new lines added
// story intro text
$sql_cx = "SELECT SUBSTRING( introtext,1,200) as seo_text FROM {$_TABLES['stories']} WHERE sid = '$sid'";
$result_cx = DB_query ($sql_cx);
$SEO_PACK = DB_fetchArray ($result_cx);
}
if( !empty( $sid ))
{
$topic = DB_getItem( $_TABLES['stories'], 'tid', "sid='$sid'" );
}
}
else
{
$topic = COM_applyFilter( $_GET['topic'] );
}
$feed_url = array();
if( $_CONF['backend'] == 1 ) // add feed-link to header if applicable
{
$baseurl = SYND_getFeedUrl();
$sql = 'SELECT format, filename, title, language FROM '
. $_TABLES['syndication'] . " WHERE (header_tid = 'all')";
if( !empty( $topic ))
{
$sql .= " OR (header_tid = '" . addslashes( $topic ) . "')";
}
$result = DB_query( $sql );
$numRows = DB_numRows( $result );
for( $i = 0; $i < $numRows; $i++ )
{
$A = DB_fetchArray( $result );
if ( !empty( $A['filename'] ))
{
$format = explode( '-', $A['format'] );
$format_type = strtolower( $format[0] );
$format_name = ucwords( $format[0] );
$feed_url[] = '<link rel="alternate" type="application/'
. $format_type . '+xml" hreflang="' . $A['language']
. '" href="' . $baseurl . $A['filename'] . '" title="'
. $format_name . ' Feed: ' . $A['title'] . '"' . XHTML . '>';
}
}
}
$header->set_var( 'feed_url', implode( LB, $feed_url ));
$relLinks = array();
if( !COM_onFrontpage() )
{
$relLinks['home'] = '<link rel="home" href="' . $_CONF['site_url']
. '/" title="' . $LANG01[90] . '"' . XHTML . '>';
}
$loggedInUser = !COM_isAnonUser();
if( $loggedInUser || (( $_CONF['loginrequired'] == 0 ) &&
( $_CONF['searchloginrequired'] == 0 )))
{
if(( substr( $_SERVER['PHP_SELF'], -strlen( '/search.php' ))
!= '/search.php' ) || isset( $_GET['mode'] ))
{
$relLinks['search'] = '<link rel="search" href="'
. $_CONF['site_url'] . '/search.php" title="'
. $LANG01[75] . '"' . XHTML . '>';
}
}
if( $loggedInUser || (( $_CONF['loginrequired'] == 0 ) &&
( $_CONF['directoryloginrequired'] == 0 )))
{
if( strpos( $_SERVER['PHP_SELF'], '/article.php' ) !== false ) {
$relLinks['contents'] = '<link rel="contents" href="'
. $_CONF['site_url'] . '/directory.php" title="'
. $LANG01[117] . '"' . XHTML . '>';
}
}
if (!$_CONF['disable_webservices']) {
$relLinks['service'] = '<link rel="service" '
. 'type="application/atomsvc+xml" ' . 'href="'
. $_CONF['site_url'] . '/webservices/atom/?introspection" '
. 'title="' . $LANG01[130] . '"' . XHTML . '>';
}
// TBD: add a plugin API and a lib-custom.php function
$header->set_var( 'rel_links', implode( LB, $relLinks ));
if( empty( $pagetitle ) && isset( $_CONF['pagetitle'] ))
{
$pagetitle = $_CONF['pagetitle'];
}
if( empty( $pagetitle ))
{
if( empty( $topic ))
{
$pagetitle = $_CONF['site_slogan'];
}
else
{
$pagetitle = stripslashes( DB_getItem( $_TABLES['topics'], 'topic',
"tid = '$topic'" ));
}
}
if( !empty( $pagetitle ))
{
$header->set_var( 'page_site_splitter', ' - ');
}
else
{
$header->set_var( 'page_site_splitter', '');
}
$header->set_var( 'page_title', $pagetitle );
//Following new segment added here
if( ($SEO_PACK['seo_text']) && ($media_flag_cx=0) ) {
$striped_seo_text=strip_tags($SEO_PACK['seo_text']);
$striped_seo_text = str_replace("\r", "", $striped_seo_text);
$striped_seo_text = str_replace("\n", "", $striped_seo_text);
$header->set_var( 'page_description', $striped_seo_text );
$seo_keywords = split(" ",$striped_seo_text);
$rand_keys = array_keys($seo_keywords);
if($topic == "General") {
$seo_keyword_string="News";
} else {
$seo_keyword_string="$topic";
}
for($i=0;$i<15;$i++) {
if( (strlen($seo_keywords[$rand_keys[$i]]) >= 4) && (strtolower($seo_keywords[$rand_keys[$i]]) <> "very") && (strtolower($seo_keywords[$rand_keys[$i]]) <> "any") && (strtolower($seo_keywords[$rand_keys[$i]]) <> "not") && (strtolower($seo_keywords[$rand_keys[$i]]) <> "that") && (strtolower($seo_keywords[$rand_keys[$i]]) <> "the") && (strtolower($seo_keywords[$rand_keys[$i]]) <> "their") && (strtolower($seo_keywords[$rand_keys[$i]]) <> "they") && (strtolower($seo_keywords[$rand_keys[$i]]) <> "and") && (strtolower($seo_keywords[$rand_keys[$i]]) <> "are")) {
$seo_keyword_string = $seo_keyword_string . ",". $seo_keywords[$rand_keys[$i]];
}
}
$header->set_var( 'page_keywords', $seo_keyword_string);
} elseif( ($SEO_PACK['seo_text']) && ($media_flag_cx=1) ) {
$striped_seo_text = strip_tags($SEO_PACK['seo_text']);
$striped_seo_text = str_replace("\r", "", $striped_seo_text);
$striped_seo_text = str_replace("\n", "", $striped_seo_text);
$striped_media_keywords = strip_tags($SEO_PACK['media_keywords']);
$striped_media_keywords = str_replace("\r", "", $striped_media_keywords);
$striped_media_keywords = str_replace("\n", "", $striped_media_keywords);
$header->set_var( 'page_description', $striped_seo_text );
$header->set_var( 'page_keywords', $striped_media_keywords);
} else {
$header->set_var( 'page_description', $pagetitle);
$header->set_var( 'page_keywords', "Pakistan, Pakistani, News, Business News, Health News, Entertainment News, Social News, Political News, Analysis,Citizen Journalism, Citizen Journalist, Views, People, Power");
////////////////////////////////////////////////// new segment ends here
}
$header->set_var( 'site_name', $_CONF['site_name']);
if (COM_onFrontpage()) {
$title_and_name = $_CONF['site_name'];
if (!empty($pagetitle)) {
$title_and_name .= ' - ' . $pagetitle;
}
} else {
$title_and_name = '';
if (!empty($pagetitle)) {
$title_and_name = $pagetitle . ' - ';
}
$title_and_name .= $_CONF['site_name'];
}
$header->set_var('page_title_and_site_name', $title_and_name);
$langAttr = '';
if( !empty( $_CONF['languages'] ) && !empty( $_CONF['language_files'] ))
{
$langId = COM_getLanguageId();
}
else
{
// try to derive the language id from the locale
$l = explode( '.', $_CONF['locale'] );
$langId = $l[0];
}
if( !empty( $langId ))
{
$l = explode( '-', str_replace( '_', '-', $langId ));
if(( count( $l ) == 1 ) && ( strlen( $langId ) == 2 ))
{
$langAttr = 'lang="' . $langId . '"';
}
else if( count( $l ) == 2 )
{
if(( $l[0] == 'i' ) || ( $l[0] == 'x' ))
{
$langId = implode( '-', $l );
$langAttr = 'lang="' . $langId . '"';
}
else if( strlen( $l[0] ) == 2 )
{
$langId = implode( '-', $l );
$langAttr = 'lang="' . $langId . '"';
}
else
{
$langId = $l[0];
}
}
}
$header->set_var('lang_id', $langId );
if (!empty($_CONF['languages']) && !empty($_CONF['language_files'])) {
$header->set_var('lang_attribute', $langAttr);
} else {
$header->set_var('lang_attribute', '');
}
$header->set_var( 'background_image', $_CONF['layout_url']
. '/images/bg.' . $_IMAGE_TYPE );
$header->set_var( 'site_url', $_CONF['site_url'] );
$header->set_var( 'site_admin_url', $_CONF['site_admin_url'] );
$header->set_var( 'layout_url', $_CONF['layout_url'] );
$header->set_var( 'site_mail', "mailto:{$_CONF['site_mail']}" );
$header->set_var( 'site_name', $_CONF['site_name'] );
$header->set_var( 'site_slogan', $_CONF['site_slogan'] );
$rdf = substr_replace( $_CONF['rdf_file'], $_CONF['site_url'], 0,
strlen( $_CONF['path_html'] ) - 1 );
$header->set_var( 'rdf_file', $rdf );
$header->set_var( 'rss_url', $rdf );
$msg = rtrim($LANG01[67]) . ' ' . $_CONF['site_name'];
if( !empty( $_USER['username'] ))
{
$msg .= ', ' . COM_getDisplayName( $_USER['uid'], $_USER['username'],
$_USER['fullname'] );
}
$curtime = COM_getUserDateTimeFormat();
$header->set_var( 'welcome_msg', $msg );
$header->set_var( 'datetime', $curtime[0] );
$header->set_var( 'site_logo', $_CONF['layout_url']
. '/images/logo.' . $_IMAGE_TYPE );
$header->set_var( 'css_url', $_CONF['layout_url'] . '/style.css' );
$header->set_var( 'theme', $_CONF['theme'] );
$header->set_var( 'charset', COM_getCharset());
if( empty( $LANG_DIRECTION ))
{
// default to left-to-right
$header->set_var( 'direction', 'ltr' );
}
else
{
$header->set_var( 'direction', $LANG_DIRECTION );
}
// Now add variables for buttons like e.g. those used by the Yahoo theme
$header->set_var( 'button_home', $LANG_BUTTONS[1] );
$header->set_var( 'button_contact', $LANG_BUTTONS[2] );
$header->set_var( 'button_contribute', $LANG_BUTTONS[3] );
$header->set_var( 'button_sitestats', $LANG_BUTTONS[7] );
$header->set_var( 'button_personalize', $LANG_BUTTONS[8] );
$header->set_var( 'button_search', $LANG_BUTTONS[9] );
$header->set_var( 'button_advsearch', $LANG_BUTTONS[10] );
$header->set_var( 'button_directory', $LANG_BUTTONS[11] );
// Get plugin menu options
$plugin_menu = PLG_getMenuItems();
if( $_COM_VERBOSE )
{
COM_errorLog( 'num plugin menu items in header = ' . count( $plugin_menu ), 1 );
}
// Now add nested template for menu items
COM_renderMenu( $header, $plugin_menu );
if( count( $plugin_menu ) == 0 )
{
$header->parse( 'plg_menu_elements', 'menuitem_none', true );
}
else
{
$count_plugin_menu = count( $plugin_menu );
for( $i = 1; $i <= $count_plugin_menu; $i++ )
{
$header->set_var( 'menuitem_url', current( $plugin_menu ));
$header->set_var( 'menuitem_text', key( $plugin_menu ));
if( $i == $count_plugin_menu )
{
$header->parse( 'plg_menu_elements', 'menuitem_last', true );
}
else
{
$header->parse( 'plg_menu_elements', 'menuitem', true );
}
next( $plugin_menu );
}
}
// Call to plugins to set template variables in the header
PLG_templateSetVars( 'header', $header );
if( $_CONF['left_blocks_in_footer'] == 1 )
{
$header->set_var( 'left_blocks', '' );
$header->set_var( 'geeklog_blocks', '' );
}
else
{
$lblocks = '';
/* Check if an array has been passed that includes the name of a plugin
* function or custom function
* This can be used to take control over what blocks are then displayed
*/
if( is_array( $what ))
{
$function = $what[0];
if( function_exists( $function ))
{
$lblocks = $function( $what[1], 'left' );
}
else
{
$lblocks = COM_showBlocks( 'left', $topic );
}
}
else if( $what <> 'none' )
{
// Now show any blocks -- need to get the topic if not on home page
$lblocks = COM_showBlocks( 'left', $topic );
}
if( empty( $lblocks ))
{
$header->set_var( 'left_blocks', '' );
$header->set_var( 'geeklog_blocks', '' );
}
else
{
$header->set_var( 'geeklog_blocks', $lblocks );
$header->parse( 'left_blocks', 'leftblocks', true );
$header->set_var( 'geeklog_blocks', '');
}
}
if( $_CONF['right_blocks_in_footer'] == 1 )
{
$header->set_var( 'right_blocks', '' );
$header->set_var( 'geeklog_blocks', '' );
}
else
{
$rblocks = '';
/* Check if an array has been passed that includes the name of a plugin
* function or custom function
* This can be used to take control over what blocks are then displayed
*/
if( is_array( $what ))
{
$function = $what[0];
if( function_exists( $function ))
{
$rblocks = $function( $what[1], 'right' );
}
else
{
$rblocks = COM_showBlocks( 'right', $topic );
}
}
else if( $what <> 'none' )
{
// Now show any blocks -- need to get the topic if not on home page
$rblocks = COM_showBlocks( 'right', $topic );
}
if( empty( $rblocks ))
{
$header->set_var( 'right_blocks', '' );
$header->set_var( 'geeklog_blocks', '' );
}
else
{
$header->set_var( 'geeklog_blocks', $rblocks, true );
$header->parse( 'right_blocks', 'rightblocks', true );
}
}
if( isset( $_CONF['advanced_editor'] ) && ( $_CONF['advanced_editor'] == 1 )
&& file_exists( $_CONF['path_layout']
. 'advanced_editor_header.thtml' ))
{
$header->set_file( 'editor' , 'advanced_editor_header.thtml');
$header->parse( 'advanced_editor', 'editor' );
}
else
{
$header->set_var( 'advanced_editor', '' );
}
// Call any plugin that may want to include extra Meta tags
// or Javascript functions
$header->set_var( 'plg_headercode', $headercode . PLG_getHeaderCode() );
// The following lines allow users to embed PHP in their templates. This
// is almost a contradition to the reasons for using templates but this may
// prove useful at times ...
// Don't use PHP in templates if you can live without it!
$tmp = $header->parse( 'index_header', 'header' );
$xml_declaration = '';
if ( get_cfg_var('short_open_tag') == '1' )
{
if ( preg_match( '/(<\?xml[^>]*>)(.*)/s', $tmp, $match ) )
{
$xml_declaration = $match[1] . LB;
$tmp = $match[2];
}
}
ob_start();
eval( '?>' . $tmp );
$retval = $xml_declaration . ob_get_contents();
ob_end_clean();
return $retval;
}
--
http://TazaKino.com - Pakistani News
Where YOU report the news
16
12
Quote
All times are EST. The time is now 06:58 am.
- Normal Topic
- Sticky Topic
- Locked Topic
- New Post
- Sticky Topic W/ New Post
- Locked Topic W/ New Post
- View Anonymous Posts
- Able to post
- Filtered HTML Allowed
- Censored Content