1
0
mirror of https://github.com/Chouchen/shorturl.git synced 2018-06-07 06:34:38 +02:00
shorturl/trunk/class/ShortURL.php
2011-01-04 11:26:21 +00:00

47 lines
1.4 KiB
PHP

<?
include 'XMLSQL.php';
class ShortURL extends XMLSQL{
const DATABASE = "db/database.xml";
const STATE_ALREADY_EXIST = "This shortcut already exists. ";
const STATE_FIELD_MISSING = "Don't leave any field blank ! ";
const STATE_ERROR = "Error. ";
const STATE_CREATED = "Shortcut created ";
public $_debug = false;
public function __construct($path = ''){
parent::__construct($path.self::DATABASE);
}
public function shortThisUrl($longUrl, $shortName){
if($this->pkAlreadyExists($shortName, 'url')){
return self::STATE_ALREADY_EXIST;
}else{
return $this->insert(array('url'=>$longUrl,'hit'=>'0'), rawurlencode($shortName))->into('url')->query();
}
}
public function findThisUrl($shortName){
if($this->pkAlreadyExists(rawurlencode($shortName), 'url')){
$this->_incrementStatFor($shortName);
return $this->select(array('url'))->from('url')->where(rawurlencode($shortName))->query();
}else{
return;
}
}
public function extractEverything(){
return $this->select()->from('url')->query();
}
/**
* Considering the table with $shortname already exist
*/
private function _incrementStatFor($shortName){
$currentHit = $this->select(array('hit'))->from('url')->where(rawurlencode($shortName))->query();
$currentHit = $currentHit[0];
return $this->update('url')->set(array('hit'=>$currentHit+1))->where(rawurlencode($shortName))->query();
}
}