ACC SHELL

Path : /www/hosting/oltv.cz/_/class/system/
File Upload :
Current File : /www/hosting/oltv.cz/_/class/system/table.php

<?php

/**
 * Třída pro obsluhu tabulek v administraci s možností řazení
 *
 * @author Filip Štencl
 * @since 9.9.2014
 *
 */

class table {

	const ico_presun = "<i class=\"fa fa-arrows-v\" style=\"font-size: 20px;\"></i>";
	const ico_edit = "<i class=\"fa fa-pencil\" style=\"font-size: 20px;\"></i>";
	const ico_delete = "<i class=\"fa fa-trash-o\" style=\"font-size: 20px;\"></i>";

	private $pager = false;
	private $order = null;
	private $limit = null;
	private $urlRazeni = null;
	private $razeni_id = null;
	private $ikona = array();
	private $jmeno = array();
	private $sort = array();
	private $popis = array();
	private $aktualPage = 0;
	private $pagerCode;
	private $class;
	private $id = ""; // slouží i pro uložení sortování do session, nutné vyplnit pro každou tabulku unikátně - slouží také pro ukládání natavení zobrazení tabulek do db
	private $style;
	private $thClass;
	private $nastaveni_povoleno = true;
	private $sql;
	private $columnCitac = 0;
	private $sloupce_db = "";
	private $content = "";
	private $lastRowId = null;
	private $pre_content = "";  // obsah pred výpisem tabulky
	private $post_content = ""; // obsah po výpisu tabulky
	private $show_search = false;
	private $show_calendar = false;
	private $sql_where = " WHERE 1 = 1 ";
	private $sql_group_by = "";


	public function __construct($sql = null) {
		$this->sql = $sql;
		$this->admin = admin::getInstance();
	}

	public function setClass($class) { $this->class = $class; return $this; }
	public function setId($id) {
		$this->id = $id;
		// pokud neexistuje uzivatelovo nastavení tabulky tak zaloz záznam
		$pomid = dibi::query("SELECT id FROM [admin_nastaveni] WHERE table_id = %s AND idadmin_uzivatele = %i",$id,intval($_SESSION['admin_id']))->fetchSingle();
		if ($pomid == null) {
			// záznam v db neexistuje - uložím...
			$arr = array(
				'idadmin_uzivatele' => intval($_SESSION['admin_id']),
				'table_id' => $this->id
			);
			dibi::query("INSERT INTO [admin_nastaveni]",$arr);
		}
		$this->setLimit(25); // nastavuji defaultní limit
		if ($this->sql == null) {
			$this->sql = "SELECT A.* FROM [".$this->id."] A";
		}
		return $this;
	}
	public function setStyle($style) { $this->style = $style; return $this; }
	public function setThClass($thClass) { $this->thClass = $thClass; return $this; }
	public function setOrder($order) { $this->order = $order; return $this; }
	public function setLimit($limit) {
		// ověření zdali si uživatel nenastavil už limit - najití záznamu v databázi (admin_nastaveni)
		$limit_db = dibi::query("SELECT count FROM [admin_nastaveni] WHERE table_id = %s AND idadmin_uzivatele = %i",$this->id,intval($_SESSION['admin_id']))->fetchSingle();
		if ($limit_db != null) {
			$this->limit = $limit_db;
		} else {
			$this->limit = $limit;
			// záznam o limitu v db neexistuje - uložím...
			$arr = array('count' => $limit );
			dibi::query("UPDATE [admin_nastaveni] SET ",$arr," WHERE idadmin_uzivatele = %i AND table_id = %s",intval($_SESSION['admin_id']),$this->id);
		}
		return $this;
	}

	public function nastaveni($hodnota = true) { $this->nastaveni_povoleno = $hodnota; return $this;}
	public function sortable($urlRazeni = null, $id = "ulozit_razeni") {
		if ($urlRazeni == null) {
			$urlRazeni = $this->admin->editUrl();
		}
		$this->razeni_id = $id;
		$this->urlRazeni = $urlRazeni;
		return $this;
	}
	public function pager() {
		if ($this->limit == null) { $this->limit = 25; }
		$this->pager = true; $this->pagerCode = self::getPager();
		return $this;
	}
	public function getResult() {return dibi::query(self::sestavSQL($this->sql));}
	public function addMainColumn($jmeno = "",$sort = null, $popis = null) {
		$this->ikona[] = null;
		$this->jmeno[] = $jmeno;
		$this->sort[] = $sort;
		$this->popis[] = $popis;
		return $this;
	}

