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

  • goffy

  • Just can't stay away

  • Posts: 547

  • 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
  • 2024/8/26 23:56

  • liomj

  • Just popping in

  • Posts: 95

  • 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
  • 2024/9/3 16:09

  • goffy

  • Just can't stay away

  • Posts: 547

  • Since: 2010/12/27


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

4
Paulsen97
Re: activate block by default Issues Upgrading to XOOPS 2.5.11 – Blank Page After Login
  • Today 5:57

  • Paulsen97

  • Just popping in

  • Posts: 2

  • Since: 5/14 12:51


Just chiming in to say I ran into a similar issue after trying to upgrade from 2.5.10 to 2.5.11 on a dev site. The front end loaded fine, but after logging in, I kept getting a blank white page. Turns out it was a module compatibility problem — in my case, an older version of the "Profile" module didn’t play nice with the new core files.

What helped was enabling debug mode via mainfile.php and also checking /modules/system/class/gui/. I replaced it with the default one from the XOOPS 2.5.11 release and things started working again.

Might be worth checking your PHP version too.. I had better luck running it under PHP 7.4 rather than 8.0 for now. Some of the older modules still throw deprecation notices under newer versions.

Hope that helps someone else running into the same wall!

Login

Who's Online

181 user(s) are online (151 user(s) are browsing Support Forums)


Members: 0


Guests: 181


more...

Donat-O-Meter

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

Latest GitHub Commits