Hli Archives: Nqeg 2007

Bar nstuas tsim nyob rau hauv SharePoint

Txheej txheem cej luam:

(HLOOV TSHIAB 12/04/07: Ntxiv ib qho chaw nthuav linking rau lwm cov blog uas no ntawm cov qhov Web site nthuav heev kawg)

No nkag teb chaws blog piav li cas los ua tau ib lub teeb bar hauv SharePoint. No xwb nyob rau hauv WSS thiab NTXHUAB tej kev kawm thaum uas nws tsuas nyob li tej ntaub ntawv saib web ib sab.

Lub zuag qhia tag nrho mus kom ze yog raws li nram no:

  1. Tsim ib daim ntawv los yog qiv ntaub ntawv uas muaj cov ntaub ntawv koj xav teeb.
  2. Qhov chaw lub tsev qiv ntawv hauv kab ntawv / kev cai sau mus rau ib sab thiab hloov kom muaj tej ntaub ntawv saib Web site qhov (DVWP).
  3. Hloov cov DVWP XSL Meskas HTML uas pom tias yog raws li ib lub teeb.

Lag luam Scenario / Teeb:

Kuv tau tsim ib daim ntawv teev kev cai uas muaj qhov Title txheem kem thiab qhia kiag ib tug ntxiv, "Leej twg". Cov qauv no (simplistically heev) ib qho "tso rau nqi" scenario nruab nrab qhov twg lub npe yog peb tes num thiab cov txheej xwm muaj nqis los ntawm cov:

  • Npaj siab
  • Nyob rau hauv cov txheej txheem
  • Stalled

Lub hom phiaj yog tsim kom muaj kev sib tham sib kab rov tav bar teeb uas muaj cov lis dej num uas tsis yog leej twg.

Kuv muaj populated lub npe thiab nws zoo li no:

duab

Ua kom muaj tej ntaub ntawv saib Web site qhov:

Tsim tau lub DVWP los muab cov kev cai teev rau ib sab (qhov chaw nyob sab hauv kuv tsev neeg) thiab ua raws li cov lus qhia ntawm no (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!395.entry).

Ntxiv rau qhov tsuas tsim lub DVWP, Peb kuj yuav teev cov cuab yeej paging qhia tag nrho cov muaj natwm. Rau kuv, qhov no zoo li tej yam zoo li no:

duab

Thaum no tus taw tes, Kuv ib txwm nyob SPD thiab qhov browser. Kuv mam li rov qhib rau sab siv qhov browser. Qhov no txhob ntawd mucking txog cov Web site qhov layout nyob rau sab.

Hloov cov XSLT:

Tam sim no lub sij hawm los hloov tus XSLT.

Kuv siv siv qhov muag saib lub studio rau qhov no. (Saib ntawm no kev ceeb toom tseem ceeb txog tus intellisense uas yuav pab tau koj heev).

Kuv tsim ib qhov project khoob ntxiv plaub ntaub ntawv tshiab (hloov lo lus "tseem cia nrog" thiab "New" tsim nyog li):

  • Original.xslt
  • New.xslt
  • Yuavtsum Params.xml
  • Params.xml tshiab

Hauv kuv tsev neeg, nws zoo li no:

duab

Hloov hauv cov qhov web thiab luam cov params thiab cov XSL los tseem cia "nrog" Version hauv Studio nrig txog kev pom.

Lub hom phiaj ntawm no yog ua mob rau lub XSL txia qhov txheeb xyuas tau peb mus rov qab los rau cov lus nug DVWP HTML renders li ib lub teeb.

Rau qhov tus kawg, yuav xub xyuas seb cov HTML yuav zoo ua ntej peb ntxov siab insanity uas yog hu ua "XSL". (Yuav tsis ntshiab, cov nram no yog ib tsab ib qho piv txwv; tsis txhob ntaus los yog daim ntawv/muab tshuaj rau studio siv qhov muag saib. Kuv muab ib daim ntawv qhia txog tshuab pib taw tes rau qhov uas rau lub write-up). Cov qauv teeb nram qab no mas nws as per cov HTML tam sim no:

Sample Bar Graph

Coj HTML:

