# ivyforms/0.2/view/frontend/view.php

The Innovative Form Builder – IvyForms, version 0.2. 26 lines.

- Page: https://pluginprobe.com/plugins/ivyforms/0.2/code/view/frontend/view.php
- Raw: https://pluginprobe.com/plugins/ivyforms/0.2/raw/view/frontend/view.php
- Modified: 2025-07-24T13:31:58+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/ivyforms/0.2/code/view/frontend/view.php#L10-L20`.

```php
<?php if (!defined('ABSPATH')) exit; // Exit if accessed directly

use IvyForms\Services\Field\FieldType;
use IvyForms\Services\Shortcode\ShortcodeService;

/** @var int $counter */
$form = ShortcodeService::$formList[$counter];
?>

<div id="ivyforms-app-<?php echo esc_attr($counter) ?>" class="ivyforms ivyforms-frontend" data-counter="<?php echo esc_attr($counter) ?>">
    <form-render id="ivyforms-form-<?php echo esc_attr($counter) ?>"></form-render>
</div>
<!-- Wrapper for skeleton -->
<div class="ivyforms-skeleton ivyforms-skeleton-<?php echo esc_attr($counter)?>" >
    <div class="ivyforms-skeleton-title ivyforms-skeleton-animate"></div>

    <?php for ($i = 0; $i < count($form['fields']); $i++): ?>
    <?php $type = FieldType::sanitize($form['fields'][$i]['type']); ?>
        <div class="ivyforms-skeleton-field">
            <div class="ivyforms-skeleton-label ivyforms-skeleton-animate"></div>
            <div class="ivyforms-skeleton-input ivyforms-skeleton-<?php echo esc_attr($type) ?> ivyforms-skeleton-animate"></div>
        </div>
    <?php endfor; ?>

    <div class="ivyforms-skeleton-button ivyforms-skeleton-animate"></div>
</div>
```
