开发/调整模板的工作流程


16

通常,我只调整现有的免费模板并更改颜色和字体。问题是,当我已经在线上有我的Joomla页面时,最简单的更改模板CSS的方法是什么?

目前,我正在使用Chrome开发工具来查找和调整预览的特定样式。如果喜欢,可以直接在管理区域的在线编辑器中调整模板的css文件。

当我刚开始但没有任何内容时,我使用了具有Joomla的本地Web服务器,该服务器具有以下优势:可以使用适当的IDE编写CSS和php代码。既然我已经有了一些内容,那么我想看看我对所拥有内容所做的更改。

我知道这是一个基本问题,但是当有人想要调整现有网站的设计时,是否存在首选的工作流程?

Answers:


10

使用Akeeba克隆实时站点,在本地安装,然后根据需要进行调整。完成SSH / FTP后,更改的文件将返回到实时站点。

有很多很好的理由说明在实时站点上进行“微调”是不明智的……


请注意,如果您要进行更改以修改数据库(例如,更改了模块的顺序),则此操作将无效。
Flimm

@Flimm问题是关于更改CSS,而不是同步数据库中保存的更改。
塞斯·沃伯顿

10

根据您的重点是易用性,自动化还是成本,这里有一些选择:

  • 进行与本地安装之前完全相同的操作,但是一旦安装,请更改本地Joomla安装,以在中使用实时远程MySQL数据库configuration.php(如果主机支持远程访问)。但是请小心-任何数据库更改都将生效...

  • 使用extplorer之类的组件并直接在浏览器中编辑模板文件,同时打开另一个标签以显示该网站,同时仍使用Chrome的开发工具。extplorer具有代码着色功能,非常适合快速进行小的更改。

  • 使用版本控制系统来推送更改-例如,使用所选IDE在本地Joomla安装中开发模板,并将模板存储在存储库中。完成后,将更改提交到您的实时站点。使用提交后挂钩将这些更改作为有效版本签出。设置起来比较复杂,但这的确意味着如果您犯了一个错误,您总是可以回滚到旧模板版本。添加远程MySQL以确保本地和实时数据的一致性。

  • 购买适当的模板/模板框架-在我公司,我们使用YooTheme模板。该模板框架具有称为“ Customizr”的功能,该功能基本上是一个2窗格的窗口,在左侧具有数百个CSS变量(包括LESS变量),在右侧具有实时预览。这些变量控制模板的每个元素(从装订边距到菜单项文本阴影)以及它们之间的所有内容都足够接近。更改会立即应用到预览中,并且可以定义多个“样式”,因此您可以使用不同的变量配置进行播放。综上所述,我确定其他模板框架也具有非常相似的功能。

注意:除了作为用户外,我与extplorer或YooTheme无关。


6

如果只是CSS更改,您不妨继续在Chrome开发工具中预览它们,并使用Cloud9ShiftEdit等在线开发环境,您可以通过FTP直接连接到服务器,并使用适当的IDE调整到实时站点与您在本地托管时的操作类似。

但是,我不建议您进行任何可能会破坏您网站的较大更改(几年前我学到了很难的方法)。对于这些,我建议设置本地服务器(或koding.com的免费VM ),使用Akeeba克隆站点,并在测试完成后使用Git *将更改推送到活动站点。

*如果您不希望您的代码在GitHub上公开,那么一个不错的选择是BitBucket


5

方法1

我使用的一种方法是将自己的CSS文件添加到模板index.php文件中。如果您是用户,可以将其包装为仅添加它。

扩展它的一种方法是编写一个简单的插件,如果您是用户,则添加一个CSS文件。我用它来更改默认的管理模板,以避免直接在模板中进行更改,这些更改可能被下一次更新取代。

就像是...

class plgSystemBB extends JPlugin {
    public function onBeforeCompileHead() {

    if (JFactory::getUser()->username == 'my.login.name.goes.here')
    {
        JFactory::getDocument()->addStylesheet("/templates/protostar/css/test.css");
    }

    if(!JFactory::getApplication()->isAdmin()){
        return;
    }   

    JFactory::getDocument()->addStylesheet("/templates/isis/css/admin-extra.css");
}

方法2

要预览模板更改,您可以复制模板,并在副本中进行更改。要查看这些更改,请在URL后面附加“?template = test”,以覆盖模板。将“ test”替换为您决定用于重复项的任何名称。

请注意,您需要复制整个模板,而不仅仅是样式。样式和模板都可以在admin gui中复制。

我认为无法覆盖网址中的样式。[PW:我刚刚发现,在J3中,您可以覆盖url中的样式。参见方法3。]


方法3

与方法2相似,但具有样式。使用“测试”样式并修改主模板以包括测试样式表。要覆盖url中的样式,请添加?templateStyle =,其中是模板标识符(即数字)。


@peter我喜欢插件的想法,我仍然认为您应该远程编码并签到源代码控制,但是如果它与测试团队共享并尝试一些测试可能很好
tristanbailey 2014年

1
@tristanbailey谢谢。是的,远程编码要干净得多,但该问题涉及在现有站点上在线进行此操作。
彼得·怀斯曼
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.