联系官方销售客服
1835022288
028-61286886
请教一个代码实现:在hooks里如何实现生成首页静态文件。
思路:在“module_content_after”内容发布后挂钩点中执行生成首页静态代码。
问题:以下代码从“dayrui/Core/Controllers/Home.php”代码中复制过来的,虽然成功生成了index.html文件,但是里边的内容不对,检查了下发现主要是
\Phpcmf\Service::V()->display('index.html');方法并没有渲染出index模板内容,而是渲染了“/dayrui/Core/Views/share_list.html"的内容。
请问各路大神,应该如何修改才能实现内容发布后生成首页静态,谢谢。
附思路实现代码:
\Phpcmf\Hooks::on('module_content_after', function($data, $old) { // 内容发布或者修改之后 ob_start(); \Phpcmf\Service::V()->assign([ 'indexc' => 1, 'fix_html_now_url' => defined('IS_MOBILE') && IS_MOBILE ? SITE_MURL : SITE_URL, ]); \Phpcmf\Service::V()->assign(\Phpcmf\Service::L('Seo')->index()); \Phpcmf\Service::V()->display('index.html'); $html = ob_get_clean(); // 开启过首页静态时 if (SITE_INDEX_HTML) { if (defined('IS_MOBILE') && IS_MOBILE) { // 移动端,当移动端独立域名情况下才生成静态 if (SITE_MURL != SITE_URL) { file_put_contents(\Phpcmf\Service::L('html')->get_webpath(SITE_ID, 'site', 'mobile/index.html'), $html); } } else { // pc file_put_contents(\Phpcmf\Service::L('html')->get_webpath(SITE_ID, 'site', 'index.html'), $html); } } });