GVKun编程网logo

php – 从模块更新前端布局(php前端模板)

19

本文将介绍php–从模块更新前端布局的详细情况,特别是关于php前端模板的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于C++操作MySQL模块更新

本文将介绍php – 从模块更新前端布局的详细情况,特别是关于php前端模板的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于C++ 操作 MySQL模块更新、Git子模块更新、odoo 备份还原,停止模块更新、PHP-从模块的Drupal中的表单布局的知识。

本文目录一览:

php – 从模块更新前端布局(php前端模板)

php – 从模块更新前端布局(php前端模板)

我已经创建了自己的magento模块并成功扩展了核心控制器和模型,但是我在布局xml文件时遇到了同样的问题.我想更新结帐多件装运页面.到目前为止,我只是设法覆盖整个checkout.xml文件,但我更喜欢在我的xml文件中.

这是我的模块config.xml中的内容,tm.xml文件位于app / design / frontend / default / default / layout /

<frontend>
        <layout>
            <updates>
                    <checkout>
                         <file>tm.xml</file>
            </checkout>
        </updates>
    </layout>
</frontend>

谢谢

解决方法:

Update: The text below refers to a method of storing template and XML files outside of the app/design folder. Over the years since this answer was written, this has been strongly discouraged my the Magento core team. They’ve gone so far as to enforces this at the application level with code, and continued to block new techniques as they’ve been developed. It’s strongly discouraged, but I’m leaving the answer as it is for historical reasons.

首先,您可能需要考虑将布局文件放在模块中的某个位置.我不确定这种做法有多广泛,但从分发的角度来看它是有道理的.它还确保您的布局覆盖将适用,即使有人将主题从默认更改.做这样的事情应该有效

<file>../../../../../code/local/Packagename/Modulename/layouts/tm.xml</file>

其次,正如您所指出的,使用上面的XML,您将完全替换magento安装中的checkout.xml.你不想这样做.相反,您希望将布局更新(该XML文件的内容)添加到Magento的可用更新列表中.所以做这样的事情.

<layout>
    <updates>
        <my_package_my_module_name>                     
            <file>../../../../../code/local/Packagename/Modulename/layouts/tm.xml</file>
        </my_package_my_module_name>
    </updates>
</layout>        

这里的重大变化是我们已经改变了< checkout>是< my_package_my_module_name>. Magento将本节中指定的所有XML加载到称为包布局的内容中.因此,您的XML将与checkout.xml中的XML一起生效.

在tm.xml中,您将设置多运输的特定规则

<layout version="0.1.0">
    <checkout_multishipping>
        <!-- ... -->
    </checkout_multishipping>

    <checkout_multishipping_login>
        <!-- ... -->
    </checkout_multishipping_login>
</layout>

这里要记住的重要一点是,checkout.xml中用于多次发货的现有规则仍然存在.你需要写< reference />规则来覆盖那些规则正在做的事情.这就是Magento布局系统的工作原理.如果你还没有,我建议查看Magento Designer’s Guide,特别是Intro to Layouts部分.

最后一点,你提到你是在重写控制器.如果您要查看多运输控制器,则需要使用< checkout_multishipping>标签,您需要使用与控制器上该页面的操作控制器/操作方法组合名称匹配的标签

<packagename_modulename_actioncontrollername_action />

C++ 操作 MySQL模块更新

C++ 操作 MySQL模块更新

原先那个模板不好用,我来更新一下。

新增了 mysql_error,不然报错怎么死的都不知道。。。

文章目录

    • db.h
    • db.cpp

db.h

#ifndef DB_H_
#define DB_H_

#include<string>
#include<mysql/mysql.h>
#include<muduo/base/Logging.h>
#include<iostream>

using namespace std;

// 数据库配置信息 
static string server = "127.0.0.1"; 
static string user = "root"; 
static string password = "123456"; 
static string dbname = "my12306"; 

// 数据库操作类 
class MySQL {

public: 
    // 初始化数据库连接 
    MySQL();
    
    // 释放数据库连接资源
    ~MySQL();

    // 连接数据库 
    bool connect();
    
    // 更新操作 
    bool update(string sql);
    
    // 查询操作 
    MYSQL_RES* query(string sql);
    
    //获取连接
    MYSQL* getconnection();

private: 
    MYSQL *_conn; 
};

#endif

db.cpp

#include "db.h"

MySQL::MySQL() { _conn = mysql_init(nullptr); }

// 释放数据库连接资源
MySQL::~MySQL()
{
    if (_conn != nullptr)
        mysql_close(_conn);
}

// 连接数据库
bool MySQL::connect()
{
    MYSQL *p = mysql_real_connect(_conn, server.c_str(), user.c_str(), password.c_str(), dbname.c_str(), 3306, nullptr, 0);
    if (p != nullptr)
    {
        mysql_query(_conn, "set names gbk");
    }
    else{
        cout<<mysql_error(_conn)<<endl;
    }
    return p;
}

