标签: preprocessor

Drupal*_preprocess与模块

我是Drupal dev的新手,并且正在尝试将现有的区域变量添加到我的模块的预处理器函数中.

基本上,我已经为我的网站创建了一个新区域(这里是我主题的.info文件中的定义):

regions[feeds] = Feeds
Run Code Online (Sandbox Code Playgroud)

从Administer-> Blocks,我已将我想要的块添加到新的"Feeds"区域.

然后,从另一个模块,"高级前页"模块,我正在尝试将一些PHP添加到此模块中的"首页".高级前端页面模块只允许站点具有登录页面,而不是立即查看其他站点内容的列表等.我已为内容区域启用了PHP,然后添加了以下内容:

<div>
    <?php print $feeds; ?>
</div>
Run Code Online (Sandbox Code Playgroud)

它不打印"Feeds"区域,我相信这是因为该区域变量不能从page.tpl.php文件的外部访问.所以环顾四周后,我发现了这些链接:

http://drupal.org/node/223430

http://drupal.org/node/237391

从那里,我试图为模块"Advanced Front Page"添加一个预处理器功能,模块名称为"front_page"(或者可能只是"front",我不是100%肯定).这是我的预处理器函数,我试图将其添加到我的template.php文件和/modules/front/front_page.module文件中(请不要同时注意):

function front_preprocess(&$vars)
{
 $vars['feeds'] = theme('blocks', 'feeds');
}
Run Code Online (Sandbox Code Playgroud)

无论我在哪里放置此文件(template.php或front_page.module),它似乎都没有做任何事情.知道我可能会出错吗?

php themes preprocessor drupal drupal-6

2
推荐指数
1
解决办法
1966
查看次数

用Python/Ruby模仿C预处理器?

我需要用Python模仿C的预处理器功能.

如果我想运行调试版本,我在C中使用如下

#ifdef DEBUG
printf(...)
#endif
Run Code Online (Sandbox Code Playgroud)

我只是使用-DDEBUG或类似的方法来启动或关闭它.

我可以在Python/Ruby中使用什么方法?我的意思是,我应该怎么做才能控制python/ruby​​脚本的行为,以便我可以更改影响项目中所有脚本文件的变量?

ruby python user-controls preprocessor

2
推荐指数
1
解决办法
2417
查看次数

Xcode和预处理器##

在Xcode中,我可以在宏中使用##吗?

在MSVC中我可以写:

#define FOO(_var) int foo##_var## = 1

    FOO(bar);
    foobar++;
Run Code Online (Sandbox Code Playgroud)

在Mac上(编辑:用GCC编译)相同的代码给我错误"粘贴"foobar"和"="没有给出有效的预处理令牌.在xcode中不支持##吗?

xcode preprocessor

2
推荐指数
1
解决办法
6877
查看次数

drupal_add_css,drupal_add_js不起作用

我使用drupal_add_css()drupal_add_js()对CSS和JavaScript文件添加到我的Drupal网站.我在一个名为control的模块中执行此操作,因此调用我正在使用的函数control_preprocess_page(&$vars).

但在我的主题中没有添加任何内容!

preprocessor drupal

2
推荐指数
1
解决办法
6295
查看次数

Google App Engine,定义预处理类


我正在尝试定义一个base request handling类,以便webapp页面可以继承一些基本方法和变量,否则需要为应用程序的每个页面重复定义.一种类似的功能django preprocessors.这是我的基类,其他页面从该基类继承:

class BasePage(webapp.RequestHandler):
    def __init__(self):    
        self.user = users.get_current_user()    
        self.template_values = {
                'user': self.user,       
                'environ': self,   #I don't like the idea of passing the whole environ object to a template

                ##The below three functions cannot be executed during _init_ because of absence of self.request 
                #'openid_providers': self.openid_providers(),  
                #'logout_url': self.get_logout_url(),
                #'request': self.get_request(),
            }           

    ##A sort of similar functionality like render_to_response in django
    def render_template(self, template_name, values = None, *args, **kwargs):
        #PATH is the directory containing the …
Run Code Online (Sandbox Code Playgroud)

