2008-06-30

消失的圖示:快速編輯 (quick-edit) & 電子郵件發佈連結 (email-post)

之前就有發現,莫名其妙在 Post 尾巴 Blogger 內建的「快速編輯」和「電子郵件發佈連結」的圖示消失了,一直沒去追究為什麼、也沒去修正,直到這兩天心血來潮才去看看,到底發生了什麼事。這兩個圖示主要的功能,「快速編輯」是在文章後面多一個「鉛筆」的圖示,在管理帳號「登入」的狀態下,可以點圖示直接編輯該篇文章;「電子郵件發佈連結」則是允許讀者將正在閱讀文章的連結、透過點擊按鈕方便寄送到自己或朋友的電子郵件信箱。這兩個基本上都是 Blogger 原來就有的功能,不用 Hack,只要透過管理介面開啟就行了(版面配置 -> 網頁元素 -> 選擇「網頁文章」模組右下的「編輯」):

原則上一旦有設定,每篇文章的文末 (Post-footer) 區段裡,就應該要有這兩個功能圖示的樣式程式碼,類似這樣:(要「展開小裝置範本」才看得到,以下第一段是「快速編輯」、第二段是「電子郵件發佈連結」)

<!-- quickedit pencil -->
<b:includable id='postQuickEdit' var='post'>
  <b:if cond='data:post.editUrl'>
    <span expr:class='&quot;item-control &quot; + data:post.adminClass'>
      <a expr:href='data:post.editUrl' expr:title='data:top.editPostMsg'>
        <span class='quick-edit-icon'>&#160;</span>
      </a>
    </span>
  </b:if>
</b:includable>

<!-- email post links -->
<b:if cond='data:post.emailPostUrl'>
  <span class='item-action'>
  <a expr:href='data:post.emailPostUrl' title='Email Post'>
    <span class='email-post-icon'>&#160;</span>
  </a>
  </span>
</b:if>

功能正常的話,文末應該會有像這樣的圖示:

不管做過什麼 Hack,我都儘量避免去碰這類原生 Blogger 的樣式原始碼,但,不知道什麼時候開始,這兩個功能的圖示和連結就不見了!仔細去看網頁的原始程式碼,又簡單地 Debug 一下,發現連結還在,消失的只有「圖示」!怪了,那個圖示是 Blogger 系統內建的,沒有「不見了」的道理啊!而且神奇的是,有些人的 Blog 功能正常圖示也在、原始碼也一樣,為什麼就我或部份人的沒有圖示?用 Google 找了一下、找到 Blogger 的官方討論區,發現有這個狀況的人還真不在少數,而且「災情」持續至今也半年多了耶!大家七嘴八舌得到的結論,比較可信的該問題癥結還是在「Blogger/Google」上面。應該是 Blogger 採用 Cloud 分散式運算和儲存架構,但不知怎麼的,「部份」Blogger 的伺服器裡「剛好」就沒有那兩個圖示檔,導致這兩個在官方預設 CSS 樣板文件裡沒定義到、直接使用相對路徑連結的圖檔,就這麼地無法顯示,功能不是消失,只是負責連結這項功能的圖檔連結不到所致。

了解原因之後,解決方法也很簡單:補個圖給它不就好了!我拜讀了 iPlay99這篇文章、知道了原來那兩個消失的圖示的官方連結位置,不過該作者與網路上很多解決該問題的辦法一樣,將上面樣板裡定義圖示的 span 標籤「覆寫」成該圖檔的固定連結 (<img src=""/>),非常直覺的方法,但還要搜尋和改動版面原始碼、而且還 Hard-code 了圖檔連結在樣板裡!我想了自己的解決辦法,既然「預設的 CSS」連結不到圖檔,這還有現成的 span class 類別 ('quick-edit-icon', 'email-post-icon'),直接覆蓋繼承該 CSS 定義不就搞定了?所以我的辦法是:不用搜尋樣板原始碼裡、顯示這兩個圖示的程式在哪裡,只要在最前面、給定自己對這兩個 class 的 CSS 定義,並把圖檔連結改到官方圖檔連結位置就好了!(用 CSS 修正這類問題才是王道啊~)

