我想在Magento网站的所有页面上插入跟踪代码,如果页面是CMS页面,类别浏览页面或产品视图页面,则需要使用不同的语法.我有一个自定义模块设置了一个块,现在在每个页面上插入一个通用的跟踪代码.在块内,如何区分CMS页面,类别页面和产品页面?
我开始时:
Mage::app()->getRequest();
Run Code Online (Sandbox Code Playgroud)
我知道
Mage::app()->getRequest()->getParam('id');
Run Code Online (Sandbox Code Playgroud)
返回产品和类别页面上的产品或类别ID,但不区分这些页面类型.
Mage::app()->getRequest()->getRouteName();
Run Code Online (Sandbox Code Playgroud)
返回CMS页面的"cms",但返回类别浏览页面和产品视图页面的"目录",因此我无法使用它来区分类别和产品页面.
在我可以安全使用的请求中是否有一些指示器?或者是否有更好的方法来实现不同页面类型的不同跟踪代码的目标?
可以使用TCL shell(tclsh)中的光标键(如向上箭头键)获取命令历史记录.
我正在使用linux版本2.6.21在fedora上运行tclsh.
一种方式更有效吗?一种方法与另一种方法有任何限制吗?感谢你们给我的任何意见;-)
真烦人
我有这样的目录结构
-lib
--some jar files
-packageName
--Main.java
--SomeOtherPackage
--SomeOtherJavaClass.java
Run Code Online (Sandbox Code Playgroud)
Main.java导入SomeOtherPackage。并且两个java文件都在lib中使用jar。
我要做的是将jar文件独立添加到CLASSPATH中。然后以:javac packageName / Main.java运行
但是它给出了找不到Package的错误SomeOtherPackage。它不应该自动实现依赖关系并进行构建SomeOtherPackage吗?在上述情况下,javac命令和类路径是什么?
谢谢
我有一个tcsh shell脚本,我想在大多数时间以非零状态的错误停止,但在某些情况下我想忽略它.例如:
#!/bin/tcsh -vxef
cp file/that/might/not/exist . #Want to ignore this status
cp file/that/might/not/exist . ; echo "this doesn't work"
cp file/that/must/exist . #Want to stop if this status is nonzero
Run Code Online (Sandbox Code Playgroud) 我们可以看到所有变更集和所涉及的文件
hg outgoing -v
Run Code Online (Sandbox Code Playgroud)
但文件名都分散在变更集列表中.
有没有办法只看到发出的所有文件的列表hg push?
我不敢相信我不得不问这个问题,但是我的智慧结束了.
我正在尝试内联显示2个表单字段,但顶部的每个字段都有标签.在ascii艺术:
Label 1 Label 2
--------- ---------
| | | |
--------- ---------
Run Code Online (Sandbox Code Playgroud)
应该很简单.
<label for=foo>Label 1</label>
<input type=text name=foo id=foo />
<label for=bar>Label 2</label>
<input type=text name=bar id=bar />
Run Code Online (Sandbox Code Playgroud)
这会让我:
--------- ---------
Label 1 | | Label 2 | |
--------- ---------
Run Code Online (Sandbox Code Playgroud)
要在框顶部获取标签,我添加display = block:
<label for=foo style="display:block">Label 1</label>
<input type=text name=foo id=foo />
<label for=bar style="display:block">Label 2</label>
<input type=text name=bar id=bar />
Run Code Online (Sandbox Code Playgroud)
执行此操作后,标签就是我想要的位置,但表单字段不再是内联的:
Label 1
---------
| |
---------
Label 2
---------
| |
---------
Run Code Online (Sandbox Code Playgroud)
我一直无法找到一种方法来包装我的HTML,因此字段显示为内联.有人可以帮忙吗?
这是我几次发现自己的情况,我只想一劳永逸地清理它.
最好只是为了向您展示我在一些示例代码中需要做的事情.
我的控制器
function my_controller()
{
$id = $this->uri->segment(3);
$this->db->from('cue_sheets');
$this->db->where('id', $id);
$data['get_cue_sheets'] = $this->db->get();
$this->db->from('clips');
$this->db->where('sheet_id', ' CUE SHEET ID GOES IN HERE ??? ');
$data['get_clips'] = $this->db->get();
$this->load->view('show_sheets_and_clips', $data);
}
Run Code Online (Sandbox Code Playgroud)
我的看法
<?php if($get_cue_sheets->result_array()) { ?>
<?php foreach($get_cue_sheets->result_array() as $sheetRow): ?>
<h1><?php echo $sheetRow['sheet_name']; ?></h1>
<br/>
<?php if($get_clips->result_array()) { ?>
<ul>
<?php foreach($get_clips->result_array() as $clipRow): ?>
<li><?php echo $clipRow['clip_name']; ?></li>
<?php endforeach; ?>
</ul>
<?php } else { echo 'No Clips Found'; } ?>
<?php endforeach; ?>
<?php } …Run Code Online (Sandbox Code Playgroud) 作为尝试升级我的C++技能的持续过程的一部分,我试图打破一些旧的习惯.我的老学校C程序员倾向于写这个;
void func( Widget &ref )
{
Widget w; // default constructor
int i;
for( i=0; i<10; i++ )
{
w = ref; // assignment operator
// do stuff that modifies w
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用.但我认为以下内容更接近最佳实践;
void func( Widget &ref )
{
for( int i=0; i<10; i++ )
{
Widget w = ref; // ??
// do stuff that modifies w
}
}
Run Code Online (Sandbox Code Playgroud)
至少使用我的Widget类,这很好用.但我不完全明白为什么.我有两个理论;
1)复制构造函数运行10次.
2)复制构造函数运行一次,然后赋值运算符运行9次.
这些都让我有点麻烦.2)特别是看似人为和错误.我错过了第三种可能性吗?
我有一个这样的类声明:
class Level
{
private:
std::vector<mapObject::MapObject> features;
(...)
};
Run Code Online (Sandbox Code Playgroud)
在其中一个成员函数中,我尝试迭代遍历该向量,如下所示:
vector<mapObject::MapObject::iterator it;
for(it=features.begin(); it<features.end(); it++)
{
/* loop code */
}
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎很简单,但是g ++给了我这个错误:
src/Level.cpp:402: error: no match for ‘operator=’ in ‘it = ((const yarl::level::Level*)this)->yarl::level::Level::features.std::vector<_Tp, _Alloc>::begin [with _Tp = yarl::mapObject::MapObject, _Alloc = std::allocator<yarl::mapObject::MapObject>]()’
/usr/include/c++/4.4/bits/stl_iterator.h:669:注意:候选人是:__gnu_cxx::__normal_iterator<yarl::mapObject::MapObject*,std :: vector >>&__gnu_cxx::__normal_iterator<yarl::mapObject::MapObject*,std :: vector>>::operator=(const __gnu_cxx::__normal_iterator<yarl::mapObject::MapObject*, ``std::vector<yarl::mapObject::MapObject, std::allocator<yarl::mapObject::MapObject> > >&)
任何人都知道为什么会这样吗?