<?php
/***************************************************************************
- * Copyright (C) 2003-2009 Polytechnique.org *
+ * Copyright (C) 2003-2010 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
class UserSet extends PlSet
{
- public function __construct(PlFilterCondition &$cond, $orders)
+ public function __construct(PlFilterCondition &$cond, $orders = null)
{
parent::__construct($cond, $orders);
}
}
}
-class SearchSet extends UserSet
+class ProfileSet extends PlSet
+{
+ public function __construct(PlFilterCondition &$cond, $orders = null)
+ {
+ parent::__construct($cond, $orders);
+ }
+
+ protected function buildFilter(PlFilterCondition &$cond, $orders)
+ {
+ return new ProfileFilter($cond, $orders);
+ }
+}
+
+class SearchSet extends ProfileSet
{
public $advanced = false;
private $score = null;
- private $conds = null;
- private $orders = null;
private $quick = false;
public function __construct($quick = false, $no_search = false, PlFilterCondition $cond = null)
{
- Platal::load('search', 'search.inc.php');
-
if ($no_search) {
return;
}
return;
}
- $this->conds->addChild($ufb->getUFC());
+ $ufc = $ufb->getUFC();
+ $this->conds->addChild($ufc);
$orders = $ufb->getOrders();
- $orders[] = new UFO_Promo(UserFilter::DISPLAY, true);
- $orders[] = new UFO_Promo(UserFilter::DN_SORT);
if (S::logged() && Env::has('nonins')) {
$this->conds = new PFC_And($this->conds,
- new UFC_Not(new UFC_Dead()),
- new UFC_Registered()
+ new PFC_Not(new UFC_Dead()),
+ new PFC_Not(new UFC_Registered())
);
}
$this->conds->addChild($ufb->getUFC());
}
- public function &get(PlLimit $limit = null)
+ protected function &getFilterResults(PlFilter &$pf, PlLimit $limit)
{
- $uf = $this->buildFilter($this->conds, $this->orders);
- if (is_null($limit)) {
- $limit = new PlLimit(20, 0);
- }
- $it = $uf->getProfiles($limit);
- $this->count = $uf->getTotalCount();
- return $it;
+ return $pf->getProfiles($limit, Profile::FETCH_MINIFICHES);
}
}
}
}
-class MinificheView extends MultipageView
+abstract class ProfileView extends MultipageView
+{
+ protected function getBoundValue($obj)
+ {
+ if ($obj instanceof Profile) {
+ switch ($this->bound_field) {
+ case 'name':
+ $name = $obj->name('%l');
+ return strtoupper($name);
+ case 'promo':
+ return $obj->promo();
+ default:
+ return null;
+ }
+ }
+ return null;
+ }
+}
+
+class MinificheView extends ProfileView
{
public function __construct(PlSet &$set, $data, array $params)
{
new UFO_Score(true),
new UFO_ProfileUpdate(true),
new UFO_Promo(UserFilter::DISPLAY, true),
- new UFO_Name(UserFilter::DN_SORT),
+ new UFO_Name(Profile::DN_SORT),
), 'pertinence'));
}
$this->addSort(new PlViewOrder(
'name',
- array(new UFO_Name(UserFilter::DN_SORT)),
+ array(new UFO_Name(Profile::DN_SORT)),
'nom'));
$this->addSort(new PlViewOrder('promo', array(
new UFO_Promo(UserFilter::DISPLAY, true),
- new UFO_Name(UserFilter::DN_SORT),
+ new UFO_Name(Profile::DN_SORT),
), 'promotion'));
$this->addSort(new PlViewOrder('date_mod', array(
new UFO_ProfileUpdate(true),
new UFO_Promo(UserFilter::DISPLAY, true),
- new UFO_Name(UserFilter::DN_SORT),
+ new UFO_Name(Profile::DN_SORT),
), 'dernière modification'));
parent::__construct($set, $data, $params);
}
- protected function getBoundValue($obj)
- {
- if ($obj instanceof Profile) {
- switch ($this->bound_field) {
- case 'name':
- $name = $obj->name('%l');
- return strtoupper($name[0]);
- case 'promo':
- return $obj->promo();
- default:
- return null;
- }
- }
- return null;
- }
-
public function bounds()
{
$order = Env::v('order', $this->defaultkey);
}
}
-class MentorView extends MultipageView
+class MentorView extends ProfileView
{
public function __construct(PlSet &$set, $data, array $params)
{
$this->entriesPerPage = 10;
$this->addSort(new PlViewOrder('rand', array(new PFO_Random(S::i('uid'))), 'aléatoirement'));
- $this->addSort(new PlViewOrder('name', array(new UFO_Name(UserFilter::DN_SORT)), 'nom'));
+ $this->addSort(new PlViewOrder('name', array(new UFO_Name(Profile::DN_SORT)), 'nom'));
$this->addSort(new PlViewOrder('promo', array(
new UFO_Promo(UserFilter::DISPLAY, true),
- new UFO_Name(UserFilter::DN_SORT),
+ new UFO_Name(Profile::DN_SORT),
), 'promotion'));
$this->addSort(new PlViewOrder('date_mod', array(
new UFO_ProfileUpdate(true),
new UFO_Promo(UserFilter::DISPLAY, true),
- new UFO_Name(UserFilter::DN_SORT),
+ new UFO_Name(Profile::DN_SORT),
), 'dernière modification'));
parent::__construct($set, $data, $params);
}
- protected function getBoundValue($obj)
- {
- if ($obj instanceof Profile) {
- switch ($this->bound_field) {
- case 'name':
- $name = $obj->name('%l');
- return strtoupper($name[0]);
- case 'promo':
- return $obj->promo();
- default:
- return null;
- }
- }
- return null;
- }
-
public function bounds()
{
$order = Env::v('order', $this->defaultkey);
}
}
-class TrombiView extends MultipageView
+class TrombiView extends ProfileView
{
public function __construct(PlSet &$set, $data, array $params)
{
new UFO_Score(true),
new UFO_ProfileUpdate(true),
new UFO_Promo(UserFilter::DISPLAY, true),
- new UFO_Name(UserFilter::DN_SORT),
+ new UFO_Name(Profile::DN_SORT),
), 'pertinence'));
}
- $this->addSort(new PlViewOrder('name', array(new UFO_Name(UserFilter::DN_SORT)), 'nom'));
+ $this->addSort(new PlViewOrder('name', array(new UFO_Name(Profile::DN_SORT)), 'nom'));
$this->addSort(new PlViewOrder('promo', array(
new UFO_Promo(UserFilter::DISPLAY, true),
- new UFO_Name(UserFilter::DN_SORT),
+ new UFO_Name(Profile::DN_SORT),
), 'promotion'));
parent::__construct($set, $data, $params);
}
- protected function getBoundValue($obj)
- {
- if ($obj instanceof Profile) {
- switch ($this->bound_field) {
- case 'name':
- $name = $obj->name('%l');
- return strtoupper($name[0]);
- case 'promo':
- return $obj->promo();
- default:
- return null;
- }
- }
- return null;
- }
-
public function bounds()
{
$order = Env::v('order', $this->defaultkey);