Terça, 28 Agosto 2012 12:50

Personalizar template do Cobalt

Escrito por 
Avalie este item
(0 votos)

Se você aprender os conceitos do template do Cobalt você pode fazer tudo! 
WOW! 
Agora posso fazer tudo!

Mas, você tem que aprender primeiro. E isso pode levar tempo. Mas nós vamos ajudá-lo a passar. E mesmo se você receber perguntas ao longo do projeto, que não são respondidas neste artigo vamos ajudá-lo e responder a qualquer deles em nosso fórum de suporte .

1. O que são templates Cobalt?

Templates de cobalto é o sistema que permite que você defina Templates processamento ou estilos diferentes para cada seção ou tipo de conteúdo .

Configurações do template em tipo de conteúdo

Modelo de configurações de tipo

Configurações do template na seção

 

Modelo de configurações de seção

Com esta abordagem cada seção, artigo, comentário ou bloco de outro monitor de cobalto pode olha de forma diferente. Ao mesmo tempo, todas as mudanças serão preservadas na atualização de extensão em si.

O botão de engrenagem pequena engrenagempermitem que você defina as configurações do template. Isso também permite que você crie Templates altamente customizáveis.

2. Requisitos

Você não tem que ser um especialista para gerenciar isso. Embora o melhor especialista que você é em Templates de CSS / HTML melhores virão fora de suas mãos.

  1. Você tem que saber CSS / HTML - Qualquer nível (mas você tem que saber isso)
  2. Você tem que saber PHP - nível elementar (alguns truques exigem um melhor conhecimento, mas para o template de edição básica de nível elementar é mais do que suficiente)

Ao nível elementar, quero dizer que você pode entender que este

<h2> <? php echo $ item-> title;?> </ h2>

Simplesmente mostra título do artigo. Se isto não é difícil para você, você pode continuar a leitura.

3. Fazer cópias Templates

Para iniciar o desenvolvimento de qualquer template que você começar fazendo cópia de algum template existente. Este é um passo muito importante para evitar a perda de alterações na atualização Cobalt seguinte.

  1. Abra o Gerenciador de template Cobalt.

  2. Escolha o seu template que feets mais precisa. Geralmente há apenas um padrão de template por padrão, mas há poucos para as listas de recordes e índices da categoria. Se você precisa de tabela de estilo de cópia de template deafult . Se você precisa de mais como blogue cópia estilo de template simple_list .

  3. Clique Copiar / Renomear botão na barra de ferramentas.

  4. Digite o novo nome e clique em Copiar botão.

    Nome da nota, será parte do nome do arquivo de template. Então, por favor, use somente caracteres az e _. Por favor, evitar casos de letra de mistura. Use todos os casos de pequeno porte.

    Após a recarga você vai ver o seu novo template na lista.

  5. Se você copiar Lista artigo template, você precisa também mudar o nome do template. Porque este nome mais tarde pode ser usado em template de alternador no frontend, se você usar mais de um template por seção. Digite o nome no rótulo Mudança campo e clique em Alterar a etiqueta botão.

modelo de cópia de cobalto

4. Encontre seus arquivos de template

Aqui estão os caminhos onde seus Templates recém-localizados serão armazenados. * - É o nome que você deu a template enquanto copiá-lo.

  • Article list - /components/com_cobalt/views/records/tmpl/default_list_*
  • Category Index - /components/com_cobalt/views/records/tmpl/default_cindex_*
  • Menu - /components/com_cobalt/views/records/tmpl/default_menu_*
  • Filters - /components/com_cobalt/views/records/tmpl/default_filters_*
  • Markup - /components/com_cobalt/views/records/tmpl/default_markip_*
  • Article - /components/com_cobalt/views/record/tmpl/default_record_*
  • Comments - /components/com_cobalt/views/record/tmpl/default_comments_*
  • Form - /components/com_cobalt/views/form/tmpl/default_form_*
  • Category select - /components/com_resource/views/form/tmpl/default_category_*

5. Arquivos de template

Cada template pode ter esses arquivos. Vamos por exemplo, ter default_record_default.php template.

Então você pode criar arquivos

  • default_record_default - pasta que pode armazenar todos os arquivos adicionais para o seu template. Você tem que usar esta pasta se você quiser todos os arquivos necessários copiados com Packer Cobalt.
  • default_record_default.php - próprio arquivo de template
  • default_record_default.css - colocar todos os CSS template aqui. Ele será automaticamente ligado.
  • default_record_default.js - colocar todos java script deste arquivo e ele será automaticamente carregado.
  • default_record_default.png - screenshot pequeno do seu template para visualizar no gerenciador de template. O tamanho normalmente não é superior a 300x300 px. Mas você pode fazê-lo maior.
  • default_record_default.xml - contêm informações do autor do template e parâmetros do template.Como usar parâmetros eu vou explicar mais tarde.

6. Personalize Templates

Basicamente, quando falamos de Templates, falamos sobre o artigo e os Templates de artigos da lista. Os outros Templates podem ser facilmente estilos e ajustado. Normalmente questões mais importantes são campos sobre recordes.

Não há melhor maneira de aprender, então para ver o código de outras pessoas. Então, por favor código olhar de Templates para aprender como ele foi usado e quais as variáveis são possíveis de usar.

Objeto Record

No template de lista ou artigo completo você verá $ item objeto que contenha registro.

$ Item conter propriedades essenciais, como classificação ctime, hits, user_id e assim uma como campos.Os parâmetros básicos são acessíveis como este:

Hits:? <? Php echo $ item-> hits;>

Q: Como pode ver a lista de todas as propriedades disponíveis do objeto de registro

Para ver todas as propriedades de $ item objeto que você pode usar esta técnica. Basta adicioná-lo em qualquer lugar em seu template

var_dump (get_object_vars ($ item));

Q: Como obter a URL do registro?

Se você deseja obter a URL do registro atual. Quero dizer URL do $ item objeto que você está trabalhando com

<? Php echo JRoute :: _ ($ item-> url);>

Mas se você precisa da URL do registro de outro e você tem apenas um ID

<?php echo JRoute::_(Url::record($record_id));?>

Campos recorde

Opor $ item agora conter campos organizados de maneira diferente

  • $ Item-> fields_by_id - conjunto de campos de registro onde ID campo é a chave de uma matriz
  • $ Item-> fields_by_key - conjunto de campos de registro onde campo chave é a chave de uma matriz. Por favor ler o que está no FAQ no final deste artigo.
  • $ Item-> fields_by_group - matriz de vários níveis de campos de registro, onde primeiro nível é o grupo dos campos e segundo são campos.

Existem dois estilos para mostrar resultado de seus campos. E é muito simples de fazer a decisão de qual usar. Você tem que acessar campos de fields_by_key se você cria um template que tem que suportar múltiplos tipos. Se você cria um template para o tipo simples, você pode usar fields_by_id .

<? Php if (isset ($ item-> fields_by_id [12])):>
    <span class="field-year">
        <? Php echo $ item-> fields_by_id [12] -> resultado;>?
    </ Span>
<Php endif;?> 

E se você quiser chamá-campo pela chave, primeiro você tem que pegar a chave.

Fields_keys_by_id [12] <php $ chave = $ this->;>
<? Php if (isset ($ item-> fields_by_key [$ key])):>
    <span class="field-year">
        <? Php echo $ item-> fields_by_key [$ key] -> resultado;>?
    </ Span>
<Php endif;?> 

Acima é o exemplo que irá suportar vários tipos no mesmo template. Mesmo que você use apenas a ID do campo de um particular, você vai ter a mesma chave no outro campo com o mesmo rótulo e tipo de campo.

Q: Como é que eu sei o que é uma identificação de campo?

Você pode encontrar ID de campo na lista de campos (2)

Tipo e ID

Objeto de campo

De qualquer item-> $ fields_by_key [$ key] ou $ item-> fields_by_id [12] é um objeto de campo e conter propriedades muito mais do que -> resultado .

Alguns deles são muito úteis. Por exemplo, na tabela varinha te todos os campos do tipo dígitos ser alinhada para a direita.

<td<?php echo ($field->type == 'digits' ? ' align="right" ' : NULL ) ?>>
    <?php echo $field->result;?>
</td>

Ou $ item-> fields_by_id [12] -> params tem todos os parâmetros definidos durante a criação do campo. Por exemplo adicionar classe que foi definido nos parâmetros de campo.

<span class="my-class <?php echo $item->fields_by_id[12]->params->get('core.field_class')?>">
    <?php echo $item->fields_by_id[12]->result;?>
</span>

Q: O que é uma chave de campo.

Chave dos Campos agora é a parte de apoio tipo multi em Templates. Você não vai criar este chaves Eu só quero explicar para você entender o conceito. Chave de campo e MD5 é do tipo de campo e etiqueta.

$field_key = 'k'.md5($field->label.'-'.$field->field_type); 

Vamos, diga rótulo do campo é Ano e campo id do tipo dígitos . Depois

$field_key = 'k'.md5('Year-digits'); 

Então, se você chamar de campo por chave, não importa que tipo é, se tiver de campo Ano tipodígitos ela será exibida no seu template.

