Download the PHP package brunolobo/widgets without Composer

On this page you can find all versions of the php package brunolobo/widgets. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package widgets

Widgets para PactoCRM

Pacote de Widgets originalmente criado pelo Arrilot e adaptado por Brunolobo para uso no PactoCRM

Instalação

1)

Para Laravel >= 5.5, apenas isso. Para Laravel < 5.5, continue lendo.

2) Registrar o service provider no app.php

3) Adicionar os facades também.

Uso

Considere que vamos criar um widget para exibir as últimas notícias na página.

Primeiro de tudo é criar um novo Widget com o comando artisan.

Este comando gera 2 arquivos:

1) resources/views/widgets/recent_news.blade.php é uma view vazia.

Adicione a opção "--plain" se você não precisa de uma view.

2) app/Widgets/RecentNews é uma classe de Widget.

Nota: Você pode usar seus próprios .stubs se precisar. Publique os arquivos de configuração para mudar os paths.

O último passo é chamar o widget. Você tem algumas formas de fazer isso.

ou

ou então

Não existe diferença entre os comandos, use conforme a sua preferência.

Passando variaveis para o widget

Pelo array de configuração

Imagine que vamos mostrar 5 notícias no widget de notícias, mas em alguns lugares exibiremos 10. Isso é facilmente conseguido com o uso da variável $config:

['count' => 10] é um array de configuração que é acessado por $this->config.

O array ed configuração está disponível em todo widget.

Nota: Campos do array de configuração não especificados na criação do widget não serão atualizados:

Nota 2: Você pode querer (mas provavelmente não deve) criar seu próprio BaseWidget e herdar a partir dele. Tudo bem. A única barreira neste caso é merger as configurações padrão entre pai e filho. Neste caso faça o seguinte:

1) Não adicione a linha protected $config = [...] no filho.

2) Adicione conforme abaixo:

Diretamente

Você pode passar parâmetros diretamente para o metodo run().

O método run() é resolvido via Service Container, então a injeção no método está disponível.

Namespaces

Por padrão o pacote tenta encontrar seu widget no namespace .

Você pode alterar isso publicando a configuração do pacote () e setando a propriedade default_namespace.

Ainda que usar o namespace padrão seja muito conveniente, em alguns casos você pode desejar mais flexibilidade. Por exemplo, se você tem dezenas de widgets faz sentido telos em diferentes 'pastas namespaced'.

Sem problema, você tem várias formas de chamar esses widgets:

1) Passar o nome completo a partir do default_namespace (basically App\Widgets) para o método run().

2) Usar notação de ponto.

3) FQCN também é uma opção.

Widgets assíncronos

Em alguns casos é necessário carregar o widget com AJAX.

Isso é conseguido de forma extremamente simples! O que você precisa é mudar o facade ou diretiva blade - Widget:: => AsyncWidget::, @widget => @asyncWidget.

Os parâmetros do widget são encriptados e enviados por ajax por debaixo dos panos. Então espere que os dados sejam encodados com json_encoded() e json_decoded() para desencodar.

Nota: Você pode desligar a encriptação para um determinado widget setando a variável public $encryptParams = false; nele. No entanto esta ação deixa os parâmetros do widget publicamente acessíveis, então tenha certeza de não deixar nenhum ponto de vulnerabilidade. Por exemplo, se você passar o user_id como parâmetro com a encriptação desligada, é interessante acrescentar outra variável de controle dentro do widget.

Nota: Você pode setar use_jquery_for_ajax_calls para true no arquivo de configuração para usar chamadas ajax caso queira.

Por padrão, nada é exibido até que a chamada ajax tenha finalizado.

Isto pode ser customizado com a adição do método placeholder() na classe do widget.

Nota: Se você precisa fazer alguma coisa com o pacote de rotas para carregar assincronamente o widget (se você roda em uma subpasta http://site.com/app/) você precisa copiar Brunolobo\Widgets\ServiceProvider para a pasta app, modificar de acordo com suas necessidades e registrar no Laravel.

Widgets recarregáveis

Você pode ir além e atualizar o widget automaticamente a cada N segundos.

Basta setar a propriedade $reloadTimeout do widget e está feito.

Tanto widgets sync quanto async tornam-se recarregáveis.

Você deve usar essa função com cuidado, pois pode facilmente sobrecarregar seu aplicativo caso as chamadas ajax tenham tempo muito curto. Considere usar web sockets também mas eles são mais difíceis de configurar.

Container

Os widgets necessitam de alguma interação DOM então todos concentram suas saídas em um containet html. Este container é definido pelo método AbstractWidget::container() e também pode ser customizado.

Nota: Não são suportados widgets em cascata.

Cache

Também existe uma forma simples de fazer o cache do widget. Basta setar a propriedade $cacheTime no widget e pronto.

O cache é desligado por padrão. Uma cache key é criada pelo widget para controle. Você pode sobrescrever o método se julgar necessário.

Widget groups (extra)

Em alguns casos o Blade é perfeito para setar a posição e ordem dos widgets. No entanto, algumas vezes você pode ter um comportamento diferente:

position() pode ser omitido.

Widget::group('sidebar')->addWidget('files');

é igual a

Widget::group('sidebar')->position(100)->addWidget('files');

Você pode configurar um separador que irá aparecer entre os widgets de um grupo. Widget::group('sidebar')->setSeparator('<hr>')->...;

Você pode encapsular cada widget de um grupo usando o método wrap method como abaixo:

Removendo widgets de um grupo

Existem algumas formas de remover um ou mais widgets de um grupo depois que eles já estiverem adicionados.

1) Remover um widget pelo unique id

2) Remover todos os widgets com nome específico.

3) Remover todos os widgets de uma posição específica.

4) Remover todos os widgets de uma vez.

Checando o estado de um grupo

Widget::group('sidebar')->isEmpty(); // bool

Widget::group('sidebar')->any(); // bool

Widget::group('sidebar')->count(); // int


All versions of widgets with dependencies

PHP Build Version
Package Version
Requires php Version >=5.5.9
illuminate/support Version >=5.1
illuminate/contracts Version >=5.1
illuminate/view Version >=5.1
illuminate/container Version >=5.1
illuminate/console Version >=5.1
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package brunolobo/widgets contains the following files

Loading the files please wait ....