Pular para o conteúdo

Referência da API do XOOPS

Bem-vindo à documentação abrangente da Referência da API do XOOPS. Esta seção fornece documentação detalhada para todas as classes principais, métodos e sistemas que compõem o Sistema de Gerenciamento de Conteúdo XOOPS.

A API do XOOPS é organizada em vários subsistemas principais, cada um responsável por um aspecto específico da funcionalidade do CMS. Entender essas APIs é essencial para desenvolver módulos, temas e extensões para XOOPS.

As classes de fundação que todos os outros componentes do XOOPS se baseiam.

DocumentaçãoDescrição
XoopsObjectClasse base para todos os objetos de dados no XOOPS
XoopsObjectHandlerPadrão de handler para operações CRUD

Abstração de banco de dados e utilitários de construção de consultas.

DocumentaçãoDescrição
XoopsDatabaseCamada de abstração de banco de dados
Sistema CriteriaCriteria de consulta e condições
QueryBuilderConstrução moderna de consultas fluentes

Geração de formulários HTML e validação.

DocumentaçãoDescrição
XoopsFormContêiner de formulário e renderização
Elementos de FormulárioTodos os tipos de elementos de formulário disponíveis

Componentes do sistema principal e serviços.

DocumentaçãoDescrição
Classes do KernelKernel do sistema e componentes principais

Gerenciamento de módulo e ciclo de vida.

DocumentaçãoDescrição
Sistema de MóduloCarregamento, instalação e gerenciamento de módulo

Integração com template Smarty.

DocumentaçãoDescrição
Sistema de TemplateIntegração Smarty e gerenciamento de template

Gerenciamento de usuário e autenticação.

DocumentaçãoDescrição
Sistema de UsuárioContas de usuário, grupos e permissões
flowchart TB
subgraph "Camada de Fundação"
XO[XoopsObject<br/>Classe Base]
XD[XoopsDatabase<br/>Abstração de BD]
XF[XoopsForm<br/>Geração de Formulário]
end
subgraph "Camada de Handler"
XOH[XoopsObjectHandler<br/>Operações CRUD]
CR[Criteria<br/>Construção de Consulta]
XFE[XoopsFormElement<br/>Tipos de Entrada]
end
subgraph "Camada de Módulo"
XM[XoopsModule<br/>Gerenciamento de Módulo]
end
subgraph "Camada de Apresentação"
XT[XoopsTpl<br/>Mecanismo de Template]
end
XO --> XOH
XD --> CR
XF --> XFE
XOH --> XM
CR --> XM
XFE --> XM
XM --> XT
classDiagram
class XoopsObject {
<<Base>>
+getVar()
+setVar()
+toArray()
}
XoopsObject <|-- XoopsUser
XoopsObject <|-- XoopsGroup
XoopsObject <|-- XoopsModule
XoopsObject <|-- XoopsBlock
XoopsObject <|-- XoopsComment
XoopsObject <|-- XoopsNotification
classDiagram
class XoopsObjectHandler {
<<Base>>
+create()
+get()
+insert()
+delete()
}
class XoopsPersistableObjectHandler {
+getObjects()
+getCount()
+deleteAll()
}
XoopsObjectHandler <|-- XoopsPersistableObjectHandler
XoopsPersistableObjectHandler <|-- XoopsUserHandler
XoopsPersistableObjectHandler <|-- XoopsGroupHandler
XoopsPersistableObjectHandler <|-- XoopsModuleHandler
XoopsPersistableObjectHandler <|-- XoopsBlockHandler
XoopsObjectHandler <|-- CustomModuleHandlers
classDiagram
class XoopsForm {
<<Base>>
+addElement()
+render()
+display()
}
XoopsForm <|-- XoopsThemeForm
XoopsForm <|-- XoopsSimpleForm
class XoopsFormElement {
<<Base>>
+getName()
+render()
+getValue()
}
XoopsFormElement <|-- XoopsFormText
XoopsFormElement <|-- XoopsFormTextArea
XoopsFormElement <|-- XoopsFormSelect
XoopsFormElement <|-- XoopsFormCheckBox
XoopsFormElement <|-- XoopsFormRadio
XoopsFormElement <|-- XoopsFormButton
XoopsFormElement <|-- XoopsFormFile
XoopsFormElement <|-- XoopsFormHidden
XoopsFormElement <|-- XoopsFormLabel
XoopsFormElement <|-- XoopsFormPassword
XoopsFormElement <|-- XoopsFormEditor

