/home/edulekha/crm.edulekha.com/modules/openai/openai.php
<?php
use app\services\ai\AiProviderRegistry;
use Perfexcrm\Openai\OpenAiProvider;
defined('BASEPATH') or exit('No direct script access allowed');
/*
Module Name: OpenAi Integration
Description: Default module for Open AI integration
Version: 1.0.0
Requires at least: 3.2.*
*/
require __DIR__ . '/vendor/autoload.php';
hooks()->add_action('admin_init', 'openai_module_init');
hooks()->add_action('admin_init', 'openai_module_activation_hook');
hooks()->add_filter('module_openai_action_links', 'module_openai_action_links');
/**
* Add additional settings for this module in the module list area
*
* @param array $actions current actions
*
* @return array
*/
function module_openai_action_links($actions)
{
if (get_instance()->app_modules->is_active('openai')) {
$actions[] = '<a href="' . admin_url('settings?group=openai') . '">' . _l('settings') . '</a>';
}
$actions[] = '<a href="' . admin_url('settings?group=ai') . '">' . _l('settings_group_ai') . '</a>';
return $actions;
}
function openai_module_init(): void
{
AiProviderRegistry::registerProvider('openai', new OpenAiProvider());
$CI = &get_instance();
$CI->app->add_settings_section_child(
'ai',
'openai',
[
'name' => _l('openai'),
'view' => 'openai/settings',
'position' => 15,
'icon' => 'fa-solid fa-robot',
]
);
}
function openai_module_activation_hook(): void
{
add_option('openai_api_key');
add_option('openai_model');
}