Skip to content

Dev.Front FAQ Draft.zh_cn

lavenderli edited this page Aug 29, 2013 · 10 revisions
  1. 修改一个页面的前端代码。
    修改一个页面,你必须先知道这个页面是属于哪个模块的,一般一个页面都是对应一个模块 template/front/ 下面的模板的,但是有些特殊页面可能不能存在模板,只有区块,比如系统首页。但是常规的,一般都是有模板的。查看一个页面的body id="pi-{module name}"元素,就能知道这个页面属于哪个模块,然后在模块对应的 **template/front/**下面找到前台模块,一般情况下模板的名字跟url都比较接近,比如 demo 模块的前台首页的模板就是 demo-index 它的url就是 site/demo/index 或者 site/demo,还有的模板的名字直接就是 controller-action.phtml规则。
  2. 如何重新发布一个页面?
    想要重新发布一个修改后的页面首先要发布静态文件,然后清空页面缓存。
  • Asset publish
    程序只能访问到 www 目录下的文件,但是静态资源文件是在 usr 目录下的,想要程序应用修改后的代码,则需要把 usr 目录下面的静态文件发布到 www/asset 下面去。想要重新发布静态文件需要进入后台 Operation->System->Toolkit->Asset publish ,点击需要重新发布的内容之后的publish按钮,这样就完成了重新发布操作。
  • Cache flush
    为了加快页面加载速度,系统会缓存页面,重新发布之后如果不清空缓存,用户看到的还会是被缓存的那个页面。所以在重新发布之后需要清空页面缓存使修改生效。进入后台 Operation->System->Toolkit->Cache flush ,清空相应页面的缓存,再刷新修改的页面就能看到生效的修改了。 页面缓存设置在, Setting->{Module name}->Page->Edit ,可以对页面进行缓存设置,设置后的,页面就会被缓存,比如,你把系统首页设置半小时缓存,然后去dress up这个页面,刷新首页,不会看到生效后的效果。
  1. bootstrap表单生成。
  • front-end code
<?php
    $form->setAttribute('class', 'form-horizontal');
    echo $this->form()->openTag($form);
    $this->FormElementErrors()->setMessageOpenFormat('<span class="help-inline">')->setMessageCloseString('</span>');
?>
<legend><?php _e('Form title'); ?></legend>
<?php
    $username = $form->get('username');
    echo sprintf('<div class="control-group%s"><label class="control-label">%s</label><div class="controls">%s%s</div></div>',
    $username->getMessages() ? ' error' : '',
    $username->getOption('label'),
    $this->formElement($username),
    $this->formElementErrors($username));
?>
<?php
    $content = $form->get('content');
    $content->setAttributes(array(
            'class' => 'span7',
            'rows' => '6'
    ));
    echo sprintf('<div class="control-group%s"><label class="control-label">%s</label><div class="controls">%s%s</div></div>',
    $content->getMessages() ? ' error' : '',
    $content->getOption('label'),
    $this->formElement($content),
    $this->formElementErrors($content));
?>
<?php
    $submit = $form->get('submit');
    $submit->setAttribute('class', 'btn btn-primary');
    echo sprintf('<div class="controls">%s</div>', $this->formSubmit($submit));
    echo $this->form()->closeTag($form); 
?>
  • php code (src/Form/)
<?php 
    public function init() {
        $this->add(array(
            'name'          => 'username',
            'attributes'    => array(
                'type'  => 'text',
            ),
            'options'       => array(
                'label' => __('Sent to'),
            ),
        ));
        ...
    }
  1. 多主题多模块系统共存。
  2. 什么是dress up
  • 后台: Setting->Page->Pages->Dress up
  • 如果没有找到相应的页面的话,可以通过新增页面,输入ControllerAction指定需要拖拽控制的页面。
Clone this wiki locally