<html>
<lub cev>
<chaw>
<table dav = 80%>
<tr><Td><chaw>Horizontal Bar teeb</Td></tr>
<tr>
<Td dlhos = "center">
<rooj ciam teb = "1" dav = 80%>
<tr>
<Td dav = 10%>Qhib</Td>
<Td><rooj cellpadding ="0" cellspacing ="0" ciam teb = 0 dav = 50%><tr bgcolor = liab><Td>&nbsp;</Td></tr></cov lus></Td>
</tr>
<tr>
<Td dav = 10%>Kaw</Td>
<Td><rooj cellpadding ="0" cellspacing ="0" ciam teb = 0 dav = 25%><tr bgcolor = liab><Td>&nbsp;</Td></tr></cov lus></Td>
</tr>
<tr>
<Td dav = 10%>Stalled</Td>
<Td><rooj cellpadding ="0" cellspacing ="0" ciam teb = 0 dav = 25%><tr bgcolor = liab><Td>&nbsp;</Td></tr></cov lus></Td>
</tr>
</cov lus>
</Td>
</tr>
</cov lus>
</lub cev>
</html>

Kuv siv ib tug tuag yooj yim mus kom ze rau txoj kev Kuv tuav kom tau teem xim tom qab ntawm kom "liab".

Tus take-away no yog qhov no: Thaum kawg, txhua yam peb ua yog tsim HTML natwm thiab txhua.

XSLT Template:

Kuv twb tau theej rau XSLT generates tus kab rov tav bar teeb. Nws tseem zoo haum commented ces kuv yuav tsis ntxiv npaum li cas ntawm no tsuas yog cov sau ntawv:

  • Kuv pib nrog lub neej ntawd XSL SharePoint Designer muab kuv thaum uas kuv xub tsim cov DVWP.
  • Kuv twb tau txiav no los ntawm tus SPD 657 kab rau 166 kab.
  • Kuv ho tsis mess nrog rau cov ntaub ntawv tsis XML (Nws yog ib qho ntawm cov XSL thiab koj mam li paub tias kuv txhais li cas thaum koj mus hloov lub DVWP xwb; muaj cov ntaub ntawv ob tug uas koj yuav tau hloov). Txawm li cas los, yuav kom piv rau nws, Kuv puas tau tshem yuav luag tag nrho rau ntawm tus XSL. Qhov no txhais tau tias yog koj xav siv cov tsis, koj nyuam qhuav tau ntxiv rau lawv kuj tsis paub meej txhais cov ntsiab lus rov qab rau lub XSL. Uas yuav yooj yim vim tias koj yuav ua tau tus thawj XSL kuj tsis paub meej txhais cov ntsiab lus nyob hauv koj qhov project studio siv qhov muag saib.
  • Koj mam mus yuav tau luam thiab no paste rau hauv koj qhov project studio siv qhov muag saib. Ces, tshem kuv hu thiab ntxig rau koj tus kheej hu rau "ShowBar".
  • Laum rau nram tej hauj lwm tsim ib <ib tug href> li no: http://server/List?FilterField1=fieldname&FilterValue1=actualFilterValue. Txheej txheem no tej zaum yuav nqi rau lwm contexts. Thaum xub thawj, Kuv xav tias kuv yuav tau yoog mus rau ib hom ntawv ntau: http://server/List/AllItems.aspx?View={guid}&FilterField1=blah&FilterValue1=blah, tab sis, nyob hauv kuv ib puag ncig uas yog tsis tsim nyog. Daim ntawv sau URL kis rau peb ntawm SharePoint ces yog qhov no yooj yim heev rau generalize.

Nws tseem nyob ntawm no:

