WordPress.org

Make WordPress Core

Ticket #51832: #51832.patch

File #51832.patch, 4.6 KB (added by 9primus, 8 months ago)

Hello everyone. This is my patch for deleting multiple themes .Unfortunately it delete not all file in last version of wordpress. Plese , give me feedback about my patch

  • package-lock.json

     
    39213921                                                "tar-fs": "^2.0.0",
    39223922                                                "unbzip2-stream": "^1.3.3",
    39233923                                                "ws": "^7.2.3"
    3924                                         },
    3925                                         "dependencies": {
    3926                                                 "devtools-protocol": {
    3927                                                         "version": "0.0.818844",
    3928                                                         "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.818844.tgz",
    3929                                                         "integrity": "sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==",
    3930                                                         "dev": true
    3931                                                 }
    39323924                                        }
    39333925                                },
    39343926                                "rimraf": {
     
    80568048                        "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==",
    80578049                        "dev": true
    80588050                },
     8051                "devtools-protocol": {
     8052                        "version": "0.0.818844",
     8053                        "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.818844.tgz",
     8054                        "integrity": "sha512-AD1hi7iVJ8OD0aMLQU5VK0XH9LDlA1+BcPIgrAxPfaibx2DbWucuyOhc4oyQCbnvDDO68nN6/LcKfqTP343Jjg==",
     8055                        "dev": true
     8056                },
    80598057                "diff": {
    80608058                        "version": "4.0.2",
    80618059                        "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
  • src/wp-admin/themes.php

     
    355355}
    356356
    357357?>
     358<!-- thickbox start -->
     359<?php
    358360
     361if (isset( $_POST['submit-delete-themes'] )){
     362        $deletes_themes_arr = $_POST['theme-path'];
     363        print_r($deletes_themes_arr);
     364        function Delete($path)
     365{
     366    if (is_dir($path) === true)
     367    {
     368                $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS), RecursiveIteratorIterator::CHILD_FIRST);
     369
     370        foreach ($files as $file)
     371        {
     372                        if ($file->isDir() === true)
     373                        {
     374                                rmdir($file->getPathName());
     375                        }
     376
     377                        else if (($file->isFile() === true) || ($file->isLink() === true))
     378                        {
     379                                unlink($file->getPathname());
     380                        }
     381        }
     382
     383        return rmdir($path);
     384    }
     385
     386    else if ((is_file($path) === true) || (is_link($path) === true))
     387    {
     388        return unlink($path);
     389    }
     390
     391    return false;
     392}
     393        foreach($deletes_themes_arr as $theme_path){
     394                $arg = realpath($theme_path);
     395                print_r($arg);
     396                Delete($arg);
     397               
     398        }
     399        // echo   "<script type=\"text/javascript\">
     400        //              window.location.reload();
     401        //          </script>";
     402
     403}
     404
     405?>
     406<?php add_thickbox(); ?>
     407<div id="themes-delete-thickbox" style="display:none;">
     408        <div class="container-fluid">
     409                <div class="row">
     410                        <div class="col-md-12">
     411                                <form action="<?php echo 'http://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; ?>" method="post">
     412                                <table class="table table-striped">
     413                                <thead>
     414                                <tr>
     415                                        <th scope="col">
     416                                                <div class="form-check d-flex align-items-center">
     417                                                        <input type="checkbox" id="checkAll"  >
     418                                                        <label class="form-check-label" >Select all themes</label>
     419                                                </div>
     420                                        </th>
     421                                        <th scope="col">
     422                                                Theme name
     423                                        </th>
     424                                        <th scope="col">
     425                                                Screenshot
     426                                        </th>
     427                                        <th scope="col">
     428                                                <button name="submit-delete-themes" type="submit">DELETE</button>
     429                                        </th>
     430                                </tr>
     431                                </thead>
     432                                <tbody>
     433                                <?php
     434
     435                                $themes = wp_get_themes();
     436                                $active_theme=wp_get_theme();
     437                               
     438                                foreach($themes as $key=>$val){
     439                                        //echo "  ".$val;
     440                                        //echo "</br>";
     441                                        $theme_name = $val;
     442                                        $file_path_theme = get_theme_root().'/'.$key;
     443                                        $theme_url = $themes[$key]->get_theme_root_uri()."/{$key}";
     444                                        $theme_screenshot =$theme_url.'/screenshot.png';
     445                                        if (0 !==strcmp($theme_name,$active_theme)){
     446                                        ?>
     447                                        <tr class="">
     448                                                <td>
     449                                                        <input name="theme-path[]" value="<?php echo $file_path_theme; ?>"
     450                                                                   type="checkbox" class="check">
     451                                                </td>
     452                                                <td name="<?php echo $theme_name; ?>">
     453                                                        <?php echo $theme_name; ?>
     454                                                </td>
     455                                                <td>
     456                                                        <img   src="<?php echo $theme_screenshot; ?>" alt="screenshot theme" style="width:6rem;" >
     457                                                </td>
     458                                        </tr>
     459                                       
     460                                        <?php
     461                                        }
     462                                }
     463                                ?>
     464                                </tbody>
     465                                </table>
     466                                </form>
     467                        </div>
     468                </div>
     469        </div>
     470        <script>
     471                (function( $ ) {
     472                        $("#checkAll").click(function () {
     473                                $(".check").prop('checked', $(this).prop('checked'));
     474                        });
     475                })(jQuery);
     476        </script>
     477</div>
     478<a class=" thickbox button button-primary customize load-customize hide-if-no-customize" href="/?TB_inline&width=932&height=645&inlineId=themes-delete-thickbox" ><?php echo __('Delete themes'); ?></a>
     479
     480<!-- thickbox end -->
    359481<?php
    360482$class_name = 'theme-browser';
    361483if ( ! empty( $_GET['search'] ) ) {