	public function addMainColumn_fa($ikona = "",$jmeno = "",$sort = null, $popis = null) {
		$this->ikona[] = $ikona;
		$this->jmeno[] = $jmeno;
		$this->sort[] = $sort;
		$this->popis[] = $popis;
		return $this;
	}

	public function addRow($id = null, $other = null) {
		if ($this->columnCitac > 0) { $this->content .= "\n</tr>"; } // neni první řádek, můžu uzavřít předchozí
		if ($id != null) { $this->lastRowId = $id; }
		$this->content .= "\n<tr id=\"$id\"".($other != null?" ".$other:"").">";
		$this->columnCitac = 1;
		return $this;
	}

	public function addColumn($text = "",$width = null) {
		if (strpos($text,"<td") === false || strpos($text,"<td") > 5) { $text = "<td".($width != null?" style=\"width: ".$width."px;\"":"").">".$text."</td>"; }
		if (empty($this->sloupce_db) || in_array($this->columnCitac,$this->sloupce_db)) { $this->content .= "\n".$text;	}  // ověření, zdali tento sloupec vypisovat
		$this->columnCitac++;
		return $this;
	}

	public function addColumn_fotografie($cesta,$pocet,$width=90) { self::addColumn( "<a href=\"../files.php?pagecode=".$this->admin->getPageCode()."&amp;cesta=".$cesta."&amp;page=".$this->admin->getId()."&amp;typ=1&amp;pomid=".$this->lastRowId."\">".sklonovani($pocet,"fotografie","fotografie","fotografií")."</a>",$width); return $this; }
	public function addColumn_dokumenty($cesta,$pocet,$width=90) { self::addColumn( "<a href=\"../files.php?pagecode=".$this->admin->getPageCode()."&amp;cesta=".$cesta."&amp;page=".$this->admin->getId()."&amp;typ=2&amp;pomid=".$this->lastRowId."\">".sklonovani($pocet,"dokument","dokumenty","dokumentů")."</a>",$width); return $this; }

	public function addStaticColumn($text = "",$width = null) { // nevypnutelný sloupec
		if (strpos($text,"<td") === false || strpos($text,"<td") > 5) { $text = "<td".($width != null?" style=\"width: ".$width."px;\"":"").">".$text."</td>"; }
		$this->content .= "\n".$text; return $this;
	}

	public function addStaticColumn_presun() { self::addStaticColumn( "<td class=\"presun\" width=\"20\"><a class=\"tooltip\" title=\"Přesunout tento záznam\">".table::ico_presun."</a></td>"); return $this; }
	public function addStaticColumn_edit($url = null, $text = null, $modal = true) {
		if ($url == null) { $url = $this->admin->editUrl()."?action=update&amp;id=".$this->lastRowId; }
		if ($text == null) { $text = "Editovat tento záznam";}
		$url = str_replace("?","&",$url);
		$url = str_replace(".php&",".php?",$url);
		if ( $modal == true) { self::addStaticColumn( "<td width=\"20\"><a href=\"".$url."\" rel=\"modal\" class=\"tooltip\" title=\"$text\">".table::ico_edit."</a></td>"); }
		else { self::addStaticColumn( "<td width=\"20\"><a href=\"".$url."\" class=\"tooltip\" title=\"$text\">".table::ico_edit."</a></td>"); }
		return $this;
	}
	public function addStaticColumn_delete($url = null, $confirm = null, $title = null) {
		if ($confirm == null) { $confirm = "Opravdu smazat tuto položku?"; }
		if ($title == null) { $title = "Smazat tento záznam"; }
		if ($url == null) { $url = $this->admin->editUrl()."?delete=".$this->lastRowId; }
		$url = str_replace("?","&",$url);
		$url = str_replace(".php&",".php?",$url);
		self::addStaticColumn( "<td width=\"20\"><a href=\"".$url."\"  onclick=\"return confirm('$confirm');\" class=\"tooltip\" title=\"$title\">".table::ico_delete."</a></td>");
		return $this;
	}