Você pode encontrar as chaves na coluna DB -chave em jos_js_res_fields tabela (1) .

Chave de campo

Q: O resultado do campo contêm HTML. Como chegar de texto em linha?

A forma mais simples de obter texto sem qualquer formatação HTML é.

strip_tags echo ($ item-> fields_by_id [12] -> resultado);

Q: Como posso ver todas as propriedades disponíveis do objeto de campo?

Você pode usar a mesma técnica para listar as propriedades dos objetos e, mais tarde eu vou fazer referência.

var_dump (get_object_vars ($ item-> fields_by_id [12]));

Q: Quais são os tipos de campo disponíveis e como eu sei qual é o tipo no campo atual?

Você pode encontrar o nome do tipo de campo na lista de campos (1)

Tipo e ID

Templates de campo

Nova possibilidade, única e grande é mudar ou adicionar qualquer nova saída ou entrada de template para todos os campos. Cada campo tem parâmetros para definir template para a saída , filtro ou de entrada . E este é o grande característica e única que lhe dá controle total sobre como tudo vai ficar.

Modelo de campoComo mencionado, existem três tipos de template de saída , filtro ou de entrada .

De saída encontram-se em Templates de  com_cobalt/fields/****/tmpl/output onde **** é o nome de campo. Esses Templates são usados quando a formatação de saída de campo em artigos Templates de artigos de lista ou completo.

De entrada encontram-se em Templates de com_cobalt/fields/****/tmpl/input  onde **** é o nome de campo. Esses Templates são usados no formulário de apresentação e elementos de formulário de exibição.

Filtrar Templates são encontrados apenas em campos com filtragem de suporte em com_cobalt/fields/****/tmpl/filter onde **** é o nome de campo. Esses Templates são usados em forma de pesquisa avançada ou no módulo de filtro.

Basta copiar a do template com nome diferente, modificá-lo e colocá-lo em parâmetros campos.

Campos de formulário

Basicamente, os campos do formulário são o objeto de campo mesmo. A única diferença -> resultconter elemento de formulário.

Há dois storages campo principal.

  1. $ This->fields

     - é a matriz dos campos onde ID campo é a chave de uma matriz

    echo $this->fields[12]->label.': '.$this->fields[12]->result;

    TODO: criar outra matriz organizado por chaves para suportar vários Templates de formulário tipo

  2. $ This-> sorted_fields - matriz multinível onde o primeiro elemento é o ID do grupo de campos (0 para não agrupada) e os campos de segundo nível de campos onde a chave matriz é a chave de campo.

Por favor, estude template de formulário padrão. É muito auto-explicativo. Você vai encontrar lá muitas informações úteis.

Depurar

Às vezes, você vai precisar fazer algo extraordinário. E você vai ter que saber os dados do resultado reais de campo.

htmlspecialchars echo ($ item-> fields_by_id [12] -> result);

Este pedaço de código vai ajudar você a ver personagens ocultos e obter uma idéia de como processar.

7. Parâmetros do template

Para a criação de mais template eficaz que você pode usar parâmetros do template. Você pode adicionar seus próprios parâmetros que podem afetar posições template de estilo ou de campo ou fazer qualquer outra influência que você deseja.

Em default_record_default.xml - qualquer arquivo XML do template que você vai encontrar dois grupos de parâmetros. Essas são tmpl_params e tmpl_core . Aqui está o exemplo.

<fields name="tmpl_params">
    <fieldset name="general">
        <field name="max_width" type="text" size="6" default="150" label="CSELCTMAXW" description="CSELWDESCR" />
            <field name="cat_ordering" type="list" label="CORDERING" default="c.lft ASC"> 
            <option value="c.lft ASC"> CORDERING </ option>
            <option value="c.title ASC"> CORDERNAMEASC </ option>
            <option value="c.title DESC"> CORDERNAMEDESC </ option>
        </ Field>
        <field name="cat_descr" type="list" default="0" label="CTOOTIPDESCR" description="">
            <option value="0"> CNO </ option>
            <option value="before"> CTOOLTIPBEFOR </ option>
            <option value="after"> CTOOLTIOPAFTER </ option>
            <option value="full"> CTOOLTIPFULL </ option>
        </ Field>        
    <Fieldset />
</ Campos>
<fields name="tmpl_core">
    <fieldset name="general2">
        <field name="category_label" type="radio" label="CSHOWLABEL" default="1"> 
            <option value="0"> CNO </ option>
            <option value="1"> CYES </ option>
        </ Field>
    <Fieldset />
