我有个组件叫我的组件
模型贝宝。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
默认情况下,视图仅由“显示”任务(默认任务)调用。由于您使用自己的任务,因此需要在任务完成后重定向到视图,或者尝试在最后加载显示功能。
我在这里看到了几个问题。首先,代码并不完全使用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
下面是XML
我已经制作了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任务栏上显示(如)? 问题答案: 对话框本身不能具有任务栏条目,但是您可以构造一个没有任何可见效果的框架,并将其用作对话框的父级。然后,该对话框看起来像具有任务栏条目。以下代码显示了如何执行此操作: