1
goffy
activate block by default
  • 8/24 9:52

  • goffy

  • Just can't stay away

  • Posts: 544

  • Since: 2010/12/27


is there a way to activate a block automatically, means, that after installation the block is already activated

2
liomj
Re: activate block by default
  • 8/26 23:56

  • liomj

  • Just popping in

  • Posts: 94

  • Since: 2012/4/10


Hi i tried asking ChatGPT AI, I got this answer below. I didnt test it, not sure if it will work.

Yes, in XOOPS CMS, it is possible to have a block automatically activated upon installation of a module. This involves modifying the installation script of the module so that the block is registered and set as active during the installation process. Here's how you can do it:

Step-by-Step Guide
1. Locate the xoops_version.php file in your module:

This file contains the configuration details for your module, including block definitions.

2. Define the Block:

Ensure that your block is defined in the xoops_version.php file under the $modversion['blocks'] array. For example:

$modversion['blocks'][1] = [
    
'file'        => 'block_file.php',
    
'name'        => 'Block Name',
    
'description' => 'Block Description',
    
'show_func'   => 'show_block_function',
    
'template'    => 'block_template.tpl',
    
'edit_func'   => 'edit_block_function',
    
'options'     => 'option1|option2',
];


3. Modify the Installation Script:

Typically, the block is registered during the module installation process. To activate it by default, you can add code to set the block as active in the xoops_version.php file.

Add the following to the module's xoops_version.php file:

// Add the block automatically upon installation
$modversion['onInstall'] = 'module_install_function';

// Custom installation function in your module's include/oninstall.php
function module_install_function(&$module) {
    
$moduleHandler xoops_getHandler('module');
    
$moduleObj $moduleHandler->getByDirname('your_module_name');
    
$blockHandler xoops_getHandler('block');

    
// Loop through the blocks defined in xoops_version.php
    
$blocks $blockHandler->getByModule($moduleObj->getVar('mid'));

    foreach (
$blocks as $block) {
        
// Activate the block
        
$block->setVar('isactive'1);
        
$blockHandler->insert($block);
    }

    return 
true;
}


Replace 'your_module_name' with the actual directory name of your module.

4. Create oninstall.php File:

If not already present, create an oninstall.php file in the include directory of your module and define the module_install_function as shown above.

5. Test the Installation:

Install your module through the XOOPS administration panel and verify that the block is automatically activated upon installation.

Summary
By customizing the installation process, you can ensure that blocks are automatically activated when the module is installed. The key is to modify the xoops_version.php file and create a custom installation function that activates the block.

3
goffy
Re: activate block by default
  • 9/3 16:09

  • goffy

  • Just can't stay away

  • Posts: 544

  • Since: 2010/12/27


hi, thank you I will test it and report back the solution :)

Login

Who's Online

230 user(s) are online (193 user(s) are browsing Support Forums)


Members: 0


Guests: 230


more...

Donat-O-Meter

Stats
Goal: $100.00
Due Date: Dec 31
Gross Amount: $0.00
Net Balance: $0.00
Left to go: $100.00
Make donations with PayPal!

Latest GitHub Commits