Ik probeer een script aan te passen die gemaakt is voor Joomla. Deze plugin maakt onderdeel uit van een component van Joomsuite. De plugin die ik wil maken die moet van een bepaalde tabel het artikel-id ophalen en weergeven.
Meer niet. De plugin die ik hiervoor wil gebruiken is een plugin die bedoeld is om een email ades van de user weer te geven. User kan deze desgewenst aanpassen.
Wie kan mij hiermee helpen.
script email.php
<?php
// Check to ensure this file is included in Joomla!
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.plugin.plugin' );
class plgJoomsuite_content_fieldsEmail extends JPlugin
{
function plgJoomsuite_content_fieldsEmail( &$subject, $params )
{
parent::__construct( $subject, $params );
}
function onRenderField(&$obj, &$params, $type)
{
if($type != 'email') return;
$def = JRequest::getVar('fields', null, 'default', 'array');
if($def[$obj->id]) $obj->field_value = $def[$obj->id];
$user = JFactory::getUser();
?>
<input type="text" style="width:<?php echo $params->get('field_size')?>" name="fields[<?php echo $obj->id?>]"
value="<?php echo ($obj->field_value ? stripslashes($obj->field_value) : ($params->get('user_default') ? $user->get('email'): NULL)) ?>"/>
<?php
}
function onBeforeSave(&$value, &$params, $type, $id, $row, &$error)
{
if($type != 'email') return;
if(!$value) return;
jimport('joomla.utilities.mail');
if(!JMailHelper::isEmailAddress($value))
{
JError::raiseWarning(500, 'Email is not correct');
$error = 1;
}
}
function onRenderFieldValue(&$out, &$field, &$params, $type, $user)
{
if(!$field->field_value) return;
if($type != 'email') return;
$icon = '';
if($params->get('show_icon')) $icon = JHTML::image(JURI::base().
'/components/com_resource/images/mail.gif', 'mail icon', array('align' => 'absmiddle'));
if($params->get('encode')){
$email = $field->field_value;
$field->field_value = '';
$len = strlen($email);
for ($i=0;$i<$len;$i++)
{
$r = rand(0, 1);
$field->field_value .= ($r ? "&#" . ord($email{$i}) .';' : $email{$i} );
}
}
if($params->get('show')) $text = $field->field_value; else $text = JText::_('Email');
$out = $icon.' '.JHTML::link('mailto:'.$field->field_value, $text);
}
}
script email.xml
<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="plugin" group="joomsuite_content_fields" method="upgrade">
<name>Content Field - Email</name>
<author>JoomSuite</author>
<creationDate>May 2008</creationDate>
<copyright>Copyright (C) 2005 - 2008 JoomSuite. All rights reserved.</copyright>
<license>Commercial</license>
<authorEmail>[email protected]</authorEmail>
<authorUrl>www.joomsuite.com</authorUrl>
<version>1.3</version>
<description>Plugin for JoomSuite Content add new field type (Email)</description>
<files>
<filename plugin="email">email.php</filename>
</files>
<params>
<param name="encode" type="radio" default="1" label="Obfuscate Email" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param name="show" type="radio" default="0" label="Show email" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
<param name="user_default" type="radio" default="1" label="Insert User's email as default" description="">
<option value="0">No</option>
<option value="1">Yes</option>
</param>
</params>
</install>
Mijn eigen kennis van PHP is marginaal
knop om dit te doen.