A API do XOOPS implementa vários padrões de design bem conhecidos:

Usado para serviços globais como conexões de banco de dados e instâncias de contêiner.

$db = XoopsDatabase::getInstance();
$container = XoopsContainer::getInstance();

Os handlers de objetos criam objetos de domínio de forma consistente.

$handler = xoops_getHandler('user');
$user = $handler->create();

Os formulários contêm múltiplos elementos de formulário; criteria podem conter criteria aninhadas.

$criteria = new CriteriaCompo();
$criteria->add(new Criteria('status', 1));
$criteria->add(new CriteriaCompo(...)); // Aninhada

O sistema de eventos permite acoplamento solto entre módulos.

$dispatcher->addListener('module.news.article_published', $callback);
// Obter o handler
$handler = xoops_getHandler('user');
// Criar um novo objeto
$user = $handler->create();
$user->setVar('uname', 'newuser');
$user->setVar('email', 'user@example.com');
// Salvar no banco de dados
$handler->insert($user);
// Construir criteria
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('level', 0, '>'));
$criteria->setSort('uname');
$criteria->setOrder('ASC');
$criteria->setLimit(10);
// Obter objetos
$handler = xoops_getHandler('user');
$users = $handler->getObjects($criteria);
$form = new XoopsThemeForm('User Profile', 'userform', 'save.php', 'post', true);
$form->addElement(new XoopsFormText('Username', 'uname', 50, 255, $user->getVar('uname')));
$form->addElement(new XoopsFormTextArea('Bio', 'bio', $user->getVar('bio')));
$form->addElement(new XoopsFormButton('', 'submit', _SUBMIT, 'submit'));
echo $form->render();
TipoConvençãoExemplo
ClassesPascalCaseXoopsUser, CriteriaCompo
MétodoscamelCasegetVar(), setVar()
PropriedadescamelCase (protegida)$_vars, $_handler
ConstantesUPPER_SNAKE_CASEXOBJ_DTYPE_INT
Tabelas de Banco de Dadossnake_caseusers, groups_users_link

XOOPS define tipos de dados padrão para variáveis de objeto:

ConstanteTipoDescrição
XOBJ_DTYPE_TXTBOXStringEntrada de texto (sanitizada)
XOBJ_DTYPE_TXTAREAStringConteúdo de textarea
XOBJ_DTYPE_INTIntegerValores numéricos
XOBJ_DTYPE_URLStringValidação de URL
XOBJ_DTYPE_EMAILStringValidação de email
XOBJ_DTYPE_ARRAYArrayArrays serializados
XOBJ_DTYPE_OTHERMixedManipulação personalizada
XOBJ_DTYPE_SOURCEStringCódigo-fonte (sanitização mínima)
XOBJ_DTYPE_STIMEIntegerTimestamp curto
XOBJ_DTYPE_MTIMEIntegerTimestamp médio
XOBJ_DTYPE_LTIMEIntegerTimestamp longo

A API suporta múltiplos métodos de autenticação:

X-API-Key: sua-chave-api
Authorization: Bearer seu-token-oauth

Usa a sessão existente do XOOPS quando conectado.

Quando a API REST está ativada:

EndpointMétodoDescrição
/api.php/rest/usersGETListar usuários
/api.php/rest/users/{id}GETObter usuário por ID
/api.php/rest/usersPOSTCriar usuário
/api.php/rest/users/{id}PUTAtualizar usuário
/api.php/rest/users/{id}DELETEDeletar usuário
/api.php/rest/modulesGETListar módulos
  • Guia de Desenvolvimento de Módulo
  • Guia de Desenvolvimento de Tema
  • Configuração do Sistema
  • Melhores Práticas de Segurança
VersãoAlterações
2.5.11Lançamento estável atual
2.5.10Suporte para API GraphQL adicionado
2.5.9Sistema Criteria melhorado
2.5.8Suporte para carregamento automático PSR-4

Esta documentação faz parte da Base de Conhecimento XOOPS. Para as atualizações mais recentes, visite o repositório GitHub do XOOPS.