Per Thykjaer Jensen

  • 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.

     

  • // 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";
  • Når jeg bruger $wpdb->update kommer denne fejl: “Warning: shell_exec() has been disabled for security reasons”. Mulig løsning: brug en $wpdb->query?

    Sv. – Ja, Occams barberblad slår til igen:

    $sql = "UPDATE `MYtABLE` SET `Id`='6',`Date`='2013-02-18',`KbnProjects_Id`='456',`KbnNotes_Id`='456',`KbnStates_Id`='456' WHERE `Id`=6";
    $wpdb->query($sql);
  • Nu virker CRD i en af tabellerne. U konstrueres i dag på grundlag af D. Derefter skal menuen tilrettes. Tanken er at udvikle en “toplevel” menu med administrationsrettigheder til hele molevitten – på lidt længere sigt. Arbejder med: Chrome (browser), Filezilla (ftp), phpscaffold (som meget rå skitse til koden) og Leafpad (tekst editor). Nåeh ja – og WordPress (CMS, PHP, MySQL, HTML).

    Når det virker, så har jeg en model, der kan bruges ved de øvrige tabeller. Principperne kan i praksis genanvendes til manipulation med enhver MySQL tabel. Derfor er projektet også nyttigt på længere sigt.

  • 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
  • Det er relativt nemt at lave en menu på dashboard. Admin delen kan være en menu med fire undermenuer CRUD. Hvis en shortcode laves, så er den basale funktionalitet på plads.

    Måske kunne man kombinere kanban noter med microformat calendar?

    Menu
    Menu
    • 4 x CRUD med well formed *ML
    • Overveje menustruktur
  • Output fra phpscaffold bliver noget i stil med 4 * 4 menuer = 16 formularer. En menu er nødvendig i Dashboard. Ellers bliver designet uoverskueligt.

  • Phpscaffold producerer kun skitsen til en *ML. Koden er ikke “well formed”:

    <p><b>Id:</b><br /><input type='text' name='Id'/>

    Hvis koden skal validere bør dem se sådan ud:

    <p><b>Id:</b><br /><input type='text' name='Id'/> </p>

    W3Schools defineres “well formed” xml sådan:

    Well Formed XML Documents

    A “Well Formed” XML document has correct XML syntax.

    The syntax rules were described in the previous chapters:

    • XML documents must have a root element
    • XML elements must have a closing tag
    • XML tags are case sensitive
    • XML elements must be properly nested
    • XML attribute values must be quoted

    Output fra phpscaffold skal redigeres, hvis koden skal validere.

  • Her er opskriften til en dashboard widget, inspireret af Olinik & Jackson “The WordPress Anthology” (2011):

    function kanbanAdmin() {
    	require('log-new.php');
    }
    
    // Register the new Dashboard widget
    function add_kanbanAdmin(){
    	wp_add_dashboard_widget('webkanban', 'Webkanban Create Log', 'kanbanAdmin' );
    }
    
    // add to the Dashboard 
    add_action('wp_dashboard_setup','add_kanbanAdmin');
    • Nu virker mit udkast
    • Så skal alle CRUD-filer laves.
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