以上是原理,看不懂也沒關係,如果一樣那兩個功能有開啟但圖示卻消失的問題,只要打開樣板原始碼、在定義 CSS 樣式的區段裡面 (<b:skin> </b:skin> ),直接插入以下幾行,就能覆蓋官方的 CSS 圖檔連結、解決這個問題了:

.email-post-icon {
background: url("http://www.blogger.com/img/icon18_email.gif") no-repeat left;
padding: 9px;
}
.quick-edit-icon {
background: url("http://www.blogger.com/img/icon18_edit_allbkg.gif") no-repeat left;
padding: 9px;
}

當然,如果有自己喜歡的圖示,可以把以上的圖檔連結換成自己的,更能一勞永逸解決問題。

回應: 11

 

2008-06-05

無題

想半天不知道該給這篇文章下什麼標題,因為內容雜亂無章,所以只好用「無題」了。一早收到王姓友人的提醒,沒想到這邊這個小小的 Blog,竟然在「部落格觀察」分屬的「宅度計」評量上,「榮獲」IT 類排行榜前十名的第二名(當然,就那一開始而已,現在沒了)!為避免流於嘴砲或以資紀念,先貼個擷圖真相在下面:

這不是閃光文,因為也沒啥好高興的(又沒獎牌、獎狀、獎金,哈),該指標的「公信力」見仁見智,因為我覺得更多「當之無愧」的 Blog 竟然沒上榜(或在我後面),而且,被冠上一個 IT 類「宅度」很高稱號的部落格,也不知道應該是要很開心還是難過...嗯,以上不是重點,我的 Blog 的確有不少「讀者」,會參考這邊的文章和筆記,不管是拿來改機或是改 Blog,自己也很高興亂寫的東西能夠給人家一點幫助。不過所謂樹大招風,這陣子以來一直有些讓我困擾的事情,所以利用這篇文章一併紀錄,要說是「公告」也行啦!以後遇到類似狀況,我就不用再寫 Mail、回應留言或是出陣撻伐了,直接 Redirect 到這篇文章、請人家自己看,不要浪費自己的口水了。

首先開宗明義,我開設 Blog 的原因,不是為了「衝人氣」(所以亂入的人看看就算了,不一定要留言、搶沙發、或推什麼鬼的),也不是發善心要「教學」(所以有些初學者看不懂、還有會批評我應該怎麼寫文章的,我沒有義務一定要「教會」你們、或是依照人家的「需求」寫東西),出發點很簡單、和我 Blog 的標題一樣,單純是我個人的「筆記」,主要能夠滿足我一個人就行了。紀錄的好處,就是可以把自己做過的事情化為實體文字,記性不好或又要用的時候,有地方可以查詢、剪貼或連結得到。因此和很多 Blog 不同的,我不喜歡寫些有時效性或像新聞單純介紹的文章(像什麼軟體又出新版、誰推出什麼東西服務自己沒去用過也能發表文章)、不喜歡寫容易引起爭議的東西(政治文),相反地,很多文章像是可以回味的日記、或可以反覆參考,我不大會管對大家有沒有用,重點是我覺得有意義、自己看得爽、寫得爽就行了。

正因我 Blog 是個人公開的「筆記」,行有餘力能幫到別人,那就是額外的 Bonus 了。不過很多人「反客為主」,文章看不懂、不會用,就會有一些奇怪的留言,甚至有「需求」,我如果無聊或行有餘力,可能會看一下回一下,會造成負擔或不快的,我根本不會回應。這就像我看了書、上了課寫了一點筆記和讀書心得,有人借去看、看完還說看不懂、指正你應該寫什麼、甚至直接問能不能幫他寫作業應付考試一樣。喂!有得看就不錯了(而且所謂「寫的好」的筆記,最好人家都看不懂、只有自己看得懂),討論可以,但看完應該是沒資格提要求或批評吧(除非我真的寫錯了,歡迎糾正)!所以呢,針對過去、最近和未來還會繼續發生的狀況,在這篇文章就一次講完,我懶得回就可以給這篇連結做解釋了。

1. 文章轉載的問題。基本上我的 Blog 下面是有註明 SOME RIGHTS RESERVED,也就是作者保有該文章的「著作權」,但願意公開分享散佈,所以如果覺得文章有用,歡迎來「引用」(就是提供本文連結,我自己也常引用人家文章),如果想要轉載、轉貼、轉 PO,在非商業營利、還有不亂改的前提下也允許,但一定要加註來源,當然能知會我更好。很多人轉用文章、不加註就發表的話會像是自己寫的(有的還會故意改得像自己寫的),對作者真的很不尊重。雖然人家不一定吹得長你、拉得破你,但惡性循環之下,公開的好文章和資源就會越來越少了(我就知道對岸有些好 Blog 最後只開放給特定人士看,就是為了避免被抄襲亂轉貼)。

2. 疑問解答的問題。我最常碰到的留言是:「參考你的文章、但是不會 Work」、「你的命令我下了有錯誤」這類,上面說了,這是我的「筆記」,在我的環境、我的機器上能跑,我當然就覺得沒問題。而且,看了文章也是有很多人完成啊,會失敗的話問題不一定在文章裡面。發生狀況首先應該自省的是,是不是自己的環境不一樣、自己那個步驟沒看懂、哪個步驟錯了漏了,有人看都沒看,就跑來說「不行」,這種留言我要回也不知從何回起。最近特別多的,直接把其樣板 XML 寄給我、請我幫他改好再寄還給他,甚至曾經有人砸銀彈、想說付點錢把機器給我,改機好整個搞定再給他!拜託,我一分鐘幾十萬上下,沒閒工夫也沒有義務幫忙啊,而且很多狀況要在自己的空間才能 Debug,光改樣板問題就都能解決的話,那幹嘛要一個模組一個模組地 Hack 啊~要改就自己來,還有我的經驗分享可以參考,不自己動手耕耘解決,那我也愛莫能助。

3. 完全沒基礎的勿入。我愛用 Hack 當標籤,所謂的 Hack 就是利用技術和相關知識,去修改或調整成自己要的東西。很多讀者發問前會先來一句:「我是新手」,更厲害的還會講「我什麼都不懂」、「我不會寫程式」、「我 Linux 不熟」之類的,很抱歉,就跟你說這個 Blog 被「宅度計」標記成 IT 「程式設計」類,很多文章我也講「有風險」、「需基本知識」,不懂任何 Linux 命令是要怎麼改機啊、一點都不懂 CSS、HTML 要怎麼改樣板啊?本 Blog 不是讓人家「入門」用的,要先自己學習有些基礎才行,網路上還有很多教學文可以給初學者上手,有基本能力才看得懂我寫什麼啦。

4. 和我伸檔要東西的免談。有人改無可改,想乾脆直接和我要樣版檔案去改(直接看網頁原始碼也可以參考啊,幹嘛和我要樣板),改機的部份,還有想直接拿改好的 Image 去「Ghost」回去哩!要知道,樣板點點滴滴都是心血,也能想像有人拿到檔案打算「直接用」再來改,但環境不同、不一定能直接用,偷懶的下場可能會導致更多的問題和狀況!改機的映像檔也是如此,裡面還可能會有「漏洞」、「後門」或是密碼隱私,你敢要我也不敢給啊!(不知死的等我種個木馬再把系統檔給你)

以上,說是公告,其實比較像是「抱怨」,因為常常不勝其擾,也曾一度想把 E-Mail 藏起來、把留言回應功能關閉。但網路本來就是公開自由的,如果是舉手之勞,說不定能幫到不少人(積極認真的人還是大多數啦),所以才一直沒這樣做。其實大部分的留言我都會回(除了那種單純「感謝」的留言,「害羞」的我愧不敢當、不一一回應),如果提問遲遲收不到回應(或回別人的獨漏你的),那可能是你的問題是屬於上面四大類,我不知道也無從回答起。所以請各位「親愛的讀者」在發問前,除了該有的禮貌尊重、該守的規則之外,也要注意自己的意見是否合理,不要一副理所當然,那樣的話人家不理你也會是理所當然的。

回應: 14