Skip to content
wiki.fftac.org

Spiralist Workspace

**Site relevance:** Spiralist.org

**Memory type:** plugin source memory

**Source path:** Spiralist/wp-content/plugins/spiralist-workspace/spiralist-workspace.php

**Size:** 1.9 KB

Summary

Plugin Name: Spiralist Workspace

Source Preview

This source file is short enough to preview directly on its source-memory page.

<?php
/**
 * Plugin Name: Spiralist Workspace
 * Plugin URI: https://spiralist.org/plugins/spiralist-workspace/
 * Description: Create, version, share, and run reusable AI prompts and conversations inside WordPress.
 * Version: 3.28.0
 * Author: Spiralist
 * Author URI: https://spiralist.org/
 * Requires at least: 6.4
 * Requires PHP: 7.4
 * Text Domain: spiralist-workspace
 * Domain Path: /languages
 * License: GPLv2 or later
 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
 */

if (!defined('ABSPATH')) {
    exit;
}

define( 'SPIRALIST_WORKSPACE_VERSION', '3.28.0' );
define('SPIRALIST_WORKSPACE_FILE', __FILE__);
define('SPIRALIST_WORKSPACE_DIR', plugin_dir_path(__FILE__));
define('SPIRALIST_WORKSPACE_URL', plugin_dir_url(__FILE__));

spl_autoload_register(
    static function (string $class): void {
        $prefix = 'SpiralistWorkspace\\';

        if (strpos($class, $prefix) !== 0) {
            return;
        }

        $relative = substr($class, strlen($prefix));
        $path = SPIRALIST_WORKSPACE_DIR . 'includes/' . str_replace('\\', '/', $relative) . '.php';

        if (is_readable($path)) {
            require_once $path;
        }
    }
);

/**
 * Returns the plugin singleton.
 */
function spiralist_workspace(): \SpiralistWorkspace\Plugin
{
    static $plugin = null;

    if (!$plugin instanceof \SpiralistWorkspace\Plugin) {
        $plugin = new \SpiralistWorkspace\Plugin();
    }

    return $plugin;
}

register_activation_hook(__FILE__, ['SpiralistWorkspace\\Installer', 'activate']);
register_deactivation_hook(__FILE__, ['SpiralistWorkspace\\Installer', 'deactivate']);

add_action(
    'plugins_loaded',
    static function (): void {
        load_plugin_textdomain(
            'spiralist-workspace',
            false,
            dirname(plugin_basename(__FILE__)) . '/languages'
        );

        spiralist_workspace()->boot();
    }
);