<xsl:stylesheet Version="1.0" exclude-no-ua kawg="Reye z o s ddwrt dt msxsl" 
xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:xsl="http://www.w3.org/ 1999/XSL/Transform"
xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer"
xmlns:asp="http://schemas.microsoft.com/ASPNET/20" xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"
xmlns:o="urn:schemas-microsoft-com:chaw" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882"
xmlns:DT="uuid:1-A29F C2F41010-65B3 - 11d-00AA00C14882" xmlns:Reye="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema"
xmlns:ddwrt2="urn:frontpage:sab hauv"
> <xsl:tso zis txujci="html" txav tom ntej="tsis muaj" /> <xsl:hom zauv NaN="" /> <xsl:param lub npe="ListUrlDir"></xsl:param> <!-- Kuv xav tau no kom txhawb tau laum-down. --> <xsl:Template phim="/" xmlns:SharePoint="Microsoft.SharePoint.WebControls"
xmlns:__designer=http://schemas.microsoft.com/WebParts/v2/DataView/designer xmlns:asp="http://schemas.microsoft.com/ASPNET/20"
> <xsl:kuj sib txawv thiab lub npe="dvt_StyleName">Lub rooj</xsl:kuj sib txawv thiab> <xsl:kuj sib txawv thiab lub npe="Natwm" xaiv="/dsQueryResponse/natwm/leej" /> <xsl:kuj sib txawv thiab lub npe="dvt_RowCount" xaiv="suav($Natwm)" /> <xsl:kuj sib txawv thiab lub npe="IsEmpty" xaiv="$dvt_RowCount = 0" /> <xsl:kuj sib txawv thiab lub npe="dvt_IsEmpty" xaiv="$dvt_RowCount = 0" /> <xsl:xaiv> <xsl:Thauj tw ntsuam xyuas="$dvt_IsEmpty"> Yog tsis muaj cov ntaub ntawv mus rau teeb!<br/> </xsl:Thauj tw> <xsl:txwv tsis pub> <!-- Cov khoom nthuav pib ntawm no. Peb yuav tau txhais ib khub ntawm tus tsiaj ntawv rau txhua leej hauv lub teeb: pes tsawg feem pua ntawm tag nrho cov khoom thiab cov. --> <xsl:kuj sib txawv thiab lub npe="totalProposed" xaiv="suav(/dsQueryResponse/natwm/leej[normalize-chaw(@Status) = 'Qhov'])" /> <xsl:kuj sib txawv thiab lub npe="percentProposed" xaiv="$totalProposed div $dvt_RowCount" /> <xsl:kuj sib txawv thiab lub npe="totalInProcess" xaiv="suav(/dsQueryResponse/natwm/leej[normalize-chaw(@Status) = 'Hauv txoj kev'])" /> <xsl:kuj sib txawv thiab lub npe="percentInProcess" xaiv="$totalInProcess div $dvt_RowCount" /> <xsl:kuj sib txawv thiab lub npe="totalStalled" xaiv="suav(/dsQueryResponse/natwm/leej[normalize-chaw(@Status) = 'Stalled'])" /> <xsl:kuj sib txawv thiab lub npe="percentStalled" xaiv="$totalStalled div $dvt_RowCount" /> <!-- Peb txhais kom meej peb HTML kem ntawm no. Kuv qiv los ntawm ib co txheem SharePoint yeej no yuav ua rau nws zoo ib yam. Kuv xav tias nws yuav tsim kev hloov ntawm lub ntiaj teb no css cov ntaub ntawv kom zoo tseem ntsiab overrides. --> <cov lus dav="100%" cellspacing="0" cellpadding="2" style="ciam teb-txoj cai: 1 #C0C0C0 khoom; ciam teb hauv qab: 1 #C0C0C0 khoom; ciam teb-laug-style: khoom; ciam teb-laug-dav: 1; ciam teb-saum-style: khoom; ciam teb-saum-dav: 1;"> <tr> <Td dlhos="chaw"> <cov lus ciam teb="1" dav="100%"> <!-- Rau txhua leej twg uas peb xav kom cov teeb, peb hu rau "ShowBar cov" Template. Peb yuav kis tau: 1. Ib daim ntawv lo rau ntawm kab ntawd nws twb. Qhov no yog transformed rau hauv ib hyperlink. 2. Tus feem pua (kuj sib txawv thiab los saum toj no). 3. Lub teb cov npe cov chaws ntawm lwm daim ntawv. Qhov no yuav tsis tau phim daim ntawv lo nrog zaub. 4. Teb nqi matched rau #3. 5. Tag nrho cov khoom ntawm txoj txoj cai (tsis grand tag nrho ntawm txhua yam raws li txoj cai lis dej num). Nws emits ib <tr></tr> thiab cov kab rov tav bar teeb kab. Peb hu no template rau txhua txoj peb xav mus saib raws li txoj cai. --> <xsl:hu-template lub npe="ShowBar"> <xsl:nrog param lub npe="BarDisplayLabel" xaiv="'Qhov'"/> <xsl:nrog param lub npe="BarPercent" xaiv="$percentProposed"/> <xsl:nrog param lub npe="QueryFilterFieldName" xaiv="'Leej twg'"/> <xsl:nrog param lub npe="QueryFilterFieldValue" xaiv="'Qhov'"/> <xsl:nrog param lub npe="TotalItems" xaiv="$totalProposed"></xsl:nrog param> </xsl:hu-template> <xsl:hu-template lub npe="ShowBar"> <xsl:nrog param lub npe="BarDisplayLabel" xaiv="'Stalled'"/> <xsl:nrog param lub npe="BarPercent" xaiv="$percentStalled"/> <xsl:nrog param lub npe="QueryFilterFieldName" xaiv="'Leej twg'"/> <xsl:nrog param lub npe="QueryFilterFieldValue" xaiv="'Stalled'"/> <xsl:nrog param lub npe="TotalItems" xaiv="$totalStalled"></xsl:nrog param> </xsl:hu-template> <xsl:hu-template lub npe="ShowBar"> <xsl:nrog param lub npe="BarDisplayLabel" xaiv="'Hauv txoj kev'"/> <xsl:nrog param lub npe="BarPercent" xaiv="$percentInProcess"/> <xsl:nrog param lub npe="QueryFilterFieldName" xaiv="'Leej twg'"/> <xsl:nrog param lub npe="QueryFilterFieldValue" xaiv="'Hauv txoj kev'"/> <xsl:nrog param lub npe="TotalItems" xaiv="$totalInProcess"></xsl:nrog param> </xsl:hu-template> </cov lus> </Td> </tr> </cov lus> </xsl:txwv tsis pub> </xsl:xaiv> </xsl:Template> <!-- No template yog lub chaw ua hauj lwm ntawm displaying kav neeg nyob hauv qhov bar teeb. Koj ntshe yuav ua koj tweaking no feem ntau. --> <xsl:Template lub npe="ShowBar"> <xsl:param lub npe="BarDisplayLabel" /> <!-- daim ntawv lo qhia --> <xsl:param lub npe="BarPercent"/> <!-- Feem pua ntawm tag nrho. --> <xsl:param lub npe="QueryFilterFieldName"/> <!-- Siv dhia rau cov lus nug & lim --> <xsl:param lub npe="QueryFilterFieldValue"/> <!-- Siv dhia rau cov lus nug & lim --> <xsl:param lub npe="TotalItems" /> <!-- suav tag nrho ntawm no barlabel --> <tr> <!-- Qhov bar sau npe rau nws tus kheej. --> <Td hoob="MS-formbody" dav="30%"> <!-- No tom ntej txheej ntawm cov nqe lus thaum txoj saw lus nug uas pub peb tuaj khawb mus ua ib tug uas pom ntawm cov ntaub ntawv uas lwm. Peb yuav siv ob peb yam ntawm no: 1. Peb kuj kis tau FilterField1 thiab FilterValue1 rau ib daim ntawv teev yuav lim tau rau ntawm ib sab. 2. SharePoint muaj dua ib tug tseem ceeb parameter kom peb, ListUrlDir uas ntxiv rau lwm daim ntawv cov tiv thaiv uas no DVWP "khiav khiav". Tsis lom zem XSL? --> <xsl:ntawv nyeem lov tes taw-zis-escaping="yog"> <![CDATA[<ib tug href ="]]></xsl:ntawv nyeem> <xsl:tus nqi-ntawm xaiv="$ListUrlDir"/> <xsl:ntawv nyeem lov tes taw-zis-escaping="yog"><![CDATA[?FilterField1 =]]></xsl:ntawv nyeem> <xsl:tus nqi-ntawm xaiv="$QueryFilterFieldName"/> <xsl:ntawv nyeem lov tes taw-zis-escaping="yog"><![CDATA[&FilterValue1 =]]></xsl:ntawv nyeem> <xsl:tus nqi-ntawm xaiv="$QueryFilterFieldValue"/> <xsl:ntawv nyeem lov tes taw-zis-escaping="yog"><![CDATA[">]]></xsl:ntawv nyeem> <xsl:tus nqi-ntawm xaiv="$BarDisplayLabel"/> <xsl:ntawv nyeem lov tes taw-zis-escaping="yog"><![CDATA[</ib tug>]]></xsl:ntawv nyeem> <!-- Lub ntsis tom ntej no qhia ib co zauv lub hom: "(tag nrho / % ntawm tag nrho)" --> (<xsl:tus nqi-ntawm xaiv="$TotalItems"/> / <!-- Qhov no tsim ib tug ntawv sau raws feem pua zoo rau peb. Tsaug, Microsoft! --> <xsl:hu-template lub npe="percentformat"> <xsl:nrog param lub npe="feem pua" xaiv="$BarPercent"/> </xsl:hu-template>) </Td> <!-- Thaum kawg, emit ib <Td> lossis rau qhov bar xwb.--> <Td> <cov lus cellpadding="0" cellspacing="0" ciam teb="0" dav="{kab($BarPercent * 100)+1}%"> <tr bgcolor="liab"> <xsl:ntawv nyeem lov tes taw-zis-escaping="yog"><![CDATA[&nbsp;]]></xsl:ntawv nyeem> </tr> </cov lus> </Td> </tr> </xsl:Template> <!-- Qhov no tawm ntawm tej XSL kuv nyob hauv ib qho kev MS template. --> <xsl:Template lub npe="percentformat"> <xsl:param lub npe="feem pua"/> <xsl:xaiv> <xsl:Thauj tw ntsuam xyuas="hom ntawv xov tooj($feem pua, '#,##0%;-#,##0%')= 'NaN'">0%</xsl:Thauj tw> <xsl:txwv tsis pub> <xsl:tus nqi-ntawm xaiv="hom ntawv xov tooj($feem pua, '#,##0%;-#,##0%')" /> </xsl:txwv tsis pub> </xsl:xaiv> </xsl:Template> </xsl:stylesheet>

