status = $icon ['status']; if (array_key_exists ('table', $icon) && trim ($icon ['table']) != '') $this->table = trim ($icon ['table']); elseif (!is_null ($this->view)) $this->table = $this->view->getTable (); if (array_key_exists ('primary', $icon) && trim ($icon ['primary']) != '') $this->primary = trim ($icon ['primary']); elseif (!is_null ($this->view)) $this->primary = $this->view->getPrimary (); if (array_key_exists ('column', $icon)) $this->column = trim ($icon ['column']); if (array_key_exists ('message', $icon)) $this->message = translate ($icon ['message']); foreach ($this->status as $key => $status) if (array_key_exists ('value', $status) && trim ($status ['value']) != '') User::singleton ()->register ($this->table, $this->column, $status ['value']); } public function makeIcon ($itemId, $forceDisable = FALSE) { $opts = $this->genOptions (); if (!$this->accessible || $forceDisable || $this->table == '' || $this->primary == '' || $this->column == '' || trim ($opts) == '') return ''; foreach ($this->status as $key => $status) if (array_key_exists ('value', $status) && trim ($status ['value']) != '') User::singleton ()->register ($this->table, $this->column, $itemId, $status ['value']); return ''. $this->label .''; } public function makeLink ($itemId, $forceDisable = FALSE) { $opts = $this->genOptions (); if (!$this->accessible || $forceDisable || $this->table == '' || $this->primary == '' || $this->column == '' || trim ($opts) == '') return 'href="#"'; foreach ($this->status as $key => $status) if (array_key_exists ('value', $status) && trim ($status ['value']) != '') User::singleton ()->register ($this->table, $this->column, $itemId, $status ['value']); return 'href="#" onclick="JavaScript: inPlaceStatus (\''. (is_null ($this->getId ()) ? '_STATUS_' : $this->getId ()) .'\', \''. $itemId .'\', \''. $this->table .'\', \''. $this->primary .'\', \''. $this->column .'\', \''. htmlentities ($this->message, ENT_QUOTES, 'UTF-8') .'\', this, '. $opts .');"'; } private function genOptions () { if (!is_null ($this->buffer)) return $this->buffer; $array = array (); foreach ($this->status as $trash => $opt) { if (!array_key_exists ('value', $opt) || trim ($opt ['value']) == '' || !array_key_exists ('label', $opt) || trim ($opt ['label']) == '') continue; $array [] = "value: '". trim ($opt ['value']) ."', label: '". htmlentities (translate ($opt ['label']), ENT_QUOTES, 'UTF-8') ."', color: '". (array_key_exists ('color', $opt) ? trim ($opt ['color']) : '') ."'"; } if (!sizeof ($array)) $this->buffer = ''; else $this->buffer = 'new Array ({'. implode ('}, {', $array) .'})'; return $this->buffer; } } ?>