PHP创建Drupal可引用的.less文件

时间:2013-12-19 22:49:47

标签: php css http drupal less

我正在尝试创建一个以编程方式创建LESS文件的自定义模块。

我创建了一个菜单回调,它是一个文件。这是hook_menu()...

$items['sites/all/themes/universal/less/dynamic.css.less'] = array(
  'page callback' => 'jobs_universal_lessvars',
  'access arguments' => array('access content'),
  'type' => MENU_CALLBACK
);

这是回调。

function jobs_universal_lessvars(){ 
  header('Content-type: text/css');
  $output = '
    @color: #4D926F;
    body.notaclass {
      color:@color;
    }
  ';
  print $output;
}

我称之为添加它。

function universal_preprocess_html(&$variables) {
  drupal_add_css(drupal_get_path('theme','universal').'/less/dynamic.css.less');
}

我上传了一个与上述^^路径完全相同内容的静态文件,禁用了菜单回调,并正确处理/应用了该文件。当我尝试运行此模块时,处理后的“CSS”文件未包含在HTML中,我收到错误消息

  

LESS错误:加载错误:找不到   网站/所有/主题/通用/更少/ dynamic.css.less

在回答之前...

  1. 我安装了LESS模块
  2. 我正确上传了LESS库
  3. 我已经测试过我可以包含一个静态的.less文件并进行处理
  4. 我已通过手动转到网址
  5. 测试了菜单回调
  6. 我已经尝试过,无论是否调用标题('Content-type:text / css');
  7. 我明白了...它不是文件。但它“是”,对吗?我可以调用此函数并让它创建一个添加的新CSS文件,但它不符合模块的要求。帮我? :)以编程方式创建文件对我来说很新鲜!

1 个答案:

答案 0 :(得分:0)

案件结束,我发现了这一点; https://drupal.org/node/2139603 - 这是一个Drupal“钩子”,它使LESS变量可用于包含的.less文件。

服务器上的文件通过文件系统相互交互,只有在浏览器请求时才会被解释为文件。

我将通过该Drupal挂钩以编程方式设置变量,而不是创建具有这些变量的.less文件。感谢大家的耐心,我的开发知识很窄!!