Soj ntsuam:

XSL cov saum toj ntawm no generates no cov teeb:

duab

Tho tau mus ua cov ntaub ntawv uas lwm los txhaj rau cov kev cai raws li txoj cai:

duab

Concluding xav:

Ua qhov no ua Generalized?

Kuv nyiam no cov tswvyim graphing, tab sis, kuv ntxub cov Disease fact uas kuv yuav tsum mus ua heev tes-coding. Thiab kuv twb tau qhia me ntsis xav mus seb nws yuav tsum generalized kuv optimistic, tab sis kuv kuj hais tias yuav muaj cib ntsa qhov chaw raws li txoj kev uas yuav tsis muaj ib yam hauj lwm-nyob ib ncig ntawm fearful me ntsis. Yog leej twg muaj ib co tswv yim zoo rau hauv no, thov koj ua ib cov lus los yog email rau kuv.

Nstuas ntsug:

Qhov no nws yog ib tug kab rov tav bar teeb. Yeej tau los ua ib ntsug teeb. Yog peb yuav hloov cov HTML. Kuv yuav pib tau ib yam nkaus: Ua kom muaj ib tug sawv cev HTML rau ib ntsug bar teeb thiab mam li xyuas seb tau li cas tias ntawm XSL. Yog leej twg xav tias, Kuv yuav tsum tau persuaded sim kom paub thiab ua tau hauj lwm ua tus kinks. Yog hais tias ib tug neeg muaj twb ua tas lawm, please let me know and I’ll gladly link to your blog 🙂

