Schlurpts

…dat is het geluid van mijn hart dat bloedt.

Ik ben aan een WordPress-template aan het programmeerderen.

Niet “aan het programmeren”. Want “programmeren”, dat impliceert serieus werken. WordPress moedigt serieus werken niet aan.

Scheiding tussen inhoud en presentatie is er nauwelijks, abstractie wordt er nauwelijks gemaakt, en vies werken wordt praktisch aangemoedigd.

Het is dan ook altijd weer schipperen tussen binnen de lijntjes van de WordPress-functies te werken en een plugin schrijven en gewoon brutekracht hap smijt MySQL-queries en PHP te doen… vies, vies, vies. Ick ick ick.

En het stomme van de zaak: uiteindelijk zijn dat allemaal zo geen ingewikkelde zaken, en uiteindelijk heb ik soms de indruk dat het bijna gemakkelijker zou zijn om het allemaal zelf te programmeren.

Tot ik kijk wat er allemaal zou moeten gedaan worden, en dat het toch wel weer het wiel uitvinden zou worden… urgh ack crap.

Toch maar eens kijken naar een betere oplossing dan WordPress? Drupal toch nog?

Pfff.

16 reacties op “Schlurpts”

  1. Zeker dat.

    Ik heb in een weblog als het deze een sidebar staan. Ik wil, als een post tot een bepaalde categorie behoordt, maar énkel als dat het geval is, van de laatste acht posts in die categorie een bepald custom field laten zien.

    Stap 1: zoeken of de huidige post tot een bepaalde categorie behoort:

    <?php
    $incat=0;
    foreach((get_the_category()) as $cat) {
    if ($cat->cat_ID==12) $incat=1;
    }
    ?>

    “12” is de desbetreffende categorie, en het kunnen er meer dan één zijn per post, en er is niet zoiets als een hoofdcategorie of zo.

    Stap 2: lijst tonen van de posts

    <?php $posts=get_posts(“category=12&numberposts=8″); ?>
    <?php if($posts) : ?>
    <?php foreach($posts as $post) : setup_postdata($post); ?>
    <a href=”<?php the_permalink(); ?>” title=”<?php the_title(); ?>”><?php $veld=get_post_custom_values(‘velnaam’); echo $veld[0]; ?></a>
    <?php endforeach; ?>
    <?php endif; ?>

    Het kàn natuurlijk properder, maar enfin, gnîîî.

    Kijk, het werkt en zo, dus ik klaag niet. Maar toch. Het steekt.

  2. Ok, ik denk dat ik zie wat je bedoel. Maar hoe zou jij het dan verbeteren? Een hoofdcategorie zou enkel werken als je consequent dat gaat gebruiken maar dat is dus gebruikers discepline opleggen. Wil je daarvanuit gaan? In mijn ervaring heeft dat “ramp” over zich geschreven (tenzij je het hier over jezelf hebt) 😉
    Betreffende het weergeven: wat doet setup_postdata? O.o

  3. Ik overweeg sterk om zelf een basis blog systeem te schrijven, kost weinig tijd, ik weet wat het kan en hoe ik het kan uitbreiden – 100% de touwtjes in handen dus.

  4. Sja, ik heb zelfs ook iets blogachtig beginnen schrijven geweest voor de site van ons Fien… Uiteindelijk niet zo moeilijk, maar wel wat prutswerk om het goed te krijgen.

    Ik denk toch dat “een blog schrijven” die de concurrentie (ahem) met wordpress, typepad ed aankan niet zo vanzelfsprekend is. 😉

  5. Even puur academisch: Michel, hoe zie je je bovenstaande snippet dan in een zoals-het-moet systeem? Er is toch altijd wel code nodig om de juiste formatting te doen?

  6. Ik heb die drupal eens bekeken en het ziet er me op het eerste zicht zeer interessant uit. Er zitten een aantal features in die ik mis in WP bv. tagging is standaard ingebouwd (of toch via een module). Drupal is natuurlijk meer dan een blogsysteem, het is een compleet CMS met alle toeters en bellen en misschien een beetje overkill? Enfin, ik wil het wel een keer proberen om te zien of het geschikt is voor een fotoblog. Alle nuttige tips hieromtrent zijn zeer welkom.

  7. Och, zoals het moet, zoals het moet…

    In het eenvoudigste geval: gewoon rechttoe rechtaan query naar de database en resultaat tussen html-tags.

    In het meest geabstraheerde geval: een opvraging van een objecten van een bepaald type met een bepaalde filmter erop, die dan zooi in bijvoorbeeld xml teruggeeft, die dan via xslt gestijld kan worden.

    En alles daartussen kan me ook niet zo erg schelen.

    Hetgeen het meeste tegensteekt, en da’s zuiver persoonlijk, is dat er allerlei niveaus gemengd worden. Voor de hoofdloop is het een proper abstract iets, genre

    <?php
    if (have_posts()) :
    while (have_posts()) : the_post();
    the_title();
    the_content();
    endwhile;
    endif;
    ?>

    Maar als je daarnaast nog een tweede loop wilt gebruiken, moet je ofwel een soort “rewind” doen, ofwel met allerlei omwegen (cfr. hierboven, get_posts(), al dan niet met een setup_postdata() erbij als hack) werken.

    En als dat helemaal tegensteekt, of de functies zijn er niet voor voorzien in WordPress, zoals bijvoorbeeld als je een lijst van auteurs wilt, achja, dan doe je gewoon

    <?php
    $user_ids = $wpdb->get_col(“SELECT ID FROM $wpdb->users ORDER BY user_nicename”);
    foreach($user_ids as $user_id) :
    $user = get_userdata($user_id);
    if((‘admin’ != $user->user_login) && (get_usernumposts($user->ID))) :
    ?>

    [etc.]

    Vies!

  8. Michel. Je hebt gelijk. Hetzelfde geldt als je een plugin probeert te schrijven. Op geen enkel moment word je aangemoedigd om presentatie van content te scheiden.

    Wat je dan krijgt zijn plugins waarbij alles hardcoded is. Je kan dan nog enigszins via ‘options’ in het administratiepaneel spelen met kleurtjes van de verschillende HTML elementen die een plugin genereert, maar voor de rest sta je er alleen voor om het zaakje treffelijk geïntegreerd te krijgen.

    Misschien koos Mullenweg voor een zo groot mogelijke flexibiliteit en vond hij een templating systeem dat in de weg staan….

  9. Gevolg: ik heb geen enkele plugin die nog in zijn oorspronkelijke staat is. Alles aangepast in de code, wat natuurlijk meteen miserie geeft als er ooit updates of ernstige bugs zijn.

    En, zoals Steven een tijd geleden zei: geen manier om de plugins zelf te verbeteren wegens allemaal in handen van individuele ontwikkelaars links en rechts en geen gecentraliseerde repository waar je patches kunt submitten of zo… chaos.

    Drupal beheert dat allemaal redelijk centraal, had ik begrepen. Dus als het je niet zint, kun je gewoon een wijziging suggereren.

  10. Ik ben benieuwd naar de resultaten van je experimenten met Drupal. Ben zelf aan het overwegen om over te stappen naar een iets fancier blogsysteem dan blogger en ik twijfel nog tussen Drupal en WordPress.

  11. Niet zo gekend in deze contreien als de traditionele pakketten (WordPress, Typepad, Nucleus, etc.)heb ik de indruk : Expression Engine. Lijkt mij een vrij professioneel product, maar zou het eens in detail moeten nazien. Ze bieden ook hosting, maar geen ervaring met de kwaliteit van dit aanbod.

Reacties zijn gesloten.