Category: Kanban

Kanban og multimediedesign

Mit masterprojekt på IT-Vest i “IT og Multimedier” handler om at bruge kanban pædagogisk på multimediedesigneruddannelsen. Kanban-metoden er udviklet af Toyota omkring 1950. Kanban betyder tavle med tegn på. Scrum-udviklere bruger ofte et whiteboard eller en opslagstavle til at visualisere projekter i et antal faser, der leder frem til “job done”.

Som underviser har jeg brug for et system, der kan visualisere og evaluere en arbejdsproces. Denne blog er min research på vej mod udvikling af en hypermedieløsning – en kanban der kan bruges på uddannelser.

  • Plugin CSS i WordPress

    Efter en række eksperimenter har jeg fundet denne opskrift, der hooker et stylesheet rigtigt ind i WP dashboard. Virker både for admin og øvrige registrerede brugere:

    add_action( 'admin_enqueue_scripts', 'safely_add_stylesheet_to_admin' );
        /**
         * Add stylesheet to the page
         */
        function safely_add_stylesheet_to_admin() {
            wp_enqueue_style( 'prefix-style', plugins_url('style_admin.css', __FILE__) );
        }
  • Debian på Mac

    At programmere på en Mac oplever jeg som en prøvelse. Derfor kører en Debian Linux som “udviklingsmiljø” på Virtualbox. Men Virtualbox er en langsom sag. Browseren fungerer bedst i Mac …

    Debian på Mac
    Debian på Mac
  • CSS i plugin

    Dokumentationen på Codex er ikke lysende klar; men et plugin gør sådan:

    /* filters etc. */
    add_action('wp_print_styles', 'add_hyperboard_stylesheet');
    
    // (...)
    
    /*Required stylesheets */
    function add_hyperboard_stylesheet() {
    	$myStyleUrl = WP_PLUGIN_URL . '/hyperboard/styles.css';
    	$myStyleFile = WP_PLUGIN_DIR . '/hyperboard/styles.css';
    
            if ( file_exists($myStyleFile) ) {
                wp_register_style('HyperBoardStyleSheets', $myStyleUrl);
                wp_enqueue_style( 'HyperBoardStyleSheets');
            }
    }

    Pluginet sætter en krog i wp_print_styles.

  • Primitiv fungerende prototype

    En meget primitiv udgave af kanbanen til WP er ved at være klar i version 0.01. Måske skulle der flere nuller på.  Systemet kan håndtere flere kanban boards og dertil knyttede kolonner. Kanbanen kan bruges af alle brugere på en given WP installation. WPs menuerne definerer, hvem der har adgang. Meget praktisk.

    Nu kan der arbejdes med design og forskellige views.

    Primitiv kanban
    Primitiv kanban

    Erfaringer
    At arbejde på en Mac kan være en prøvelse. Jeg foretrækker at arbejde på et virtuelt Debian system, når koden skal skrives. WP API for update virkede ikke før end alle felter i tabellen fik et input. Sært; men det virker.

    Sammenligning med klassiske hypermediesystemer
    Min kanban ligner på mange måder det gamle XEROC Parc “Notecards”. Man forsøgte dengang at styre projekter ved hjælp af notatkort på skærmen. Problemet ved Notecards var, at man ikke kunne samarbejde. Systemet var designet til én person. WP er født som et flerbrugersystem.

    Notecards kunne vise grafik og hyperlinks. Det bør også være muligt i en webkanban.

  • I dag

    • Select box funktion i en formular. Boxens værdier hentes via MySQL.
    • Noter CRUD

    Og så begynder det vist at ligne noget brugbart.

  • Select box

    <select>
      <option value="volvo">Volvo</option>
      <option value="saab">Saab</option>
      <option value="mercedes">Mercedes</option>
      <option value="audi">Audi</option>
    </select>
  • Skitse webkanban

    Skitse webkanban
    Skitse webkanban 20130222
  • Sådan: $wpdb->update / insert

    $wpdb klassen bruges sådan (se Codex her):

    $wpdb->update(
       "KbnProjects", // tabellen
          array('Name' => 'Værdi'), // opdateringsfeltet
          array('ID' => 0) // Id 
    );

    Insert fungerer i øvrigt på en lignende måde:

    $wpdb->insert( 
    	'table', 
    	array( 
    		'column1' => 'value1', 
    		'column2' => 123 
    	), 
    	array( 
    		'%s', // streng
    		'%d' // tal
    	) 
    );

    Codex forklarer desværre ikke, hvordan et array skal se ud, når et felt har en autoincremented Id. I dette tilfælde indsætter man en NULL værdi. I praksis kunne det se sådan ud:

    	$wpdb->insert(
    		'MyTable',
    		array(
    			'Id' => NULL,
    			'KbnProjects_Id' => 1,
    			'Color' => 'Smurphy',
    			'Limit' => 3,
    			'State' => 'Nuser!'
    		),
    		array(
    			'%d',
    			'%d',
    			'%s',
    			'%d',
    			'%s'
    		)
    
    	);

    Værdierne kunne sætte ind fra en formular, fx

    'KbnProjects_Id' => $_POST['KnbProjects_Id'],
    'Color' => $_POST['Color'],
    ... etc ...
  • 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.

  • I dag: organisere og genbruge kode

    CRUD fungerer på én database, derfor:

    • Oprydning i koden
    • På basis af én CRUDs klasser udvikles de resterende databaser
  • Adgangskontrol i WP

    Denne lille stump kode er meget nyttig:

    if ( !current_user_can( 'publish_posts' ) )  {
    		wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
    	}

    Her er WP listen over brugerrettigheder: user_can “Roles and Capabilities” på Codex.

    En række af WPs hooks skriver “capability”. Hvis fx en Contributor skal have adgang til noget, så kan capability være edit_posts. Enkelt og praktisk.

     

  • Sti til fil

    // saadan laves stien til plugin:
    echo plugin_dir_url(__FILE__);

    Efterfulgt at sti til en fil fx

    // saadan laves stien til plugin:
     $fil = plugin_dir_url(__FILE__) . "minFil.php";
Enable Notifications OK No thanks

We use cookies - more information

Multimusen.dk will set a few cookies from Doubleclick, Google and the Social Media plugins they ay set some cookies. Some of my pages use APIs - such as YouTube, LinkedIn, Google Fonts, Google Maps, Mapbox, Spotify, Jetpack, Twitter, Facebook &c.. Such plugins may set the odd cookie.

Close