Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找整个站点中CSS id/类的每个实例_Css_Joomla - Fatal编程技术网

查找整个站点中CSS id/类的每个实例

查找整个站点中CSS id/类的每个实例,css,joomla,Css,Joomla,在做出可能产生意外后果的CSS更改之前,有什么好方法可以找到整个站点(不仅仅是这个页面)上使用id或类的其他位置?(不必详尽无遗,半手动流程也可以。) 就上下文而言,这是一个基于Joomla的网站,有很多内容,我对其中的大部分还不熟悉。这个身份证有两个字母的名字,我不知道它还能用在哪里。对于任何类似grep的方法,我都无法直接访问服务器 我能想到的唯一技术是使用Stifest对一个选择器进行明显的更改,然后浏览一下站点,看看它会弹出在哪里。最简单的方法是使用本地grep,但由于您无法访问服务器,

在做出可能产生意外后果的CSS更改之前,有什么好方法可以找到整个站点(不仅仅是这个页面)上使用id或类的其他位置?(不必详尽无遗,半手动流程也可以。)

就上下文而言,这是一个基于Joomla的网站,有很多内容,我对其中的大部分还不熟悉。这个身份证有两个字母的名字,我不知道它还能用在哪里。对于任何类似grep的方法,我都无法直接访问服务器


我能想到的唯一技术是使用Stifest对一个选择器进行明显的更改,然后浏览一下站点,看看它会弹出在哪里。

最简单的方法是使用本地
grep
,但由于您无法访问服务器,请尝试使用
wget
在本地下载它:

wget -r -l --domains=http://yourdomain.com http://yourdomain.com
这将递归地从您的域检索页面到无限的深度,但仅在您的域内的页面链接之后。
一旦它在磁盘上,执行本地
grep
,你就成功了。

将整个站点的源代码树放入像NetBeans或Eclipse这样的IDE中,然后在根文件夹上递归搜索id=“theid”


如果这是不可能的,您如何更新CSS?

假设您不想使用grep方法:

问题中的ID是出现在页面的实际内容区域,还是出现在“周围”区域?如果它似乎不是内容的一部分,而是出现在模板中,则可以在模板文件中搜索它。在更新CSS时,我假设您至少可以获得模板文件。许多文本编辑器/IDE将允许您进行“全局搜索”。我将在TextMate(我选择的texteditor)中加载模板文件,并对特定ID执行“在项目中搜索”

这至少会让你对ID在网站上的位置有一个大致的了解。不,它不会是每个“页面”,但你会知道它出现在什么样的页面上(使用CMS,这才是你真正想要的)


如果有问题的ID出现在内容中,也就是说,它是由内容创建者手工输入的,那么您必须走另一条路。你有访问数据库的权限吗?如果你能得到数据库的转储(我认为Joomla!是基于MySQL的),你可以在Sequel Pro中打开sql,然后在内容记录中搜索该ID。

这实际上并不像听起来那么难。首先查找index.php文件中的模板。除非模板来自使用模板框架的开发人员,否则该文件应该非常小,没有大量代码。如果ID在那里,那么它会出现在网站上的每个页面上,因为这是每个页面建立的基础。

如果在那里找不到它,则需要确定它是显示在模块位置还是显示在组件区域。您应该能够通过查看模板中的index.php文件来区分差异

如果它位于模块位置,则该ID应仅显示在该特定模块的实例中

如果它在组件区域中,那么它应该只显示在组件创建的任何页面中。这确实会影响到许多你不想改变的因素。但有一个解决办法。可以使用菜单项中的页面类后缀向要更改的页面添加唯一的id/类(取决于模板)。有了这个独特的后缀,你可以创建一个特定的选择器,它只会影响你想要更改的页面。

我用它来做这类事情。你只需把你的网页,它会看看整个网站(包括登录),并给你的CSS,你实际上正在使用

我发现它的正确率为95%——但它只会检测到一些CSS浏览器漏洞和一些错误(即CSS只在错误后显示),因此它应该可以很好地处理这些问题


您还可以检查原始模板(假设该模板是商业模板)以查看id可能应该在哪里(他们通常在演示模板中列出所有内容),但是未使用的css不会告诉您它的确切使用位置,只有在它是或不是的情况下。为此,我将从查看源->在主要页面上查找开始,然后尝试其他提到的解决方案。

您可以在Dreamweaver中使用“搜索整个本地站点”,但如果您的类只有2个字母,则可能会返回大量错误结果。您只对直接链接的页面感兴趣,是否排除您可能拥有的任何独立页面?答案将影响您的站点的爬网是否合适。如果你真的需要所有的页面,不管它们是否链接,这将是一个棘手的问题,因为你不能只在模板、内容、代码上做grep,你需要全部3个。如果是这种情况,您可能希望将问题空间减少到类似“在过去n天内访问过的页面”之类的内容,并从您的访问日志中获取这些URL。根据链接在站点上的工作方式,您可能还希望使用
--relative
仅跟踪相对链接。嗯,是的,这可能有效。Devil’s advocate:它不会在加载后拾取应用的样式。这很狡猾……也许这会有所帮助:看起来正确的参数可能类似于“wget--递归--级别3--转换链接--限制速率=10k--接受html”。这不会起作用,因为充其量您将获得站点内各个页面的源代码。它无法解决问题,也无法确定CSS是来自模板、模块、组件还是插件。这是一个有趣的工具,值得了解。这并不能完全解决这个特殊的问题,因为我知道使用了CSS样式,我只是不知道它被使用了多少。我知道这篇文章很旧,但谷歌在这个特定的参数中键入了一些关键字,所以我想用这个答案补充我的经验。不幸的是灰尘