</ Campos>
Você pode adicionar parâmetros apenas para tmpl_params grupo e não excluir tmpl_core grupo como ele pode ser usado dentro de cobalto

Você pode criar fieldsets como muitos name="tmpl_params"> <fields como você quer. Na verdade, é até bom, porque quanto mais os parâmetros de ficar organizado, mais fácil de usar.

Você pode adicionar também a descrição e os atributos de etiqueta como esta

<fieldset name="general" 
    label="main Parameters" 
    description="Do not miss required parameters">
    // fields go her ...
</fieldset>

Depois de adicionados parâmetros em template XML agora você pode acessá-los no template.

Em cada template de parâmetros passados de forma diferente. Eu sei que não é bom. Mas às vezes há quatro Templates são carregados pela mesma visão. Para saber como usar params template, olhar para o início do arquivo de template PHP. Em cada template de núcleo Cobalt iniciamos $ params variável. Algo parecido com isto

$ Params = $ this-> tmpl_params;

Ou, às vezes como esta

$params = $this->tmpl_params['list'];

Mas é sempre $ params . Desta forma, você pode aprender como iniciar parâmetros objeto de seu template.Basta deixar esta linha de código no template.

Você pode usá-lo n template agora como esta

<? Php if ($ params-> get ('tmpl_params.item_icon_title')):>
    <? Php echo JHTML :: imagem ($ url);>
<Php endif;?>

Onde tmpl_params de tmpl_params.item_icon_title o nome do grupo de parâmetros eitem_icon_title é o nome do campo

<field ícone name="item_icon_title" type="radio" label="Show Title" default="1"> 
    <option value="0"> CNO </ option>
    <option value="1"> CYES </ option>
</ Field>

8. Definir Campo No Parâmetros

Esta é uma técnica muito legal para gerenciar, estilo ou campos individuais de posição.

Por exemplo, há Price campo. E você quer que ele seja mostrado no lugar especial, com um estilo especial.

  1. Adicionar parâmetro fieldlist

    <fields name="tmpl_params">
        <fieldset name="name1" label="Position Fields" 
            description="Set fields to be positioned">
            <field name="field_price" type="meresourcesfields" label="Where is the price?" />
        </fieldset>
    </fields>
    Se qualquer parâmetro sobre sua ligação com o campo, o seu nome tem que começar com `field_` *.

    Se você quiser que apenas alguns tipos de campos a serem mostrados no uso de lista filtros = "'texto', 'textarea', 'html'" . Isto é o que você pode limitar os tipos de campos para mostrar.

    se você quiser este campo para por selecionar vários add size = "15" e mutiple = "true"

  2. No template de usar algo como isto

    <? Php if (isset ($ item-> fields_by_key [$ params-> get ('tmpl_params.field_price')])):>
        <span class="price-tag">
            <? Php echo $ item-> fields_by_key [$ params-> get ('tmpl_params.field_price')] -> resultado;>?
        </ Span>
    <Php endif;?>
    

E eu теo preciso dizer-lhe como estilo . etiqueta de preço de classe em seu arquivo de template css.

Q: E se eu mostrar explicitamente apenas um campo e descanso Eu quero buscar e eu não quero que este campo para ser listado no ciclo?

Depois que você chamou este campo você pode atribuir nada a partir da matriz de campo.

<? Php if (isset ($ item-> fields_by_key [$ params-> get ('tmpl_params.field_price')])):>
  <span class="price-tag">
      <? Php echo $ item-> fields_by_key [$ params-> get ('tmpl_params.field_price')] -> resultado;>?
      <? Php unset ($ item-> fields_by_key [$ params-> get ('tmpl_params.field_price')]);>
  </ Span>
<Php endif;?>

Então, mais tarde, quando você pegá-lo não vai estar lá.

Criar o pacote de instalação

Há duas formas de criação de pacote de instalação. Primeiro é muito simples. Basta arrumar todos os arquivos para zip. Se você arrumar alguns Templates você pode organizar arquivos para sub-pastas, mas na verdade não importa como você fez as malas, o instalador irá determinar pelo nome do propósito do arquivo e copiá-lo para o local correto.

Este pacote vai ser bom apenas para instalar através de template gestor.

Se você quer que seu pacote de template para instalar através do instalador do Joomla, então você precisa ler sobre como criar pacotes de instalação do Joomla. Isto está além assunto deste tutorial.

Lido 8370 vezes Última modificação em Segunda, 25 Março 2013 13:00
Uriel


Assine nosso canal no Youtube > Uriel Souza

 

 

 

 

 

Website.: cckjoomla.org

Deixe um comentário

Você precisa escrever no minimo 5 palavras!


Anti-spam: complete the task