Como posso criar um item de menu em um subdomínio diferente?


8

Eu quero criar uma estrutura de menus como esta no Joomla 2.5:

  • Raiz ( www.example.com)
    • Sobre ( www.example.com/about)
    • Site a ( a.example.com)
    • Site b ( b.example.com)

É possível criar itens de menu com diferentes subdomínios e como criá-los? Eu trabalhei com o CMS "typo3" anteriormente e não havia nenhum problema em fazer isso, mas uma longa pesquisa na Internet não me ajudou com esse problema.

EDIT: Note que a.example.come b.example.comestão na mesma instalação do Joomla, então eu gostaria de criar um novo "Artigo Único" com um subdomínio.


11
Por favor, nos dê mais informações sobre sua configuração do Joomla. Como você está servindo os subdomínios de uma instalação do Joomla?
TryHarder

11
Qual é o conteúdo do site ae site b? Esses itens de menu são apenas um link para um artigo ou são mais robustos com seu próprio menu e páginas?
David Fritsch

Me desculpe, eu não tive tempo para responder ontem. Vou servir os subdomínios para a mesma instalação do Joomla e que Joomla ou um componente tem que fazer o redirecionamento (a.example.com e não www.example.com/a.hmtl)
Marc T.

Respostas:


4

Não experimentei, mas o Artio JoomSef alega fornecer essa funcionalidade.
Você pode especificar seções do seu site para serem usadas em diferentes subdomínios. Talvez valha a pena conferir.

Documentação do Artio JoomSEF

JoomSEF - Configuração de subdomínios

Se você estiver procurando configurações mais complexas, as extensões do Joomla MultiSites permitem executar muitos sites joomla, a partir de uma instalação, com várias configurações. Um link para esta seção JED é fornecido em outra resposta aqui.


Este é, em uma breve olhada, praticamente o que eu queria. Também conheço o componente Multi Sites, mas não quero vários sites.
Marc T.

2

Para os itens de menu que você precisa vincular aos seus subdomínios, acesse:

menu-item parameters > menu item type > system links > choose "External URL"

Em seguida, no Linkcampo, você pode digitar o URL dos seus subdomínios.


Desculpe, eu não estava claro o suficiente. Eu fiz uma edição acima. Deve ser a mesma instalação do joomla E o mesmo site.
Marc T.

1

Você realmente não pode fazer isso com o Joomla nativo, mas pode usar uma extensão que tenta ajudá-lo a fazer isso.

Você pode encontrá-los no JED


1

Se você não quiser usar um componente externo para isso, poderá criar um URL externo no menu apontando a.example.come usar seu .htaccessarquivo para obter conteúdo do link existente do site.

Por exemplo

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^a.example.com
    RewriteRule ^(.*) http://example.com/$1 [P]
</IfModule>

Suponha que, se o usuário visitar este URL a.example.com/user/sd, o conteúdo será example.com/user/sdalterado sem alterar o URL real no navegador.

Siga esse método apenas se estiver familiarizado com .htaccesso uso do arquivo e se estiver bem com a edição manual. Isso é útil se você não quiser usar uma nova extensão inteira para apenas alguns URLs.


0

Eu sei que essa pergunta é um pouco antiga, mas eu estava pensando a mesma coisa e aqui está a solução que eu criei se você alterar o arquivo index.php dos modelos com um pouco de código extra, você poderá criar várias posições do módulo com base no subdomínio e, em seguida, você atribui o item de menu correto ao subdomínio relevante.

    $dom = explode ( '.', str_replace ( '//', '.', JURI::base () ) ) ;
    $sub = ( in_array ( 'plus', $dom ) ? 'plus' : ( in_array ('group', $dom) ? 'group' : 'home' ) ) ;
    if ($this->countModules('navigation'.$sub )) : ?>
        <nav class="navigation">
            <jdoc:include type="modules" name="navigation<?php echo $sub ?>" style="html5" />
        </nav>
    <?php  endif; ?>

