有些注定了被遗忘的话,也就有的注定了属于沉静的自私.

帮助:系统:添加百度统计代码

来自森亮号航海见识 {SLboat Insight;}
跳转至: 导航搜索

简介

给mediawiki增加统计代码。

想法

  • 能否在公共JS里增加一个它的补丁呢,这样看起来就不需要显示它了呢,只是看起来它需要某个时候载入-也许不用。。
也许这想法很棒
换来的好处是不用每次更新都去修改模板
  • 或许能直接设置到LocalSetting呢?
Mediawiki 增加head

惊艳

  • 百度异步代码,在国外的确有更好的表现

注意

  • 重新保存文本为utf-8.如果用了中文的注释啥的,默认是ansi
  • 检查是否工作,可以在这里,是的,在这里
百度统计/检查是否工作

todo

  • 只针对登陆用户屏蔽,而不是个别用户
  • 异步代码依然不够,必须在head的最后面,才是最后加载的,否则还是在等待-看起来是这样
  • 是否可以通过插件的方式来调用呢,而不是每次都需要一起更新模板

@done

  • 是的使用它了,看起来是的-异步统计代码,听起来很有趣,而且有它的实用性,在国外连接百度服务器,看起来非常慢

使用代码

森亮号航海见识的百度代码

异步代码

插入到head部分
	<script>
var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "//hm.baidu.com/hm.js?6286329c0f2027c1d7a0cb2fe02fd410";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script>

同步代码

插入到body里(建议footer部分)
						<!-- baidu code start hereinside second ecdforeach after getSkin()-->
						<li id="footer-baiducode">
						<script type="text/javascript">
						var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");
						document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F6286329c0f2027c1d7a0cb2fe02fd410' type='text/javascript'%3E%3C/script%3E"));
						</script>
						</li>
						<!-- baidu code end here -->

修改

移动版增加百度统计代码

  • 在这里进行着,它进行的不错
扩展:MobileFrontend/显示百度统计代码
  • vector主题修改见下面

Vector 主题增加百度异步统计代码

V1.24.0 → V1.26.0

  • 换了文件了,来到这里了
/w/skins/SkinVector.php
  • 在里面添加
44 	/**
45 	 * Initializes output page and sets up skin-specific parameters
46 	 * @param OutputPage $out Object to initialize
47 	 */
48 	public function initPage( OutputPage $out ) {
49 		parent::initPage( $out );
50 
51 		// Append CSS which includes IE only behavior fixes for hover support -
52 		// this is better than including this in a CSS file since it doesn't
53 		// wait for the CSS file to load before fetching the HTC file.
54 		$min = $this->getRequest()->getFuzzyBool( 'debug' ) ? '' : '.min';
55 		$out->addHeadItem( 'csshover',
56 			'<!--[if lt IE 7]><style type="text/css">body{behavior:url("' .
57 				htmlspecialchars( $this->getConfig()->get( 'LocalStylePath' ) ) .
58 				"/{$this->stylename}/csshover{$min}.htc\")}</style><![endif]-->"
59 		);
60 		/* <!-- baidu code start here, just in the head --> */
61 		if ($this->getSkin()->getUser()->getName() != "Sen"){			
62 			$out->addHeadItem( 'baidutongji',
63 				'<script>var _hmt = _hmt || [];(function() {  var hm = document.createElement("script");  hm.src = "//hm.baidu.com/hm.js?6286329c0f2027c1d7a0cb2fe02fd410";  var s = document.getElementsByTagName("script")[0];   s.parentNode.insertBefore(hm, s);})();</script>'
64 			);
65 		};
66 		/*	<!-- baidu code end here --> */
67 		$out->addModules( array( 'skins.vector.js' ) );
68 	}

V1.22.0-V1.23.0 只针对访问用户插入

  • V1.23.0版本几乎没有变动这个文件
  • 进入 /w/skins/Vector.php
  • 这里加上了只对匿名用户显示
