• Our team is looking to connect with folks who use email services provided by Plesk, or a premium service. If you'd like to be part of the discovery process and share your experiences, we invite you to complete this short screening survey. If your responses match the persona we are looking for, you'll receive a link to schedule a call at your convenience. We look forward to hearing from you!
  • We are looking for U.S.-based freelancer or agency working with SEO or WordPress for a quick 30-min interviews to gather feedback on XOVI, a successful German SEO tool we’re looking to launch in the U.S.
    If you qualify and participate, you’ll receive a $30 Amazon gift card as a thank-you. Please apply here. Thanks for helping shape a better SEO product for agencies!
  • The BIND DNS server has already been deprecated and removed from Plesk for Windows.
    If a Plesk for Windows server is still using BIND, the upgrade to Plesk Obsidian 18.0.70 will be unavailable until the administrator switches the DNS server to Microsoft DNS. We strongly recommend transitioning to Microsoft DNS within the next 6 weeks, before the Plesk 18.0.70 release.
  • The Horde component is removed from Plesk Installer. We recommend switching to another webmail software supported in Plesk.

Resolved Custom Button not getting displayed.

JaXnPriVate

New Pleskian
Server operating system version
Ubuntu
Plesk version and microupdate number
18.0.49
I'm currently Developing an DynDNS Extension for Plesk Obsidian.

Unfortunately, there are some gaps in Plesk's documentation.

I have finished my UI so far but still want to integrate the whole thing as buttons in Plesk.
Do I have to reimport the module to load the hook? I have already disabled and re-enabled the module, but with no success.

PHP:
<?php

namespace hooks;

class DDNSButtons extends \pm_Hook_CustomButtons
{

    public function getButtons()
    {
        // TODO: Implement getButtons() method.
        $buttonsIO = [[
            'place' => self::PLACE_COMMON,
            'title' => 'DynDNS',
            "id" => "ddns-hook-button",
            'description' => 'Dynamic Domain Name System integration.',
            'icon' => pm_Context::getBaseUrl() . 'images/icon.png',
            'link' => pm_Context::getActionUrl('domain'),
        ]];


        return $buttonsIO;
    }
}
 
First, the file needed to be called as "CustomButtons.php"!
Last, the Class need following Name Pattern "Modules_<MODULE NAME>_CustomButtons".

Can you please update your Docs Page with this Information, would be very helpful :p?
 
First, the file needed to be called as "CustomButtons.php"!
Last, the Class need following Name Pattern "Modules_<MODULE NAME>_CustomButtons".

Can you please update your Docs Page with this Information, would be very helpful :p?
This is an incredibly useful peace of information, Plesk Team needs to update the documentation asap.

I'm still not getting it to work though.
How is the <MODULE NAME> put together? Is it the module id from the meta.xml?
Or the module name without whitespaces and camel caps?
 
Ok, I finally managed to get it to work.

<MODULE NAME> = module id (meta.xml) in StudlyCaps.

Example:
<id>my-example-extension</id> from meta.xml
Class name should be: Modules_MyExampleExtension_CustomButtons

Same goes for ContentInclude and other similar files:
Modules_MyExampleExtension_ContentInclude

@To all Plesk employees: Please update the Documentation and the code examples in github with this information.
I'd never get it to work without this post.
 
Back
Top