function selectMesos() { $RET = array(); for ($i = 1; $i < 13; $i++) { $RET[$i] = mesos($i); } return $RET; }
function llistaCalendariH($DATAI, $CALENDARI) { //Farem la mostra per setmanes $Q = 3; $W = date('W', $DATAI); $dia = date('d', $DATAI); $mes = date('m', $DATAI); $year = date('Y', $DATAI); //Agafem el dilluns anterior o el mateix dia i el diumenge $dia_setmana = date('N', $DATAI); $primer_dilluns = mktime(0, 0, 0, $mes, $dia - $dia_setmana + 1, $year); $primer_diumenge = mktime(0, 0, 0, $mes, $dia + (7 - $dia_setmana), $year); //Mostrem el mes al que pertany cada dia $RET .= "<TR><td></td>"; $j = 1; for ($i = 0; $i < $Q; $i++) { $diaA = mktime(0, 0, 0, $mes, $dia - $dia_setmana + 1 + $i * 7, $year); $RET .= '<td class="titol" colspan="7">' . mesos(date('m', $diaA)) . ' ' . date('Y', $diaA) . '</td>'; } $RET .= "</TR>"; //Escrivim els dies de la setmana $RET .= "<TR><td></td>"; for ($i = $Q; $i > 0; $i--) { $RET .= "<TD>Dll</TD><TD>Dm</TD><TD>Dc</TD><TD>Dj</TD><TD>Dv</TD><TD>Ds</TD><TD>Dg</TD>"; } $RET .= "</TR>"; foreach ($CALENDARI as $idU => $DADES) { $RET .= "<TR>"; $RET .= '<td>' . $DADES['TREBALLADOR'] . '</td>'; $ULTIM_HORARI = $DADES['ULTIM_HORARI']; $j = 1; for ($i = 0; $i < $Q * 7; $i++) { $style = ""; $marc = ""; $fons = ""; $diaA = mktime(0, 0, 0, $mes, $dia - $dia_setmana + 1 + $i, $year); if ($j == 6 || $j == 7) { $fons = "background-color: beige;"; if ($j == 7) { $j = 1; } else { $j++; } } else { $fons = "background-color: white;"; $j++; } if ($dia - $dia_setmana + 1 + $i == $dia) { $style .= 'font-weight:bold;'; } $SPAN = ""; if (isset($DADES['DIES'][$diaA])) { $CANVI_HORARI = false; $AP = false; $SPAN = "<span>"; foreach ($DADES['DIES'][$diaA] as $D2) { //Quan vingui un canvi d'horari aquest quedarà fins que en vingui un altre if ($D2->getTipus() == PersonalPeer::HORARI_USUARI) { $ULTIM_HORARI = $D2->getText(); } } $SPAN .= '<b>Horari: </b>' . $ULTIM_HORARI; $SPAN .= '<br />'; $index = 1; foreach ($DADES['DIES'][$diaA] as $D2) { //Si la línia és de feina, la mostrem if ($D2->getTipus() == PersonalPeer::FEINA) { $SPAN .= '<br /><b>' . $index++ . ' . (T)</b> ' . substr($D2->getText(), 0, 100) . '...'; } //Si hi ha un canvi en l'horari, la marquem if ($D2->getTipus() == PersonalPeer::CANVI_HORARI) { $SPAN .= '<br /><b>' . $index++ . '. (H)</b> ' . $D2->getText(); } //Si no hi és... no apareix el número i requadre en vermell. //Si hi ha canvi d'horaris, el requadre serà en taronja //Si hi ha feines és en groc fluorescent. if ($D2->getTipus() == PersonalPeer::AP_FESTA) { $fons = "background-color:red;"; $AP = true; } elseif ($D2->getTipus() == PersonalPeer::CANVI_HORARI && !$AP) { $fons = "background-color:orange;"; $CANVI_HORARI = true; } elseif ($D2->getTipus() == PersonalPeer::FEINA && !$AP && !$CANVI_HORARI) { $fons = "background-color:yellow;"; } } $SPAN .= "</span>"; } else { $SPAN = "<span>"; $SPAN .= '<b>Horaris: </b>' . $ULTIM_HORARI; $SPAN .= '<br /><br />'; $SPAN .= "</span>"; } //Si la persona hi és el marc és verd i si no hi és, el marc és vermell. $RET .= '<TD class="DIES" style="' . $marc . $fons . $style . '" ><a class="tt2" href="#" id="DIA-' . $diaA . '-' . $idU . '">' . date('d', $diaA) . $SPAN . '</a></TD>'; } $RET .= "</TR>"; } return $RET; }
function llistaCalendariV($DATAI, $CALENDARI) { //Inicialitzem variables i marquem els dies en blanc $Q = 3; $mes = date('m', $DATAI); $year = date('Y', $DATAI); $RET = ""; $any = $year; $mesI = $mes; $mesF = $mes + $Q; //Omplim els mesos $RET .= '<tr>'; $dies = array(); $IndexMes = 0; for ($mes = $mesI; $mes < $mesF; $mes++) { $mesReal = $mes > 12 ? $mes - 12 : $mes; $anyReal = $mes == 13 ? $any + 1 : $any; $week = 1; $IndexMes++; $diesMes = cal_days_in_month(CAL_GREGORIAN, $mesReal, $anyReal); for ($dia = 1; $dia <= $diesMes; $dia++) { $diaSetmana = jddayofweek(cal_to_jd(CAL_GREGORIAN, $mesReal, $dia, $anyReal), 0); $diaSetmana = $diaSetmana == 0 ? 7 : $diaSetmana; $dies[$week][$diaSetmana][$IndexMes]['day'] = $dia; $dies[$week][$diaSetmana][$IndexMes]['month'] = $mesReal; $dies[$week][$diaSetmana][$IndexMes]['year'] = $anyReal; if ($diaSetmana == 7) { $week++; } } $RET .= "<TD class=\"titol_mes\" colspan=\"7\">" . mesos($mesReal) . "</TD><td width=\"20px\"></td>"; } $RET .= '</tr>'; $RET .= "<TR>"; for ($i = 0; $i < $Q; $i++) { $RET .= "<TD>Dll</TD><TD>Dm</TD><TD>Dc</TD><TD>Dj</TD><TD>Dv</TD><TD>Ds</TD><TD>Dg</TD><TD></TD>"; } $RET .= "</TR>"; for ($row = 1; $row <= 6; $row++) { $RET .= "<tr>"; for ($col = 1; $col <= 7 * $Q; $col++) { $IndexMes = ceil($col / 7); $colR = $col - 7 * ($IndexMes - 1); //Color de fons per diferenciar els mesos if ($IndexMes % 2) { $background = "beige"; } else { $background = "beige"; } //Color de fons per diferenciar els caps de setmana if ($colR == 6 || $colR == 7) { $background = "#CCCCCC"; } if (isset($dies[$row][$colR][$IndexMes])) { $dades = $dies[$row][$colR][$IndexMes]; $SPAN = ""; $color = ""; $CalDia = mktime(0, 0, 0, $dades['month'], $dades['day'], $dades['year']); if (isset($CALENDARI[$CalDia])) { $SELECCIONAT = "SELECCIONAT"; $SPAN = '<span><table id="TD1"><tr><th>Inici</th><th>Fi</th><th>Espai</th><th>Títol</th><th>Organitzador</th></tr>'; foreach ($CALENDARI[$CalDia] as $CAL) { $SPAN .= '<tr><td>' . $CAL['HORAI'] . '</td><td>' . $CAL['HORAF'] . '</td><td>' . $CAL['ESPAIS'] . '</td><td>' . $CAL['TITOL'] . '</td><td>' . $CAL['ORGANITZADOR'] . '</td></tr>'; } $SPAN .= '</table></span>'; } else { $SELECCIONAT = ""; } $RET .= '<TD class="DIES" style="background-color:' . $background . ';">' . link_to($dades['day'] . $SPAN, "gestio/gActivitats?accio=CD&DIA=" . $CalDia, array('class' => "tt2 {$SELECCIONAT}")) . '</TD>'; } else { $RET .= '<TD class="DIES" style="background-color:' . $background . ';"></TD>'; } if ($colR == 7) { $RET .= '<td></td>'; } } $RET .= "</tr>"; } $RET .= "</TR>"; return $RET; }
/** * A partir d'una DataI generem els enllaços del menú * @param time() $DATAI * @return string */ function getSelData($DATAI = NULL) { $DataInicial = $DATAI + 3600 * 24 * 365 * 1; //Restem dos anys $MES = date('m', $DataInicial); $ANY = date('Y', $DataInicial); $RET = '<SELECT id="dynamic_select">'; for ($any = $ANY; $any > $ANY - 3; $any--) { for ($mes = 12; $mes > 0; $mes--) { $Seleccionat = date('m', $DATAI) == $mes && date('Y', $DATAI) == $any ? 'SELECTED' : ''; $RET .= '<option ' . $Seleccionat . ' value="' . url_for("gestio/gActivitats?accio=CC&DATAI=" . mktime(0, 0, 0, $mes, 1, $any)) . '">' . $any . ' - ' . mesos($mes) . '</option>'; } } $RET .= '</SELECT>'; return $RET; }
function llistaCalendariV($DI, $mes = null, $year = null, $VARIAMES = NULL, $VARIAANY = NULL, $PAGINA, $IDA, $ACCIO) { if ($mes == null) { $mes = date("m", time()); } if ($year == NULL) { $year = date('Y', time()); } $mesI = $mes; $any = $year; $anyF = $year; $mesF = date('m', mktime(0, 0, 0, $mes + 12, 1, $year)); $mesF = $mesI + 6; //De moment només sumem 3 mesos if ($mesF > 12) { $mesF = $mesF - 12; $anyF = $any + 1; } $RET = "<TR><TD></TD><TD>Dll</TD><TD>Dm</TD><TD>Dc</TD><TD>Dj</TD><TD>Dv</TD><TD>Ds</TD><TD>Dg</TD></TR>"; // 01 02 03 04 05 06 00 // Dl Dm Dc Dj Dv Ds Dg //MES 01 02 03 04 // 05 06 07 08 09 10 11 // 12 13 14 15 16 17 18 // 19 20 21 22 23 24 25 // 26 27 28 29 30 01 02 //MES 03 04 05 06 07 08 09 $blancs = 1; $dia = 1; $sincronitzat = false; while ($mes < $mesF && $any <= $anyF) { $diaSetmana = jddayofweek(cal_to_jd(CAL_GREGORIAN, $mes, $dia, $any), 0); if ($diaSetmana == 1) { $RET .= '</TR><TR><TD>' . mesos($mes) . '</TD>'; } //Anem dibuixant espais en blanc fins que sincronitzem if ($blancs != $diaSetmana && !$sincronitzat) { $RET .= "<TD></TD>"; if ($blancs == 7) { $blancs = 0; } else { $blancs++; } } else { $sincronitzat = true; if ($mes % 2 != 0) { $background = "beige"; } else { $background = "white"; } if ($diaSetmana == 6 || $diaSetmana == 0) { $background = "burlywood"; } if (in_array(mktime(0, 0, 0, $mes, $dia, $any), $DI['DIES'])) { //Si el dia el tenim seleccionat el marquem $RET .= '<TD class="DIES" style="background-color:' . $background . '; text-align:right;">' . $dia . ' ' . checkbox_tag('DI[DIES][]', mktime(0, 0, 0, $mes, $dia, $any), true) . '</TD>'; } else { $RET .= '<TD class="DIES" style="background-color:' . $background . '; text-align:right;">' . $dia . ' ' . checkbox_tag('DI[DIES][]', mktime(0, 0, 0, $mes, $dia, $any), false) . '</TD>'; } if (cal_days_in_month(CAL_GREGORIAN, $mes, $any) <= $dia) { $dia = 1; if (++$mes > 12) { $any++; } } else { $dia++; } } } return $RET; }
function getCalendari($DATA, $ACTIVITATS_CALENDARI, $CERCA) { $mes = date('m', $DATA); $any = date('Y', $DATA); $MesAnterior = mktime(0, 0, 0, date('m', $DATA) - 1, 1, date('Y', $DATA)); $MesSeguent = mktime(0, 0, 0, date('m', $DATA) + 1, 1, date('Y', $DATA)); $DataMesActual = mktime(0, 0, 0, date('m', $DATA), 1, date('Y', $DATA)); echo '<DIV class="div_taula">'; echo '<table class="t_calendari">'; echo '<tr> <td width="25" style="background-color:white;" class="titol">' . link_to('<', "web/index?accio=cdc&DATACAL={$MesAnterior}") . '</td> <td colspan="5" style="background-color:white;" class="titol">' . link_to(mesos($mes) . ' ' . $any, 'web/index' . getParam('c', 'mensual', $DataMesActual)) . '</td> <td width="25" style="background-color:white;" class="titol">' . link_to('>', "web/index?accio=cdc&DATACAL={$MesSeguent}") . '</td> </tr>'; echo '<tr> <td width="25" class="dies">Dll</td> <td width="25" class="dies">Dm</td> <td width="25" class="dies">Dc</td> <td width="25" class="dies">Dj</td> <td width="25" class="dies">Dv</td> <td width="25" class="dies">Ds</td> <td width="25" class="dies">Dg</td> </tr>'; $diaInicial = date('N', mktime(0, 0, 0, $mes, 1, $any)); $setmanaActual = date('W', mktime(0, 0, 0, date('m', time()), date('d', time()), date('Y', time()))); $diesMes = date('t', mktime(0, 0, 0, $mes, 1, $any)); for ($i = 1; $i < 7; $i++) { //Setmanes que caben a un calendari echo '<tr>'; for ($j = 1; $j < 8; $j++) { //Dia de la setmana $diaA = ($i - 1) * 7 + $j + 1 - $diaInicial; $class = ""; $valor = ""; $setmanaIterator = date('W', mktime(0, 0, 0, $mes, $diaA, $any)); //Si és cap de setmana ho posem en negreta // if( $j == 7 || $j == 6 ) $class = 'bold'; //Si la setmana actual és a la que estem, ho marquem amb vermell if ($setmanaActual == $setmanaIterator) { $class .= ' selsetmana'; } else { $class .= ' numeros'; } //Finalment omplim el dia si hi ha número if ($i == 1 && $diaInicial > $j || $diesMes < $diaA) { $valor = " "; } else { $valor = $diaA; } if ($valor != " ") { $valor = link_to($valor, 'web/index' . getParam('ca', '', mktime(0, 0, 0, $mes, $diaA, $any))); if (isset($ACTIVITATS_CALENDARI[date('Y-m-d', mktime(0, 0, 0, $mes, $diaA, $any))])) { $class .= ' HIHAACTIVITAT'; } } echo '<td width="25" class="' . $class . '">' . $valor . '</td>'; } echo '</tr>'; } echo '</table></DIV>'; }