summaryrefslogtreecommitdiffstats
path: root/includes/public/shortcodes/giglog_process_files.php
blob: 9443cda2168e46d303f160bc6e5d1fa21ccfe3ee (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
// SPDX-FileCopyrightText: 2021 Andrea Chirulescu <andrea.chirulescu@gmail.com>
// SPDX-FileCopyrightText: 2021 Harald Eilertsen <haraldei@anduin.net>
//
// SPDX-License-Identifier: AGPL-3.0-or-later

/*
 * snippet used to  upload files with concerts. File is tab delimited file.
 * Band Venue Date TicketLink Eventlink. The form is at the end of this snippet
 */

function giglogadmin_upload_files(): string {
    global $wpdb;
    $output = "";
    $dir   = wp_upload_dir()['basedir'].'/concertlists/';  //the basedir is from file uploader plugin, namely the uploads folder in which I created a concertlist folder
    if ( !file_exists($dir) ) {
        mkdir( $dir );
    }

    $cfiles = scandir($dir);
    foreach ($cfiles as $value) { //list all files in directory
        $my_id = 0; //reset my_id which is used to check if anything was inserted
        if (strlen($value) > 3 and (is_dir($dir . '/' . $value) == false)) {
            $output .= 'Filename: ' . $value . '<br />';
            $filecontent = file_get_contents($dir . '/' . $value);
            $listcontent = str_replace(array(
                "\r",
                "\n"
            ), '<br />', $filecontent); //tring to replace end of lines with brs for html

            $output .= '<b>FILE CONTENT</b><br />';
            $r = 1;
            //processing each line of the file into a new row in wpg_files table
            if (isset($_POST['InsertFileContent'])) {
                $lines = new SplFileObject($dir . '/' . $value);
                //and then execute a sql query here
                $table = 'wpg_files';
                foreach ($lines as $newconcert) {
                    $output .= '<li> ' . $newconcert . '</li>';
                    $wpdb->insert($table, array(
                        'id' => '',
                        'filename' => $value,
                        'rowid' => $r,
                        'rowcontent' => $newconcert
                    ));
                    $r++;
                    //$wpdb->print_error();
                    $output .= $wpdb->last_error;
                    $my_id = $wpdb->insert_id;
                    $output .= '<br />---------------<br />Inserted rowID ' . $my_id . '<br />';
                } //end processing each line
            } //end file processing


        } //end if that checks whether filename is longer than 3 and is actually a file

        if ($my_id > 0) //if anything was inserted, move file to handled
        {
            $output .= '<br />File <b><i> ' . $value . ' </i></b> will be movedto handled folder';
            rename($dir . '/' . $value, $dir . '/handled/' . $value);
        }

    } //end looping through all folder content

    if ($my_id > 0) {
        $url1 = $_SERVER['REQUEST_URI'];
        header("Refresh: 5; URL=$url1");
    } //reload page

    $output .= '<form method="POST" action=""><input type="submit" name="InsertFileContent" value="InsertFileContent"/></form>';
    return $output;
}