python google-app-engine preprocessor web-applications django-templates

2
推荐指数
1
解决办法
418
查看次数

Intellij IDEA中的Java预处理支持

有没有人知道Intellij IDEA中的Java预处理支持?可能有一些第三方插件?

例如:这是为Netbeans编写的一段Java代码(支持预处理):

//#if JSR82
//# import javax.bluetooth.*;
//#endif
Run Code Online (Sandbox Code Playgroud)

Netbeans内置预处理器根据定义的预处理器密钥解析//键和注释或取消注释代码片段.

我希望Intellij IDEA能有类似的东西.

Thanx提前

java ide preprocessor intellij-idea

2
推荐指数
1
解决办法
1781
查看次数

WebGL与OpenGL预处理器在同一图形堆栈上不同

我只是通过Chrome使用GLSL编译器发现了一个有趣的效果.该声明

#define addf(index) if(weights[i+index]>0.) r+=weights[i+index]*f##index(p);
Run Code Online (Sandbox Code Playgroud)

没有编译说明

preprocessor command must not be preceded by any other statement in that line
Run Code Online (Sandbox Code Playgroud)

似乎##语法不受支持.但是,在同一平台(例如Linux 64bit,Nvidia GPU)上,相同的着色器编译并运行良好.为什么这个?我认为着色器编译器是GPU驱动程序堆栈的一部分,并且将在两种情况下使用.为什么这种不同的体验?

preprocessor opengl-es glsl webgl

2
推荐指数
1
解决办法
1364
查看次数

在C++中确定类构造函数参数的数量和类型?

如何确定类构造函数参数的数量和类型?为成员函数执行此操作只是小菜一碟:

template <class T, typename P0, typename P1, typename P2, typename P3>
void BindNativeMethod( void (T::*MethodPtr)(P0, P1, P2, P3) )
{
   // we've got 4 params
   // use them this way:
   std::vector<int> Params;
   Params.push_back( TypeToInt<P0>() );
   Params.push_back( TypeToInt<P1>() );
   Params.push_back( TypeToInt<P2>() );
   Params.push_back( TypeToInt<P3>() );
}

template <class T, typename P0, typename P1, typename P2, typename P3, typename P4>
void BindNativeMethod( void (T::*MethodPtr)(P0, P1, P2, P3, P4) )
{
   // we've got 5 params
   // use them this way:
   std::vector<int> …
Run Code Online (Sandbox Code Playgroud)

c++ templates constructor preprocessor auto-generate

2
推荐指数
1
解决办法
713
查看次数

C预处理器更换无法正常工作

#include <stdio.h>
#define VAR cc

int main(void) {
    int ccc = 9;
    printf("hell loo %d", VARc);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我对这段代码的理解意味着预处理器找到的任何地方VAR都会替换它cc,因此printf会有一个正确定义的变量ccc,但代码会出错.有人可以请帮助


编辑1

我得到的错误是

test.c: In function ‘main’:
test.c:16: error: ‘VARc’ undeclared (first use in this function)
test.c:16: error: (Each undeclared identifier is reported only once
test.c:16: error: for each function it appears in.)
Run Code Online (Sandbox Code Playgroud)

c preprocessor c-preprocessor

2
推荐指数
1
解决办法
155
查看次数

如何防止方法在C#.NET中接受2个错误的bool?

我有一个带有此签名的方法:

public static void DirFillWEx(ComboBox cb, bool dirFill, bool fileFill);
Run Code Online (Sandbox Code Playgroud)

这是放在我自己写的dll库中.我的问题是:有没有办法指示Visual Studio这个方法不能同时接受bool值为false,所以我在编译时得到一个错误(NOT RUNTIME!)?

例如:

DirFillWEx(my_cb, false, true);
DirFillWEx(my_cb, true, true);
DirFillWEx(my_cb, true, false);
Run Code Online (Sandbox Code Playgroud)

但不是

DirFillWEx(my_cb, false, false);
Run Code Online (Sandbox Code Playgroud)

谢谢你们!

c# preprocessor compiler-errors visual-studio

2
推荐指数
1
解决办法
83
查看次数