added view count

This commit is contained in:
Phuoc Cao
2026-04-25 16:22:08 +02:00
parent cd30421a95
commit 594d708472
3 changed files with 16 additions and 3 deletions
+8 -2
View File
@@ -34,8 +34,8 @@ def get_entries_related_by_id(request, _id, id_related):
return results return results
def get_entries_by_id(request, _id): def get_entries_by_id(request, _id):
query = """SELECT *, strftime('%d/%m/%Y', created) AS create_date, query = """SELECT *, strftime('%d/%m/%Y', created) AS create_date, strftime('%d/%m/%Y', edited) AS edit_date,
strftime('%d/%m/%Y', edited) AS edit_date FROM entries WHERE id=:id;""" strftime('%d/%m/%Y %H:%M', view_date) AS last_view FROM entries WHERE id=:id;"""
results = request.dbsession.execute(text(query), {'id':_id}).first() results = request.dbsession.execute(text(query), {'id':_id}).first()
return results return results
@@ -211,3 +211,9 @@ def update_entries_url(request):
slug = urlify(entry.title) slug = urlify(entry.title)
query = "UPDATE entries SET title_url = :slug WHERE id = :id;" query = "UPDATE entries SET title_url = :slug WHERE id = :id;"
execute_query(request, query, {'id': entry.id, 'slug': slug}) execute_query(request, query, {'id': entry.id, 'slug': slug})
def update_view_counter(request, id, remote_ip, today):
# incrementer le compteur de vues si ip et date sont differents
query = "UPDATE entries SET view_count = view_count + 1, view_date = :today, view_ip = :remote_ip WHERE id = :id;"
execute_query(request, query, {'id': id, 'remote_ip': remote_ip, 'today': today})
+2 -1
View File
@@ -17,7 +17,7 @@
{% endif %} {% endif %}
<p> <p>
<strong>{{ entry.author }}</strong> - Publié le <strong>{{ entry.create_date }}</strong><br> <strong>{{ entry.author }}</strong> - Publié le <strong>{{ entry.create_date }}</strong> - Vues : {{ entry.view_count }} <br>
</p> </p>
<hr/> <hr/>
<p>{{ body_html | safe }}</p> <p>{{ body_html | safe }}</p>
@@ -41,6 +41,7 @@
Topic - Tag : <strong>{{ entry.topic_id }}</strong> - <strong>{{ entry.tag }}</strong><br> Topic - Tag : <strong>{{ entry.topic_id }}</strong> - <strong>{{ entry.tag }}</strong><br>
Language : <strong>{{ entry.language }}</strong><br> Language : <strong>{{ entry.language }}</strong><br>
Statut : <strong>{{ entry.status }}</strong><br> Statut : <strong>{{ entry.status }}</strong><br>
Dernière visite : <strong>{{ entry.last_view }}</strong>
{% endif %} {% endif %}
</p> </p>
</div> </div>
+6
View File
@@ -31,6 +31,12 @@ def blog(request):
body_html = markdown.markdown(body, extensions=['footnotes']) body_html = markdown.markdown(body, extensions=['footnotes'])
# lire les contenus correles # lire les contenus correles
relateds = get_entries_related(request, entry.id) relateds = get_entries_related(request, entry.id)
# incrementer le compteur de vues
client_addr = request.client_addr
today = datetime.datetime.now()
if client_addr != '127.0.0.1' and entry.edited[:13] != str(today)[:13]:
update_view_counter(request, blog_id, client_addr, today)
return { return {
'page_title': entry.title, 'page_title': entry.title,