Why can't you, try to display it in a separate page instead of cms page and add a url link in blocktopmenu.
You can create a front page easily in few steps
Step - 1: Create a front controller
let your module name is Blockexample
your directory structure is
module/module_name/controllers/front/controller_name.php
i.e.,
"module/blockexample/controllers/front/test.php"
class name convention must follow as below:
class modulename+controllername+ModuleFrontController extends ModuleFrontController()
eg: Blockexample+Test+ModuleFrontController
Create a test controller in the above path and add below code.
class BlockexampleTestModuleFrontController extends ModuleFrontController
{
public function init()
{
$this->page_name = 'testpage'; // page_name and body id
$this->display_column_left = false; // hides left column
parent::init();
}
public function initContent()
{
parent::initContent();
//path for displaying in breadcrumb, use this array to pass values to view file
$this->context->smarty->assign(array('path'=>'Test'));
$this->setTemplate('test.tpl');
}
//for linking your css and javascript
public function setMedia()
{
parent::setMedia();
$this->addCSS(__PS_BASE_URI__.'modules/'.$this->module->name.'/css/'.$this->module->name.'.css');
$this->addJS(__PS_BASE_URI__.'modules/'.$this->module->name.'/js/'.$this->module->name.'.js');
}
}
Step - 1 : Create a view
Your view directory structure is
module/module_name/views/templates/front/file_name.tpl
i.e, "module/blockexample/views/templates/front/test.tpl"
Now create a tpl file in above path and add just "hello world".
Step - 3: Access your module in front end
Now open the link in browser
url format:
http://domain.com/index.php?fc=module&module=module_name&controller=controller_name
eg:
www.example.com/index.php?fc=module&module=blockexample&controller=test
Now you can add your link in the above format and create a new link in blocktopmenu in your backoffice.