Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

WagnerFilho

Posicionar Mensagens Chat Codeigniter

Recommended Posts

Olá, Estou a desenvolver um aplicativo de mensagens(chat) e praticamente está concluído e funcionando.

Acontece que as mensagens estão todas alinhadas da esquerda para direita, independente do usuário da mensagem.

Exemplo:

Usuario 1 Mensagem
Usuario 2 Mensagem
Usuario 1 Mensagem
Usuario 2 Mensagem

Pretendo alterar isto e posicionar a mensagem do usuario 1 a esquerda e posicionar a mensagem do usuario 2 a direita. (estilo WhastApp).

Usuario 1 Mensagem
Mensagem Usuario 2
Usuario 1 Mensagem
Mensagem Usuario 2

Abaixo está o código de como estou recuperando a mensagem.

<?php
$this->db->select('tickets_historico.*,usuarios.nome_usuario');
    $this->db->join('usuarios','usuarios.id = tickets_historico.usuario_id', 'left');
    $this->db->where('ticket_id = 1');
    $this->db->order_by('dt_cadastro','desc');
    $historico = $this->db->get('tickets_historico')->result_array()
?>

Abaixo está o código de como estou exibindo a mensagem.

<div class="direct-chat-msg">
  <?php //Se houver comentários, imprime os comentários
  if(count($historico) > 0)
{ foreach ($historico as $row)
  {?>
    <?php $id = $row['usuario_id']; ?>
        <?php $image_url = base_url() . 'upload/imagens_usuarios' . '/' . $id . "_thumbnail" . '.jpg'; ?>
            <div class="direct-chat-info clearfix">
                <span class="direct-chat-name pull-left"><?=$row['nome_usuario']?></span>
                <span class="direct-chat-timestamp pull-right"><?= date('d/m/Y h:i A',strtotime($row['dt_cadastro']))?></span>
            </div>
            <img class="direct-chat-img" src="<?php echo $image_url; ?>" alt="message user image">
            <div class="direct-chat-text">
                <?=$row['mensagem'];?>
            </div><br>
   <?php }
}
else //Quando não há nenhum comentário
{
echo "<p>Atualmente, não há comentários.</p>";
}
?>
</div>

Resumindo o código acima:

if(count($historico) > 0)
    { foreach ($historico as $row)
{?>
    <p><strong><?=$row['nome_usuario']?></strong> Disse em <?= date('d/m/Y h:i A',strtotime($row['dt_cadastro']))?><br>
    <?=$row['mensagem'];?></p><hr>
<?php   }
}
    else //Quando não há nenhum comentário
{
    echo "<p>Atualmente, não há comentários.</p>";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por clovis.sardinha
      Como fazer para colocar um spinner antes de carregar os dados do bd? Eu clico no link e entra na função do controle e só vai para a página da views quando já está pronto a query. Vi uns exemplos de colocação de spinner, mas se a página ainda não apareceu como faço? Vou anexar a função que chama a página para facilitar. 
      public function inativos()  {     $session = \Config\Services::session();     $pager = \Config\Services::pager();     $usuarios=$this->usuarios->getInativos();//faz a query no bd.     $dados=[         'usuarios'=>$usuarios,         'pager'=>$this->usuarios->pager,     ];     echo view('Admin/Relatorios/listaInativos',$dados); }   
    • Por mark1978
      Boa noite srs, tem o código abaixo e esta funcionando normal e carregando o Qrcode no HTML na soma.
      Porém gostaria de alterar e que fosse da seguinte forma:
      Se "totalServico" for menor que "totalProdutos" e diferente de zero então carregue o Qr Code com esse valor
      Se não o valor for "0,00" carregue o valor "totalProdutos". Essa finalidade é para ter uma opção de desconto.
       
      <?php use Piggly\Pix\StaticPayload; class Os_model extends CI_Model { public function getProdutos($id = null) { $this->db->select('produtos_os.*, produtos.*'); $this->db->from('produtos_os'); $this->db->join('produtos', 'produtos.idProdutos = produtos_os.produtos_id'); $this->db->where('os_id', $id); return $this->db->get()->result(); } public function getServicos($id = null) { $this->db->select('servicos_os.*, servicos.nome, servicos.preco as precoVenda'); $this->db->from('servicos_os'); $this->db->join('servicos', 'servicos.idServicos = servicos_os.servicos_id'); $this->db->where('os_id', $id); return $this->db->get()->result(); } public function valorTotalOS($id = null) { $totalServico = 0; $totalProdutos = 0; if ($servicos = $this->getServicos($id)) { foreach ($servicos as $s) { $totalServico = $totalServico + $s->preco; } } if ($produtos = $this->getProdutos($id)) { foreach ($produtos as $p) { $totalProdutos = $totalProdutos + $p->subTotal; } } return ['totalServico' => $totalServico, 'totalProdutos' => $totalProdutos]; } public function getQrCode($id, $pixKey, $emitente) { if (empty($id) || empty($pixKey) || empty($emitente)) { return; } $result = $this->valorTotalOS($id); $amount = round(floatval($result['totalServico'] + $result['totalProdutos']), 2); if ($amount <= 0) { return; } $pix = (new StaticPayload()) ->applyValidCharacters() ->applyUppercase() ->setPixKey(getPixKeyType($pixKey), $pixKey) ->setMerchantName($emitente->nome, true) ->setMerchantCity($emitente->cidade, true) ->setAmount($amount) ->setTid($id) ->setDescription(sprintf("%s OS %s", $emitente->nome, $id), true); return $pix->getQRCode(); } }  

    • Por kaayasinho
      Fala pessoal tudo bom?
       
      Estou enfrentando um problema para descobrir como fazer um chat online.
       
      Na verdade eu preciso implementar uma comunicação no meu site, porém preciso que seja como se fosse uma rede social.
       
      Onde todos os participantes podem interagir entre si, alguém sabe me dizer se existe algum plugin site que faz esse tipo de chat?
       
      Por hora so encontrei chatbot para atendimento direto. Nenhum que disponibilizasse interação entre os navegantes do site.
       
      A finalidade, é. sera um site para eventos online, onde o participante tem que interagir com o outro, criando uma forma de network.
       
      Igual no linkedin.
       
      Obrigado!
    • Por Samuel Pietro
      Olá pessoal!

      Preciso da ajuda de vocês no seguinte!
      Tenho um arquivo retornos.json
       
      { "retornos": [ { "id": 1, "sigla": "00", "nome": "Efetuado" }, { "id": 2, "sigla": "01", "nome": "Inválido" }, { "id": 3, "sigla": "02", "nome": "Corrompido" } ] }
      E na minha aplicação feita com CodeIgniter tenho uma consulta que me mostra a sigla que está cadastrada no BD.
       
      foreach ($results as $r) {  $retorno = $r->codRetorno; } 
      Eu preciso que essa consulta ao me retornar a sigla 02 por exemplo o echo apresente o "nome" para tal "sigla" que esta cadastrada no JSON.

      No caso seria a seguinte lógica: 
      if ("$retorno" == JSON["sigla"]){ echo JSON["nome"];  } //ESTE NÃO É UM CÓDIGO VÁLIDO, É APENAS PARA FINS DE ENTENDER A LÓGICA DO QUE EU PRECISO. // PS. ESSA LOGICA PRECISA SER APLICADA DENTRO DE UM FOREACH COM MILHARES DE REGISTROS.
      Como eu posso fazer isso?
       
    • Por buganti
      Olá!
       
      Estou me familiarizando com o codeigniter e desenvolvendo um site, a estrutura dele montei usando o conceito de uma página só, então eu tenho algumas section que ao clicar nos botões do menu a página vai até a section referenciada, porém, me surgiu uma questão, uma dessas section terá referências a outras páginas separadas, por exemplo, terei alguns cards com produtos, ao clicar em algum desses cards abrirá uma nova página com mais detalhes sobre esse produto, aí nessa página o meu será o mesmo, via template, só que ao clicar no botões ele busca as referências das section da página principal (única) e aí não funciona para voltar para lá, como eu deveria fazer essa referência de forma que funciona-se para ambas as situações?
       
      Não sei se fui clara na minha dúvida, se caso for necessário posso tentar me explicar melhor.
       
      Desde já agradeço.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.