54 		$out->addHeadItem( 'csshover',
55 			'<!--[if lt IE 7]><style type="text/css">body{behavior:url("' .
56 				htmlspecialchars( $wgLocalStylePath ) .
57 				"/{$this->stylename}/csshover{$min}.htc\")}</style><![endif]-->"
58 		);
59 		/* <!-- baidu code start here, just in the head --> */
60 		if ($this->getSkin()->getUser()->getName() != "Sen"){			
61 			$out->addHeadItem( 'baidutongji',
62 				'<script>var _hmt = _hmt || [];(function() {  var hm = document.createElement("script");  hm.src = "//hm.baidu.com/hm.js?6286329c0f2027c1d7a0cb2fe02fd410";  var s = document.getElementsByTagName("script")[0];   s.parentNode.insertBefore(hm, s);})();</script>'
63 			);
64 		};
65 		/*	<!-- baidu code end here --> */
66 		$out->addModules( array( 'skins.vector.js', 'skins.vector.collapsibleNav' ) );
  • 真是好一个右箭头的艺术呢!

V1.21.1

  • 进入 /w/skins/Vector.php
  • 放入头部需要一些小技巧
50 		// Append CSS which includes IE only behavior fixes for hover support -
51 		// this is better than including this in a CSS fille since it doesn't
52 		// wait for the CSS file to load before fetching the HTC file.
53 		$min = $this->getRequest()->getFuzzyBool( 'debug' ) ? '' : '.min';
54 		$out->addHeadItem( 'csshover',
55 			'<!--[if lt IE 7]><style type="text/css">body{behavior:url("' .
56 				htmlspecialchars( $wgLocalStylePath ) .
57 				"/{$this->stylename}/csshover{$min}.htc\")}</style><![endif]-->"
58 		);
59 		/* <!-- baidu code start here,just in the head --> */
60 		$out->addHeadItem( 'baidutongji',
61 			'<script>var _hmt = _hmt || [];(function() {  var hm = document.createElement("script");  hm.src = "//hm.baidu.com/hm.js?6286329c0f2027c1d7a0cb2fe02fd410";  var s = document.getElementsByTagName("script")[0];   s.parentNode.insertBefore(hm, s);})();</script>'
62 		);
63 		/*	<!-- baidu code end here --> */

Vector主题增加百度标准统计代码

  • 这里就是标准代码,会需要网页效能
使用方法:
只需要把代码改成你想要的就行了。
针对:Vector主题
默认的mediawiki1.18、1.19、1.20主题,比较现代化,或许改叫时尚。

V1.20.3

  • 新的只是位置变了一点
  • 看起来要生成多个呢
  • 进入 /w/skins/Vector.php
255 			<?php $footericons = $this->getFooterIcons("icononly");
256 			if ( count( $footericons ) > 0 ): ?>
257 				<ul id="footer-icons" class="noprint">
258 <?php			foreach ( $footericons as $blockName => $footerIcons ): ?>
259 					<li id="footer-<?php echo htmlspecialchars( $blockName ); ?>ico">
260 <?php				foreach ( $footerIcons as $icon ): ?>
261 						<?php echo $this->getSkin()->makeFooterIcon( $icon ); ?>
262 
263 <?php				endforeach; ?>
264 					</li>
265 <?php			endforeach; ?>
266 						<!-- baidu code start here,inside second ecdforeach after getSkin()-->
267 						<li id="footer-baiducode">
268 						<script type="text/javascript">
269 						var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");
270 						document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F6286329c0f2027c1d7a0cb2fe02fd410' type='text/javascript'%3E%3C/script%3E"));
271 						</script>
272 						</li>
273 						<!-- baidu code end here -->
274 				</ul>

隐藏显示文字

  • 总是看着看起来很碍事,进入公共CSS,对百度的区块设置不显示。
#footer-baiducode{
    display: none;
}

用VIM改造

  • 是的 用VIM可以做到,比如这次我的尝试是
    • 编辑模板
      vim w/skins/Vector.php
    • 开启行号
       :set nu
    • 跳到266行
      ESC265gg
      有时候是265行,取决于两次结束的<?php endforeach; ?>
    • 进入插入模式,并且换行一行
      iEnd Enter
    • 在SecureCRT里把百度代码粘贴进去
      JustCapIt3216.jpg
    • 保存,有必要也可以退出
      :wq Enter
  • 尽管VIM每次尝试都几乎近在眼前,但是总差一点胆识彻底用它改造。
    JustCapIt3215.jpg
    • 一个操作逻辑就是,显示行号,跳到行
    • 然后呆住,恼火如何复制进去不掉东西

