relative2absolute( $url, $base_url );
//Skip invalid URLs (again)
if ( ! $url || ( strlen( $url ) < 6 ) ) {
return $instances;
}
}
//The URL is okay, create and populate a new link instance.
$instance = new blcLinkInstance();
$instance->set_parser( $this );
$instance->raw_url = $raw_url;
$instance->link_text = $default_link_text;
$link_obj = new blcLink( $url ); //Creates or loads the link
$instance->set_link( $link_obj );
$instances[] = $instance;
}
return $instances;
}
/**
* Change the URL in a acf field to another one.
*
* This is tricky because there can be multiple acf fields with the same name
* but different values. So we ignore $content (which might be an array of multiple
* acf values) and use the old raw_url that we stored when parsing the field(s)
* instead.
*
* @see blcACFParser::parse()
*
* @param string $content Ignored.
* @param string $new_url The new URL.
* @param string $old_url Ignored.
* @param string $old_raw_url The current meta value.
*
* @return array|WP_Error
*/
function edit( $content, $new_url, $old_url, $old_raw_url ) {
//For multiline fields (like 'enclosure') we only want to change the first line.
$lines = explode( "\n", $old_raw_url );
array_shift( $lines ); //Discard the old first line
array_unshift( $lines, $new_url ); //Insert the new URL in its place.
$content = implode( "\n", $lines );
return array(
'content' => $content,
'raw_url' => $new_url,
);
}
/**
* Get the link text for printing in the "Broken Links" table.
*
* @param blcLinkInstance $instance
* @param string $context
* @return string HTML
*/
function ui_get_link_text( $instance, $context = 'display' ) {
$image_html = sprintf(
'
',
esc_attr( plugins_url( '/images/font-awesome/font-awesome-code.png', BLC_PLUGIN_FILE ) ),
__( 'Custom field', 'broken-link-checker' )
);
$field_html = sprintf(
'%s
',
$instance->container_field
);
if ( 'email' !== $context ) {
$field_html = $image_html . $field_html;
}
return $field_html;
}
}