1: <?php
2:
3: 4: 5: 6: 7: 8: 9:
10: function papi_get_all_files_in_directory( $directory = '' ) {
11: $result = [];
12:
13: if ( empty( $directory ) || ! is_string( $directory ) ) {
14: return $result;
15: }
16:
17: if ( $handle = opendir( $directory ) ) {
18: while ( false !== ( $file = readdir( $handle ) ) ) {
19: if ( ! in_array( $file, ['..', '.'] ) ) {
20: if ( is_dir( $directory . '/' . $file ) ) {
21: $result = array_merge( $result, papi_get_all_files_in_directory( $directory . '/' . $file ) );
22: } else {
23: $file = $directory . '/' . $file;
24: $result[] = preg_replace( '/\/\//si', '/', $file );
25: }
26: }
27: }
28: closedir( $handle );
29: }
30:
31: return $result;
32: }
33:
34: 35: 36: 37: 38:
39: function papi_get_all_page_type_files() {
40: $directories = papi_filter_settings_directories();
41: $result = [];
42:
43: foreach ( $directories as $directory ) {
44: $result = array_merge( $result, papi_get_all_files_in_directory( $directory ) );
45: }
46:
47: return $result;
48: }
49:
50: 51: 52: 53: 54: 55: 56:
57: function papi_get_file_path( $file ) {
58: if ( empty( $file ) || ! is_string( $file ) ) {
59: return;
60: }
61:
62: $directories = papi_filter_settings_directories();
63: $file = '/' . papi_dashify( $file );
64:
65: foreach ( $directories as $directory ) {
66: if ( file_exists( $directory . $file ) ) {
67: return $directory . $file;
68: }
69:
70: if ( file_exists( $directory . $file . '.php' ) ) {
71: return $directory . $file . '.php';
72: }
73: }
74: }
75:
76: 77: 78: 79: 80: 81: 82:
83: function papi_get_page_type_base_path( $file ) {
84: if ( empty( $file ) || ! is_string( $file ) ) {
85: return;
86: }
87:
88: $directories = papi_filter_settings_directories();
89:
90: foreach ( $directories as $directory ) {
91: if ( strpos( $file, $directory ) !== false ) {
92: $file = str_replace( $directory, '', $file );
93: }
94: }
95:
96: $file = ltrim( $file, '/' );
97: $file = explode( '.', $file );
98:
99: return $file[0];
100: }
101: