88 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * @package         Advanced Custom Fields
 | |
|  * @version         2.8.8 Pro
 | |
|  * 
 | |
|  * @author          Tassos Marinos <info@tassos.gr>
 | |
|  * @link            http://www.tassos.gr
 | |
|  * @copyright       Copyright © 2019 Tassos Marinos All Rights Reserved
 | |
|  * @license         GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
 | |
| */
 | |
| 
 | |
| defined('_JEXEC') or die;
 | |
| 
 | |
| use Joomla\Registry\Registry;
 | |
| use Joomla\CMS\Language\Text;
 | |
| 
 | |
| if (!$url = $field->value)
 | |
| {
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| $url = new Registry($url);
 | |
| 
 | |
| if (empty($url['url']))
 | |
| {
 | |
| 	return;
 | |
| }
 | |
| 
 | |
| $id  = 'acf_url_' . $item->id . '_' . $field->id;
 | |
| 
 | |
| // Output
 | |
| $rel = [];
 | |
| $CSSClass = trim('acf_url ' . $fieldParams->get('url_class'));
 | |
| $buffer = '<a id="' . $id . '" href="' . $url->get('url') . '" class="' . $CSSClass . '"';
 | |
| $noopener = $fieldParams->get('noopener', '1') === '1';
 | |
| 
 | |
| // Add noopener rel attribute
 | |
| $rel = array_merge($rel, [
 | |
| 	'noopener' => $noopener
 | |
| ]);
 | |
| 
 | |
| // Set target attribute
 | |
| if ($url->get('target') == 'new_tab')
 | |
| {
 | |
| 	$buffer .= ' target="_blank"';
 | |
| 
 | |
| 	// Force it on new_tab links
 | |
| 	$rel = array_merge($rel, [
 | |
| 		'noopener' => 1
 | |
| 	]);
 | |
| }
 | |
| 
 | |
| if ($url->get('target') == 'popup')
 | |
| {
 | |
| 	$onclick = $fieldParams->get('onclick');
 | |
| 	$new_window_code = 'window.open(\'' . $url->get('url') . '\', \'_blank\', \'width=800,height=600\'); return false;';
 | |
| 	$fieldParams->set('onclick', $onclick . $new_window_code);
 | |
| }
 | |
| 
 | |
| // Set the onClick handler - Do not remove this block from Free version as it's required by the target property.
 | |
| $onclick = $fieldParams->get('onclick');
 | |
| if (!empty($onclick)) {
 | |
| 	$buffer .= ' onclick="' . $onclick . '"';
 | |
| }
 | |
| 
 | |
| 
 | |
| // Set rel attributes
 | |
| $rel = array_filter(array_merge($rel, [
 | |
| 	'noreferrer' => $fieldParams->get('noreferrer', false),
 | |
| 	'nofollow'   => $fieldParams->get('nofollow', false)
 | |
| ]));
 | |
| 
 | |
| // Treat it as a download link
 | |
| if ($fieldParams->get('treat_as_download_link', false))
 | |
| {
 | |
| 	$buffer .= ' download';
 | |
| }
 | |
| 
 | |
| 
 | |
| if ($rel)
 | |
| {
 | |
| 	$buffer .= ' rel="' . implode(' ', array_keys($rel)) . '"';
 | |
| }
 | |
| 
 | |
| $buffer .= '>' . Text::_($url->get('text', $fieldParams->get('default_text'))) . '</a>';
 | |
| 
 | |
| echo $buffer; |