Grav-plugin-admin: Link "Editar" do frontend

Criado em 21 nov. 2016  ·  9Comentários  ·  Fonte: getgrav/grav-plugin-admin

Existe uma maneira de adicionar um link "Editar" simples em todas as páginas do frontend. Este link precisa verificar se o plugin grav-plugin-admin está instalado e se o usuário tem as permissões corretas.

question

Comentários muito úteis

Obrigado pela ajuda de todos. Talvez haja uma maneira melhor de fazer isso, mas aqui está o que acabei fazendo em meu partials / base.html.twig.

{% if config.plugins.admin.enabled and authorize(['admin.pages', 'admin.super']) %}
  {% if page.link == '/' %}
    {% set editPagePath = "/" ~ page.slug %}
  {% else %}
    {% set editPagePath = uri.path %}
  {% endif %}
  <a class="editpage" href="/admin/pages{{ editPagePath }}">Edit</a>
{% endif %}

e então no meu css

.editpage {
  position: fixed;
  bottom: 0;
  right: 0;
  padding: 5px 6px;
  background: #F67E40;
  color: #fff;
  display: block;
  font-weight: bold;
  text-decoration: none;
  text-transform: uppercase;
}

Seria bom se algo assim fosse incluído por padrão em todos os temas.

Talvez o plugin admin pudesse incluir uma variável de página para o link de edição? Ficaria muito melhor em modelos do que o código que forneci.

Todos 9 comentários

Isso pode ser implementado diretamente em seu tema, então você já sabe que o plugin admin está instalado, você pode envolver o link em um {% if authorize(['admin.pages', 'admin.super']) %} condicional

Olá @flaviocopes , Estive seguindo este tópico e estou procurando fazer algo bastante semelhante: acionar uma tela de login do Grav quando um botão for pressionado e, se estiver logado, execute algum código do Twig. Isso também é possível e, em caso afirmativo, existe algum exemplo com o qual eu possa aprender? Obrigada!

Deixa pra lá @flaviocopes , alguém me indicou esta pequena joia: https://learn.getgrav.org/cookbook/general-recipes#create -a-private-area 🙂

Obrigado @flaviocopes. Eu tentei adicionar
{% if authorize(['admin.pages', 'admin.super']) %} <a href="#">Edit</a> {% endif%}

para o meu base.html.twig, mas não funcionou. Limpei o cache, entrei e verifiquei minha página, mas nenhum link Editar foi impresso na página.

Alguma outra ideia? Algo como isso provavelmente deveria estar em um tema central como Antimatéria para tornar mais fácil para os editores pularem rapidamente para o administrador para editar a página.

Você precisará estar logado no frontend com um usuário administrador. Estar logado no admin não é suficiente por padrão, pois as sessões de admin e frontend são separadas.

@rhukster . Eu loguei no / admin usando o login de administrador do site (que é o único usuário). Como faço para acessar o frontend? Desculpe, sou novo no Grav.

Use o plug-in de login, consulte o leia-me em https://github.com/getgrav/grav-plugin-login (https://github.com/getgrav/grav-plugin-login#login-page)

Fechando quando a pergunta é respondida

Obrigado pela ajuda de todos. Talvez haja uma maneira melhor de fazer isso, mas aqui está o que acabei fazendo em meu partials / base.html.twig.

{% if config.plugins.admin.enabled and authorize(['admin.pages', 'admin.super']) %}
  {% if page.link == '/' %}
    {% set editPagePath = "/" ~ page.slug %}
  {% else %}
    {% set editPagePath = uri.path %}
  {% endif %}
  <a class="editpage" href="/admin/pages{{ editPagePath }}">Edit</a>
{% endif %}

e então no meu css

.editpage {
  position: fixed;
  bottom: 0;
  right: 0;
  padding: 5px 6px;
  background: #F67E40;
  color: #fff;
  display: block;
  font-weight: bold;
  text-decoration: none;
  text-transform: uppercase;
}

Seria bom se algo assim fosse incluído por padrão em todos os temas.

Talvez o plugin admin pudesse incluir uma variável de página para o link de edição? Ficaria muito melhor em modelos do que o código que forneci.

Esta página foi útil?
0 / 5 - 0 avaliações