制造它的补丁

  • 修改前的文件复制一份被命名为
Vector_org.php
  • 修改后的依然是本尊文件
  • 获得两者的差异
[root@li567-57 skins]# diff -u Vector_org.php Vector.php 
--- Vector_org.php      2013-03-12 21:04:47.000000000 +0800
+++ Vector.php  2013-03-12 21:09:08.000000000 +0800
@@ -263,6 +263,15 @@
 <?php                          endforeach; ?>
                                        </li>
 <?php                  endforeach; ?>
+                                               <!-- baidu code start here,inside second ecdforeach after getSkin()-->
+                                               <li id="footer-baiducode">
+                                               <script type="text/javascript">
+                                               var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");
+                                               document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F6286329c0f2027c1d7a0cb2fe02fd410' type='text/javascript'%3E%3C/script%3E"));
+                                               </script>
+                                               </li>
+                                               <!-- baidu code end here -->
+                               </ul>
                                </ul>
                        <?php endif; ?>
                        <div style="clear:both"></div>
  • 生成补丁文件:
diff -u Vector_org.php Vector.php > patch_slboat_baidu_code.diff
  • 当前的补丁文件:
patch_slboat_baidu_code.diff
  • 它的用处:用它打上补丁
[root@li567-57 skins]# cat patch_slboat_baidu_code.diff | patch Vector_org.php  
patching file Vector_org.php
补丁镜像文件
文件:Patch slboat baidu code.zip

V1.19.2

  • 兼容测试版 V1.19.2 -- 没问题![1]
  • 注意,本次修改使用的源文件是V1.19.2
  • 进入 /w/skins/Vector.php
 本次改动添加了内容行236-行243,其中的百度代码需要改成你自己的。
225 			<?php $footericons = $this->getFooterIcons("icononly");
226 			if ( count( $footericons ) > 0 ): ?>
227 				<ul id="footer-icons" class="noprint">
228 <?php			foreach ( $footericons as $blockName => $footerIcons ): ?>
229 					<li id="footer-<?php echo htmlspecialchars( $blockName ); ?>ico">
230 <?php				foreach ( $footerIcons as $icon ): ?>
231 						<?php echo $this->getSkin()->makeFooterIcon( $icon ); ?>
232 
233 <?php				endforeach; ?>
234 					</li>
235 <?php			endforeach; ?>
236 <!-- baidu code start here -->
237 <li id="footer-baiducode">
238 <script type="text/javascript">
239 var _bdhmProtocol = (("https:" == document.location.protocol) ? " https://" : " http://");
240 document.write(unescape("%3Cscript src='" + _bdhmProtocol + "hm.baidu.com/h.js%3F6286329c0f2027c1d7a0cb2fe02fd410' type='text/javascript'%3E%3C/script%3E"));
241 </script>
242 </li>
243 <!-- baidu code end here -->
244 				</ul>

修改后的镜像下载

文件:Vector.zip

效果

JustCapIt0600.jpg

见识

百度统计异步统计代码部署指南_百度统计吧_百度贴吧 沿途见识[2]

就在前天几百度统计推出异步统计代码,对于以前使用或准备使用百度统计的用户来说,怎样更新和部署百度统计异步代码?异步代码有什么好处?需要注意什么?都是迫切需要知道的问题,下面就为您简单介绍一下百统计异步代码的优势及如何部署。

异步统计代码有什么不同?
百度统计异步代码是以异步加载形式(对网页加载速度零影响)加载了网站分析代码,使用该代码能够大幅提升您网站的打开速度。
注意:目前使用百度统计异步代码会导致百度统计图标和代码检查功能的失效。

异步统计代码有哪些优势?
1、加载速度快:网站加载速度更快,不影响网站打开速度。
2、统计数据更准确:统计数据更准确,大幅减少数据丢包现象。
3、代码出错率低:代码放置在页面<head>标签内,降低了代码出错的机率。

引用信息

以下是[帮助:系统:添加百度统计代码]所有用到的引用信息,向这些伟大的家伙致敬:
  1. ^ 致谢TortoiseMerge:
    JustCapIt0752.jpg
  2. ^ 百度统计异步统计代码部署指南_百度统计吧_百度贴吧, 见识于2013-4-11 19:48