* It will also allow you to set lines or cells attributes as you would do in a classic html table */ class pagination { /** * @brief Temporary created datas */ private $results = array(); /** * @brief Add a new line to the results array * @param None * @return Zero-based index of this new line * * You will have to call this method for every line (<tr>) you want to add to the result table. * It will create an empty line, and return the zero-based index of the new line in the table. */ public function addLine() { // Create the new entry $tr = array(); // Add the tr's options array to this entry $tr[] = array(); // Add the tr's data's array to this entry $tr[] = array(); // Add the entry to the results array $this->results[] = $tr; // Return the zero-based index of the new entry return $this->getLinesCount()-1; } /** * @brief Set an attribute for a <tr> entry (such as id, class, style, ...) * @param line_index Zero-based index of the line (returned by the addLine method) * @param attr_name Name of the attribute to set * @param attr_value Value of the attribute to set * @return True if successfull, False otherwise * * Call this method to add properties to a <tr> entry of your table.
* For example, if you want to set the class name of a line, just call this method with $attr_name = "class" and $attr_value = "class_name". */ public function setLineAttribute( $line_index, $attr_name, $attr_value ) { if ( $line_index >= $this->getLinesCount() ) return false; // Get the concerned line entry $tr = & $this->results[$line_index]; // Get the line's options array $tr_opts = & $tr[0]; // Create (or update) the line attribute $tr_opts[$attr_name] = $attr_value; // All is ok : we can return true return true; } /** * @brief Get the number of lines already defined in the results array * @param None * @return Number of lines * * This method will return the total of lines added to the result array (total of calls to addLine ). */ public function getLinesCount() { return count($this->results); } /** * @brief Add a new cell to the given line * @param cell_value Text / Html code to put in the cell * @param line_index Zero-based index of the line (if ommitted, the last line added is used) * @return Zero-based index of the cell in the line * * You will have to call this method for every cell (<td>) entry that you want to add to a line. */ public function addCell( $cell_value, $line_index=null ) { if ( is_null($line_index) ) $line_index = $this->getLinesCount()-1; // Create the new cell datas $new_cell = array( 'html' => $cell_value ); // Get the line entry in the results array $tr = & $this->results[$line_index]; // Get the line's cells array $tr_cells = & $tr[1]; // Add the cell to the line $tr_cells[] = $new_cell; // Return the new cell index return $this->getCellsCount($line_index)-1; } /** * @brief Set an attribute for a <td> entry (such as id, class, style, colspan, ...) * @param line_index Zero-based index of the line * @param cell_index Zero-based index of the cell in the line (the cell must be created before with addCell) * @param attr_name Name of the attribute to set/modify * @param attr_value Value of the attribute * @return True if successfull, false otherwise * * Call this method to add properties to a <td> entry of your table.
* For example, if you want to set the class name of a cell, just call this method with $attr_name = "class" and $attr_value = "class_name". */ public function setCellAttribute( $line_index, $cell_index, $attr_name, $attr_value ) { // Check the $line_index and $cell_index values if ( ($line_index < 0) || ($line_index >= $this->getLinesCount())) return false; if ( ($cell_index < 0) || ($cell_index >= $this->getCellsCount($line_index)) ) return false; // Get the line entry in the results array $tr = & $this->results[$line_index]; // Get the line's cells array $tr_cells = & $tr[1]; // Get the cell entry $td = & $tr_cells[$cell_index]; // Set/Modify the cell attribute $td[$attr_name] = $attr_value; return true; } /** * @brief Get the number of cells already defined in the given line * @param line_index : Zero-based index of the line (if ommitted, the last line is used) * @return Number of cells in the line * */ public function getCellsCount( $line_index=null) { if ( is_null($line_index) ) $line_index = $this->getLinesCount()-1; // Get the line entry in the results array $tr = & $this->results[$line_index]; // Return the number of cells return count($tr[1]); } /** * @brief Get the created results array * @param None * @return json array of the result table datas * */ public function getResult() { return json_encode($this->results); } } ?>