web-dev-qa-db-pt.com

Item de menu - Lista de artigos - Filtrar por usuário

Eu sou muito novo no Joomla (versão 3).

Eu tenho dois usuários registrados.

Quando qualquer usuário registrado está logado, eles podem ver um novo menu que contém um item para mostrar a lista de Artigos. Isso funciona conforme o esperado.

O que eu quero que aconteça é mostrar apenas os artigos escritos pelo usuário atualmente conectado - para que eles possam ver apenas seus próprios artigos para exibir ou editar etc.

Eu vi vários métodos - incluindo um sobre como criar um novo módulo de categoria, mas eles não funcionam conforme o esperado e todos os usuários ainda podem ver artigos de outras pessoas.

Qualquer orientação será imensamente apreciada. Não tenho problemas para editar arquivos, apenas não faço ideia de qual arquivo editar.

Muito Obrigado

2
MaxVK

De acordo com a sugestão de Nisse Engström (Muito obrigado) Vou postar minha solução aqui:

Tendo procurado uma resposta para essa pergunta há algum tempo, encontrei uma solução funcional e a publiquei aqui na esperança de que outros possam achar isso útil.

O objetivo era permitir que os usuários conectados visualizassem uma lista de artigos que incluísse apenas seus próprios artigos e os do Superusuário - eles só deveriam poder editar seus próprios artigos.

Para fazer isso funcionar, a instalação é a seguinte:

Instalação padrão e usando o modelo Protostar.

Substitua o arquivo: " com_content/category/default_articles.php "

Na linha 135, você pode ver a seguinte linha:

foreach ($this->items as $i => $article)

Diretamente abaixo desta linha, adicionei o código a seguir (observe que o usuário 232 é meu superusuário - o seu pode ter um ID diferente):

if ($this->items[$i]->created_by == JFactory::getUser()->id || $this->items[$i]->created_by == JFactory::getUser(232)->id) :

Isso é fechado novamente na linha 261 com um padrão 'endif'. Observe que isso está diretamente acima do fechamento 'endforeach' iniciado na linha 135.

O resultado

É precisamente o que eu queria ver. Agora, os usuários conectados podem ver apenas seus próprios artigos (e os do superusuário, embora não possam editá-los) e podem enviar novos artigos.

Com um pequeno ajuste nas permissões, cada usuário agora pode criar, editar, publicar e lixeira apenas seus próprios artigos.

Não tenho idéia se essa é a maneira " correta " de obter esse resultado, mas funciona exatamente como eu queria, e sou mais do que feliz por usuários experientes mostrarem métodos alternativos.

Possível problema futuro

Este código é acionado quando o Joomla carrega a lista de artigos e, como tal, é acionado muitas e muitas vezes à medida que mais e mais usuários criam cada vez mais artigos. Talvez isso cause um abrandamento?

De qualquer forma.....

1
MaxVK

Acabei de publicar esta resposta em outra pergunta - que não é exatamente a mesma, mas os requisitos são muito semelhantes e se enquadram no mesmo contexto, que é "Autoria de front-end".

Essa pergunta é: Joomla! 3.8 - Como ocultar a guia Publicação no front-end

Portanto, no seu caso, você também pode achar essas informações úteis e será bom conhecer suas opções e possibilidades:

Estou colando minha outra resposta aqui ligeiramente modificada:

Além de quaisquer personalizações - você pode considerar o uso de extensões de terceiros.

Existem 2 tipos/categorias principais de extensões que seriam adequados para isso:

  1. Gerenciamento de artigo front-end
  2. Integração com CCK

1. Gerenciamento de artigos front-end

As extensões de gerenciamento de artigo front-end são projetadas para oferecer recursos de moderação/criação de front-end ao Joomla.

Categorias JED:

Algumas extensões:

2. Integração com CCKs

Resumidamente, usando um CCK, você pode criar seu próprio kit de conteúdo/fluxo de trabalho de conteúdo. Existem CCKs que podem ser integrados aos artigos do Joomla e permitem que você crie seus próprios formulários e listas. Por exemplo, com a Fabrik, você pode criar itens de menu para listas de artigos para mostrar apenas artigos do usuário atual. Configurações profundas de permissões também são possíveis com essas extensões, abrindo muitas possibilidades.

1
FFrewin