add links
This commit is contained in:
parent
7db670ff5f
commit
c3c49d89cd
25
src/Api/TTRssClient.php
Normal file
25
src/Api/TTRssClient.php
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Api;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* class TTRssClient.
|
||||||
|
*
|
||||||
|
* @author Simon Vieille <simon@deblan.fr>
|
||||||
|
*/
|
||||||
|
class TTRssClient
|
||||||
|
{
|
||||||
|
public function getPager(int $page = 1): array
|
||||||
|
{
|
||||||
|
$result = @file_get_contents('https://tiny.deblan.org/deblan_api/?page='.$page);
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
$result = str_replace('\\u0092', "'", $result);
|
||||||
|
$result = str_replace(''', "'", $result);
|
||||||
|
|
||||||
|
return json_decode($result, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
19
src/Controller/LinkController.php
Normal file
19
src/Controller/LinkController.php
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Controller;
|
||||||
|
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
use Symfony\Component\Routing\Annotation\Route;
|
||||||
|
use App\Api\TTRssClient;
|
||||||
|
use App\Core\Controller\Site\PageController;
|
||||||
|
|
||||||
|
class LinkController extends PageController
|
||||||
|
{
|
||||||
|
public function links(TTRssClient $client, int $page = 1): Response
|
||||||
|
{
|
||||||
|
return $this->defaultRender($this->siteRequest->getPage()->getTemplate(), [
|
||||||
|
'pager' => $client->getPager($page),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
|
@ -75,7 +75,6 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||||||
|
|
||||||
{% block page_subtitle %}
|
{% block page_subtitle %}
|
||||||
<p class="h3">
|
<p class="h3">
|
||||||
{# {{- 'IT director at Zenitude Groupe, symfony expert and debian addict' -}} #}
|
|
||||||
{{- 'DevOp animé par la culture du libre et du hacking' -}}
|
{{- 'DevOp animé par la culture du libre et du hacking' -}}
|
||||||
</p>
|
</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
74
templates/blog/post/search.html.twig
Normal file
74
templates/blog/post/search.html.twig
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{%- block meta_title -%}
|
||||||
|
{{- _page.title.value -}}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{%- block page_title -%}
|
||||||
|
{{- _page.title.value -}}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{%- block page_subtitle -%}
|
||||||
|
{% if _page.subTitle.value %}
|
||||||
|
<p class="h3">
|
||||||
|
{{- _page.subTitle.value -}}
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="body">
|
||||||
|
<form class="form" data-form="horizontal">
|
||||||
|
<div class="field col-8">
|
||||||
|
<label for="query">Mots clés</label>
|
||||||
|
<input id="query" name="query" type="text" value="{{ query }}" />
|
||||||
|
</div>
|
||||||
|
<div class="field col-4">
|
||||||
|
<input class="button" type="submit" value="Chercher">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if pager %}
|
||||||
|
{% for post in pager %}
|
||||||
|
{% if not loop.first %}
|
||||||
|
<hr class="col-12">
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{{ include('blog/post/_post.html.twig', {post: post}) }}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if pager.getPaginationData.pageCount > 1 %}
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="body">
|
||||||
|
<div class="pager align-right">
|
||||||
|
{% block pager %}
|
||||||
|
{{ include('module/_pager.html.twig', {
|
||||||
|
route: _node.routeName,
|
||||||
|
routeParams: {query: query},
|
||||||
|
pages: pager.paginationData.endPage,
|
||||||
|
currentPage: pager.paginationData.current
|
||||||
|
}) }}
|
||||||
|
{% endblock %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block metas %}
|
||||||
|
{#
|
||||||
|
{{- parent() -}}
|
||||||
|
|
||||||
|
{% if page.pager.hasPreviousPage %}
|
||||||
|
<link rel="prev" href="{{ cms_path('posts', {page: page.pager.getPreviousPage}, true) }}" />
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if page.pager.hasNextPage %}
|
||||||
|
<link rel="next" href="{{ cms_path('posts', {page: page.pager.getNextPage}, true) }}" />
|
||||||
|
{% endif %}
|
||||||
|
#}
|
||||||
|
{% endblock %}
|
|
@ -10,12 +10,75 @@
|
||||||
</p>
|
</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block css %}
|
||||||
|
{{- parent() -}}
|
||||||
|
|
||||||
|
<style>
|
||||||
|
#rss-icon {
|
||||||
|
color: #fd9f13;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<div class="body-content">
|
<div class="body-content">
|
||||||
{{- _page.content.value|markdown('post') -}}
|
{{- _page.content.value|markdown('post') -}}
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<a target="_blank" title="RSS" href="{{ safe_path(_node.routeName ~ '_rss') }}">
|
||||||
|
<span id="rss-icon" class="deblan-icon deblan-icon-rss"></span>
|
||||||
|
{{- ' Flux RSS' -}}
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{% if pager.items is defined %}
|
||||||
|
{% for item in pager.items %}
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="body">
|
||||||
|
<div class="quick">
|
||||||
|
<div class="quick-body">
|
||||||
|
<h2 class="h4 no-margin">
|
||||||
|
<a href="{{ item.link }}" target="_blank">
|
||||||
|
{{- item.title -}}
|
||||||
|
</a>
|
||||||
|
</h2>
|
||||||
|
<p>
|
||||||
|
<a href="{{ item.link }}" target="_blank">
|
||||||
|
{{- item.link -}}
|
||||||
|
</a>
|
||||||
|
<br>
|
||||||
|
{{- item.timestamp|date("d/m/Y à H\\hi") -}}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
{% if pager.maxPage %}
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="body">
|
||||||
|
<div class="pager align-right">
|
||||||
|
{{ include('module/_pager.html.twig', {
|
||||||
|
route: _node.routeName,
|
||||||
|
routeParams: {},
|
||||||
|
pages: pager.maxPage,
|
||||||
|
currentPage: pager.page
|
||||||
|
}) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
<div class="grid">
|
||||||
|
<div class="col-12 alert alert-notice">
|
||||||
|
{{- 'Aucun lien disponible pour le moment.' -}}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in a new issue