Plugin Directory

Changeset 227736


Ignore:
Timestamp:
04/11/2010 10:02:56 PM (16 years ago)
Author:
DanCoulter
Message:

Added a Plugin Requirements table

File:
1 edited

Legend:

Unmodified
Added
Removed
  • automatic-wordpress-backup/trunk/automatic-wordpress-backup.php

    r227723 r227736  
    182182        $settings = self::get_settings();
    183183       
     184        $pass = true;
     185        $reqs = array(
     186            'os' => array(
     187                'name' => 'Server OS',
     188                'required' => 'Linux',
     189            ),
     190            'php' => array(
     191                'name' => 'PHP Version',
     192                'required' => '5.1+',
     193            ),
     194            'uploads' => array(
     195                'name' => 'Uploads Folder',
     196                'required' => '',
     197            ),
     198            'curl' => array(
     199                'name' => 'curl',
     200                'required' => '',
     201            ),
     202            'shell' => array(
     203                'name' => 'shell_exec',
     204                'required' => '',
     205            ),
     206            'zip' => array(
     207                'name' => 'zip',
     208                'required' => '',
     209            ),
     210        );
     211       
     212        if ( strpos($_SERVER['DOCUMENT_ROOT'], '/') === 0 ) {
     213            $reqs['os']['status'] = 'Linux (or compatible)';
     214            $reqs['os']['pass'] = true;
     215        } else {
     216            $reqs['os']['status'] = 'Windows';
     217            $reqs['os']['pass'] = false;
     218            $pass = false;
     219        }
     220       
     221        $reqs['php']['status'] = phpversion();
     222        if ( (float) phpversion() >= 5.1 ) {
     223            $reqs['php']['pass'] = true;
     224        } else {
     225            $reqs['php']['pass'] = false;
     226            $pass = false;
     227        }
     228       
    184229        if ( !self::setup() ) {
    185230            $fsd = new WP_Filesystem_Direct(1);
    186231            if ( !$fsd->exists($fsd->wp_content_dir() . '/uploads') ) {
    187                 echo "<div id='awb-warning' class='updated fade'><p>".__("It appears that you don't have a writeable uploads folder. Be sure that you create one and make it writeable.", 'automatic-wordpress-backup')."</p></div>";
     232                $reqs['uploads']['status'] = 'Does not exist';
    188233            } else {
    189                 echo "<div id='awb-warning' class='updated fade'><p>".__("It appears that your uploads folder isn't writeable by the web server. Be sure that you set your permissions so that it can write to it. ", 'automatic-wordpress-backup')."</p></div>";
    190             }
     234                $reqs['uploads']['status'] = 'Not writeable';
     235            }
     236            $reqs['uploads']['pass'] = false;
     237            $pass = false;
     238        } else {
     239            $reqs['uploads']['status'] = 'Exists and writeable';       
     240            $reqs['uploads']['pass'] = true;
    191241        }
    192242       
    193243        if ( is_null(@shell_exec('ls')) ) {
    194             echo "<div id='awb-warning' class='updated fade'><p>".__("It appears that your host has disabled the shell_exec() function in PHP. This function is required to call the zip program to create the backup archive. ", 'automatic-wordpress-backup')."</p></div>";
    195         }
     244            $reqs['shell']['status'] = 'Disabled';     
     245            $reqs['shell']['pass'] = false;
     246            $reqs['zip']['status'] = 'Unknown';     
     247            $reqs['zip']['pass'] = false;
     248            $pass = false;
     249        } elseif ( is_null(shell_exec('which zip')) ) {
     250            $reqs['shell']['status'] = 'Enabled';       
     251            $reqs['shell']['pass'] = true;
     252            $reqs['zip']['status'] = 'Not found';       
     253            $reqs['zip']['pass'] = false;
     254            $pass = false;
     255        } else {
     256            $reqs['shell']['status'] = 'Enabled';       
     257            $reqs['shell']['pass'] = true;
     258            $reqs['zip']['status'] = 'Installed';       
     259            $reqs['zip']['pass'] = true;
     260        }
     261       
     262        if ( function_exists('curl_init') ) {
     263            $reqs['curl']['status'] = 'Installed';     
     264            $reqs['curl']['pass'] = true;
     265        } else {
     266            $reqs['curl']['status'] = 'Not found';     
     267            $reqs['curl']['pass'] = false;
     268            $pass = false;
     269        }
     270
     271        if ( !$pass ) {
     272            echo "<div id='awb-warning' class='updated fade'><p>".__("It looks like all the requirements for this plugin are not being met so it will probably not work. <a href='#requirements'>Click here</a> for details.", 'automatic-wordpress-backup')."</p></div>";
     273        }
     274       
    196275        ?>
    197276            <script type="text/javascript">
     
    234313                }
    235314
     315                .requirement .status {
     316                    font-weight: bold;
     317                }
     318                .requirement.pass .status {
     319                    color: green;
     320                }
     321                .requirement.fail .status {
     322                    color: red;
     323                }
    236324            </style>
    237325            <div class="wrap">
     
    427515                        <p class="submit"><button id="restore-trigger" class="button"><?php _e('Restore from backup') ?></button></p>
    428516                    </div>
    429                
     517                </div>
     518                <div>
     519                    <a name="requirements"></a>
     520                    <h3>Plugin Requirements</h3>
     521                    <table>
     522                        <thead>
     523                            <tr>
     524                                <th>Name</th>
     525                                <th>Required</th>
     526                                <th>Status</th>
     527                            </tr>
     528                        </thead>
     529                        <tbody>
     530                            <?php foreach ( $reqs as $slug => $r ) : ?>
     531                                <tr class="requirement <?php echo $r['pass'] ? 'pass' : 'fail' ?>" id="req-<?php echo $slug ?>">
     532                                    <td class="name"><?php echo $r['name'] ?></td>
     533                                    <td class="required"><?php echo $r['required'] ?></td>
     534                                    <td class="status"><?php echo $r['status'] ?></td>
     535                                </tr>
     536                            <?php endforeach ?>
     537
     538                        </tbody>
     539                    </table>
     540                               
     541                </div>
    430542            </div>
    431543            <script type="text/javascript">
Note: See TracChangeset for help on using the changeset viewer.