学习用的drupal群部份高手言谈摘录

论坛: 

图片字段最好用field_collection

field collection多一个好处是能对所关联的图片集增加额外的字段

<?php print base_path . path_to_theme();?>/images/...
写到src里

外部加APC缓存加速,css/js压缩,模块精简
当开发完毕后,把不用的模块都卸载了,同时删除目录

注意的一点就是,Drupal特喜欢用return和array
到处是return,遍地都是array

drush dl --drupal-project-rename=d7 & drush si --account-name=admin --account-pass=admin --db-url=mysql://root:root@localhost/d7 -y

下载安装,一键完成

Drupal里面的Bootstrap指的是Drupal进程的启动过程

网站都快弄完了,,pathauto出了问题,不能设置了
分享以下,以后大家遇到了,可以朝这方向解决~
我的解决方法是,把模块卸载后,进数据库,修复和优化数据库表,然后重新安装模块,JQ版本换一下,然后清理缓存,,重启apache,刷新,,就出来了。。什么原因我不知道,我就这样弄的~
(恢复了,这样弄了一次,又不行了,,应该还是模块冲突的问题~~~  ,,再一个个的卸载了看看,看到底是哪个。。)

云服务器和vps的区别
一个是单台一个是集群均衡负载

“Theme developer“ 有没有替代的模块:
替代模块不知,替代方案是在settings.php里添加一行,$conf['theme_debug'] = TRUE;
然后查看源代码你就了然

hook_theme里面,可以定义每个template的输入项
可以是render element,也可以是variables
variables是可以定义这些变量的名字的,render element复杂些,可以参照刚才我说那个文件的注释看看
Drupal这个模板机制,我理解就是在hook_template里面定义对各个tpl的引用和调用方法
然后在render/theme系列函数里面为这些template提供符合前面要求的参数
tpl文件呢,就是把这些输入内容转换成html输出
Node这种module,会在模块中自带template,声明和实现一些基本内容,然后在主题的theme hook里面覆盖掉,重新输出新的样式

图片地址:
<img src="<?php print base_path() . path_to_theme();?>/images/tel_top.jpg" alt=""> //path_to_theme()函数:返回正在用的theme的路径,大部分用于page.tpl.php中
<img src="<?php print path_to_theme(); ?>/images/tel_top.jpg" alt="">

function theme_render_template($template_file, $variables) {
// Extract the variables to a local namespace
extract($variables, EXTR_SKIP);
// Start output buffering
ob_start();
// Include the template file
include DRUPAL_ROOT . '/' . $template_file;
// End buffering and return its contents
return ob_get_clean();
}

定义了一个SKIN

funtion myzen_preprocess_page(&amp;$variables, $hook) {
$variables['skin'] = base_path() . path_to_theme();
}

模版里面接受
/skin/images/logo.gif"/&gt;

dashan 答复于
wrp的头像

使用Resource Conflict模块预订资源
fullcarlend算一个
其次corourbox算一个
flag算一个
webform算一个
其他二次开发
还要算上rules模块
基本够用了
前两个模块主要用户前端可视化交互 主逻辑是后边那几个
刚才说的那几个完全是打造一个在线预约系统
make meeting scheduler 看着好像行呢
资源征用可以很好的用rules和taxonomy来控制
如果要求不高就webform了
预约的内容实体加一个标签 给他两值 已预约和未预约
然后用rules来配合预约状况自动切换他的值
而且根据这个字段的值改变读入的css
页面上可以对他进行可视化的变化
时间段仅仅是一个预约内容类型的一个字段
前台页面用日历 可以帮你控制显示
地球人
预约不用啥模块吧。
直接用node和views做得了
请问用什么来解决已经预约的时间可用不可用呢
query
要做复杂点的话可以开个room的node,再reference一个预约的node
要用drupal的views啥的,就自己弄个content type叫booking record,我觉得
webform提交,rules自动保存进booking record
用room id来关联到room。这样比较简单
可以用views整一个页面,用来显示某时间段内的booking record
这样就一目了然了
或者弄一个views block,显示在每个room的页面
显示该room目前有多少预约记录
反正如果用了content type就随便整了
drupal最大优势在于配置复杂的数据结构很轻松
views也能轻松呈现数据
在添加内容类型,提交数据库之前,做一些判断.怎么弄?
搜下hook_form_validate
实际上直接用node_add form好了
wrp 答复于

面包屑导航位置导航模块:
menu_breadcrumb, easy_breadcrumb
同一个站点 分手机端和PC端
单纯就做手机端和pc端的话,不用theme key。可以直接在drupal的setting里面判断下终端调用相对应主题就OK了
对应的代码
$mobi = strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone') || strpos($_SERVER['HTTP_USER_AGENT'], 'Android');
$conf = array('theme_default' => $mobi ? 'yoquphone' : 'bartik');
yoquphone 这是手机端的主题   bartik PC端的主题
dashan 答复于