# bit-form/3.1.2/includes/Core/Fallback/AppStructureFallback.php

Bit Form – Contact Form, Payment Forms, Multi Step Forms, Calculator &amp; Custom Form Builder, version 3.1.2. 39 lines.

- Page: https://pluginprobe.com/plugins/bit-form/3.1.2/code/includes/Core/Fallback/AppStructureFallback.php
- Raw: https://pluginprobe.com/plugins/bit-form/3.1.2/raw/includes/Core/Fallback/AppStructureFallback.php
- Modified: 2026-06-17T09:32:28+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/bit-form/3.1.2/code/includes/Core/Fallback/AppStructureFallback.php#L10-L20`.

```php
<?php

namespace BitCode\BitForm\Core\Fallback;

use BitCode\BitForm\Core\Util\FileHandler;

class AppStructureFallback
{
  public function ensureIndexFileInUploadDirs()
  {
    $uploadBaseDir = BITFORMS_UPLOAD_DIR;

    if (!is_dir($uploadBaseDir)) {
      return;
    }

    $formDirs = glob($uploadBaseDir . DIRECTORY_SEPARATOR . '*', GLOB_ONLYDIR);

    foreach ($formDirs as $formDir) {
      FileHandler::createIndexFile($formDir);

      $entryDirs = glob($formDir . DIRECTORY_SEPARATOR . '*', GLOB_ONLYDIR);

      foreach ($entryDirs as $entryDir) {
        FileHandler::createIndexFile($entryDir);
      }
    }
  }

  /**
   * Flush rewrite rules once after the 'bitforms' post type args changed
   * (public => false, publicly_queryable => true) so the download permalink keeps resolving.
   */
  public function flushRewriteRulesForBitformsCpt()
  {
    flush_rewrite_rules();
  }
}

```
