/** * Uma action nesse contexto representa o link que executa uma ação específica * em um grid, específicamente na última coluna do grid, na coluna AÇÕES. * * @param Mustache_Engine $mustache * @param array $row */ public function getActions($mustache, $row) { $actions = ""; foreach ($this->actions as $config) { $actions .= " " . HTML::link($mustache->renderHTML($config['url'], $row), '<span class="' . $config['icon_class'] . '"></span> ' . $config['label_text'] . ' ', $config['title'], $config['extra']); } return $actions; }
/** * Retorna o html para renderizar o elemento na página * * @param string $name O nome do componente * @param string $value O caminho da imagem * @param array $params Parâmetros utilizados com as Flag::CONSTANTES * @param array $attr Atributos html para o elemento * @return string Retorna o html para o elemento */ public function getHTMLEditable($name, $value, $params, $attr = array()) { MemoryPage::addCss('static/css/page/filemanager.css'); MemoryPage::addJs("js/modal-fileupload.js"); MemoryPage::addJs("static/plugin/bootstrap-fileinput-master/js/fileinput.min.js"); MemoryPage::addCss('static/plugin/bootstrap-fileinput-master/css/fileinput.min.css'); $params = $this->normalizeParams($params); $link = 'filemanager/index?path=' . getValueFromArray($params, Flag::MOVE_TO, 'image/') . '&header=false'; $linkextra = ['data-toggle' => 'modal', 'data-target' => '#myFileUpload', 'data-up-action' => 'fileupload', 'data-hiddenid' => $name . '_id', 'data-imgid' => $name . '_img_id', 'class' => 'filemanager-action-link']; $linkextra = array_merge($linkextra, $attr); $imgattr = ['class' => 'imgfile img-responsive', 'id' => $name . '_img_id']; $hasOrdenator = getValueFromArray($params, Flag::FILEIMAGE_HAS_ORDENATOR, false); $placeholder = '<small>' . getValueFromArray($params, Flag::PLACEHOLHER, '') . '</small>'; if (empty($value)) { $helpText = getValueFromArray($params, Flag::FILEIMAGE_HELP_TEXT, false); if (!$helpText) { $helpText = 'Adicionar imagem'; } $noimg = ""; $showImgComponent = getValueFromArray($params, Flag::FILEIMAGE_SHOW_IMGCOMPONENT, true); if ($showImgComponent) { $noimg = HTML::img('image/icons/img-icon.png', 'Nenhuma imagem selecionada', $imgattr); $img = $noimg . HTML::link($link, $helpText, 'Adicionar imagem', $linkextra); } else { $img = HTML::link($link, $noimg . $helpText, 'Adicionar imagem', $linkextra); } if ($hasOrdenator) { $ordem = $linkextra["data-ordem"]; $paginaformandoid = isset($linkextra["data-pagina_id"]) ? $linkextra["data-pagina_id"] : ''; $img .= "<div class='fileimage-ordem' title='ordem da imagem nesta página personalizada'>{$ordem}</div>"; $img .= "<div class='glyphicon glyphicon-trash unselect' \n data-ordem='" . $ordem . "' data-paginaformando_id=' " . $paginaformandoid . " ' style='display:none;'\n title='clique aqui para remover esta imagem!'></div>"; } } else { $img = HTML::img($value, 'Imagem selecionada', $imgattr); $img .= HTML::link($link, 'Alterar imagem', 'Trocar a imagem', $linkextra); if ($hasOrdenator) { $ordem = $linkextra["data-ordem"]; $paginaformandoid = isset($linkextra["data-pagina_id"]) ? $linkextra["data-pagina_id"] : ''; $img .= "<div class='fileimage-ordem' title='ordem da imagem nesta página personalizada'>{$ordem}</div>"; $img .= "<div class='glyphicon glyphicon-trash unselect' \n data-ordem='" . $ordem . "' data-paginaformando_id=' " . $paginaformandoid . " ' \n title='clique aqui para remover esta imagem!'></div>"; } } return $placeholder . $img . HTML::input($name, array('value' => $value), $name . '_id', 'hidden'); }
/** * Configura os dados para o modo render em tabela * * @param array $dados * @param array $schema * @return string */ public function getTable($dados, $schema) { $thead = array_keys($schema); $action = getValueFromArray($this->config, Crud::SHOW_TABLE_ACTIONS, true); if ($action) { $thead[] = 'Ações'; #@todo refatorar init $dao_pks = $this->dao->getPKFieldName(); if (is_string($dao_pks)) { $pk = $dao_pks; } else { if (is_array($dao_pks)) { $pk = isset($dao_pks[0]) ? $dao_pks[0] : "no-primary-key-setted"; } else { $pk = "id"; //daoname_id } } $default_edit_url = str_replace('<id>', $pk, $this->urlbase . 'edit/{{<id>}}'); $default_delete_url = str_replace('<id>', $pk, $this->urlbase . 'delete/{{<id>}}'); $urledit = getValueFromArray($this->config, Crud::ACTION_URL_EDIT, $default_edit_url); $urldelete = getValueFromArray($this->config, Crud::ACTION_URL_DELETE, $default_delete_url); #refatorar end } $r = ['tfoot' => count($dados) . ' registro(s)', 'thead' => $thead, 'tbody' => [], 'class' => 'table-striped table-hover table-bordered browsetable']; $t = Template::singleton(); foreach ($dados as $row) { $td = []; foreach ($schema as $template) { //date format would can be here :) $td[] = $t->renderHTML($template, $row); } if ($action) { $actions = HTML::link($t->renderHTML($urledit, $row), '<span class="glyphicon glyphicon-pencil"></span>', 'Editar este item', ['class' => 'btn btn-default btn-xs']); $actions .= ' ' . $this->getUserActions($t, $row); $showDelete = getValueFromArray($this->config, Crud::SHOW_DELETE_LINK, true); if ($showDelete) { $actions .= ' ' . HTML::link($t->renderHTML($urldelete, $row), '<span class="glyphicon glyphicon-trash"></span>', 'Excluir este item', ['class' => 'btn btn-danger btn-xs confirmacao']); } $td[] = $actions; } $r['tbody'][] = $td; } return $r; }
public function getHTMLEditable($name, $value, $params, $attr = array()) { return HTML::link(getValueFromArray($params, Flag::URL), getValueFromArray($params, Flag::LABEL), "", $attr); }