<?php
/***************************************************************************
- * Copyright (C) 2003-2006 Polytechnique.org *
+ * Copyright (C) 2003-2007 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
class PhotoReq extends Validate
{
// {{{ properties
-
+
var $mimetype;
var $data;
var $x;
var $unique = true;
- var $rules = "Refuser les photos copyrightées, de mineurs, ou ayant
- un caractère pornographique, violent, etc... Si une photo est mal
- cadrée (20% de photo et 80% de blanc par exemple), si c'est un
- camarade antique, on lui arrange sinon on lui
- refuse en lui expliquant gentiment le problème. Idem si les dimensions de
+ var $rules = "Refuser les photos copyrightées, de mineurs, ou ayant
+ un caractère pornographique, violent, etc... Si une photo est mal
+ cadrée (20% de photo et 80% de blanc par exemple), si c'est un
+ camarade antique, on lui arrange sinon on lui
+ refuse en lui expliquant gentiment le problème. Idem si les dimensions de
la photo sont archi trop grandes ou archi trop petites.";
// }}}
// {{{ constructor
-
+
function PhotoReq($_uid, $_data, $_stamp=0)
{
- global $globals, $page;
-
$this->Validate($_uid, true, 'photo', $_stamp);
-
+ $this->_get_image($_data);
+ }
+
+ // }}}
+ // {{{ function _get_image()
+
+ function _get_image($_data)
+ {
+ global $page;
+
+ VarStream::init();
+
// calcul de la taille de l'image
- require_once('xorg.varstream.inc.php');
$GLOBALS['photoreq'] = $_data;
$image_infos = getimagesize('var://photoreq');
unset ($GLOBALS['photoreq']);
if (empty($image_infos)) {
$page->trig("Image invalide");
- return ($this = null);
+ return false;
}
list($this->x, $this->y, $this->mimetype) = $image_infos;
case 3: $this->mimetype = "png"; break;
default:
$page->trig("Type d'image invalide");
- return ($this = null);
+ return false;
}
if (strlen($_data) > SIZE_MAX) {
$img = imagecreatefromstring($_data);
if (!$img) {
$page->trig("image trop grande et impossible à retailler automatiquement");
- return ($this = null);
+ return false;
}
$nx = $x = imagesx($img);
unlink($file);
}
$this->data = $_data;
+ return true;
}
-
+
// }}}
// {{{ function get_request()
function get_request($uid)
{
- return parent::get_request($uid,'photo');
+ return parent::get_typed_request($uid,'photo');
}
// }}}
{ return 'include/form.valid.photos.tpl'; }
// }}}
+ // {{{ function editor()
+
+ function editor()
+ {
+ return 'include/form.valid.edit-photo.tpl';
+ }
+
+ // }}}
+ // {{{ function handle_editor()
+
+ function handle_editor()
+ {
+ if (isset($_FILES['userfile']['tmp_name'])) {
+ $file = $_FILES['userfile']['tmp_name'];
+ if ($data = file_get_contents($file)) {
+ if ($this->_get_image($data)) {
+ return true;
+ }
+ } else {
+ $page->trig('Fichier inexistant ou vide');
+ }
+ }
+ return false;
+ }
+
+ // }}}
// {{{ function _mail_subj
function _mail_subj()
// }}}
// {{{ function _mail_body
-
+
function _mail_body($isok)
{
if ($isok) {
// }}}
// {{{ function commit()
-
+
function commit()
{
- global $globals;
-
- $globals->xdb->execute('REPLACE INTO photo (uid, attachmime, attach, x, y)
+ XDB::execute('REPLACE INTO photo (uid, attachmime, attach, x, y)
VALUES ({?},{?},{?},{?},{?})',
$this->uid, $this->mimetype, $this->data, $this->x, $this->y);
require_once('notifs.inc.php');