当前位置: 首页 > 知识库问答 >
问题:

Joomla不显示任务视图

范霄
2023-03-14

我有个组件叫我的组件

模型贝宝。php

控制器paypal.php

意见

贝宝视图。html。php索引。html

TMPL(文件夹)default.phpindex.html

在控制器中,我有这个代码

 <?php


// No direct access.
defined('_JEXEC') or die;


jimport('joomla.application.component.controlleradmin');

/**
 * Objectdefects list controller class.
 */
class MycomponentControllerPaypal extends JControllerAdmin
{
         public function paypaldetails()
    {
        $model = $this->getModel('paypal');
        // Get token
                $token = urlencode(htmlspecialchars(JRequest::getVar('token')));
        if (!$token)
        {
            // Missing $token parameter
            $app = JFactory::getApplication();
            $app->enqueueMessage(JText::_('COM_INSTALLER_MSG_MISSING_TOKEN'));
        }
        else
        {
            // Install plugin
            $model->paypaldetails($token);
        }
    }
}

在模型中我有一段代码

 public function paypaldetails($token){
            $environment=  $this->environment;
            // Add request-specific fields to the request string.
           $nvpStr = "&TOKEN=$token";
// Execute the API operation; see the PPHttpPost function above.
$httpParsedResponseAr = $this->PPHttpPost('GetExpressCheckoutDetails', $nvpStr);
//var_dump($httpParsedResponseAr);
if("SUCCESS" == strtoupper($httpParsedResponseAr["ACK"]) || "SUCCESSWITHWARNING" == strtoupper($httpParsedResponseAr["ACK"])) {

    $paypaldetails=array();
        $paypaldetails["firstname"]= $httpParsedResponseAr['FIRSTNAME'];
        $paypaldetails["lastname"]  = $httpParsedResponseAr["LASTNAME"];
        $paypaldetails["countrycode"] = $httpParsedResponseAr["COUNTRYCODE"];
       $this->paypaldetails=$paypaldetails;
       $a=$this->paypaldetails;
       var_dump($a);
} else  {
    exit('GetExpressCheckoutDetails failed: ' . print_r($httpParsedResponseAr, true));
}
        }

在视图/模板/default.php我有这个

<?php
// no direct access
defined('_JEXEC') or die;
// Import CSS
$document = JFactory::getDocument();
$document->addStyleSheet('components/com_mycomponent/assets/css/defects.css');
        $results = $this->items;
        var_dump($results);
        echo 'Firstname: '.$results[firstname];
        echo '<br>Lastname: '.$results[lastname];
        echo '<br>Countrycode: '.$results[countrycode];

当我运行这个url索引时。php?选项=com_fewostar


共有2个答案

郑功
2023-03-14

默认情况下,视图仅由“显示”任务(默认任务)调用。由于您使用自己的任务,因此需要在任务完成后重定向到视图,或者尝试在最后加载显示功能。

韩晋
2023-03-14

我在这里看到了几个问题。首先,代码并不完全使用Joomla MVC风格(即使它对你有用,对熟悉Joomla的人来说可能更难调试)。

应该调用Model方法getPaypaldetails,并返回一些内容

public function getPaypaldetails()
{
    // For Joomla 1.7+ use JInput instead of JRequest (deprecated)
    $token = JFactory::getApplication()->input->getVar('token');

    // some code

    return $paypaldetails;
}

看法html。php应该从模型中获取数据并分配给自己

public function display($tpl = null)
{
    // Get some data from the models
    $items = $this->model->get('paypaldetails');

    // If data are incorrect, show nice error message
    // ...

    $this->items = $items;
}

视图布局文件应放在/com\u fewostar/views/paypal/tmpl/default中。php

 类似资料:
  • 我已经制作了Hello World RCP应用程序,得到了以下类结构: 向Perspective.createInitialLayout()添加额外代码: 但不显示视图。 我将breakpoint设置到perspective.createInitialLayout()中,发现它没有执行。 我的观点声明是: ApplicationWorkbenchAdvisor.GetInitialWindowPe

  • 主要内容:实例,实例,实例关键词:$display, $write, $strobe, $monitor Verilog 中主要用以下 4 种系统任务来显示(打印)调试信息:$display, $write, $strobe, $monitor。 $display $display 使用方法和 C 语言中的 printf 函数非常类似,可以直接打印字符串,也可以在字符串中指定变量的格式对相关变量进行打印。例如: 如果没有指

  • 问题内容: 我正在使用以下代码在任务栏上显示JDialog,并且在JDK 1.6中可以正常工作。 但是当我使用方法设置模态类型时,它不起作用 这两个代码之间有什么区别?有什么方法可以解决此问题吗? 问题答案: 问题是某些所有者的构造方法会创建一个伪框架所有者(如果所有者是出于历史原因)。但是 必须没有 所有者像顶级窗口一样可见。即 将工作。

  • 我正在编写一个简单的节点。js项目使用最新版本的eclipse IDE for JavaScript和Web开发者版本:2019-09 R(4.13.0)构建id:20190917-1200 OS:Mac OS X,v.10.15.1,x86_64/cocoa Java版本:12.0.2使用最新版本的node。js(Node.jsv12.13.0)我知道TODO任务没有出现在任务视图窗口中:示例代

  • 问题内容: 我正在尝试在Windows中显示。如何在Windows任务栏上显示(如)? 问题答案: 对话框本身不能具有任务栏条目,但是您可以构造一个没有任何可见效果的框架,并将其用作对话框的父级。然后,该对话框看起来像具有任务栏条目。以下代码显示了如何执行此操作: