shorturl/class/ShortURL.php

64 lines
2.1 KiB
PHP
Raw Normal View History

2010-12-23 12:26:25 +01:00
<?
2011-02-14 17:49:52 +01:00
/**
* Copyright ou © ou Copr. Clément Desmidt - Shikiryu, 14/02/2011
*
* shikiryu+url [ at ] gmail [ dot ] com
*
2011-02-14 18:10:49 +01:00
* Ce logiciel est un programme informatique servant à faire un raccourci d'url et stats.
2011-02-14 17:49:52 +01:00
*
2011-02-14 18:10:49 +01:00
* Il est sous license : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
2011-02-14 17:49:52 +01:00
* ---------------------------------------
* Copyright or © or Copr. Clément Desmidt - Shikiryu, 14/02/2011
*
* shikiryu+url [ at ] gmail [ dot ] com
*
2011-02-14 18:10:49 +01:00
* This software is a computer program whose purpose is to url shortening and stats.
2011-02-14 17:49:52 +01:00
*
2011-02-14 18:10:49 +01:00
* It's under this license : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
2011-02-14 17:49:52 +01:00
*/
2010-12-23 12:26:25 +01:00
include 'XMLSQL.php';
class ShortURL extends XMLSQL{
const DATABASE = "db/database.xml";
2011-01-04 12:26:21 +01:00
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 ";
2010-12-23 12:26:25 +01:00
public $_debug = false;
public function __construct($path = ''){
parent::__construct($path.self::DATABASE);
}
public function shortThisUrl($longUrl, $shortName){
2011-02-28 14:33:13 +01:00
if($this->pkAlreadyExists($shortName, 'url') || file_exists($shortName)){
2010-12-23 12:26:25 +01:00
return self::STATE_ALREADY_EXIST;
}else{
2011-01-04 11:57:00 +01:00
return $this->insert(array('url'=>$longUrl,'hit'=>'0'), rawurlencode($shortName))->into('url')->query();
2010-12-23 12:26:25 +01:00
}
}
public function findThisUrl($shortName){
if($this->pkAlreadyExists(rawurlencode($shortName), 'url')){
2011-01-04 11:57:00 +01:00
$this->_incrementStatFor($shortName);
2010-12-23 12:26:25 +01:00
return $this->select(array('url'))->from('url')->where(rawurlencode($shortName))->query();
}else{
return;
}
}
public function extractEverything(){
return $this->select()->from('url')->query();
}
2011-01-04 11:57:00 +01:00
/**
* 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();
}
2010-12-23 12:26:25 +01:00
}