Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 创建一个插件,在joomla中以完整的页面正文显示修改后的内容_Php_Android_Plugins_Joomla_Joomla3.0 - Fatal编程技术网

Php 创建一个插件,在joomla中以完整的页面正文显示修改后的内容

Php 创建一个插件,在joomla中以完整的页面正文显示修改后的内容,php,android,plugins,joomla,joomla3.0,Php,Android,Plugins,Joomla,Joomla3.0,我想向从Android设备浏览的用户显示下载Android应用程序消息(图像)。为此,我创建了一个内容插件,但它不能正常工作。它也向桌面用户显示消息,并且只显示在文章内容的地方。我想在整个页面正文中显示此图像,除此之外不应显示其他内容(如页眉、菜单、页脚、侧边栏)。我是joomla development的新手,请提供帮助 这是我的androidmsg.php <?php defined('_JEXEC') or die; defined('JPATH_BASE') or die; ji

我想向从Android设备浏览的用户显示下载Android应用程序消息(图像)。为此,我创建了一个内容插件,但它不能正常工作。它也向桌面用户显示消息,并且只显示在文章内容的地方。我想在整个页面正文中显示此图像,除此之外不应显示其他内容(如页眉、菜单、页脚、侧边栏)。我是joomla development的新手,请提供帮助

这是我的androidmsg.php

<?php
defined('_JEXEC') or die;
defined('JPATH_BASE') or die;

jimport('joomla.plugin.plugin');

class plgcontentandroidmsg extends JPlugin {
    function __construct(&$subject, $params) {
        parent::__construct($subject, $params);
    }
    function onContentPrepare($context, &$article, &$params, $offset = 0) {
        $app = JFactory::getApplication();
        if ($app->isAdmin()) {
            return;
        }
        $title = &$article->title;
        $text = &$article->text;
        $uri = JFactory::getURI();
        if (isset($_SERVER['HTTP_USER_AGENT'])) {
            $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
            if (stripos($ua, 'android') !== false) {

                if (isset($_COOKIE["user"])) {
                    $app->redirect($uri);
                } else {
                    $expire = time() + 60 * 60 * 24 * 30;
                    setcookie("user", "app_android", $expire);
                    $text = '<div><img src="'. JPATH_BASE .'/abc/abc.png"/></div>';
                }
            }
        }
        return true;
    }

}

我用一个简单的
echo
测试了这段代码,效果很好。你在测试什么版本的Android?Android上的哪个浏览器呢?嘿@Lodder,我正在用firefox浏览器在Android 4.2.2上测试它。它适用于Android,但当我在pc(Win7-chrome)上测试它时,它也会显示消息。我想在完整的网页中显示这张图片,我的网站是,我想这可能是由于您正在使用的插件事件(
onContentPrepare
)造成的,但我不能100%确定。使用在加载框架之前触发的事件检测Android可能是一个好主意,例如
onBeforeRender
。嘿@Lodder,谢谢你的建议。我已经用onAfterRender事件完成了,但现在它显示了“headers ready send error”。警告:无法修改已发送的标题信息标题(输出从/home/gurutest/public_html/components/com_invitex/helper.php:1开始),在/home/gurutest/public_html/plugins/system/androidmsg/androidmsg.php第32行,我更新的代码是@Lodder,我只想显示这条消息一次,所以我设置了一个cookie并检查它的值,但它每次都显示消息,cookie没有设置code
$cookieName='mymsgseen'
$cookieValue=$app->input->cookie->get($cookieName)
如果($cookieValue!=null&&$cookieValue==1){
$htmlString='cookie已设置:'.$cookieValue;
setBody($htmlString);
$cookieValue=1;
$expire=time()+60*60*24*30;
$app->>input cookie集($cookie>);
}