	public function where ($where) { $this->sql_where .= " AND ".$where; return $this; }
	public function group_by ($group_by) { $this->sql_group_by .= " GROUP BY ".$group_by; return $this; }

	private function sestavSQL($sql){
		$sql .= $this->sql_where;
		$sql .= $this->sql_group_by;
		if ($this->order != null) {$sql .= " ORDER BY ".$this->order; }
		if ($this->limit != null && $this->pager == true) {$sql .= " LIMIT ".$this->aktualPage.", ".$this->limit; }
		return $sql;
	}

	public function tableHead() {
		if (isset($_SESSION['admin_sort_'.trim($this->id)]) && $_SESSION['admin_sort_'.trim($this->id)] != "") { $this->order = $_SESSION['admin_sort_'.trim($this->id)];}
		$tableOption = "class=\"vypis ".$this->class . ($this->urlRazeni != null?" sortable":"")."\" ";
		if ($this->id != "") { $tableOption .= "id=\"".$this->id."\" ";}
		if ($this->style != "") { $tableOption .= "style=\"".$this->style."\"";}

		$table = "";

		$table .= "<script type='text/javascript'>";
		$table .= "$(document).ready(function(){";
		// javascript pro sortování prvků tabulky
		if ($this->urlRazeni != null) {

			$table .= "$('table#".$this->id.".sortable').tableDnD({";
			$table .= "dragHandle: 'presun',";
			$table .= "onDragClass: 'hoverTR',";
			$table .= "onDrop: function(table, row) {";
			$table .= "$('#".$this->razeni_id."').fadeIn(500);";
			$table .= "var rows = table.tBodies[0].rows;";
			$table .= "var debugStr = '';";
			$table .= "for (var i=0; i<rows.length; i++) { debugStr += rows[i].id+'-'; }";
			$table .= "$('#".$this->razeni_id."').attr('href','".$this->urlRazeni.(empty($_GET)?"?":"&")."razeni='+debugStr);";
			$table .= "}});";
		}
		$table .= "});";
		$table .= "</script>";

		// nastavení - formulář
		// nactení sloupců z db
		$this->sloupce_db = dibi::query("SELECT sloupce FROM [admin_nastaveni] WHERE table_id = %s AND idadmin_uzivatele = %i",$this->id,intval($_SESSION['admin_id']))->fetchSingle();
		if ($this->sloupce_db != "" && $this->sloupce_db != null) {
			$this->sloupce_db = explode(", ", $this->sloupce_db);
			$nalezeno = true;
		} else { $nalezeno = false;}
		$sloupce = "";
		$citac = 1;
		foreach($this->jmeno as $jmeno) {
			if ($jmeno != "") {
				// ovření zdali je sloupec zapnut
				if ($nalezeno == false && $citac <= 5) {  // pokud nejsou uložená data v databázi, aktivuji prvních 5 sloupců
					$zapnout = true;
				}	elseif ($nalezeno != false)  {
					// zkontroluji jestli je sloupce v db zapnut = zapínám checkbox na ano
					if (in_array($citac,$this->sloupce_db)) {
						$zapnout = true;
					} else { // pokud nenajdu vypínám checkbox
						$zapnout = false;
					}
				}
				$sloupce .= "<tr><td>".admin::anoNe("sloupce$citac","zobrazení sloupce <strong>".$jmeno."</strong>",$zapnout,"ano","ne",true)."</td><td></td></tr>";
				$citac++;
			}
		}
		if ($this->nastaveni_povoleno == true) {
		$table .= "
			<div  class=\"none\" id=\"nastaveni_".$this->id."\">
				".$this->admin->editHead("Upravit zobrazení tabulky",true,false,"../core/sort.php")."
						<input type=\"hidden\" value=\"".$this->id."\" name=\"nazev\" />
						<input type=\"hidden\" value=\"".$citac."\" name=\"pocetSloupcu\" />
						<table class=\"formular\">
		";
		if (intval($this->limit) > 0 && $this->pager == true ) {
			$table .= "
							<tr>
								<td>
									<label>Počet výsledků na stranu</label>
								</td>
								<td>
									<select name=\"limit\" class=\"itext0 fr\">
										<option value=\"5\" ".($this->limit == 5?"selected=\"selected\"":"").">5</option>
										<option value=\"10\" ".($this->limit == 10?"selected=\"selected\"":"").">10</option>
										<option value=\"20\" ".($this->limit == 20?"selected=\"selected\"":"").">20</option>
										<option value=\"25\" ".($this->limit == 25?"selected=\"selected\"":"").">25</option>
										<option value=\"50\" ".($this->limit == 50?"selected=\"selected\"":"").">50</option>
										<option value=\"75\" ".($this->limit == 75?"selected=\"selected\"":"").">75</option>
										<option value=\"100\" ".($this->limit == 100?"selected=\"selected\"":"").">100</option>
										<option value=\"250\" ".($this->limit == 250?"selected=\"selected\"":"").">250</option>
										<option value=\"500\" ".($this->limit == 500?"selected=\"selected\"":"").">500</option>
									</select>
								</td>
							</tr>
						";
		}
		$table .= "
							<tr>
								<td colspan=\"2\">
									<table style=\"width: 750px; margin: 10px 0; padding: 20px 20px 30px 20px; background-color: #fff; border: 1px solid #ccc; border-radius: 5px;\">
									<tr><td colspan=\"3\"><strong>Sloupce tabulky:</strong></td></tr>
									$sloupce
									</table>
								</td>
							</tr>
							<tr>
								<td></td>
								<td><input type=\"submit\" class=\"isubmit\" name=\"update\" value=\"Uložit nastavení\" /></td>
							</tr>
						</table>
					</form>
				".$this->admin->editFooter(true)."
			</div>
		";
		}

		$table = "\n<div id=\"obal_".$this->id."\" class=\"table_obal\">".$table."<table".($tableOption != ""?" ".$tableOption:"")." cellspacing=\"0\" cellpadding=\"0\">";
		$table .="\n<thead>";
		$table .="\n<tr>";

		$citac = 0;
		$nepovoleny_sort = false;
		foreach($this->jmeno as $n => $jmeno) {
			if (empty($this->sloupce_db) || in_array(($citac + 1),$this->sloupce_db) || $jmeno == "") {
				$table .="\n<th".($this->thClass != ""?" class=\"".$this->thClass."\"":"").">";
				if ($this->sort[$citac] != NULL) {
					if ($this->id != "") {
						$sort = str_replace(" ","__",str_replace(",","-",$this->sort[$citac]));
						if ($this->ikona[$n] != null) { $table .="<a href=\"../core/sort.php?name=".$this->id."&amp;what=".$sort."\" title=\"".($this->popis[$n] != ""?"<p>".$this->popis[$n]."</p>":"")."Kliknutím seřadíte výsledky dle tohoto sloupce\" class=\"tooltip".(str_replace("ASC","DESC",$this->sort[$citac]) == str_replace("ASC","DESC",$this->order)? " active":"")."\" style=\"text-decoration: none;\"><span class=\"tooltip fa ".$this->ikona[$n]."\" title=\"".$this->jmeno[$n]."\" style=\"font-size: 13px; text-align: center; display:block; line-height: 15px;\"></span></a>"; }
						else { $table .="<a href=\"../core/sort.php?name=".$this->id."&amp;what=".$sort."\" title=\"".($this->popis[$n] != ""?"<p>".$this->popis[$n]."</p>":"")."Kliknutím seřadíte výsledky dle tohoto sloupce\" class=\"tooltip".(str_replace("ASC","DESC",$this->sort[$citac]) == str_replace("ASC","DESC",$this->order)? " active":"")."\">".$jmeno."</a>";}
					} else {
						$nepovoleny_sort = true;
						if ($this->ikona[$n] != null) { $table .= "<span class=\"tooltip fa ".$this->ikona[$n]."\" title=\"".($this->popis[$n] != ""?"<p>".$this->popis[$n]."</p>":"")."".$this->jmeno[$n]."\" style=\"font-size: 13px; text-align: center; display:block; line-height: 15px;\"></span>"; }
						else {$table .= $jmeno; }
					}
				} else {
					if ($this->ikona[$n] != null) { $table .= "<span class=\"tooltip fa ".$this->ikona[$n]."\" title=\"".($this->popis[$n] != ""?"<p>".$this->popis[$n]."</p>":"")."".$this->jmeno[$n]."\" style=\"font-size: 13px; text-align: center; display:block; line-height: 15px;\"></span>"; }
					else {$table .= "<span ".($this->popis[$n] != ""?"class=\"tooltip\" title=\"<p>".$this->popis[$n]."</p>\"":"").">".$jmeno."</span>"; }
				}
				$table .= "</th>";
			}
			$citac++;
		}
		if ($nepovoleny_sort == true) { notification::infoBox_attention("Tabulka nemá nastaven parametr ID, kontaktujte prosím autora projektu");}
		$table .="\n</tr>";
		$table .="\n</thead>";
		$table .="\n<tbody>";
		$this->pre_content .= $table;
		return $this;
	}
	public function getTableFooter() {
		$table ="\n</tbody>";
		$table .= "\n</table></div>";
		if ($this->pager == true){ $table .= $this->pagerCode; }
		else { $table .= $this->getInfoCount();}
		return $table;
	}
	public function getPager() {
		$pager = new pager();
		$pager->setLimit($this->limit);
		$this->aktualPage = $pager->getNow();
		$idProNastaveni = null;
		if ($this->nastaveni_povoleno == true) { $idProNastaveni = $this->id; }
		return $pager->getPaging_admin($this->sql . $this->sql_where . $this->sql_group_by,$pager->getNow(),$idProNastaveni);
	}