No exemplo acima, a linha que inicia $ sub é o que você precisa personalizar para seu próprio site. Atualmente, o exemplo cria um espaço para um módulo de navegação dependendo do subdomínio - isso foi criado para um site com dois subdomínios e um geral e, portanto, cria três posições de navegação para cada subdomínio - navigationhome navigationplus e navigationgroup.

Algumas coisas a serem observadas com o código -

Para encontrar o subdomínio, usei a função in_array. Eu poderia ter usado uma instrução switch em $ dom [1] para encontrar o subdomínio, mas isso não funcionaria se alguém digitasse algo como www.plus.mysite.co.uk, pois www estaria em $ dom [1] ... por exemplo

    switch ( $dom[1] )
    {
        case 'group' : $sub = 'group' ; break ;
        case 'plus' : $sub = 'plus' ; break ;
        default : $sub = 'home' ; break ;
    }

a explosão inicial usa str_replace para substituir // por. isto é para que o http / https inicial termine em sua própria matriz ($ dom [0] sempre conterá o http / https que, suponho, poderia ser usado ainda mais se você quisesse mostrar sites diferentes, dependendo do protocolo carregado, se isso Se não houvesse lá, alguém colocasse algo como http://plus.mysite.co.uk , a primeira matriz conteria http: // plus e in_array não retornaria nenhuma correspondência.

Lembre-se de que, se o subdomínio for igual ao domínio do site, será necessário garantir que ele seja o último no domínio? : cadeia de instruções caso contrário, ela se atribuirá a outros subdomínios - por exemplo, se você tivesse dois subdomínios, um chamado site.site.co.uk e o outro site1.site.co.uk, a instrução a seguir funcionaria

    $sub = ( in_array ( 'site1' ) ? 'site1' : ( in_array ( 'site' ) ? 'site' : 'site' ) ) ;
    //it never reaches the in_array ( 'site' ) if sub domain is site1

mas nenhum deles funcionaria corretamente nessa situação ...

    $sub = ( in_array ( 'site' ) ? 'site' : ( in_array ( 'site1' ) ? 'site1' : 'main' ) ) ; 
    // all domains would be referred to as site because XXX.site.co.uk provides a match
    $sub = ( in_array ( 'site1' ) ? 'site1' : ( in_array ( 'site' ) ? 'site' : 'main' ) ) ; 
    // www.site.co.uk would still be site and not main

É improvável que você os use dessa maneira, mas vale a pena notar.


-1

Sim, você pode criar essa estrutura de menus no Joomla. Em geral, os itens de menu apontam para uma exibição em um componente especificando o item e outros parâmetros.

Ao instalar o Joomla com os dados da demonstração de aprendizado, você notará dois sites de amostra completamente diferentes, incluindo a demonstração de aprendizado, ensinando tudo sobre o Joomla.


Você pode explicar isso? Eu nunca vi um subdomínio usado assim com uma configuração de estoque do Joomla. Sempre foi necessário um plug-in SEF para substituir o material em estoque. Dois sites com aparência diferente, sim, mas não no menu com subdomínios como seus URLs.
Brian Peat

O conteúdo de um site joomla não está relacionado a (sub) domínios. Você configura sua rede e servidor da web para lidar com isso.
Sovainfo

Certo, mas sua resposta não dá uma solução. Suspeito que a solução inclua a configuração correta do DNS e o uso do link de menu externo para enviar o usuário ao nome do subdomínio. Caso contrário, você acabaria em uma página normal no joomla (se você simplesmente criar um link para um artigo). Não é uma configuração direta.
Brian Peat

Não tenha instruções claras. Lembre-se de configurar duas lojas usando o hikashop dessa maneira, anos atrás. Não se lembre dos detalhes. Você provavelmente deseja que algumas coisas no .htaccess direcionem para os URLs apropriados. Dependendo muito de suas necessidades.
Sovainfo

Eu sugeriria remover esta resposta então. Realmente não está dando ao OP muita informação.
Brian Peat
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.