Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Como pegar dados de um CalendarEvent no formato string? Olá pessoal. Criei um calendário tipo FullCalendarDatabaseView e estou tentando fazer com que os dados do evento apareça em uma TMessage. A função de quando o usuário clica em um evento eu mostro abaixo. No vardump($object) ele traz uma espécie de array, mas não consigo fazer o implode. Eu queria mostrar na TMessage os dados do evento, como título, horário de início, de término ...
FT
Como pegar dados de um CalendarEvent no formato string?  
Olá pessoal. Criei um calendário tipo FullCalendarDatabaseView e estou tentando fazer com que os dados do evento apareça em uma TMessage.

A função de quando o usuário clica em um evento eu mostro abaixo.

No vardump($object) ele traz uma espécie de array, mas não consigo fazer o implode. Eu queria mostrar na TMessage os dados do evento, como título, horário de início, de término e descrição.

public function onEdit($param) //Ao clicar em sobre evento { try { if (isset($param['key'])) { // get the parameter $key $key=$param['key']; // open a transaction with database 'samples' TTransaction::open('intranet_ad'); $object = new CalendarEvent($key); TTransaction::close(); var_dump($object); } else { $this->form->clear(); } } catch (Exception $e) // in case of exception { // shows the exception error message new TMessage('error', $e->getMessage()); // undo all pending operations TTransaction::rollback(); } }

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (4)


FT

Quando dou um vardump no calendar event ele mostra este resultado:

object(CalendarEvent)#1 (3) { ["data":protected]=> array(6) { ["id"]=> string(1) "5" ["start_time"]=> string(19) "2017-08-03 02:00:00" ["end_time"]=> string(19) "2017-08-03 03:00:00" ["title"]=> string(6) "testse" ["description"]=> string(8) "stestset" ["color"]=> string(7) "#3a87ad" } ["vdata":protected]=> NULL ["attributes":protected]=> array(5) { [0]=> string(10) "start_time" [1]=> string(8) "end_time" [2]=> string(5) "color" [3]=> string(5) "title" [4]=> string(11) "description" } }

creio que não consigo usar esses dados por estarem protegidos.
NR

Felipe, a variável $object é um objeto e não um array. Veja no exemplo abaixo como manipular essas informações:
adianti.com.br/framework_files/tutor/index.php?class=ObjectLoadView
FT

Muito obrigado Nataniel, funcionou perfeito! Eu não estava sabendo manipular mesmo. Segue o código:

public static function onEdit($param) //Ao clicar em sobre evento { try { if (isset($param['key'])) { // get the parameter $key $key=$param['key']; $title= new stdClass; $description= new stdClass; $start_time= new stdClass; $end_time= new stdClass; // open a transaction with database 'samples' TTransaction::open('intranet_ad'); $object = new CalendarEvent($key); $title->title = $object->title; $description->description = $object->description; $start_time->start_time = $object->start_time; $end_time->end_time = $object->end_time; TTransaction::close(); echo 'Título: ' . $title->title . "\n"; echo 'Descrição: ' . $description->description. "\n"; echo 'Início: ' . $start_time->start_time. "\n"; echo 'Término: ' . $end_time->end_time. "\n"; $desc=array(); $desc[0]=$title->title; $desc[1]=$description->description; $desc[2]=$start_time->start_time; $desc[3]=$end_time->end_time; new TMessage('info',"Título: $desc[0]<br/>Descrição: $desc[1]<br/>Início: $desc[2]<br/>Término: $desc[3]"); } else { $this->form->clear(); } } catch (Exception $e) // in case of exception { // shows the exception error message new TMessage('error', $e->getMessage()); // undo all pending operations TTransaction::rollback(); } }
NR

Felipe, só para lembrar que não é necessário criar as variáveis como objetos:
  1. <?php
  2. $title->title $object->title// deste modo $title = objeto, contendo um atributo title
  3. $title $object->title// deste modo $title = string
  4. echo $title;
  5. ?>