	public function getInfoCount() {
		$pager = new pager();
		$idProNastaveni = null;
		if ($this->nastaveni_povoleno == true) { $idProNastaveni = $this->id; }
		return $pager->getInfo($this->sql . $this->sql_where . $this->sql_group_by,$idProNastaveni);
	}

	public function search($kdeHledat) {
		$this->show_search = true;
		$vyhledavani = "<form action=\"../core/sort.php\" method=\"get\" class=\"slideDiv\">";
		if (isset($_SESSION['admin_search_'.$this->id]) && $_SESSION['admin_search_'.$this->id] != "") {
			$pom = explode(",",$kdeHledat);
			$pomSQL = " AND (";
			foreach ($pom as $kde => $co) { $pomSQL .= $co." LIKE '%".$_SESSION['admin_search_'.$this->id]."%' OR "; }
			$pomSQL = mb_substr($pomSQL,0,-4);
			$this->sql_where .= $pomSQL.")";
		}
		$vyhledavani .= "<input type=\"text\" value=\"".(isset($_SESSION['admin_search_'.$this->id])?$_SESSION['admin_search_'.$this->id]:"")."\" name=\"search\" class=\"itext tooltip\" title=\"Vyhledávání v záznamech\" />";
		$vyhledavani .= "<input type=\"hidden\" value=\"".$this->id."\" name=\"name\" />";
		$vyhledavani .= "<input type=\"submit\" value=\"&raquo;\" class=\"isubmit\" />";
		$vyhledavani .= "</form>";
		if (isset($_SESSION['admin_search_'.$this->id]) && $_SESSION['admin_search_'.$this->id] != "") {
			$vyhledavani .= "<label class=\"slideDiv\">Hledaná fráze: <strong>".$_SESSION['admin_search_'.$this->id]."</strong> | <a href=\"../core/sort.php?name=".$this->id."&amp;reset=search\" class=\"tooltip\" title=\"Zobrazit zpět všechny záznamy bez upřesnění na vyhledávané slovo\">zrušit filtr</a></label>";
		}
		$pom = "\n<script type=\"text/javascript\">";
		$pom .= "$(document).ready(function(){ ";
		$pom .= "	$(\"#obal_".$this->id."\").before('".$vyhledavani."');";
		if ($this->show_calendar) { // pokud byl nejprve vložen kalendář, tak ho nyní posun (změn na jinou classu)
			$pom .= "	$('#ico-cal-".$this->id."').removeClass('ico-cal2').addClass('ico-cal');";
		}
		$pom .= "});";
		$pom .= "</script>";
		$this->pre_content .= $pom;
		return $this;
	}

