Hallo,
Weet iemand hoe je een eenvoudige bestaande blogfunctie in php zo om kunt aanpassen dat het laatst geposte bericht helemaal onderaan komt zo dat wanneer je de eerst geposte delete dat de opvolgende in datum als eerste te zien is. Dit is om een bestaand script naar een soort workshopscriptje om te bouwen, in volgorde van datum dus. Er zijn niet meer dan gemiddeld 6 blogposts nodig. Als iemand interesse heeft stuur ik de files.
Mijn pogingen draaiden uit op een omgekeerde nummering maar de posts zelf bleven waar ze stonden...
Groet, Mary
Hoi,

Maak je gebruik van een pakket (zoals WordPress) of is dit een ding uit eigen keuken? In het laatste geval: maakt deze code ook gebruik van een database? Misschien is het dan simpelweg een kwestie van een sorteer-argument veranderen van aflopend naar oplopend, mogelijk wordt ergens in een overzichtspagina de database als volgt aangesproken:
SELECT ... FROM je_blog_tabel WHERE allerlei_argumenten ORDER BY sorteer_kolom DESC

Dat DESC staat voor DESCending, ofwel aflopend, misschien is het simpelweg een kwestie van DESC veranderen naar ASC (wat staat voor ASCending, ofwel oplopend).

Anders zullen we inhoudelijk toch wat dieper in de code en/of databasestructuur moeten duiken. Functionaliteit blind aanpassen verzandt al snel in een langdurig schaakspel.
Om je vraag goed te kunnen beantwoorden hebben we iets meer informatie nodig.

Waar en hoe sla je de posts op. Sla je dit bijvoorbeeld op in een database en zit hier een datum veld bij, dan zou je wellicht al voldoende zijn met iets als onderstaand;


<?php
$sql "SELECT field1, field2, field3 FROM blog_posts ORDER BY writeDate DESC";
?>
Dank voor de reacties! Géén database, geen wordpress maar platte phpfiles. En ook niet uit eigen keuken.
Ik hoopte hier iets te kunnen doen maar ik ben te weinig getraind hierin...kunnen jullie bv hier een opening zien?
for ($i = 0; $i < $this->amount; $i++) {
$blogpost = explode("|", $this->lines[$i]);
Anders moet ik even die hele file hierin plakken ?
Laat de relevante code maar zien hoe je het ophaalt.
Blog-lib
Wat je ook doet, maak eerst een backup!

Staat elke blog op een aparte regel? (Dit lijkt mij trouwens een nogal foutgevoelig systeem maar goed)

Volgens mij moeten de volgende twee functies worden aangepast:
- amount_page() - deze bepaalt welke items je ziet (afhankelijk van de pagina waar je op zit - $_GET['page'])
- get_blog_posts() - deze haalt met behulp van amount_page() de blogposts op
(- EDIT: en waarschijnlijk moet je ook de tekstuele labels van de navigatie veranderen die aangeven wat "ouder" of "nieuwer" is)

Maar dit gebeurt beide van achteren naar voren.

Allereerst doe je er verstandig aan om een backup te maken van de huidige code, nog voordat je iets aanpast. Dit zodat je altijd terug kunt naar een werkende situatie.

Vervolgens zal het zoiets worden, verander (regel 173-174 in bovenstaand fragment):
$start = $this->amount - (($cur_page-1) * $result_per_page);
$end   = $this->amount - (($cur_page) * $result_per_page);

Naar:
$start = ($cur_page-1) * $result_per_page;
$end   = $cur_page * $result_per_page;

En (regel 185 bovenstaand fragment):
for ($n = $nums[2]-1; $n >= $nums[3]; $n-- ) { 

Naar:
for ($n = $nums[2]; $n < $nums[3]; $n++ ) { 

Deze code houdt trouwens geen rekening met het feit dat het uitgelezen item ($n) groter is dan de lengte van het blogbestand ($this->lines). Daarom is het misschien nodig om hierna nog een extra if-statement in te bouwen.

Maar dit blijft lastig ontwikkelen :p.
Dank je wel! Ik maak idd altijd een kopietje hoor, dit is op die site ook niet in gebruik, maar het bleek na een tijdje dat zoiets toch nodig was, dus het enige wat ik kon bedenken was de blogfuctie gebruiken en omdraaien. Een alternatief is een 3rtd party script maar dat betekent nog een extra inlog.

Superbedankt, ik ga hier morgen meteen mee aan de slag, ben erg benieuwd!
Waarom gebruik je eigenlijk geen Wordpress o.i.d., als ik vragen mag?
Ja, das een goeie vraag! WP sites zien er steeds meer hetzelfde uit, weinig persoonlijkheid meer aan. Alle lol van zelf iets maken (eigen css) heb je niet omdat het al kant en klaar is. Wil je op elke pagina een andere header-achtergrond, ga d'r maar aan staan. Als het puur om een functie gaat is het wel een goede keus maar als je het uiterlijk naar je hand wil zetten, of je wil gewoon dat bepaalde dingen niet verschijnen op een pagina moet je weer uren zoeken, of moet je een child-theme aan gaan maken en dan nog...dan zijn ze veel te groot voor de relatief kleine statische sites die ik maak.
Dan hoor ik als laatste reden altijd dat mensen met een wp site het vreselijk ingewikkeld vinden om bij te houden, vaak kunnen ze dat helemaal niet en moeten ze dat weer laten doen. Tenzij ze handig zijn met computers. En dat zijn mijn meeste klanten helemaal niet. De editor die dus wel beperkt is daar kunnen ze prima mee overweg.
Vandaar, dat dus.

[size=xsmall]Toevoeging op 03/06/2018 10:11:52:[/size]

Thomas, het is gelukt!???? Alleen heb ik nu een ander probleempje maar dat zal ik zelf eerder veroorzaakt hebben, en dat is dat ik de post niet meer kan editen, witte pagina ???? maar daar ga ik nu even naar op zoek!

[size=xsmall]Toevoeging op 03/06/2018 10:16:00:[/size]

Yes, opgelost! Had idd zelf iets raars gedaan in edit-blog.php maar dat is nu weer goed, super zeg, ontzettend bedankt Thomas!

[size=xsmall]Toevoeging op 03/06/2018 10:27:06:[/size]

M'n emoji's veranderen in ???, excuus ;-)
Wordpress is overigens eenvoudig te stylen, het is echt niet zo dat er steeds vaker weinig persoonlijkheid aan zit. Er zijn echt meer dan 1001 templates die je nog eens naar eigen smaak kan brengen.

Reageren