<?php
/***************************************************************************
- * Copyright (C) 2003-2011 Polytechnique.org *
+ * Copyright (C) 2003-2014 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
'yourself' => 'Nom affiché',
'freetext' => 'Commentaire',
'freetext_pub' => 'Affichage du commentaire',
+ 'axfreetext' => 'Commentaire AX',
'photo' => 'Photographie',
'photo_pub' => 'Affichage de la photographie',
'addresses' => 'Adresses',
$this->visibility = $visibility;
}
+ public function __destruct()
+ {
+ // Need to delete objects allocated by the profile
+ // http://www.php.net/manual/en/function.unset.php#98692
+ unset($this->owner);
+ }
+
public function id()
{
return $this->pid;
}
}
+ // Returns younger/older promotion year for a given education.
+ static public function extremePromotions($education)
+ {
+ return XDB::fetchOneRow("SELECT MIN(pe.promo_year) AS min, MAX(pe.promo_year) AS max
+ FROM profile_education AS pe
+ INNER JOIN profile_education_degree_enum AS pede ON (pe.degreeid = pede.id)
+ WHERE pede.degree = {?} AND FIND_IN_SET('primary', pe.flags)",
+ $education);
+ }
+
/** Print a name with the given formatting:
* %s = • for women
* %f = firstname
return $this->short_name;
}
+ public function sortName()
+ {
+ return $this->sort_name;
+ }
+
public function firstName()
{
- return $this->firstname;
+ return $this->firstname_ordinary;
}
public function firstNames()
public function lastName()
{
- return $this->lastname;
+ return $this->lastname_ordinary;
}
public function lastNames()
}
XDB::execute("UPDATE profiles
- SET cv = NULL, freetext = NULL, freetext_pub = 'private',
- medals_pub = 'private', alias_pub = 'private',
+ SET cv = NULL, freetext = NULL, freetext_pub = 'private', axfreetext = NULL,
+ medals_pub = 'private', alias_pub = 'hidden',
email_directory = NULL
WHERE pid = {?}",
$this->id());
return $this->corps;
}
+ /**
+ * Retrieve the name of the corps which has been done.
+ *
+ * Note: this function first tries getCorps(), and if this field is blank
+ * tries to find an education which degree is "Corps".
+ *
+ * Returns an empty string if nothing has been found.
+ */
+ public function getCorpsName()
+ {
+ $corps = $this->getCorps();
+ if ($corps && $corps->current) {
+ $corpsList = DirEnum::getOptions(DirEnum::CURRENTCORPS);
+ return $corpsList[$corps->current];
+ }
+
+ foreach ($this->getExtraEducations() as $edu) {
+ if (!strcasecmp($edu->degree, 'Corps')) {
+ if ($edu->school_short) {
+ return $edu->school_short;
+ } elseif ($edu->school) {
+ return $edu->school;
+ }
+ }
+ }
+ return '';
+ }
+
/** Networking
*/
private $networks = null;
return array();
}
}
+
+ public function getFullBinets()
+ {
+ if ($this->visibility->isVisible(Visibility::EXPORT_PRIVATE)) {
+ return XDB::fetchAllAssoc('SELECT binet_id, text, url
+ FROM profile_binets AS pb
+ LEFT JOIN profile_binet_enum AS pbe ON (pbe.id = pb.binet_id)
+ WHERE pid = {?}', $this->id());
+ } else {
+ return array();
+ }
+ }
+
public function getBinetsNames()
{
if ($this->visibility->isVisible(Visibility::EXPORT_PRIVATE)) {
}
}
+ /* Hobbies
+ */
+ public function getHobbies() {
+ if ($this->visibility->isVisible(Visibility::EXPORT_PRIVATE)) {
+ return XDB::fetchAllAssoc('type', 'SELECT type, GROUP_CONCAT(text)
+ FROM profile_hobby
+ WHERE pid = {?}
+ GROUP BY type', $this->id());
+ } else {
+ return XDB::fetchAllAssoc('type', 'SELECT type, GROUP_CONCAT(text)
+ FROM profile_hobby
+ WHERE pub = \'public\' AND pid = {?}
+ GROUP BY type', $this->id());
+ }
+ }
+
/* Medals
*/
private $medals = null;
IF ({?}, pse.text, NULL) AS section,
ppn.firstname_main AS firstname, ppn.lastname_main AS lastname, IF ({?}, pn.name, NULL) AS nickname,
IF (ppn.firstname_ordinary = \'\', ppn.firstname_main, ppn.firstname_ordinary) AS firstname_ordinary,
- IF (ppn.lastname_ordinary = \'\', ppn.firstname_main, ppn.lastname_ordinary) AS lastname_ordinary,
+ IF (ppn.lastname_ordinary = \'\', ppn.lastname_main, ppn.lastname_ordinary) AS lastname_ordinary,
pd.yourself, pd.promo, pd.short_name, pd.public_name AS full_name,
- pd.directory_name, pd.public_name, pd.private_name,
+ pd.directory_name, pd.public_name, pd.private_name, pd.sort_name,
IF (pp.pub >= {?}, pp.display_tel, NULL) AS mobile,
(ph.pub >= {?} AND ph.attach IS NOT NULL) AS has_photo, ph.pub as photo_pub,
ph.x AS photo_width, ph.y AS photo_height,
*/
public static function getAccountEquivalentName($name)
{
- switch ($name)
- {
- case self::DN_DIRECTORY:
- case self::DN_SORT:
+ switch ($name) {
+ case self::DN_DIRECTORY:
return 'directory_name';
- case self::DN_FULL:
- case self::DN_PUBLIC:
+ case self::DN_SORT:
+ return 'sort_name';
+ case self::DN_FULL:
+ case self::DN_PUBLIC:
+ case self::DN_PRIVATE:
+ case self::DN_SHORT:
return 'full_name';
- case self::DN_PRIVATE:
- case self::DN_SHORT:
- case self::DN_YOURSELF:
- default:
+ case self::DN_YOURSELF:
+ return 'display_name';
+ default:
return 'display_name';
}
}
}
}
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
?>