// 更新操作
bool MySQL::update(string sql)
{
    if (mysql_query(_conn, sql.c_str()))
    {
        LOG_INFO << __FILE__ << ":" << __LINE__ << ":" << sql << "更新失败!";
        cout<<mysql_error(_conn)<<endl;
        return false;
    }

    return true;
}

// 查询操作
MYSQL_RES * MySQL::query(string sql)
{
    if (mysql_query(_conn, sql.c_str()))
    {
        LOG_INFO << __FILE__ << ":" << __LINE__ << ":" << sql << "查询失败!";
        cout<<mysql_error(_conn)<<endl;
        return nullptr;
    }

    return mysql_use_result(_conn);
}

MYSQL* MySQL::getconnection(){
        return _conn;
}

本文同步分享在 博客“看,未来”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Git子模块更新

Git子模块更新

我不清楚以下是什么意思(来自Git 子模块更新文档):

…将使子模块 HEAD 分离,除非--rebase--merge指定…

--rebase/如何--merge改变事物?

我的主要用例是拥有一堆中央存储库,我将通过子模块将它们嵌入到其他存储库中。我希望能够直接在它们的原始位置或从它们的嵌入存储库(通过子模块使用它们的那些)中改进这些中央存储库。

  • 在这些子模块中,我可以像在常规存储库中一样创建分支/修改并使用推/拉,还是有什么需要注意的地方?
  • 我将如何将子模块引用的提交从说(标记)1.0 推进到 1.1(即使原始存储库的负责人已经在 2.0),或者选择使用哪个分支的提交?

答案1

小编典典

这个GitPro 页面确实很好地总结了 git 子模块更新的结果

当您运行时git submodule update,它会检出项目的特定版本,但不在分支内。这被称为有一个分离的头——这意味着 HEAD
文件直接指向一个提交,而不是一个符号引用。
问题是您通常不想在一个独立的头脑环境中工作,因为它很容易丢失更改
如果您进行初始子模块更新,在该子模块目录中提交而不创建要工作的分支,然后从超级项目再次运行 git submodule update
而不同时提交,Git 将覆盖您的更改而不告诉您。从技术上讲,你赢了——失去了作品,但你赢了——有一个指向它的分支,所以检索起来会有些困难。


注意 2013 年 3 月:

正如“ git submodule tracking latest
”中提到的,现在一个子模块(git1.8.2)可以跟踪一个分支。

# add submodule to track master branchgit submodule add -b master [URL to Git repo];# update your submodulegit submodule update --remote # or (with rebase)git submodule update --rebase --remote

见“git submodule update --remotegitpull”。说明了手动更新(没有本地配置):

git submodule -q foreach git pull -q origin master

在这两种情况下,这都会更改子模块引用,父仓库索引中的一个特殊条目,并且您需要从主仓库添加、提交和推送所述引用。
下次您将克隆该父存储库时,它将填充子模块以反映那些新的 SHA1 引用。

该答案的其余部分详细介绍了经典的子模块功能(对 固定 提交的引用,这是子模块概念背后的全部要点)。


为避免此问题,请在子模块目录中使用 git checkout -b work
或类似的东西创建一个分支。当你第二次更新子模块时,它仍然会恢复你的工作,但至少你有一个指针可以返回。

切换带有子模块的分支也可能很棘手。如果您创建一个新分支,在那里添加一个子模块,然后切换回没有该子模块的分支,您仍然将子模块目录作为未跟踪目录:


所以,回答你的问题:

我可以像在常规回购中一样创建分支/修改并使用推/拉,还是有什么需要注意的地方?

您可以创建分支并推送修改。

警告(来自Git
子模块教程):始终发布(推送)子模块更改,然后再将更改发布(推送)到引用它的超级项目。如果您忘记发布子模块更改,其他人将无法克隆存储库。

我如何将子模块引用的提交从说(标记)1.0推进到1.1(即使原始回购的负责人已经在2.0)

“了解子模块”页面可以提供帮助

Git 子模块使用两个移动部分实现:

  • .gitmodules文件和
  • 一种特殊的树对象。

这些一起对特定存储库的特定修订进行三角测量,该修订被检出到项目中的特定位置。


从git 子模块页面

您不能从主项目中修改子模块的内容

100% 正确:您不能修改子模块,只能参考其中一个提交。

这就是为什么当您从主项目中修改子模块时,您:

  • 需要在子模块 提交和推送(到上游模块),并且
  • 然后进入你的主项目,并重新提交(为了让那个主项目引用你刚刚创建和推送的新子模块提交)

开发,其中主项目仅引用其他组件的特定提交(此处为“声明为子模块的其他 Git 存储库”)。

子模块是另一个不受主要项目开发周期约束的 Git 存储库的标记(提交):它(“其他”Git 存储库)可以独立发展。
主要项目可以从其他 repo 中选择它需要的任何提交。

但是,如果您想 出于方便 直接从您的主项目中修改其中一个子模块,Git 允许您这样做,前提是您 首先 将这些子模块修改发布到其原始 Git
存储库, 然后 提交您的主项目参考所述子模块的 版本。

