Atualizando a Web Debug Toolbar do Symfony2 nas requisições Ajax

symfony-debug

Depois de tanto tempo, estou voltando hoje a publicar no blog coisas que acho que podem ajudar alguém.

O assunto de hoje é sobre como atualizar a WDT do Symfony2 com requisições Ajax, um assunto que vinha me martelando pra reservar um tempo pra resolver…

Exemplos em ExtJs e jQuery…

 

ExtJs (4.1):

if (Ext.select('.sf-toolbar').elements.length) {
    Ext.Ajax.on("requestcomplete", function(conn, XMLHttpRequest, options) {
        if(XMLHttpRequest.getResponseHeader('x-debug-token')) {
            Ext.select('.sf-toolbar').load({
                url: window.location.protocol+'//'+window.location.hostname+'/app_dev.php/_wdt/'+XMLHttpRequest.getResponseHeader('x-debug-token')
            });
        }
    });
}

jQuery:

if ($('.sf-toolbar').length) {
    $(document).ajaxComplete(function(event, XMLHttpRequest, ajaxOption){
        if(XMLHttpRequest.getResponseHeader('x-debug-token')) {
            $('.sf-toolbar').load(
                window.location.protocol+'//'+window.location.hostname+'/app_dev.php/_wdt/'+XMLHttpRequest.getResponseHeader('x-debug-token')
            );
        }
    });
}

Espero que ajude alguém.
Dúvidas, sugestões? Comentem!!!

Anúncios

Find/Replace com Regex no SublimeText 2

SublimeText 2

Tive um desafio hoje que é corriqueiro na vida de nós desenvolvedores: Tenho uma estrutura no código, por exemplo de array, e quero mudar para usar algum método, mantendo a posição do array (detalhe: em todo o projeto).

Bom… fazer isso em um arquivo ou dois, é mamão com açúcar, mas fazer isso em 100, 200 arquivos, visto que nós desenvolvedores não gostamos muito de digitar, principalmente algo repetido, não dá mesmo. Então eis que uma lâmpada se acende: “Porque não usar REGEX?”.

Lá vamos nós… pesquisando, e fazendo alguns testes, encontrei a solução com expressão regular.

Exemplo feito usando o Sublime Text 2:

Trocar   $_SESSION[‘qualquer_coisa’]
Por       $session->getUser()->getAttribute(‘qualquer_coisa’)

Find:
\$_SESSION\[(.\w*.)\]

Replace:
$session->getUser()->getAttribute($1)

Com isso pode ser feito um Find/Replace em todo o projeto de uma só vez! 🙂

Viva a simplicidade!!!!

Obs: Dicas e sugestões, são sempre bem vindas. Sabe um forma de fazer em outro editor? Comente!

Abraços. Até a próxima!

 

Habilitando Eclipse Global Menu no Ubuntu (>= 11.10)

Esta correção foi encontrada em: https://bugs.launchpad.net/eclipse/+bug/618587/comments/46

Para funcionar basta seguir os passos abaixo, lembrando que a versão do seu gtk pode ser outra, neste caso altere conforme necessário.

Passo 1: (fazendo backup 🙂
$ sudo cp /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so.origin

Passo 2: (se não tiver este programa instalado instale: sudo apt-get install vim)
$ sudo vim /usr/lib/gtk-2.0/2.10.0/menuproxies/libappmenu.so

Passo 3: (procure por “Eclipse”)
/Eclipse<return>

Passo 4: (substitua “E” por “X”)
rX

Passo 5: (salve)
ZZ

Passo 6: (Talvez opcional, não tenho certeza)
sudo ldconfig

Passo 7:
Abra o Eclipse e sorria 🙂

/webdev

Complementando o post anterior “Como Funcionam os Formulários no Symfony2?“, esta referência mostra, de maneira simplificada, as
três possíveis formas de se trabalhar com o Componente de Formulários no Symfony2.

São elas:

1. Diretamente no controlador (simples e fácil)
2. Criando uma classe independente para o formulário (melhor prática, pois é reutilizável)
3. Usando um formulário sem uma classe de dados

Seguem as referências em português e inglês:

Aproveite 🙂

Ver o post original

por romeugodoi Postado em Sem categoria

Mostrando label Complemento no checkout do Ubercart

Quem já implementou um Ecommerce em Drupal com Ubercart sabe na página de checkout tem um dos labels de endereço que não aparece (pelo menos até a versão 6.x-2.2 do Ubercart), isso acaba sendo chato porque pensamos que a solução seria apenas uma configuração, mas não é.

Para resolver esse pequeno problema abra o arquivo que está em ubercart/uc_cart/uc_cart_checkout_pane.inc e procure a função theme_address_pane (aqui está na linha 455).

Deixe a linha 461 como está a desse código:

/**
 * Theme the delivery/billing address forms in tables.
 *
 * @ingroup themeable
 * @see
 *   uc_checkout_pane_delivery()
 *   uc_checkout_pane_billing()
 */
function theme_address_pane($form) {
  $req = '<span class="form-required">*</span>';

  if (isset($form['copy_address'])) {
    $output = drupal_render($form['copy_address']);
  }

  $output .= '<div class="address-pane-table"><table>';

  foreach (element_children($form) as $field) {
    if (substr($field, 0, 9) == 'delivery_' || substr($field, 0, 8) == 'billing_') {
      $title = $form[$field]['#title'] .':';
      unset($form[$field]['#title']);
      if (substr($field, -7) == 'street1') {
        $title = uc_get_field_name('street') .':';
      }
      elseif (substr($field, -7) == 'street2') {
        $title = uc_get_field_name('street2') .':';
      }
      $output .= '<tr><td class="field-label">';
      if ($form[$field]['#required']) {
        $output .= $req;
      }
      $output .= $title .'</td><td>'. drupal_render($form[$field]) .'</td></tr>';
    }
  }
  $output .= '</table></div>';

  foreach (element_children($form) as $element) {
    $output .= drupal_render($form[$element]);
  }

  return $output;
}

Salva e é só ser feliz 😉

Agradecimentos ao Evandro-sl do Drupal-br.

Postagem com Source Code no WordPress

Uma das coisas que uso muito e não encontrei no WordPress algum botão no editor de texto que fizesse isso foi para escrita de códigos-fonte de linguagens de programação/script/marcação.

Procurando no nosso velho amigo Google, encontrei algumas pessoas falando que tinha plugins para isso, mas eu não encontrava uma forma de instalar por ser um blog hospedado no WordPress.com, mas enfim, em algum lugar navegando no “mar” da web (se lembrar aonde eu posto aqui) solicitei o plugin SyntaxHighlighter: http://wordpress.org/extend/plugins/syntaxhighlighter à equipe do WordPress, mas não era necessário plugin nenhum, pois eles me falaram que estava já disponível. Continuar lendo

Importar/Exportar CSV para Banco de Dados

Várias são as possibilidades de fazer essa migração. Para alguns, XML é a solução definitiva. Para outros, pouco aplicável pelo fato de ter de mexer com o desenvolvimento de sistemas. O quê poucos sabem é que existe uma alternativa para importar dados para tabelas do MySQL (E de outros SGDB’s também) através de arquivos CSV (Comma-Separated Values).

Quantas vezes você, DBA, administrador de sistemas ou programador já teve que criar programas para fazer a importação de tais arquivos? Eu mesmo utilizava muito essa técnica (PHP, PERL e as funções explode() e fgetcsv() são as principais ferramentas do canivete-suíço de quem faz isso) e não há problema nenhum, mas poucos sabem que o próprio SGDB já possui ferramentas de importação e exportação de arquivos em formato CSV. Neste artigo nós nos propomos a mostrar esta técnica. Continuar lendo

Configurando a rede pelo konsole (ubuntu/debian)

Postado originalmente em Linux (OS) Network(localhost) Por Julio em 05/02/2008

Nesse tutorial eu vou explicar como você pode configurar a rede no Ubuntu (e os seus descendentes K, X, E)  e debian. Irei mostrar os principais arquivos de configuração e os principais comandos de rede.

Lembrando que no debian você deve substituir o comando sudo pelo su -c ‘comando dentro das aspas’ .

O linux a sua rede funciona no modo texto, diferente do Windows que é modo gráfico , e sua configuração fica dentro de arquivos texto, no qual você pode manipular esses arquivos de acordo com a sua finalidade, é importante para qualquer usuário de linux saber como se pode configurar uma rede em modo texto, pois pode existir situações que só vai existir o modo texto. Continuar lendo