Kuv xav tias kev sib tw nrog ib ntsug kev teeb yog tias tus ntawv rau lub teeb yuav tsis yooj yim uas tswj tus, tiam sis yeej ua tsis yeej.

Teb lub npe Gotcha tus:

Muaj ntau yam uas tsawg kawg yog ob tug mus nrhiav kom paub cov npe teb.

Ua ntej, Vaj teb nrog rau ib qhov chaw muaj los yuav dim hauv hauv lub XSL. Qhov no tej zaum yuav yog ib qhov teeb meem no:

        <xsl:kuj sib txawv thiab lub npe="totalProposed" 
xaiv="suav(/dsQueryResponse/natwm/leej[normalize-chaw(@Status) = 'Qhov'])" />

Yog rau koj "lawv" Kem no yeej hu ua "raws li txoj cai Code" ces koj yuav tau reference li "Status_x0020_Code":

   <xsl:kuj sib txawv thiab lub npe="totalProposed" 
xaiv="suav(/dsQueryResponse/natwm/leej[normalize-chaw(@Status_x0020_Code) = 'Qhov'])" />

Thib ob, thiab kuv fuzzy me ntsis ntawm no, koj kuj yuav tsum muab khaws cia rau hauv alert rau teb lub npe hloov. Yog koj teb "raws li txoj cai Code npe koj" thiab tom qab ces nyob, rename los "Leej twg AFE", cov "lub npe" tsis hloov. Lub npe nrog nws tseem yuav "raws li txoj cai Code" thiab yuav tsum tau hais los ua "Status_x0020_Code". Qhov "lwm yam kev pab" kev mus yuav pab tshawb nrhiav thiab kho qhov teeb meem no seb.

