Native admin tables i WordPress

Smashing Magazine (SM) har en artikel om at bruge WPs egen tabel-skaber-klasse til at skabe tabeller. Det giver en spændende funktionalitet. Læs “Create Native Admin Tables in WordPress”.

Så vidt jeg kan se er artiklen i SM inspireret af dette plugin af Matt van Andel. På sitepoint findes en ganske hæderlig forklaring til udvikling af plugins til WP af R. Nimesh. En tredje mulighed er dette plugin, der både kan lave databasen, tabellerne og shortcodes. Men den får kun tre stjerner, så der er nok en bug eller to i koden.

WP udviklere kan anvende de originale klasser til at skabe plugins, der i stil og udtryk ligner den originale WP. Som WP udvikler kommer man hurtigt til at arbejde på en måde, der minder om CakePHP frameworket – selv om man dog ikke har en kommandolinje til rådighed.

CRUD på vej

Den primitive CRUD er på vej. Filerne fra phpscaffold kan faktisk ikke anvendes i deres nuværende form. Jeg kan dog til en vis grad bruge SQL-sætningerne og formularerne. Men koden skal i vid udstrækning skrives fra bunden af.

Til gengæld er WP Codex nem at gå til. Jeg bruger også “Professional WordPress Plugin Development” af Williams et al. (2011).

Umiddelbart vil jeg udvikle:

  • Adminstrator menuer
  • Præsentation i form af shortcode
  • Præsentation i form af widget til Dashboard

Hvorfor ligner mit projekt ikke en vandfaldsmodel?

Konstaterer, at mit workflow ser nogenlunde sådan ud:

1) Finde et problem. Spørge brugere. Undersøge.
2) Tænke over en løsning. Spørge brugere. Undre. Undersøge.
3) Modeller af workflow -> ER diagrammer
4) Etablere databasen på grundlag af modeller
5) PHP / HTML -> CRUD funktionalitet
6) Design (udvikle CSS)

Det ser ud til at det egentlige design udvikles til sidst, når jeg har fundet ud af, hvordan produktet skal virke. Måske er mit spørgsmål forkert, for hvis jeg havde besluttet at følge en vandfaldsmodel, så havde projektet taget en anden drejning.

 

Udvikling af Scrum-Kanban

Her begynder notater til udvikling af en Scrum-Kanban. Formålet med projektet er at udvikle en Kanban, der kan køre som et plugin i WordPress. Dels for at arbejde teoretisk med IT-projektstyring – og dels for at prøve  muligheder med HTML5 og CSS.

Koden herunder stammer fra W3Schools og den laver den basale funktionalitet; men løsningen er ikke persistent. En persistent løsning bør kunne udvikles via PHP og MySQL. Sprints er:

  1. Gemmefunktion – overfører data til databasen via POST.
  2. Udvikling af ER
  3. PHP
  4. Database
  5. Integration med WordPress API
<html>
<head>
<style type="text/css">
#div1 {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;}
#div2 {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;}
#div3 {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;}
.divX  {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;}
</style>
<script>
function allowDrop(ev)
{
ev.preventDefault();
}

function drag(ev)
{
ev.dataTransfer.setData("Text",ev.target.id);
}

function drop(ev)
{
ev.preventDefault();
var data=ev.dataTransfer.getData("Text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>

<p>Drag the W3Schools image into the rectangle:</p>
<div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)">Backlog</div>

<div id="div2" ondrop="drop(event)" ondragover="allowDrop(event)">Todo</div>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)">Done</div>

<img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

<div id="QQ" class="DQ" draggable="true" ondragstart="drag(event)">
 Drag Queen
</div>

</body>
</html>