This repository has been archived on 2026-10-23. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
studio11/wp-content/plugins/shadowbox-js/shadowbox-title-push.php
T
2011-07-31 17:32:10 +02:00

98 lines
2.8 KiB
PHP
Executable File

<?php
/**
* ShadowboxTitlePush class for Pushing the image attribute onto anchor tags
*
* This class contains all functions and actions required for ShadowboxTitle to work on the frontend of WordPress
*
* @since 3.0.3
* @package shadowbox-js
* @subpackage TitlePush
*/
/*
Plugin Name: Shadowbox JS - Use Title from Image
Plugin URI: http://sivel.net/wordpress/shadowbox-js/
Description: Push the title attribute from the img tag to the anchor tag
Version: 3.0.3.8
Author: Matt Martz
Author URI: http://sivel.net/
Text Domain: shadowbox-js
Domain Path: shadowbox-js/localization
License: LGPL
Shadowbox JS (c) 2008-2010 Matt Martz (http://sivel.net/)
Shadowbox JS is released under the GNU General Public License (LGPL)
http://www.gnu.org/licenses/lgpl-2.1.txt
Shadowbox (c) 2007-2010 Michael J. I. Jackson (http://www.shadowbox-js.com/)
Shadowbox is licensed under the Shadowbox.js License version 1.0
http://www.shadowbox-js.com/LICENSE
JW FLV Media Player (c) 2008 LongTail As Solutions (http://www.longtailvideo.com/)
JW FLV Media Player is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License
http://creativecommons.org/licenses/by-nc-sa/3.0/
*/
class ShadowboxTitlePush {
/**
* PHP 4 Style constructor which calls the below PHP5 Style Constructor
*
* @since 3.0.3
* @return none
*/
function ShadowboxTitlePush () {
$this->__construct();
}
/**
* Setup plugin and hook into WordPress
*
* @return none
* @since 3.0.3
*/
function __construct () {
add_filter ( 'the_content' , array ( &$this , 'push_title_to_anchor' ) , 11 );
add_filter ( 'the_excerpt' , array ( &$this , 'push_title_to_anchor' ) , 11 );
add_filter ( 'wp_get_attachment_link' , array ( &$this , 'push_title_to_anchor' ) , 11 );
}
/**
* Filter the_content and the_excerpt finding a title attribute on an <img> tag
* and pushing it to the parent <a> tag if the title attribute does not exist on
* the <a> tag.
*
* @since 3.0.3
* @param string $content The content of the post
* @return string
*/
function push_title_to_anchor ( $content ) {
$master_pattern = '%<a[^>]+><img[^>]+></a>%';
$anchor_pattern = '%(<a[^>]+)>%';
if ( preg_match_all ( $master_pattern , $content , $links ) ) {
foreach ( $links[0] as $link ) {
$anchor_title_pattern = '%<a[^>]+title=([\'"]).*?\\1[^>]+?>%';
$img_title_pattern = '%<img[^>]+(title=([\'"]).*?\\2)[^>]+?>%';
if ( preg_match ( $img_title_pattern , $link , $title ) && ! preg_match ( $anchor_title_pattern , $link ) ) {
$link_replace = preg_replace ( $anchor_pattern , '$1 ' . $title[1] . '>' , $link );
$content = str_replace ( $link , $link_replace , $content );
}
}
}
return $content;
}
}
/**
* Instantiate the ShadowboxTitlePush Class
*/
if ( ! is_admin () ) {
$ShadowboxTitlePush = new ShadowboxTitlePush ();
}