option = $option; $this->cinema = $cinema; if($hall) $this->og_hall = $hall; if($option == "edit_hall" && $hall) $options = array("action" => "./?state=".$option."&number=".$hall->getNumber()."&editing=true"); else $options = array("action" => "./?state=".$option."&editing=false"); parent::__construct('formHall',$options); } protected function generaCamposFormulario($data, $errores = array()){ //Prepare the data $number = $data['number'] ?? $this->og_hall->getNumber() ?? ""; $rows = $data['rows'] ?? $this->og_hall->getNumRows() ?? "12"; $cols = $data['cols'] ?? $this->og_hall->getNumCol() ?? "8"; //Init Seats_map $seats = 0; $seats_map = array(); for($i = 1;$i <= $rows; $i++){ for($j = 1; $j <= $cols; $j++){ $seats_map[$i][$j] = "-1"; } } $alltozero = $_POST["alltozero"] ?? 0; //Show the original seats_map once u click restart or the first time u enter this form from manage_halls's form if($this->option == "edit_hall" && !isset($_GET["editing"])){ $rows = $this->og_hall->getNumRows(); $cols = $this->og_hall->getNumCol(); $seat_list = Seat::getSeatsMap($this->og_hall->getNumber(), $this->cinema); if($seat_list){ foreach($seat_list as $seat){ $seats_map[$seat->getNumRows()][$seat->getNumCol()] = $seat->getState(); if($seat->getState()>=0){ $seats++; } } } }//Show the checkbox seats_map updated and everything to selected if alltoone was pressed else if(!$alltozero){ $alltoone = $_POST["alltoone"] ?? 0; for($i = 1;$i <= $rows; $i++){ for($j = 1; $j <= $cols; $j++){ if($alltoone || isset($data["checkbox".$i.$j])) { $seats_map[$i][$j] = $data["checkbox".$i.$j] ?? "0"; $seats++; if($seats_map[$i][$j] == "-1"){ $seats_map[$i][$j] = "0"; } }else $seats_map[$i][$j] = "-1"; } } } $htmlErroresGlobales = self::generaListaErroresGlobales($errores); $errorNumber = self::createMensajeError($errores, 'number', 'span', array('class' => 'error')); $errorSeats = self::createMensajeError($errores, 'seats', 'span', array('class' => 'error')); $errorRows = self::createMensajeError($errores, 'rows', 'span', array('class' => 'error')); $errorCols = self::createMensajeError($errores, 'cols', 'span', array('class' => 'error')); $html = '
'; for($j = 1; $j<=$cols; $j++){ $html .= ' | '.$j.' | '; } $html .= '|
---|---|---|
'.$i.' | '; for($j=1; $j<=$cols; $j++){ if($seats_map[$i][$j]>=0){ $html .= '';} else { $html .= ' | ';} } $html .=' |