	public function calendar($sloupec = "Čas založení", $omezeni = "A.caszalozeni") {
		$this->show_calendar = true;
		if ($this->show_search) { $trida = "ico-cal"; }  // pokud je zapnuto vyhledávání, výběr datumu přesuň
		else { $trida = "ico-cal2"; }

		if (isset($_SESSION['admin_datefiltr_od_'.$this->id]) && $_SESSION['admin_datefiltr_od_'.$this->id] != "") {
			$pomSQL = " AND (";
			$pomSQL .= $_SESSION['admin_datefiltr_omezeni_'.$this->id]." >= '".$_SESSION['admin_datefiltr_od_'.$this->id]." 00:00:00'";
			$this->sql_where .= $pomSQL.")";
		}
		if (isset($_SESSION['admin_datefiltr_do_'.$this->id]) && $_SESSION['admin_datefiltr_do_'.$this->id] != "") {
			$pomSQL = " AND (";
			$pomSQL .= $_SESSION['admin_datefiltr_omezeni_'.$this->id]." <= '".$_SESSION['admin_datefiltr_do_'.$this->id]." 23:59:59'";
			$this->sql_where .= $pomSQL.")";
		}

		$pom = admin::js_datepicker();
		$pom .= "
			<script type=\"text/javascript\">
				$(document).ready(function(){
					$(\"#ico-cal-".$this->id." .actionplace\").click(function(){
						$(\"#ico-cal-".$this->id." .calendar_inner\").toggle();
						if ($(\"#ico-cal-".$this->id." .calendar_inner\").is(':visible')) {
							$(\"#ico-cal-".$this->id."\").css(\"background-color\",\"#FB7F2A\");
							$(\"#ico-cal-".$this->id." .calendar_inner\").css(\"border-radius\",\"5px 0 5px 5px\");
						} else {
							$(\"#ico-cal-".$this->id."\").css(\"background-color\",\"transparent\");
						}
					});
				});
			</script>";
		$pom .="
			<div id=\"ico-cal-".$this->id."\" class=\"$trida tooltip\" title=\"filtrovat záznamy dle sloupce<br /><strong>$sloupec</strong>\"><span class=\"actionplace\"></span>
				<div class=\"calendar_inner\">
					<form action=\"../core/sort.php\" method=\"get\">
						<div style=\"font-size: 90%; color: #222; text-align:center; margin: -5px 0 5px 0;\">filtrovat záznamy dle sloupce<br /><strong>$sloupec</strong></div>
						<input type=\"hidden\" value=\"$omezeni\" name=\"datefiltr_omezeni\" />
						<input type=\"hidden\" value=\"".$this->id."\" name=\"name\" />
						<input type=\"text\" value=\"".(isset($_SESSION['admin_datefiltr_od_'.$this->id])?$_SESSION['admin_datefiltr_od_'.$this->id]:"")."\" name=\"datefiltr_od\" placeholder=\"zobrazit od data\" class=\"itext datepicker\" />
						<input type=\"text\" value=\"".(isset($_SESSION['admin_datefiltr_do_'.$this->id])?$_SESSION['admin_datefiltr_do_'.$this->id]:"")."\" name=\"datefiltr_do\" placeholder=\"zobrazit do data\" class=\"itext datepicker\" />
						<input type=\"submit\" value=\"zobrazit období &raquo;\" class=\"ibut tooltip\" title=\"vyfiltruje výsledky dle zvolených datumů\" />
					</form>
				</div>
			</div>";
		if ((isset($_SESSION['admin_datefiltr_od_'.$this->id]) && $_SESSION['admin_datefiltr_od_'.$this->id] != "") || (isset($_SESSION['admin_datefiltr_do_'.$this->id]) && $_SESSION['admin_datefiltr_do_'.$this->id] != "")) {
			$calendar_filtr = "<label class=\"slideDiv\">Časové omezení zobrazených záznamů: od: <strong>".$_SESSION['admin_datefiltr_od_'.$this->id]."</strong> do: <strong>".$_SESSION['admin_datefiltr_do_'.$this->id]."</strong> | <a href=\"../core/sort.php?name=".$this->id."&amp;reset=datefiltr\" class=\"tooltip\" title=\"Zobrazit zpět všechny záznamy bez upřesnění na časový úsek\">zrušit filtr</a></label>";
			$pom .= "
			<script type=\"text/javascript\">
				$(document).ready(function(){
					$(\"#obal_".$this->id."\").before('".$calendar_filtr."');
				});
			</script>";
		}
		$this->pre_content .= $pom;
		return $this;
	}

	public function test() { dibi::test(self::sestavSQL($this->sql)); return $this; }
	public function tableFooter($footer = false) { echo self::getTableFooter($footer); }

	public function getTable() {
		$pom = $this->pre_content;
		$pom .= $this->content . "\n</tr>"; // pridam za posledni radek ukonceni radku...
		$pom .= $this->getTableFooter();
		$pom .= $this->post_content;
		return $pom;
	}

	public function writeTable() {
		if ($this->id == "") { echo "<p>Tabulka nemá nastaveno ID, prosím kontaktujte autora stránek</p>"; notification::infoBox_attention("Chybné nastavení výpisu dat do tabulky<br />Chybné ID"); }
		else { echo self::getTable(); }
	}

	public function anoNe($hodnota = null,$sloupec = null) {
		if ($sloupec == null) {
			if ($hodnota == 1) { $echo = "<span class=\"fa fa-check-circle\" style=\"color: green; font-size: 20px; text-align:center; display:block;\"></span>"; }
			if ($hodnota == 0) { $echo = "<span class=\"fa fa-times-circle\" style=\"color: red; font-size: 20px; text-align:center; display:block;\"></span>"; }
		} else {
			if ($hodnota == 1) { $echo = "<a href=\"#\" class=\"fastsave fa fa-check-circle tooltip\" data-set=\"0\" data-table=\"".TABULKA."\" data-sloupec=\"$sloupec\" data-id=\"$this->lastRowId\" style=\"color: #669862; font-size: 19px; text-decoration: none; text-align:center; display:block;\" title=\"přepnout hodnotu\"></a>"; }
			if ($hodnota == 0) { $echo = "<a href=\"#\" class=\"fastsave fa fa-times-circle tooltip\" data-set=\"1\" data-table=\"".TABULKA."\" data-sloupec=\"$sloupec\" data-id=\"$this->lastRowId\" style=\"color: #777; font-size: 19px; text-decoration: none; text-align:center; display:block;\" title=\"přepnout hodnotu\"></a>"; }
		}
		return $echo;
	}

	public function fastEdit($hodnota = null, $sloupec = null, $width = 50, $tabulka = null) {
		if ($tabulka == NULL) { $tabulka = TABULKA; }
		$echo = "<input type=\"text\" class='fastinputsavevalue tooltip' title=\"Původní hodnota:<br />".$hodnota."\" data-pomid=\"".$sloupec."_".$this->lastRowId."\" value=\"".$hodnota."\" data-id='".$this->lastRowId."' data-value=\"".$hodnota."\" style=\"border: 1px solid #ccc; width: ".$width."px; padding: 0 2px; float: left;\" />";
		$echo .= "<a href=\"#\" class=\"fastinputsave tooltip\" data-pomid=\"".$sloupec."_".$this->lastRowId."\" data-set=\"\" data-table=\"$tabulka\" data-sloupec=\"$sloupec\" data-id=\"".$this->lastRowId."\" style=\"border-bottom-right-radius: 3px; border-top-right-radius: 3px; display: none; float: left; padding: 2px 4px 2px 4px; background-color: #ccc;\" title=\"uložit změněnou hodnotu\"><i class=\"fa fa-save\" style=\"font-size: 14px;\"></i></a>";
		return $echo;
	}

}

ACC SHELL 2018