User Tools

Site Tools


sermn_wiki:userpages:marta:reserves_114

Posada en funcionament de la v.1.1.4

Aprofitant el trasllat del programa de reserves al nou servidor (sermn.uab.cat), he actualitzat el programa de reserves de la versió 1.0.6 a la versió 1.1.4, ja que la nova versió 1.0.6 dóna alguns errors i avisos, segurament per temes de compatibilitat amb les noves versions de PHP.

La posada en funcionament de la versió 1.1.4 ha comportat alguns petits canvis al codi del programa. Aquests canvis es descriuen tot seguit.

Error al càlcul dels intervals de temps per reserves

En principi l'únic canvis que he hagut de fer per aconseguir que funcionés correctament la versió 1.1.4 ha estat al fitxer ./inc/bookings/timeslotrule.php per tal que els valors de la llista desplegable d'intervals de temps al programa de reserves es calculessin correctament,

Resulta que a la funció allSlotDuratinos() de la clase RuleSlot, es treballava amb l'objecte original, i això feia que la suma d'intervals d'un bloc de temps fos incorrecte. Per exemple, per un bloc de 09:00 a 13:00, dividit en 4 hores, en comptes de sortir a la llista “1, 2, 3 i 4 hores,” sortiem “1, 2, 4, 8 hores.”

La funció original és,

function allSlotDurations() {
    $duration = array();
    $cslot = $this;
    $cdur = $this->tgran;
    for ($i=0; $i<=$this->numslotsFollowing; $i++) {
        #echo $i.': length='.$cslot->tgran->timeString().', sum='.$dur->timeString()."<br />\n";
        $duration[$cdur->timeString()] = $cdur->timeString();
        $cdur->addTime($cslot->tgran);
        $cslot = $cslot->nextSlot;
    }
    return $duration;
}

i la funció modificada és,

function allSlotDurations() {
    $duration = array();
    $cslot = $this;
    $cdur = $this->tgran;
    $dur = clone($cdur);
    for ($i=0; $i<=$this->numslotsFollowing; $i++) {
        $duration[$dur->timeString()] = $dur->timeString();
        $dur->addTime($cslot->tgran);
        $cslot = $cslot->nextSlot;
    }
    return $duration;
}

Desactivar l'accés al programa

Per desactivar l'accés al programa, per exemple, en cas de manteniment, només cal modificar la línia del fitxer ./inc/actions/login.php on es crea el botó de login, de forma que el codi,

<!-- add disabled="disabled" to the input below to lock the access -->
<td><input name="submit" type="submit" value="%s" /></td>

es converteixi en,

<!-- add disabled="disabled" to the input below to lock the access -->
<td><input name="submit" type="submit" value="%s" disabled="disabled" /></td>

Per reactivar l'accés al programa cal desfer el canvi.

Solució al Bug del Masquerade

En el fitxer /bb/inc/auth.php i teníem el següent:

if ($this->_loggedin) {
      // set up Authorisation parts
      $this->isadmin = $this->user_row['isadmin'];
    }

L'estructura _loggedin conté les variables uid, username, name, email i isadmin, per tant, aquest són els camps que guardava de la sessió actual. En canvi, no es guardaven les variables de sessió euid, ename i eusername que són les que marquen si estas fent servir el masquerade o no. Així doncs, faltava fer la crida a la funció _checkMasq() perquè recuperes aquestes variables:

if ($this->_loggedin) {
      // set up Authorisation parts
      $this->isadmin = $this->user_row['isadmin'];
	  $this->_checkMasq();
    }
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
sermn_wiki/userpages/marta/reserves_114.txt · Last modified: 2019/04/26 10:59 by miquel