用OCMOD替换管理TPL文件


Replace admin TPL files with OCMOD

我目前正在自学OpenCart和OCMOD。我对系统如何创建XML mod文件并通过修改界面上传或直接将XML数据添加到修改表的XML行中有基本的了解。

我可以成功地,使用XML,搜索文件,或者替换代码行或插入之前或之后…基本的。我仍然需要学习XML的全部功能。

我的问题是,我怎样才能完全覆盖一个文件?就像我说的,我可以通过只搜索一行来查找,替换或添加代码到文件中,但是在下面的例子中,当我试图搜索整个文件并做一个简单的替换时,它将不起作用。

<!-- admin dashboard overide -->
<file path="admin/view/template/common/dashboard.tpl">
  <operation>
    <!-- search the whole file??? -->
    <search>
      <![CDATA[
        <?php echo $header; ?><?php echo $column_left; ?>
        <div id="content">
          <div class="page-header">
            <div class="container-fluid">
              <h1><?php echo $heading_title; ?></h1>
              <ul class="breadcrumb">
                <?php foreach ($breadcrumbs as $breadcrumb) { ?>
                <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li>
                <?php } ?>
              </ul>
            </div>
          </div>
          <div class="container-fluid">
            <?php if ($error_install) { ?>
            <div class="alert alert-danger"><i class="fa fa-exclamation-circle"></i> <?php echo $error_install; ?>
              <button type="button" class="close" data-dismiss="alert">&times;</button>
            </div>
            <?php } ?>
            <div class="row">
              <div class="col-lg-3 col-md-3 col-sm-6"><?php echo $order; ?></div>
              <div class="col-lg-3 col-md-3 col-sm-6"><?php echo $sale; ?></div>
              <div class="col-lg-3 col-md-3 col-sm-6"><?php echo $customer; ?></div>
              <div class="col-lg-3 col-md-3 col-sm-6"><?php echo $online; ?></div>
            </div>
            <div class="row">
              <div class="col-lg-6 col-md-12 col-sx-12 col-sm-12"><?php echo $map; ?></div>
              <div class="col-lg-6 col-md-12 col-sx-12 col-sm-12"><?php echo $chart; ?></div>
            </div>
            <div class="row">
              <div class="col-lg-4 col-md-12 col-sm-12 col-sx-12"><?php echo $activity; ?></div>
              <div class="col-lg-8 col-md-12 col-sm-12 col-sx-12"> <?php echo $recent; ?> </div>
            </div>
          </div>
        </div>
        <?php echo $footer; ?>
      ]]>
    </search>
    <!-- replace whole file with below -->
    <add position="replace">
      <![CDATA[
        <div class="col-xs-12">OCMOD MODIFIED WORKING????? </div>
      ]]>
    </add>
  </operation>
</file> 

您可以使用offset作为search的属性,并将文件中的行数作为其值:

offset="35"

这个对我有效:

<file path="admin/view/template/common/dashboard.tpl">
      <operation>
        <search offset="35">
          <![CDATA[<?php echo $header; ?><?php echo $column_left; ?>]]>
        </search>
        <add position="replace">
          <![CDATA[
            <div class="col-xs-12">OCMOD MODIFIED WORKING????? </div>
          ]]>
        </add>
      </operation>
    </file>

感谢您的回复Mojaba,我确实尝试过,并且该过程确实有效,所以谢谢,但我这样做的方式是我在admin/view/template/中创建了另一个名为"custom"的文件夹,并创建了一个自定义仪表板。TPL在里面。然后我使用OCMOD来编辑控制器并替换它正在加载的视图,如下所示。:)

<file path="admin/controller/common/dashboard.php">
<operation>
  <search>
    <![CDATA[
      $this->response->setOutput($this->load->view('common/dashboard', $data));
    ]]>
  </search>
  <add position="replace">
    <![CDATA[
      $this->response->setOutput($this->load->view('custom/dashboard', $data));
    ]]>
  </add>
</operation>