{
global $globals;
- if (in_array($hrpid, array('general', 'adresses', 'emploi', 'poly', 'deco', 'skill', 'mentor', 'deltaten'))) {
+ if (in_array($hrpid, array('general', 'adresses', 'emploi', 'poly', 'deco', 'mentor', 'deltaten'))) {
$aux = $opened_tab;
$opened_tab = $hrpid;
$hrpid = $aux;
}
$wiz->addPage('ProfilePageDecos', 'Décorations - Medailles', 'deco');
if (S::user()->checkPerms(User::PERM_DIRECTORY_PRIVATE)) {
- $wiz->addPage('ProfilePageSkills', 'Compétences diverses', 'skill');
$wiz->addPage('ProfilePageMentor', 'Mentoring', 'mentor');
}
if (S::user()->checkPerms(User::PERM_DIRECTORY_PRIVATE) && $profile->isDeltatenEnabled(Profile::DELTATEN_OLD)) {
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************/
+class ProfileSettingSkill implements ProfileSetting
+{
+ private $table;
+ private $id;
+ private $skill_field;
+ private $text_field;
+
+ public function __construct($table, $id, $skill, $text)
+ {
+ $this->table = $table;
+ $this->id = $id;
+ $this->skill_field = $skill;
+ $this->text_field = $text;
+ }
+
+ public function value(ProfilePage $page, $field, $value, &$success)
+ {
+ if (is_null($value)) {
+ $value = array();
+ $res = XDB::iterRow("SELECT s.{$this->id}, s.{$this->text_field}, i.level
+ FROM profile_{$this->table}_enum AS s
+ INNER JOIN profile_{$this->table}s AS i ON (s.{$this->id} = i.{$this->skill_field})
+ WHERE i.pid = {?}",
+ $page->pid());
+ while (list($sid, $text, $level) = $res->next()) {
+ $value[$sid] = array('text' => $text, 'level' => $level);
+ }
+ }
+ if (!is_array($value)) {
+ $value = array();
+ } else {
+ foreach ($value as $id=>&$skill) {
+ if (!isset($skill['text']) || empty($skill['text'])) {
+ $res = XDB::query("SELECT {$this->text_field}
+ FROM profile_{$this->table}_enum
+ WHERE {$this->id} = {?}", $id);
+ $skill['text'] = $res->fetchOneCell();
+ }
+ }
+ }
+ ksort($value);
+ $success = true;
+ return $value;
+ }
+
+ public function save(ProfilePage $page, $field, $value)
+ {
+ XDB::execute("DELETE FROM profile_{$this->table}s
+ WHERE pid = {?}",
+ $page->pid());
+ if (!count($value)) {
+ return;
+ }
+ foreach ($value as $id=>&$skill) {
+ XDB::execute("INSERT INTO profile_{$this->table}s (pid, {$this->skill_field}, level)
+ VALUES ({?}, {?}, {?})",
+ $page->pid(), $id, $skill['level']);
+ }
+ }
+
+ public function getText($value) {
+ $skills = array();
+
+ if ($this->table == 'langskill') {
+ static $levels = array(
+ 1 => 'connaissance basique',
+ 2 => 'maîtrise des bases',
+ 3 => 'maîtrise limitée',
+ 4 => 'maîtrise générale',
+ 5 => 'bonne maîtrise',
+ 6 => 'maîtrise complète'
+ );
+ foreach ($value as $skill) {
+ $skills[] = $skill['text'] . ' (' . $levels[$skill['level']] . ')';
+ }
+ } else {
+ foreach ($value as $skill) {
+ $skills[] = $skill['text'] . ' (' . $skill['level'] . ')';
+ }
+ }
+
+ return implode(', ' , $skills);
+ }
+}
+
/** Terms associated to profile mentoring */
class ProfileSettingTerms implements ProfileSetting
{
$this->settings['expertise'] = null;
$this->settings['terms'] = new ProfileSettingTerms();
$this->settings['countries'] = new ProfileSettingCountry();
+ $this->settings['competences'] = new ProfileSettingSkill('skill', 'id', 'cid', 'text_fr');
+ $this->settings['langues'] = new ProfileSettingSkill('langskill', 'iso_639_2b', 'lid', 'language');
}
protected function _fetchData()
FROM geoloc_countries
ORDER BY country"));
$page->assign('hrpid', $this->profile->hrpid);
+ $page->assign('comp_list', XDB::iterator("SELECT id, text_fr, FIND_IN_SET('titre',flags) AS title
+ FROM profile_skill_enum"));
+ $page->assign('comp_level', array('initié' => 'initié',
+ 'bonne connaissance' => 'bonne connaissance',
+ 'expert' => 'expert'));
+ $page->assign('lang_list', XDB::iterator('SELECT iso_639_2b, language
+ FROM profile_langskill_enum
+ ORDER BY language'));
+ $page->assign('lang_level', array(1 => 'connaissance basique',
+ 2 => 'maîtrise des bases',
+ 3 => 'maîtrise limitée',
+ 4 => 'maîtrise générale',
+ 5 => 'bonne maîtrise',
+ 6 => 'maîtrise complète'));
}
}
require_once dirname(__FILE__) . '/groups.inc.php';
require_once dirname(__FILE__) . '/decos.inc.php';
require_once dirname(__FILE__) . '/jobs.inc.php';
-require_once dirname(__FILE__) . '/skills.inc.php';
require_once dirname(__FILE__) . '/mentor.inc.php';
require_once dirname(__FILE__) . '/deltaten.inc.php';
+++ /dev/null
-<?php
-/***************************************************************************
- * Copyright (C) 2003-2011 Polytechnique.org *
- * http://opensource.polytechnique.org/ *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the Free Software *
- * Foundation, Inc., *
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
- ***************************************************************************/
-
-class ProfileSettingSkill implements ProfileSetting
-{
- private $table;
- private $id;
- private $skill_field;
- private $text_field;
-
- public function __construct($table, $id, $skill, $text)
- {
- $this->table = $table;
- $this->id = $id;
- $this->skill_field = $skill;
- $this->text_field = $text;
- }
-
- public function value(ProfilePage $page, $field, $value, &$success)
- {
- if (is_null($value)) {
- $value = array();
- $res = XDB::iterRow("SELECT s.{$this->id}, s.{$this->text_field}, i.level
- FROM profile_{$this->table}_enum AS s
- INNER JOIN profile_{$this->table}s AS i ON (s.{$this->id} = i.{$this->skill_field})
- WHERE i.pid = {?}",
- $page->pid());
- while (list($sid, $text, $level) = $res->next()) {
- $value[$sid] = array('text' => $text, 'level' => $level);
- }
- }
- if (!is_array($value)) {
- $value = array();
- } else {
- foreach ($value as $id=>&$skill) {
- if (!isset($skill['text']) || empty($skill['text'])) {
- $res = XDB::query("SELECT {$this->text_field}
- FROM profile_{$this->table}_enum
- WHERE {$this->id} = {?}", $id);
- $skill['text'] = $res->fetchOneCell();
- }
- }
- }
- ksort($value);
- $success = true;
- return $value;
- }
-
- public function save(ProfilePage $page, $field, $value)
- {
- XDB::execute("DELETE FROM profile_{$this->table}s
- WHERE pid = {?}",
- $page->pid());
- if (!count($value)) {
- return;
- }
- foreach ($value as $id=>&$skill) {
- XDB::execute("INSERT INTO profile_{$this->table}s (pid, {$this->skill_field}, level)
- VALUES ({?}, {?}, {?})",
- $page->pid(), $id, $skill['level']);
- }
- }
-
- public function getText($value) {
- $skills = array();
-
- if ($this->table == 'langskill') {
- static $levels = array(
- 1 => 'connaissance basique',
- 2 => 'maîtrise des bases',
- 3 => 'maîtrise limitée',
- 4 => 'maîtrise générale',
- 5 => 'bonne maîtrise',
- 6 => 'maîtrise complète'
- );
- foreach ($value as $skill) {
- $skills[] = $skill['text'] . ' (' . $levels[$skill['level']] . ')';
- }
- } else {
- foreach ($value as $skill) {
- $skills[] = $skill['text'] . ' (' . $skill['level'] . ')';
- }
- }
-
- return implode(', ' , $skills);
- }
-}
-
-class ProfilePageSkills extends ProfilePage
-{
- protected $pg_template = 'profile/skill.tpl';
-
- public function __construct(PlWizard $wiz)
- {
- parent::__construct($wiz);
- $this->settings['competences'] = new ProfileSettingSkill('skill', 'id', 'cid', 'text_fr');
- $this->settings['langues'] = new ProfileSettingSkill('langskill', 'iso_639_2b', 'lid', 'language');
- }
-
- public function _prepare(PlPage $page, $id)
- {
- $page->assign('comp_list', XDB::iterator("SELECT id, text_fr, FIND_IN_SET('titre',flags) AS title
- FROM profile_skill_enum"));
- $page->assign('comp_level', array('initié' => 'initié',
- 'bonne connaissance' => 'bonne connaissance',
- 'expert' => 'expert'));
- $page->assign('lang_list', XDB::iterator('SELECT iso_639_2b, language
- FROM profile_langskill_enum
- ORDER BY language'));
- $page->assign('lang_level', array(1 => 'connaissance basique',
- 2 => 'maîtrise des bases',
- 3 => 'maîtrise limitée',
- 4 => 'maîtrise générale',
- 5 => 'bonne maîtrise',
- 6 => 'maîtrise complète'));
- }
-}
-
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
-?>
<li>ou bien, plus âgés, qui souhaitent réorienter leur carrière.</li>
</ul>
+<table class="bicol" id="competences_table" style="margin-bottom: 1em">
+ <tr>
+ <th>
+ <div class="flags" style="float: left">
+ <input type="checkbox" name="accesX" checked="checked" disabled="disabled" />
+ {icon name="flag_red" title="privé"}
+ </div>
+ Compétences professionnelles
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <span class="titre">Domaine :</span>
+ <select name="competences_sel" onchange="updateElement('competences')">
+ <option value=""> </option>
+ {assign var=ingroup value=false}
+ {iterate from=$comp_list item=comp}
+ {if $comp.title}
+ {if $ingroup}</optgroup>{/if}
+ <optgroup label="{$comp.text_fr}">
+ {assign var=ingroup value=true}
+ {/if}
+ <option value="{$comp.id}">{$comp.text_fr}</option>
+ {/iterate}
+ {if $ingroup}</optgroup>{/if}
+ </select>
+ <span id="competences_add" style="display: none">
+ <a href="javascript:addSkill('competences')">{icon name=add title="Ajouter cette compétence"}</a>
+ </span>
+ </td>
+ </tr>
+ <tr class="pair">
+ <td id="competences">
+ {foreach from=$competences item=competence key=id}
+ {include file="profile/skill.skill.tpl" cat='competences' skill=$competence id=$id levels=$comp_level}
+ {/foreach}
+ </td>
+ </tr>
+</table>
+
+<table class="bicol" id="langues_table" style="margin-bottom: 1em">
+ <tr>
+ <th>
+ <div class="flags" style="float: left">
+ <input type="checkbox" name="accesX" checked="checked" disabled="disabled" />
+ {icon name="flag_red" title="privé"}
+ </div>
+ Compétences linguistiques
+ </th>
+ </tr>
+ <tr>
+ <td>
+ <span class="titre">Domaine :</span>
+ <select name="langues_sel" onchange="updateElement('langues')">
+ <option value=""> </option>
+ {iterate from=$lang_list item=lang}
+ <option value="{$lang.iso_639_2b}">{$lang.language}</option>
+ {/iterate}
+ </select>
+ <span id="langues_add" style="display: none">
+ <a href="javascript:addSkill('langues')">{icon name=add title="Ajouter cette langue"}</a>
+ </span>
+ </td>
+ </tr>
+ <tr class="pair">
+ <td id="langues">
+ {foreach from=$langues item=langue key=id}
+ {include file="profile/skill.skill.tpl" cat='langues' skill=$langue id=$id levels=$lang_level}
+ {/foreach}
+ </td>
+ </tr>
+ </table>
+
<table class="bicol" id="countries_table" style="margin-bottom: 1em" summary="Profil : Mentoring">
<tr>
<th>
+++ /dev/null
-{**************************************************************************}
-{* *}
-{* Copyright (C) 2003-2011 Polytechnique.org *}
-{* http://opensource.polytechnique.org/ *}
-{* *}
-{* This program is free software; you can redistribute it and/or modify *}
-{* it under the terms of the GNU General Public License as published by *}
-{* the Free Software Foundation; either version 2 of the License, or *}
-{* (at your option) any later version. *}
-{* *}
-{* This program is distributed in the hope that it will be useful, *}
-{* but WITHOUT ANY WARRANTY; without even the implied warranty of *}
-{* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *}
-{* GNU General Public License for more details. *}
-{* *}
-{* You should have received a copy of the GNU General Public License *}
-{* along with this program; if not, write to the Free Software *}
-{* Foundation, Inc., *}
-{* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *}
-{* *}
-{**************************************************************************}
-
-<table class="bicol" id="competences_table" style="margin-bottom: 1em">
- <tr>
- <th>
- <div class="flags" style="float: left">
- <input type="checkbox" name="accesX" checked="checked" disabled="disabled" />
- {icon name="flag_red" title="privé"}
- </div>
- Compétences professionnelles
- </th>
- </tr>
- <tr>
- <td>
- <span class="titre">Domaine :</span>
- <select name="competences_sel" onchange="updateElement('competences')">
- <option value=""> </option>
- {assign var=ingroup value=false}
- {iterate from=$comp_list item=comp}
- {if $comp.title}
- {if $ingroup}</optgroup>{/if}
- <optgroup label="{$comp.text_fr}">
- {assign var=ingroup value=true}
- {/if}
- <option value="{$comp.id}">{$comp.text_fr}</option>
- {/iterate}
- {if $ingroup}</optgroup>{/if}
- </select>
- <span id="competences_add" style="display: none">
- <a href="javascript:addSkill('competences')">{icon name=add title="Ajouter cette compétence"}</a>
- </span>
- </td>
- </tr>
- <tr class="pair">
- <td id="competences">
- {foreach from=$competences item=competence key=id}
- {include file="profile/skill.skill.tpl" cat='competences' skill=$competence id=$id levels=$comp_level}
- {/foreach}
- </td>
- </tr>
-</table>
-
-<table class="bicol" id="langues_table">
- <tr>
- <th>
- <div class="flags" style="float: left">
- <input type="checkbox" name="accesX" checked="checked" disabled="disabled" />
- {icon name="flag_red" title="privé"}
- </div>
- Compétences linguistiques
- </th>
- </tr>
- <tr>
- <td>
- <span class="titre">Domaine :</span>
- <select name="langues_sel" onchange="updateElement('langues')">
- <option value=""> </option>
- {iterate from=$lang_list item=lang}
- <option value="{$lang.iso_639_2b}">{$lang.language}</option>
- {/iterate}
- </select>
- <span id="langues_add" style="display: none">
- <a href="javascript:addSkill('langues')">{icon name=add title="Ajouter cette langue"}</a>
- </span>
- </td>
- </tr>
- <tr class="pair">
- <td id="langues">
- {foreach from=$langues item=langue key=id}
- {include file="profile/skill.skill.tpl" cat='langues' skill=$langue id=$id levels=$lang_level}
- {/foreach}
- </td>
- </tr>
- </table>
-
-{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}