2004-12-25 20:23:10 +00:00
|
|
|
<?php
|
2005-01-27 15:42:53 +00:00
|
|
|
/******************************************/
|
|
|
|
|
/* screenshot class and related functions */
|
|
|
|
|
/******************************************/
|
|
|
|
|
|
2005-02-04 02:55:50 +00:00
|
|
|
require(BASE."include/image.php");
|
2005-01-27 17:16:25 +00:00
|
|
|
// load the watermark
|
|
|
|
|
$watermark = new image("/images/watermark.png");
|
2005-01-27 15:42:53 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Screenshot class for handling screenshots and thumbnails
|
|
|
|
|
*/
|
|
|
|
|
class Screenshot {
|
|
|
|
|
var $iScreenshotId;
|
|
|
|
|
var $sDescription;
|
|
|
|
|
var $oScreenshotImage;
|
|
|
|
|
var $oThumbnailImage;
|
|
|
|
|
var $bQueued;
|
|
|
|
|
var $iVersionId;
|
|
|
|
|
var $iAppId;
|
2005-01-27 16:42:41 +00:00
|
|
|
var $sUrl;
|
2005-02-07 23:49:06 +00:00
|
|
|
var $sSubmitTime;
|
2005-02-04 02:55:50 +00:00
|
|
|
var $iSubmitterId;
|
2005-01-27 15:42:53 +00:00
|
|
|
|
|
|
|
|
/**
|
2005-02-06 17:47:10 +00:00
|
|
|
* Constructor, fetches the data and image objects if $iScreenshotId is given.
|
2005-01-27 15:42:53 +00:00
|
|
|
*/
|
2005-02-07 23:49:06 +00:00
|
|
|
function Screenshot($iScreenshotId = null)
|
2005-01-27 15:42:53 +00:00
|
|
|
{
|
|
|
|
|
// we are working on an existing screenshot
|
|
|
|
|
if($iScreenshotId)
|
|
|
|
|
{
|
2005-02-07 23:49:06 +00:00
|
|
|
$sQuery = "SELECT appData.*, appVersion.appId AS appId
|
|
|
|
|
FROM appData, appVersion
|
|
|
|
|
WHERE appData.versionId = appVersion.versionId
|
|
|
|
|
AND id = ".$iScreenshotId."
|
2005-02-04 02:55:50 +00:00
|
|
|
AND type = 'image'";
|
2005-01-27 15:42:53 +00:00
|
|
|
if($hResult = query_appdb($sQuery))
|
|
|
|
|
{
|
|
|
|
|
$oRow = mysql_fetch_object($hResult);
|
2005-02-06 17:47:10 +00:00
|
|
|
$this->iScreenshotId = $iScreenshotId;
|
2005-01-27 15:42:53 +00:00
|
|
|
$this->sDescription = $oRow->description;
|
2005-02-07 23:49:06 +00:00
|
|
|
$this->oScreenshotImage = new Image("/data/screenshots/".$oRow->url);
|
|
|
|
|
$this->oThumbnailImage = new Image("/data/screenshots/thumbnails/".$oRow->url);
|
2005-01-27 15:42:53 +00:00
|
|
|
$this->iAppId = $oRow->appId;
|
|
|
|
|
$this->iVersionId = $oRow->versionId;
|
2005-01-27 16:42:41 +00:00
|
|
|
$this->sUrl = $oRow->url;
|
2005-02-07 23:49:06 +00:00
|
|
|
$this->bQueued = $oRow->queued;
|
|
|
|
|
$this->sSubmitTime = $oRow->submitTime;
|
|
|
|
|
$this->iSubmitterId = $oRow->submitterId;
|
2005-01-27 15:42:53 +00:00
|
|
|
}
|
2005-02-04 02:55:50 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2005-02-06 17:47:10 +00:00
|
|
|
/**
|
|
|
|
|
* Creates a new screenshot.
|
|
|
|
|
*/
|
2005-02-04 02:55:50 +00:00
|
|
|
function create($iVersionId = null, $sDescription = null, $hFile = null)
|
|
|
|
|
{
|
2005-02-19 01:22:32 +00:00
|
|
|
$oVersion = new Version($iVersionId);
|
2005-02-04 02:55:50 +00:00
|
|
|
// Security, if we are not an administrator or a maintainer, the screenshot must be queued.
|
2005-02-19 01:22:32 +00:00
|
|
|
if(!($_SESSION['current']->hasPriv("admin") || $_SESSION['current']->isMaintainer($oVersion->iVersionId) || $_SESSION['current']->isSuperMaintainer($oVersion->iAppId)))
|
2005-01-27 15:42:53 +00:00
|
|
|
{
|
2005-02-04 02:55:50 +00:00
|
|
|
$this->bQueued = true;
|
2005-02-19 01:22:32 +00:00
|
|
|
} else
|
|
|
|
|
{
|
|
|
|
|
$this->bQueued = false;
|
2005-02-04 02:55:50 +00:00
|
|
|
}
|
|
|
|
|
|
2005-02-07 23:49:06 +00:00
|
|
|
$aInsert = compile_insert_string(array( 'versionId' => $iVersionId,
|
|
|
|
|
'type' => "image",
|
|
|
|
|
'description' => $sDescription,
|
|
|
|
|
'queued' => $this->bQueued,
|
|
|
|
|
'submitterId' => $_SESSION['current']->iUserId ));
|
|
|
|
|
$sFields = "({$aInsert['FIELDS']})";
|
|
|
|
|
$sValues = "({$aInsert['VALUES']})";
|
|
|
|
|
|
|
|
|
|
if(query_appdb("INSERT INTO appData $sFields VALUES $sValues", "Error while creating a new screenshot."))
|
2005-02-04 02:55:50 +00:00
|
|
|
{
|
|
|
|
|
$this->iScreenshotId = mysql_insert_id();
|
2005-02-07 23:49:06 +00:00
|
|
|
if(!move_uploaded_file($hFile['tmp_name'], "data/screenshots/originals/".$this->iScreenshotId))
|
2005-01-27 15:42:53 +00:00
|
|
|
{
|
2005-02-04 02:55:50 +00:00
|
|
|
|
2005-01-27 15:42:53 +00:00
|
|
|
// whoops, moving failed, do something
|
2005-02-07 23:49:06 +00:00
|
|
|
addmsg("Unable to move screenshot from ".$hFile['tmp_name']." to data/screenshots/originals/".$this->iScreenshotId, "red");
|
2005-02-04 02:55:50 +00:00
|
|
|
$sQuery = "DELETE
|
2005-02-07 23:49:06 +00:00
|
|
|
FROM appData
|
|
|
|
|
WHERE id = '".$this->iScreenshotId."'";
|
2005-01-27 15:42:53 +00:00
|
|
|
query_appdb($sQuery);
|
|
|
|
|
return false;
|
|
|
|
|
} else // we managed to copy the file, now we have to process the image
|
|
|
|
|
{
|
2005-01-27 16:42:41 +00:00
|
|
|
$this->sUrl = $this->iScreenshotId;
|
2005-01-27 15:42:53 +00:00
|
|
|
$this->generate();
|
|
|
|
|
// we have to update the entry now that we know its name
|
2005-02-07 23:49:06 +00:00
|
|
|
$sQuery = "UPDATE appData
|
2005-02-04 02:55:50 +00:00
|
|
|
SET url = '".$this->iScreenshotId."'
|
2005-02-07 23:49:06 +00:00
|
|
|
WHERE id = '".$this->iScreenshotId."'";
|
2005-01-27 15:42:53 +00:00
|
|
|
if (!query_appdb($sQuery)) return false;
|
|
|
|
|
}
|
2005-02-04 02:55:50 +00:00
|
|
|
|
|
|
|
|
$this->screenshot($this->iScreenshotId,$this->bQueued);
|
|
|
|
|
$this->mailMaintainers();
|
|
|
|
|
return true;
|
2005-01-27 15:42:53 +00:00
|
|
|
}
|
2005-02-04 02:55:50 +00:00
|
|
|
else
|
|
|
|
|
return false;
|
2005-01-27 15:42:53 +00:00
|
|
|
}
|
|
|
|
|
|
2005-02-04 02:55:50 +00:00
|
|
|
|
2005-01-27 15:42:53 +00:00
|
|
|
/**
|
2005-02-04 02:55:50 +00:00
|
|
|
* Deletes the screenshot from the database.
|
|
|
|
|
* and request its deletion from the filesystem (including the thumbnail).
|
2005-01-27 15:42:53 +00:00
|
|
|
*/
|
2005-02-04 02:55:50 +00:00
|
|
|
function delete($bSilent=false)
|
2005-01-27 15:42:53 +00:00
|
|
|
{
|
2005-02-07 23:49:06 +00:00
|
|
|
$sQuery = "DELETE FROM appData
|
|
|
|
|
WHERE id = ".$this->iScreenshotId."
|
2005-02-04 02:55:50 +00:00
|
|
|
AND type = 'image'
|
|
|
|
|
LIMIT 1";
|
2005-01-27 15:42:53 +00:00
|
|
|
if($hResult = query_appdb($sQuery))
|
|
|
|
|
{
|
|
|
|
|
$this->oScreenshotImage->delete();
|
|
|
|
|
$this->oThumbnailImage->delete();
|
2005-02-07 23:49:06 +00:00
|
|
|
unlink($_SERVER['DOCUMENT_ROOT']."/data/screenshots/originals/".$this->iScreenshotId);
|
2005-02-04 02:55:50 +00:00
|
|
|
if(!$bSilent)
|
|
|
|
|
$this->mailMaintainers(true);
|
|
|
|
|
}
|
|
|
|
|
if($this->iSubmitterId)
|
|
|
|
|
{
|
|
|
|
|
$this->mailSubmitter(true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Move screenshot out of the queue.
|
|
|
|
|
*/
|
|
|
|
|
function unQueue()
|
|
|
|
|
{
|
|
|
|
|
// If we are not in the queue, we can't move the screenshot out of the queue.
|
|
|
|
|
if(!$this->bQueued)
|
|
|
|
|
return false;
|
|
|
|
|
|
2005-02-07 23:49:06 +00:00
|
|
|
$sUpdate = compile_update_string(array('queued' => "false"));
|
|
|
|
|
if(query_appdb("UPDATE appData SET ".$sUpdate." WHERE id=".$this->iScreenshotId))
|
|
|
|
|
{
|
2005-02-15 18:58:06 +00:00
|
|
|
$this->bQueued = false;
|
2005-02-04 02:55:50 +00:00
|
|
|
// we send an e-mail to intersted people
|
|
|
|
|
$this->mailSubmitter();
|
|
|
|
|
$this->mailMaintainers();
|
2005-02-06 17:47:10 +00:00
|
|
|
// the screenshot has been unqueued
|
|
|
|
|
addmsg("The screenshot has been unqueued.", "green");
|
2005-01-27 15:42:53 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2005-02-04 02:55:50 +00:00
|
|
|
|
2005-01-27 15:42:53 +00:00
|
|
|
/**
|
2005-02-04 02:55:50 +00:00
|
|
|
* Cleans up the memory.
|
2005-01-27 15:42:53 +00:00
|
|
|
*/
|
|
|
|
|
function free()
|
|
|
|
|
{
|
2005-02-04 02:55:50 +00:00
|
|
|
if($this->oScreenshotImage)
|
|
|
|
|
$this->oScreenshotImage->destroy();
|
|
|
|
|
if($this->oThumbnailImage)
|
|
|
|
|
$this->oThumbnailImage->destroy();
|
2005-01-27 15:42:53 +00:00
|
|
|
}
|
|
|
|
|
|
2005-02-04 02:55:50 +00:00
|
|
|
|
2005-01-27 15:42:53 +00:00
|
|
|
/**
|
2005-02-04 02:55:50 +00:00
|
|
|
* Sets the screenshot description.
|
2005-01-27 15:42:53 +00:00
|
|
|
*/
|
|
|
|
|
function setDescription($sDescription)
|
|
|
|
|
{
|
2005-02-07 23:49:06 +00:00
|
|
|
$sQuery = "UPDATE id SET description = '".$sDescription."' WHERE id = ".$this->iScreenshotId." AND type = 'image'";
|
2005-01-27 15:42:53 +00:00
|
|
|
if($hResult = query_appdb($sQuery))
|
|
|
|
|
$this->sDescription = $sDescription;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This method generates a watermarked screenshot and thumbnail from the original file.
|
|
|
|
|
* Usefull when changing thumbnail, upgrading GD, adding an image, etc.
|
|
|
|
|
*/
|
|
|
|
|
function generate()
|
|
|
|
|
{
|
2005-01-27 17:16:25 +00:00
|
|
|
global $watermark;
|
2005-01-27 15:42:53 +00:00
|
|
|
// first we will create the thumbnail
|
|
|
|
|
// load the screenshot
|
2005-02-07 23:49:06 +00:00
|
|
|
$this->oThumbnailImage = new Image("/data/screenshots/originals/".$this->sUrl);
|
2005-01-27 15:42:53 +00:00
|
|
|
$this->oThumbnailImage->make_thumb(0,0,1,'#000000');
|
|
|
|
|
// store the image
|
2005-02-07 23:49:06 +00:00
|
|
|
$this->oThumbnailImage->output_to_file($_SERVER['DOCUMENT_ROOT']."/data/screenshots/thumbnails/".$this->sUrl);
|
2005-01-27 15:42:53 +00:00
|
|
|
|
|
|
|
|
// now we'll process the screenshot image for watermarking
|
|
|
|
|
// load the screenshot
|
2005-02-07 23:49:06 +00:00
|
|
|
$this->oScreenshotImage = new Image("/data/screenshots/originals/".$this->sUrl);
|
2005-01-27 15:42:53 +00:00
|
|
|
// resize the image
|
|
|
|
|
$this->oScreenshotImage->make_full();
|
|
|
|
|
// store the resized image
|
2005-02-07 23:49:06 +00:00
|
|
|
$this->oScreenshotImage->output_to_file($_SERVER['DOCUMENT_ROOT']."/data/screenshots/".$this->sUrl);
|
2005-01-27 15:42:53 +00:00
|
|
|
// reload the resized screenshot
|
2005-02-07 23:49:06 +00:00
|
|
|
$this->oScreenshotImage = new Image("/data/screenshots/".$this->sUrl);
|
2005-01-27 17:16:25 +00:00
|
|
|
|
2005-01-27 15:42:53 +00:00
|
|
|
// add the watermark to the screenshot
|
|
|
|
|
$this->oScreenshotImage->add_watermark($watermark->get_image_resource());
|
|
|
|
|
// store the watermarked image
|
2005-02-07 23:49:06 +00:00
|
|
|
$this->oScreenshotImage->output_to_file($_SERVER['DOCUMENT_ROOT']."/data/screenshots/".$this->sUrl);
|
2005-01-27 15:42:53 +00:00
|
|
|
}
|
|
|
|
|
|
2005-02-04 02:55:50 +00:00
|
|
|
|
|
|
|
|
function mailSubmitter($bRejected=false)
|
|
|
|
|
{
|
|
|
|
|
if($this->iSubmitterId)
|
|
|
|
|
{
|
|
|
|
|
$oSubmitter = new User($this->iSubmitterId);
|
|
|
|
|
if(!$bRejected)
|
|
|
|
|
{
|
|
|
|
|
$sSubject = "Submitted screenshot accepted";
|
|
|
|
|
$sMsg = "The screenshot you submitted for ".lookup_app_name($this->appId)." ".lookup_version_name($this->versionId)." has been accepted.";
|
2005-02-05 21:49:39 +00:00
|
|
|
} else
|
|
|
|
|
{
|
2005-02-04 02:55:50 +00:00
|
|
|
$sSubject = "Submitted screenshot rejected";
|
2005-02-05 21:49:39 +00:00
|
|
|
$sMsg = "The screenshot you submitted for ".lookup_app_name($this->appId)." ".lookup_version_name($this->versionId)." has been rejected.";
|
|
|
|
|
}
|
|
|
|
|
$sMsg .= $_REQUEST['replyText']."\n";
|
|
|
|
|
$sMsg .= "We appreciate your help in making the Application Database better for all users.";
|
2005-02-04 02:55:50 +00:00
|
|
|
|
2005-02-05 21:49:39 +00:00
|
|
|
mail_appdb($oSubmitter->sEmail, $sSubject ,$sMsg);
|
2005-02-04 02:55:50 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function mailMaintainers($bDeleted=false)
|
|
|
|
|
{
|
|
|
|
|
if(!$bDeleted)
|
|
|
|
|
{
|
|
|
|
|
if(!$this->bQueued)
|
|
|
|
|
{
|
|
|
|
|
$sSubject = "Screenshot for ".lookup_app_name($this->iAppId)." ".lookup_version_name($this->iVersionId)." added by ".$_SESSION['current']->sRealname;
|
|
|
|
|
$sMsg = APPDB_ROOT."appview.php?versionId=".$this->iVersionId."\n";
|
|
|
|
|
if($this->iSubmitterId)
|
|
|
|
|
{
|
|
|
|
|
$oSubmitter = new User($this->iSubmitterId);
|
|
|
|
|
$sMsg .= "This screenshot has been submitted by ".$oSubmitter->sRealname.".";
|
|
|
|
|
$sMsg .= "\n";
|
|
|
|
|
}
|
|
|
|
|
addmsg("The screenshot was successfully added into the database.", "green");
|
|
|
|
|
} else // Screenshot queued.
|
|
|
|
|
{
|
|
|
|
|
$sSubject = "Screenshot for ".lookup_app_name($this->iAppId)." ".lookup_version_name($this->iVersionId)." submitted by ".$_SESSION['current']->sRealname;
|
|
|
|
|
$sMsg = APPDB_ROOT."appview.php?versionId=".$this->iVersionId."\n";
|
|
|
|
|
$sMsg .= "This screenshot has been queued.";
|
|
|
|
|
$sMsg .= "\n";
|
|
|
|
|
addmsg("The screenshot you submitted will be added to the database database after being reviewed.", "green");
|
|
|
|
|
}
|
|
|
|
|
} else // Screenshot deleted.
|
|
|
|
|
{
|
|
|
|
|
$sSubject = "Screenshot for ".lookup_app_name($this->iAppId)." ".lookup_version_name($this->iVersionId)." deleted by ".$_SESSION['current']->sRealname;
|
|
|
|
|
$sMsg = APPDB_ROOT."appview.php?versionId=".$this->iVersionId."\n";
|
|
|
|
|
addmsg("Screenshot deleted.", "green");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$sEmail = get_notify_email_address_list(null, $this->iVersionId);
|
|
|
|
|
if($sEmail)
|
|
|
|
|
mail_appdb($sEmail, $sSubject ,$sMsg);
|
|
|
|
|
}
|
2005-01-27 15:42:53 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Screenshot functions that are not part of the class
|
|
|
|
|
*/
|
2004-12-25 20:23:10 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Get a random image for a particular version of an app.
|
|
|
|
|
* If the version is not set, get a random app image
|
|
|
|
|
*/
|
2005-02-04 02:55:50 +00:00
|
|
|
function get_screenshot_img($iAppId = null, $iVersionId = null)
|
2004-12-25 20:23:10 +00:00
|
|
|
{
|
2005-02-04 02:55:50 +00:00
|
|
|
// we want a random screenshots for this app
|
|
|
|
|
if($iAppId)
|
2004-12-25 20:23:10 +00:00
|
|
|
{
|
2005-02-04 02:55:50 +00:00
|
|
|
$hResult = query_appdb("SELECT appData.*, RAND() AS rand
|
|
|
|
|
FROM appData, appVersion
|
|
|
|
|
WHERE appData.versionId = appVersion.versionId
|
|
|
|
|
AND appVersion.appId = $iAppId
|
|
|
|
|
AND type = 'image'
|
2005-02-17 01:16:51 +00:00
|
|
|
AND appData.queued = 'false'
|
2005-02-04 02:55:50 +00:00
|
|
|
ORDER BY rand");
|
|
|
|
|
} else if ($iVersionId) // we want a random screenshot for this version
|
2004-12-25 20:23:10 +00:00
|
|
|
{
|
2005-02-04 02:55:50 +00:00
|
|
|
$hResult = query_appdb("SELECT *, RAND() AS rand
|
|
|
|
|
FROM appData
|
|
|
|
|
WHERE versionId = $iVersionId
|
|
|
|
|
AND type = 'image'
|
2005-02-17 01:16:51 +00:00
|
|
|
AND queued = 'false'
|
2005-02-04 02:55:50 +00:00
|
|
|
ORDER BY rand");
|
2004-12-25 20:23:10 +00:00
|
|
|
}
|
2005-02-04 02:55:50 +00:00
|
|
|
if(!$hResult || !mysql_num_rows($hResult))
|
2004-12-25 20:23:10 +00:00
|
|
|
{
|
2005-02-04 02:55:50 +00:00
|
|
|
$sImgFile = '<img src="'.BASE.'images/no_screenshot.png" alt="No Screenshot" />';
|
|
|
|
|
} else
|
|
|
|
|
{
|
|
|
|
|
$oRow = mysql_fetch_object($hResult);
|
2005-02-11 23:42:50 +00:00
|
|
|
$sImgFile = '<img src="appimage.php?thumbnail=true&id='.$oRow->id.'" alt="'.$oRow->description.'" />';
|
2004-12-25 20:23:10 +00:00
|
|
|
}
|
|
|
|
|
|
2005-02-04 02:55:50 +00:00
|
|
|
$sImg = html_frame_start("",'128','',2);
|
|
|
|
|
if($iVersionId || mysql_num_rows($hResult))
|
2005-02-11 23:42:50 +00:00
|
|
|
$sImg .= "<a href='screenshots.php?appId=$iAppId&versionId=$iVersionId'>$sImgFile</a>";
|
2004-12-25 20:23:10 +00:00
|
|
|
else // no link for adding app screenshot as screenshots are linked to versions
|
2005-02-04 02:55:50 +00:00
|
|
|
$sImg .= $sImgFile;
|
|
|
|
|
$sImg .= html_frame_end()."<br />";
|
2004-12-25 20:23:10 +00:00
|
|
|
|
2005-02-04 02:55:50 +00:00
|
|
|
return $sImg;
|
|
|
|
|
}
|
|
|
|
|
|
2005-02-07 23:49:06 +00:00
|
|
|
function get_screenshots($iAppId = null, $iVersionId = null, $bQueued = "false")
|
2005-02-04 02:55:50 +00:00
|
|
|
{
|
|
|
|
|
/*
|
|
|
|
|
* We want all screenshots for this app.
|
|
|
|
|
*/
|
|
|
|
|
if($iAppId)
|
|
|
|
|
{
|
|
|
|
|
$sQuery = "SELECT appData.*, appVersion.appId as appId
|
|
|
|
|
FROM appData, appVersion
|
|
|
|
|
WHERE appVersion.versionId = appData.versionId
|
|
|
|
|
AND type = 'image'
|
2005-02-07 23:49:06 +00:00
|
|
|
AND appVersion.appId = ".$iAppId."
|
|
|
|
|
AND appData.queued = '".$bQueued."'";
|
2005-02-04 02:55:50 +00:00
|
|
|
}
|
|
|
|
|
/*
|
|
|
|
|
* We want all screenshots for this version.
|
|
|
|
|
*/
|
|
|
|
|
else if ($iVersionId)
|
|
|
|
|
{
|
|
|
|
|
$sQuery = "SELECT appData.*, appVersion.appId as appId
|
|
|
|
|
FROM appData, appVersion
|
|
|
|
|
WHERE appVersion.versionId = appData.versionId
|
|
|
|
|
AND type = 'image'
|
2005-02-07 23:49:06 +00:00
|
|
|
AND appData.versionId = ".$iVersionId."
|
|
|
|
|
AND appData.queued = '".$bQueued."'";
|
2005-02-04 02:55:50 +00:00
|
|
|
}
|
|
|
|
|
if($sQuery)
|
|
|
|
|
{
|
|
|
|
|
$hResult = query_appdb($sQuery);
|
|
|
|
|
return $hResult;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
2004-12-25 20:23:10 +00:00
|
|
|
}
|
|
|
|
|
?>
|