Hais txog ntawd xim:

Kuv khaws cov "liab" vim nws yog pleasing rau kuv rau lub caij. Nws yuav tsis tau ib big deal qhia txawv xim sij muab ntau tshaj yog kev piav qhia txog ib tug xov tooj, tab sis, kuj muaj ib pab KPI. Piv txwv, Yog hais tias qhov feem pua ntawm cov "stalled" Yog tus AFE > 10% mam li pom nws liab liab, txwv tsis pub ua hauv dub. Siv <xsl:xaiv> yuav ua kom tiav no.

Lwm yam kev pab:

Zoo siab transforming!

<kawg />

Subscribe rau kuv blog!

SharePoint tsis muaj “Leej twg tug” Fawb

HLOOV TSHIAB 01/28/08: Project no codeplex addresses no qhov teeb meem: http://www.codeplex.com/AccessChecker. Kuv tau tsis siv, tab sis nws tig pheej yog hais tias qhov no yog ib qhov teeb meem uas koj xav mus rau qhov chaw nyob hauv koj cheeb tsam.

HLOOV TSHIAB 11/13/08: Sau Joel Oleson tau saum ib tug ncej uas koj zoo heev rau cov loj ruaj ntseg tswj teebmeem ntawm no: http://www.sharepointjoel.com/ Lists/Posts/Post.aspx?Daim ntawv teev = 0cd1a63d % 2D183c % 2D4fc2 %2 D 8320% 2Dba5369008acb&ID = 113. Nws mus rau lwm yam kev pab uas pab tau ntau.

Rooj sab laj cov neeg thiab cov neeg feem ntau hais ib lo lus nug txog cov kab: "Cas ua kuv tsim ib daim ntawv teev tag nrho cov neeg uas muaj ib qhov chaw" los yog "li cas tau kuv tau qhia tag nrho cov neeg uas muaj daim ntawv teev txog cov kev hloov rau daim ntawv?"

Muaj tsis muaj tawm ntawm lub thawv rau qhov no. Yog hais tias koj xav txog nws ib pliag, nws tsi nyuab rau koj to taub txog vim li cas.

Saj zawg zog heev SharePoint ruaj ntseg yog. Muaj txog li plaub loj pawg ntawm cov neeg muaj:

  • Cov neeg siv cov anonymous.
  • SharePoint cov neeg thiab ib pawg.
  • Cov neeg Directory.
  • Cov ntaub ntawv raws li Authentication (FBA) cov neeg siv.

Qhov yooj nqe hais los ntawm ib cov foundations ruaj ntseg, yuav muaj SharePoint kawm zauv dramatically sib txawv ntawm lwm. Thiaj li yuav ua tau kom muaj ib daim ntawv qhia txog kev sau ntawv, ib pab ascertain li cas lub site no ruaj, query ntau hom neeg profile repositories thiab mam li muab rau ib pab zam. Tus ntawd yog ib qho teeb meem nyuaj los daws kom tau generically.

Soj seb cov koom haum ntsuam nrog no? Kuv yuav hlub mus hnov los ntawm koj hauv cov lus los yog email.

</kawg>

Ntawv cim npe Technorati: ,