Jump to content

kalua

Members
  • Content count

    44
  • Joined

  • Last visited

Community Reputation

0 Comum

About kalua

  1. Boa tarde pessoal, eu estou tendo problemas em salvar um simples widget de texto personalizado, há alguma coisa de errado com o seguinte código? <?php namespace App\Widgets; class TextWidget extends \WP_Widget { public function __construct() { parent::__construct( 'custom-text', 'Texto personalizado' ); } public static function init() { add_action('widgets_init', function() { register_widget(self::class); }); } public function widget($args, $instance) { echo esc_html__($instance['content'], 'text_domain'); } public function form($instance) { $instance = wp_parse_args( (array) $instance, ['content' => ''] ); ?> <p> <textarea class="widefat" id="<?php echo esc_attr($this->get_field_id('content')); ?>" name="<?php echo esc_attr($this->get_field_name('content')); ?>" type="text" cols="30" rows="10" ><?php echo esc_attr($instance['content']); ?></textarea> </p> <?php } public function update($newInstance, $oldInstance) { $instance = array(); $instance['content'] = (!empty( $newInstance['content'])) ? $oldInstance['content'] : ''; return $instance; } }
  2. Pronto! Foi só falta de atenção mesmo, estava usando include_once quando o que eu precisava era apenas de um include, por isso as subsequentes chamadas nunca funcionariam por motivos óbvios, include_once inclui o arquivo apenas uma vez e impede que novas chamadas a função adicionem o arquivo novamente.
  3. Olá galera, eu estou tendo um problema que está me aflingindo muito, nunca vi algo assim, eu estou desenvolvendo algumas classes para trabalhar com WordPress e estou usando Output Buffering para gerar as saidas dos meus templates em meus plugins, porem, estou enfrentando um problema quando tento executar um método render de um mesmo tipo, o que acontece é que o PHP me retorna uma string vazia apos a chamada da primeira instancia. View.php: <?php namespace App\Core; class View { /** * Renderiza uma view * @param string $path * @param array $data */ public static function render($path, $data = []) { ob_start(); extract($data); include_once ROOT_PATH . '/views/' . $path . '.php'; return ob_get_clean(); } } Input.php <?php namespace App\Core\Fields; use App\Core\Field; use App\Core\View; class Input implements Field { ... public function render() { return View::render('fields/input', [ 'key' => $this->getKey(), 'label' => $this->getLabel(), 'type' => $this->getType(), 'value' => $this->getValue() ]); } } O código client: $f1 = new Input('athlete_address', 'Endereço', 'text'); $f2 = new Input('athlete_birthdate', 'Data de nascimento', 'date'); $f1->render(); // Retorna saida normal $f2->render(); // Retorna string vazia Porém se eu fizer assim... $select = (new Select('athlete_category', 'Categoria')) ->addOption('Open', 'Open') ->addOption('Master', 'Master'); $f1 = new Input('athlete_address', 'Endereço', 'text'); $f2 = new Input('athlete_birthdate', 'Data de nascimento', 'date'); $f1->render(); // Retorna saida normal $f2->render(); // Retorna string vazia $select->render(); // Retorna saida normal Codigo da classe Select.php <?php namespace App\Core\Fields; use App\Core\Field; use App\Core\View; class Select implements Field { public function render() { return View::render('fields/select', [ 'key' => $this->getKey(), 'label' => $this->getLabel(), 'options' => $this->getOptions(), 'value' => $this->getValue() ]); } } As classes Input.php e Select.php compartilham de uma interface comum, porem quando eu tento renderizar uma segunda instancia de Input o que eu recebo é uma string vazia, o que pode ser isso?
  4. Olá a todos. Gostaria de saber se existe a possibilidade de deletar diretórios e sub-diretórios sem o uso de funções recursivas. Desde já agradeço a atenção de todos! xD
  5. kalua

    Fazer UPDATE sem alterar dados atuais

    O meu problema é que na minha instrução sql eu coloco todas as colunas, com intenção de deixar alterável todos os campos, mas o que eu quero é: quando houver uma situação em que não precisar alterar determinado campo, não modificar o dado deste campo. Por exemplo: $this->senha = null $sql = "UPDATE tabela SET campos e values WHERE id = :id"; Quando eu coloco null para como acima o mysql apaga o dado atual e deixa nada, eu pensei que colocando null ele não alteraria nada, mas não foi o que aconteceu.
  6. Olá a todos, Eu gostaria de saber como eu consigo fazer um update sem alterar um determinado dado que não foi setado, ao invés de ficar em branco, eu gostaria de manter o dado e alterar somente as colunas que foram setadas. Desde já agradeço a força.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.