$db->projets->primary('pk_projets', 'projet_id');\r
$db->projets->index('index_projets_status', 'BTREE', 'status');\r
$db->projets->index('index_projets_nom', 'BTREE', 'nom');\r
- //$db->projets->reference('fk_projets_client', 'client', 'utilisateurs', 'utilisateur_id', false, false);\r
+ // $db->projets->reference('fk_projets_client', 'client', 'utilisateurs', 'utilisateur_id', false, false);\r
$db->projets->reference('fk_projets_chef', 'chef', 'utilisateurs', 'utilisateur_id', false, false);\r
// .\r
// Table taches\r
$db->taches->projet('integer', 0, false);\r
// Clés\r
$db->taches->primary('pk_taches', 'tache_id');\r
- //$db->taches->reference('fk_taches_projet', 'projet', 'projets', 'projet_id');\r
+ // $db->taches->reference('fk_taches_projet', 'projet', 'projets', 'projet_id');\r
$db->taches->index('index_taches_nom', 'BTREE', 'nom');\r
$db->taches->index('index_taches_categorie', 'BTREE', 'categorie');\r
// .\r
$db->factures->primary('pk_factures', 'facture_id');\r
$db->factures->index('index_factures_status', 'BTREE', 'status');\r
$db->factures->index('index_factures_nom', 'BTREE', 'nom');\r
- //$db->factures->reference('fk_factures_projet', 'projet', 'projets', 'projet_id');\r
+ // $db->factures->reference('fk_factures_projet', 'projet', 'projets', 'projet_id');\r
$db->factures->reference('fk_factures_createur', 'createur', 'utilisateurs', 'utilisateur_id');\r
// .\r
// Table dashboard\r
$db->langues->font('varchar', 64, false);\r
$db->langues->charset('varchar', 64, false);\r
$db->langues->traductions('text', 0, false);\r
+ $db->langues->nsis('varchar', 64, false);\r
// Clés\r
$db->langues->primary('pk_langues', 'lang_id');\r
// .\r
$db->documents->index('index_documents_file', 'BTREE', 'file');\r
$db->documents->index('index_documents_date', 'BTREE', 'date');\r
$db->documents->index('index_documents_localHash', 'BTREE', 'localHash');\r
- //$db->documents->reference('fk_documents_proprietaire', 'proprietaire', 'utilisateurs', 'utilisateur_id');\r
+ // $db->documents->reference('fk_documents_proprietaire', 'proprietaire', 'utilisateurs', 'utilisateur_id');\r
// .\r
// Table pages des documents\r
$db->document_links->document_id('integer', 0, false);\r
$data['font'] = $_POST['font'];\r
$data['charset'] = $_POST['charset'];\r
$data['traductions'] = $_POST['msgid'];\r
+ $data['nsis'] = $_POST['nsis'];\r
$dao->sauve($data);\r
$x->addAlert(__('Paramètres de la langue et traductions enregistrées'));\r
}\r
'detail' => 'Commentaires');\r
$mail = new cubeMail();\r
$mail->charset = 'UTF-8';\r
- $mail->from = $_POST['prenom'] . ' ' . $_POST['nom'];\r
+ $mail->from = $_POST['prenom'] . ' ' . $_POST['nom'] . '<' . $_POST['email'] . '>';\r
$mail->to = FROM_EMAIL;\r
$mail->subject = '[' . EMAIL_SUBJECT . '] Demande de devis';\r
$body = 'Une demande de devis a été envoyée avec les informations suivantes :' . "\r\n\r\n";\r
$settings = is_null($settings)?$core->user->getSettings('books'):$settings;\r
$change = is_null($dashboard)?'Books':'Dashboard/' . $dashboard;\r
$dao = new wsDAOBook($core->con);\r
- $context_id = is_null($dashboard)?'contextBook':'contextDashboard_' . $dashboard;\r
+ $context_download_id = is_null($dashboard)?'contextDownloadBook':'contextDashboard_Download' . $dashboard;\r
+ $context_status_id = is_null($dashboard)?'contextStatusBook':'contextDashboard_Status' . $dashboard;\r
\r
if (isset($settings['search']) && !is_null($settings['search'])) {\r
$dao->setSearch($settings['search']);\r
$dao->setFiltres($settings['filtres']);\r
$liste = $dao->getListe($settings['orderby'], $settings['sens'], $settings['limit'], $core->user);\r
\r
- $res = self::contextBookDownload($context_id);\r
+ $res = self::contextBookDownload($context_download_id);\r
+ $res = self::contextBookStatus($context_status_id);\r
\r
$res .= '<table class="liste">';\r
$res .= '<tr><th>' . commonUrl::orderby('#', 'book_id', $settings, 'sort' . $change) . '</th>';\r
$res .= '<td>' . $book->facturable . '</td>';\r
}\r
if ($droits->revendeur) {\r
- $res .= '<td>' . $core->books_status[$book->status] . '</td>';\r
+ if ($droits->admin || $book->status <= 1) {\r
+ $res .= '<td><a href="#" class="openContextMenu" rel="' . $context_status_id . '" rev="' . $book->book_id . '">' . $core->books_status[$book->status] . '</a></td>';\r
+ } else if ($book->status > 1) {\r
+ $res .= '<td>' . $core->books_status[1] . '</td>';\r
+ }\r
}\r
$res .= '<td class="bouton"><a class="popupFS" rel="toolbar=yes" rev="viewer_' . $book->book_id . '" href="' . SITE_PATH . 'viewer/' . $book->book_id . '_' . $book->hash . '/">' . $btVoir . '</a></td>';\r
$res .= '<td class="bouton"><a class="popupFS" rel="toolbar=yes" rev="editor_' . $book->book_id . '" href="' . SITE_PATH . 'editor/' . $book->book_id . '">' . $btEdit . '</a></td>';\r
$res .= '<td class="bouton"><a href="' . SITE_PATH . 'stats/' . $book->book_id . '">' . $btStats . '</a></td>';\r
- $res .= '<td class="bouton"><a href="#" class="openContextMenu" rel="' . $context_id . '" rev="' . $book->book_id . '">' . $btDownload . '</a></td>';\r
+ $res .= '<td class="bouton"><a href="#" class="openContextMenu" rel="' . $context_download_id . '" rev="' . $book->book_id . '">' . $btDownload . '</a></td>';\r
if ($droits->creation) {\r
$res .= '<td class="bouton"><a href="#" rel="supprimeBook/' . $book->book_id . '" class="ajax" title="' . __('Êtes-vous certain de vouloir supprimer cette publication ?') . '">' . $btDel . '</a></td>';\r
}\r
return $res;\r
}\r
\r
+ public static function contextBookStatus($id)\r
+ {\r
+ global $core;\r
+\r
+ if (wsDroits::isAdmin()) {\r
+ $status = $core->books_status;\r
+ } else {\r
+ $status = array();\r
+ $status[-1] = $core->books_status[-1];\r
+ $status[0] = $core->books_status[0];\r
+ }\r
+\r
+ $res = '<div class="contextMenu statusbookContextMenu" id="' . $id . '">';\r
+ $res .= '<ul>';\r
+ $res .= '<li class="head">' . __("Changer le status de la publication") . '</li>';\r
+ foreach($status as $s => $title) {\r
+ $res .= '<li><a href="#" rel="statusbook/$1/' . $s . '">' . $title . '</a></li>';\r
+ }\r
+ $res .= '</ul></div>';\r
+ return $res;\r
+ }\r
+\r
public static function traductions($args)\r
{\r
global $core;\r
$res .= '<table class="liste">';\r
$res .= '<tr><td>' . __('Police de caractères') . ' : </td><td>' . form::hidden('lang', $lang_id) . form::combo('font', self::getFonts(), $lang->font) . '</td></tr>';\r
$res .= '<tr class="odd"><td>' . __('Jeux de caractères') . ' : </td><td>' . form::combo('charset', self::getCharsets(), $lang->charset) . '</td></tr>';\r
- $res .= '<tr><td colspan="2" class="right"><a href="#" class="submit">' . $core->typo->Ajouter('Valider') . '</a></td></tr>';\r
+ $res .= '<tr><td>' . __("Langue de l'installeur") . ' : </td><td>' . form::combo('nsis', self::getNSISLangs(), $lang->nsis) . '</td></tr>';\r
+ $res .= '<tr><td colspan="2" class="right odd"><a href="#" class="submit">' . $core->typo->Ajouter('Valider') . '</a></td></tr>';\r
$res .= '</table>';\r
$res .= commonPage::bf();\r
\r
return $res;\r
}\r
\r
+ protected static function getNSISLangs()\r
+ {\r
+ $res = array();\r
+ $dir = WS_FILES . '/nsislangs';\r
+ $dr = opendir($dir);\r
+ while ($file = readdir($dr)) {\r
+ if ($file == '.' || $file == '..') {\r
+ continue;\r
+ }\r
+ $e = explode('.', $file);\r
+ $res[$e[0]] = $e[0];\r
+ }\r
+\r
+ ksort($res);\r
+ return $res;\r
+ }\r
+\r
public static function editor($args)\r
{\r
commonDroits::min(1);\r
\r
protected function makeNSI()\r
{\r
+ global $core;\r
+\r
$winvdir = trim($this->vdir, '/');\r
$winvdir = str_replace('/', '\\' , $winvdir);\r
$winvdir = "\\" . $winvdir;\r
\r
+ $daoLang = new wsDAOLang($core->con);\r
+ $lang = $daoLang->selectById($this->book->lang);\r
+\r
$nsi = file_get_contents(WS_COMPILE_ASSETS . '/script.nsi');\r
$nsi = str_replace('$name', utf8_decode($this->book->parametres->title), $nsi);\r
$nsi = str_replace('$htmldir', utf8_decode(WS_COMPILE_ASSETS), $nsi);\r
$nsi = str_replace('$fname', str_replace('.exe', '', $this->exeName), $nsi);\r
$nsi = str_replace('$fdir', $winvdir, $nsi);\r
$nsi = str_replace('$titre', utf8_decode($this->book->parametres->title), $nsi);\r
- $nsi = str_replace('$lang', 'English', $nsi);\r
+ $nsi = str_replace('$lang', utf8_decode($lang->nsis), $nsi);\r
$nsi = str_replace('$nsisdir', '/usr/local/nsis/nsis-2.46/share/nsis', $nsi);\r
$nsi = str_replace('$output', $this->getPathBase('exe'), $nsi);\r
\r
$lang->font = $r->font;\r
$lang->charset = $r->charset;\r
\r
+ if ($r->nsis == '') {\r
+ $r->nsis = 'English';\r
+ }\r
+ $lang->nsis = $r->nsis;\r
+\r
if ($r->traductions == '') {\r
$lang->traductions = array();\r
} else {\r
$lang->traductions = json_decode($r->traductions, true);\r
}\r
\r
- $lang->traductions=wsLang::checkTranslations($lang->traductions);\r
+ $lang->traductions = wsLang::checkTranslations($lang->traductions);\r
return $lang;\r
}\r
\r
$c->lang_id = $data['lang_id'];\r
$c->font = $data['font'];\r
$c->charset = $data['charset'];\r
+ $c->nsis = $data['nsis'];\r
$c->traductions = json_encode($data['traductions']);\r
$r = $this->con->select('SELECT * FROM langues WHERE lang_id=\'' . $this->con->escape($c->lang_id) . '\'');\r
if (!$r->count()) {\r
protected $font;\r
protected $charset;\r
protected $traductions;\r
+ protected $nsis;\r
\r
public static function getTraductionWithId($traductions)\r
{\r