class Sivujetti\UserPlugin\UserPluginAPI
Luokka, joka passataan automaattisesti lisäosien pääluokille ${SIVUJETTI_PLUGINS_PATH}MyPrefixMyPlugin/MyPrefixMyPlugin.php
(/path/to/backend/plugins/MyPrefixMyPlugin/MyPrefixMyPlugin.php
).
Synopsis
final class UserPluginAPI extends UserSiteAPI {
/* Metodit */
public registerHttpRoute(string $method, string $url, string $ctrlClassPath, string $ctrlMethodName): void
public getCurrentLang(): string
public enqueueCssFile(string $url, array<string, string> $attrs = []): void
public enqueueJsFile(string $url, array<string, string> $attrs = []): void
public registerBlockType(string $name, BlockTypeInterface $instance): void
public enqueueEditAppJsFile(string $url): void
public registerBlockRenderer(string $fileId, ?string $friendlyName = null, ?string $for = null): void
/* Perityt metodit */
public UserSiteAPI::on(string $when, callable $thenDo): int
public UserSiteAPI::isCssFileEnqueued(string $url): bool
public UserSiteAPI::isJsFileEnqueued(string $url): bool
public UserSiteAPI::registerBlockRenderer(string $fileId, ?string $friendlyName = null, ?string $for = null): void
public UserSiteAPI::getPlugin(string $name): ?UserPluginInterface
}
Metodit
registerHttpRoute()
… Katso myös :
Signature
public function registerHttpRoute(string $method, string $url, string $ctrlClassPath, string $ctrlMethodName): void
Esimerkit
...
final class JetForms implements UserPluginInterface {
...
public function __construct(UserPluginAPI $api) {
...
$api->registerHttpRoute("POST", "/plugins/jet-forms/submissions/[w:blockId]/[w:pageSlug]",
SubmissionsController::class, "handleSubmission"
);
}
}
getCurrentLang()
…
Signature
public function getCurrentLang(): string
Esimerkit
echo $api->getCurrentLang(); // "fi"
enqueueCssFile()
Sama kuin UserSiteAPI::enqueueCssFile(), mutta hyväksyy vain tämän lisäosan slugifioidulla nimiavaruudella (plugin-my-prefix-my-plugin
) alkavat urlit.
Signature
public function enqueueCssFile(string $url, array<string, string> $attrs = []): void
Esimerkit
final class JetForms implements UserPluginInterface {
...
public function __construct(UserPluginAPI $api) {
...
$api->on($api::ON_PAGE_BEFORE_RENDER, function (Page $page) use ($api) {
if (!BlockTree::findBlock($page->blocks, fn($b) => $b->type === ContactFormBlockType::NAME ||
$b->type === SubscriptionFormBlockType::NAME))
return;
if (!$api->isCssFileEnqueued("sivujetti/vendor/pristine.css"))
$api->enqueueCssFile("sivujetti/vendor/pristine.css");
if (!$api->isCssFileEnqueued("plugin-jet-forms-foo.css"))
$api->enqueueCssFile("plugin-jet-forms-foo.css");
...
});
}
}
enqueueJsFile()
Sama kuin UserSiteAPI::enqueueJsFile(), mutta hyväksyy vain tämän lisäosan slugifioidulla nimiavaruudella (plugin-my-prefix-my-plugin
) alkavat urlit.
Signature
public function enqueueJsFile(string $url, array<string, string> $attrs = []): void
Esimerkit
final class JetForms implements UserPluginInterface {
...
public function __construct(UserPluginAPI $api) {
...
$api->on($api::ON_PAGE_BEFORE_RENDER, function (Page $page) use ($api) {
if (!BlockTree::findBlock($page->blocks, fn($b) => $b->type === ContactFormBlockType::NAME ||
$b->type === SubscriptionFormBlockType::NAME))
return;
if (!$api->isJsFileEnqueued("sivujetti/vendor/pristine.min.js"))
$api->enqueueJsFile("sivujetti/vendor/pristine.min.js");
if (!$api->isJsFileEnqueued("plugin-jet-forms-bundle.js"))
$api->enqueueJsFile("plugin-jet-forms-bundle.js");
...
});
}
}
registerBlockType()
Sama kuin UserSiteAPI::registerBlockType(), mutta hyväksyy vain tämän lisäosan nimiavaruudella (PluginMyPrefixMyPlugin
) alkavat nimet.
Signature
public function registerBlockType(string $name, BlockTypeInterface $instance): void
Esimerkit
class ContactFormBlockType implements BlockTypeInterface {
public const NAME = "JetFormsContactForm";
public function defineProperties(PropertiesBuilder $builder): \ArrayObject {
return $builder
->newProperty("property", $builder::DATA_TYPE_TEXT)
->getResult();
}
}
final class JetForms implements UserPluginInterface {
...
public function __construct(UserPluginAPI $api) {
$api->on($api::ON_ROUTE_CONTROLLER_BEFORE_EXEC, function () use ($api) {
$api->registerBlockType(ContactFormBlockType::NAME, new ContactFormBlockType);
});
...
}
}
enqueueEditAppJsFile()
Sama kuin UserSiteAPI::enqueueEditAppJsFile(), mutta hyväksyy vain tämän lisäosan slugifioidulla nimiavaruudella (plugin-my-prefix-my-plugin
) alkavat urlit.
Signature
public function enqueueEditAppJsFile(string $url): void
Esimerkit
final class JetForms implements UserPluginInterface {
public function __construct(UserPluginAPI $api) {
$api->on($api::ON_ROUTE_CONTROLLER_BEFORE_EXEC, function () use ($api) {
...
$api->enqueueEditAppJsFile("plugin-jet-forms-edit-app-bundle.js");
});
}
}
registerBlockRenderer()
Sama kuin UserSiteAPI::registerBlockRenderer(), mutta hyväksyy vain tämän lisäosan slugifioidulla nimiavaruudella (my-prefix-my-plugin
) alkavat fileId:t.
Signature
public function registerBlockRenderer(string $fileId, ?string $friendlyName = null, ?string $for = null): void
Esimerkit
...