PDA

View Full Version : Optional online validation of URL or reciprocal URL


yktan
06-28-2005, 07:43 AM
This mod implements an optional online validation of URL or reciprocal URL during addition or edition of a link in the admin control panel. This mod is useful for adminstrator to test whether or not a URL exists before adding it to the database.

Open up admin\ dir_links_edit.php

Find:
SmartyValidate :: register_criteria('isNotEqual', 'validate_not_equal', 'dir_links_edit');
Add below:
SmartyValidate :: register_criteria('isURLOnlineDependant', 'validate_url_online_dependant', 'dir_links_edit');

Find:
SmartyValidate :: register_validator('v_URL', 'URL', 'isURL', false, false, false, 'trim', 'dir_links_edit');
Add below:
SmartyValidate :: register_validator('v_URL_ONLINE_DEPENDANT', 'URL', 'isURLOnlineDependant', false, false, false, null, 'dir_links_edit');

Find:
SmartyValidate :: register_validator('v_RECPR_URL', 'RECPR_URL', 'isURL', true, false, false, 'trim', 'dir_links_edit');
Add below:
SmartyValidate :: register_validator('v_RECPR_URL_ONLINE_DEPENDANT', 'RECPR_URL', 'isURLOnlineDependant', false, false, false, null, 'dir_links_edit');

Find:
$data['RECPR_URL'] = "http://".$data['RECPR_URL'];
Add below:
$form_data = $data;
if (isset($_REQUEST['VALIDATE_URL'])){
$form_data['VALIDATE_URL'] = $_REQUEST['VALIDATE_URL'];
}
if (isset($_REQUEST['VALIDATE_RECPR_URL'])){
$form_data['VALIDATE_RECPR_URL'] = $_REQUEST['VALIDATE_RECPR_URL'];
}

Find:
if (SmartyValidate :: is_valid($data, 'dir_links_edit')) {
Replace with:
if (SmartyValidate :: is_valid($form_data, 'dir_links_edit')) {

Find:
$tpl->assign($data);
Replace with:
$form_data = $data;
if (isset($_REQUEST['VALIDATE_URL'])){
$form_data['VALIDATE_URL'] = $_REQUEST['VALIDATE_URL'];
}
if (isset($_REQUEST['VALIDATE_RECPR_URL'])){
$form_data['VALIDATE_RECPR_URL'] = $_REQUEST['VALIDATE_RECPR_URL'];
}
$tpl->assign($form_data);


Open up templates\admin\ dir_links_edit.tpl

Find:
{validate form="dir_links_edit" id="v_URL" message=$smarty.capture.invalid_url}
Add below:
{validate form="dir_links_edit" id="v_URL_ONLINE_DEPENDANT" dependant_field="VALIDATE_URL" message=$smarty.capture.url_not_online}

Find:
<tr>
<td class="label">{l}Description{/l}:</td>
<td class="smallDesc">
<textarea name="DESCRIPTION" rows="3" cols="30" class="text">{$DESCRIPTION}</textarea>
</td>
</tr>
Add above:
<tr>
<td class="label">{l}Validate URL{/l}:</td>
<td class="smallDesc">
<input type="checkbox" name="VALIDATE_URL" value="1" {if $VALIDATE_URL}checked="1"{/if} />
</td>
</tr>

Find:
<input type="text" name="RECPR_URL" value="{$RECPR_URL}" size="40" maxlength="255" class="text"/>{validate form="dir_links_edit" id="v_RECPR_URL" message=$smarty.capture.invalid_url}
Add below:
{validate form="dir_links_edit" id="v_RECPR_URL_ONLINE_DEPENDANT" dependant_field="VALIDATE_RECPR_URL" message=$smarty.capture.url_not_online}

Find:
<tr>
<td class="label"><span class='req'>*</span>{l}Status{/l}:</td>
<td class="smallDesc">
{html_options options=$stats selected=$STATUS name="STATUS"}
</td>
</tr>
Add above:
<tr>
<td class="label">{l}Validate Reciprocal URL{/l}:</td>
<td class="smallDesc">
<input type="checkbox" name="VALIDATE_RECPR_URL" value="1" {if $VALIDATE_RECPR_URL}checked="1"{/if} />
</td>
</tr>


Open up include\functions.php

Find:
function validate_url_online($value, $empty, & $params, & $form) {
$ret = get_url($value, URL_HEADERS);
return $ret['status'] ? 1 : 0;
}
Add below:
function validate_url_online_dependant($value, $empty, &$params, &$formvars) {
if(!isset($formvars[$params['dependant_field']]) || strlen($formvars[$params['dependant_field']]) == 0){
return true;
}
$ret = get_url($value, URL_HEADERS);
return $ret['status'] ? 1 : 0;
}