但主要思想仍然存在:引用特定组件:

  • 有自己的生命周期
  • 有自己的一套标签
  • 有自己的发展

如果一个组件真的可以和你的主项目 同时
开发(因为对主项目的任何修改都会涉及修改子目录,反之亦然),那么它就不再是一个“子模块”,而是一个子树合并),将两个 Git 存储库的历史链接在一起。

这是否有助于理解 Git 子模块的本质?

odoo 备份还原,停止模块更新

odoo 备份还原,停止模块更新

备份 pg_dump -h localhost -U odoo -W -d gino > gino.sql

创建: createdb -h localhost -U odoo gino

还原:psql -h localhost -U odoo -d gino < gino.sql 

删除: dropdb -h localhost -U odoo gino 

 

 

停止更新

 

SELECT * from ir_module_module WHERE "state" like ''%up%'';

 

SELECT state from ir_module_module GROUP BY "state" ;

 

UPDATE ir_module_module set state=''installed'' WHERE "state" like ''%up%'';

 

 windows 下更新模块命令;

C:\Users\yulb\AppData\Local\Programs\Python\Python36>python.exe D:\pg\odoo-bin -c D:\pg\debian\odoo.conf -d pg -u pg_partner

 

 linux 下更新模块命令:

python openerp-server -c /etc/odoo-server.conf -u all –stop-after-init -d DB_ 

 

PHP-从模块的Drupal中的表单布局

PHP-从模块的Drupal中的表单布局

我创建了自己的名为“ cssswitch”的模块.我正在尝试创建自己的HTML布局以显示模块的管理表单部分.我了解如何使用hook_form_alter()修改表单元素,但是我需要创建整个表单布局,以使某些字段彼此相邻显示.
似乎我需要类似的方法,使主题的前端视图与theme_cssswitch_display()一起显示,但是对于节点的admin部分.

function cssswitch_form_alter(&$form, $form_state, $form_id) {

    switch($form_id) {  

        case 'cssswitch_node_form':
            $form['hour_start']['#prefix'] = '<divhttps://www.jb51.cc/tag/Box/" target="_blank">Box">';
            $form['ampm_start']['#suffix'] = '</div>';
            $form['ampm_start']['#attributes'] = array("style" => "border-width:2px;");
            break;
    }

}

function cssswitch_theme() {

    return array(
      'cssswitch_display' => array(
        'arguments' => array('node'),
      ),

    );

}

// to display the view of the node
function theme_cssswitch_display($node) {

  $output = '<div>Filename: '.
    check_plain($node->cssfilename). '</div>';
  $output .= '<div>Start: '.
    check_plain($node->hour_start). ':'.check_plain($node->minute_start).' '.check_plain($node->ampm_start).'</div>';

  $output .= '<div>End: '.
    check_plain($node->hour_end). ':'.check_plain($node->minute_end).' '.check_plain($node->ampm_end).'</div>';    

  return $output;
}

谢谢你的帮助

解决方法:

我现在把所有事情都整理了.
我的hook_theme是这样的:

function cssswitch_theme() {

    return array(
      'cssswitch_display' => array(
        'arguments' => array('node'),
      ),

      'cssswitch_node_form' => array(
        'arguments' => array('form' => NULL),
        'template' => 'cssswitch-node-form.tpl.PHP',
      ),

      );

}

我创建了文件theme / garland / cssswitch-node-form.tpl.PHP
然后,我可以控制将任何表单元素放在何处:

<style>
#edit-hour-start-wrapper, #edit-minute-start-wrapper, #edit-ampm-start-wrapper, #edit-hour-end-wrapper, #edit-minute-end-wrapper, #edit-ampm-end-wrapper {
    float:left;
    margin-right:25px;
}
</style>
<div id="regform1">

<?PHP print drupal_render($form['title']); ?>
<?PHP print drupal_render($form['cssfilename']); ?>

    <fieldset>
        <legend>Time Start</legend>
        <?PHP print drupal_render($form['hour_start']); ?>
        <?PHP print drupal_render($form['minute_start']); ?>
        <?PHP print drupal_render($form['ampm_start']); ?>
    </fieldset>

    <fieldset><legend>Time end</legend>
        <?PHP print drupal_render($form['hour_end']); ?>
        <?PHP print drupal_render($form['minute_end']); ?>
        <?PHP print drupal_render($form['ampm_end']); ?>    
    </fieldset>
</div>

<?PHP print drupal_render($form['options']); ?>
<?PHP print drupal_render($form['author']); ?>
<?PHP print drupal_render($form['revision_information']); ?>
<?PHP print drupal_render($form['path']); ?>
<?PHP print drupal_render($form['attachments']); ?>
<?PHP print drupal_render($form['comment_settings']); ?>
<?PHP print drupal_render($form); ?>

今天关于php – 从模块更新前端布局php前端模板的讲解已经结束,谢谢您的阅读,如果想了解更多关于C++ 操作 MySQL模块更新、Git子模块更新、odoo 备份还原,停止模块更新、PHP-从模块的Drupal中的表单布局的相关知识,请在本站搜索。

本文标签: