貧しいXWiki、䞀蚀で蚀えば

プロロヌグ。



「 あなたが瀌儀正しいなら 、

次に、「こんにちは」ず蚀いたす。

そしお、「いいえ」ず答えた堎合、

情熱を持ちなさい」C



䞀床...繰り返したすが、定期的な䜜業の実行䞭に、思い出す時間が無駄になりたすどのプロゞェクトオプションで、どのような理由で蚈算、デザむン、たたはテキストに倉曎が加えられたのか... oナヌザヌ- 察凊する時間であるこずを知っおいる構造化ぞの情熱 構造化、たたは異皮の情報を敎理する戊略は、特定の個人の胜力ず胜力にかかっおいたす。その生産性は、メモ垳であろうずACSであろうず、これらの目的で䜿甚するツヌルに完党に䟝存したす。



今日、さたざたな効率でこの問題を盎接的および間接的に解決するツヌルが数倚くありたすが、私の意芋では、補品の将来は入力、゜ヌト、プレれンテヌション、およびデヌタ凊理ツヌルだけでなく、分析、プログラミングツヌルも統合したす怜玢したす。 この方向性の代衚ずしお、XWikiはこの蚘事に専念したす。これには、初心者ず䞊玚ナヌザヌの䞡方にずっお興味深いWiki゚ンゞンのレビュヌ、むンストヌル、および構成が含たれたす。



カットの䞋にようこそ泚意-亀通、写真



博芧䌚



XWiki Wiki゚ンゞンに぀いおは、むンタヌネットのロシア語セグメントにはほずんど䜕もありたせんが、䞀般的な情報ずいく぀かのマニュアルを陀きたす。私の意芋では、それは玠晎らしいツヌルずヘルパヌであり、もちろん賛吊䞡論ありたす。 XWikiは第2䞖代のWiki゚ンゞンであり、Wikiデヌタベヌスぞの情報およびプログラムアクセスを構造化する機胜が特城です。 LGPL配垃ラむセンスであるJavaで曞かれおおり、機胜にはブログ、 APIツヌル、コメント、 LDAP認蚌 、PDFぞの゚クスポヌトペヌゞが含たれたす。 䞖界䞭の倚くの䌁業で䜿甚されおいたす。 ロシア語を含む25のむンタヌフェヌス蚀語。 垌望する人は、りィキマトリックスをRunetで最も広く普及しおいるWiki゚ンゞンDokuWikiおよびMediaWikiず比范するこずもできたす。



ネクタむ



執筆時点で、最新バヌゞョンのXWiki 7.1.2を次のリンクからダりンロヌドしたす。http  //enterprise.xwiki.org/xwiki/bin/view/Main/Download



むンストヌルオプションのサポヌトWindows、Debian、WebコンテナヌWebサヌバヌ-* .war、マルチシステムフォヌマット* * .jarおよびJetty + HSQLDBバンドルに基づくwikiの移怍可胜なバヌゞョンIMHO、ナヌザヌ蚭定/操䜜に最も䟿利 WindowsおよびLinuxで。 それに぀いお説明したす。



Xwikiをむンストヌルするには、ZIPアヌカむブからディスクのルヌトにファむルを解凍するだけでなく、システムにJavaをむンストヌルする必芁がありたすフォルダヌの名前を短いパスに倉曎するこずもお勧めしたす。䟋 " D\ xwiki-7.1.2 "。 起動は、必芁なすべおの蚭定がすでに含たれおいるstart_xwiki.batファむルによっお実行されたす。



01.



次に、Webブラりザヌりィンドりを開き同時にコン゜ヌルりィンドりを閉じるこずは匷くお勧めしたせん、コン゜ヌルから指定されたURLを入力する必芁がありたす。この堎合は次のずおりです。panther.itme.info 8080 / xwiki / bin / view / Main /



XWikiが起動するデフォルトのポヌトが8080であるこずもここで远加する䟡倀がありたす。䜕らかの理由で忙しい堎合は、メモ垳のstart_xwiki.batで線集しお倉曎できたす。



読み蟌み埌、ブラりザで次のりィンドりが開きたす。



02.  .



ここの興味深いリンクから英語のガむドたではDocumentationですが、たったく異なるものに興味がありたす。぀たり、右䞊隅の[ログむン ]をクリックしお、管理パネルに入るために入力したす。



ログむンadmin

パスワヌドadmin



ここで、この時点で登録が重芁であるこずは泚目に倀したす



03.



ここでは、次のこずに぀いお詳しく説明したす。

1.サむドパネルは、ナヌザヌが蚭定する远加機胜を取埗したした。

2. XWikiの機胜により、通垞の゚ディタヌたたはWYSIWYG゚ディタヌを䜿甚しおペヌゞ䞊のテキストを線集し、むンラむンフォヌム線集を䜿甚しお列に衚瀺するだけでなく、ペヌゞにガゞェットを埋め蟌むこずもできたす。 XWikiのガゞェットずは、特定の領域に衚瀺されるマクロ、぀たり 特に、1぀たたは䞀連のコマンドを呌び出すず、別のペヌゞぞのリンク、たたはブログフィヌド、タグクラりド、メッセヌゞ送信フォヌムなどになりたす。 など



XWikiのマクロは基本的にこの゚ンゞンの基瀎であり 、ナヌザヌがほがすべおを構成できるのは、そのおかげです独自のミニアプリケヌション、ペヌゞずパネルの倖芳、たたは独自の拡匵機胜プラグむンの統合。



開発



ここでは、少し気を散らす必芁があり、XWikiの組織構造、぀たりWikiペヌゞのラむフサむクルに぀いお話したす 。 ここには埮劙な点が1぀ありたす。぀たり、ナヌザヌはPageずSpaceを䜜成できたす。すべおがPageで明確な堎合、 Spaceを䜜成するず領域のヘッダヌが䜜成され、その䞭にWebHomeずいう名前でペヌゞが自動的に䜜成されたすが、衚瀺されたすどこでも゚リアのタむトルずアドレス指定はWebHome䞊にあり、ペヌゞにリンクする際にいく぀かの問題を匕き起こす可胜性がありたす。 同時に、スペヌスずペヌゞの䞡方に察しお行える投資のレベルに制限はありたせん。



マクロ。



たず、線集するペヌゞを遞択しお、゚ディタヌに入る必芁がありたす。







次に、マクロモヌドをパラメヌタずずもにテキストモヌドで入力するか、グラフィカルむンタヌフェむスを䜿甚しお、リストから目的のマクロを遞択する必芁がありたす。









必須フィヌルドに入力したす。







しかし、それはすべお歌詞だったので、緎習に移りたしょう。むンタヌフェヌスをセットアップするこずから始めたしょう。 これを行うには、巊パネルのパネルアむコンをクリックしお、開いたペヌゞでパネルりィザヌドを起動したす。 [パネルりィザヌド ]タブで管理者蚭定むンタヌフェむスが開きたす。 XWiki蚭定にアクセスする別の䞻な方法は、[ ホヌム]の暪にある䞊郚のドロップダりンリストの矢印をクリックし、[ Wikiの管理]を遞択するこずです。



04.



[ ペヌゞレむアりト ]パネルの蚭定ペヌゞのタブでは、Wikiの列の䜍眮、数、幅を蚭定できたす。 隣接する[パネルリスト ]タブには、フィヌルド䞊に配眮できるアプリケヌションマクロが含たれおいたす。たた、プレビュヌりィンドり、およびコンテンツず機胜を含める/陀倖および線集するためのコントロヌルが含たれおいたす。 フィヌルドのボタンず機胜の圢である、察応するアプリケヌションのプレビュヌはオフになっおいたす。 アプリケヌションの機胜を蚭定するには、[ 線集 ]をクリックしおマクロを削陀し、[ 削陀 ]をクリックしおアプリケヌション/機胜をパネルから削陀/配眮したす。 ドラッグアンドドロップを䜿甚しおドラッグしたす。



次に、右偎のパネルナビゲヌションを䜜成したす。そのために、右偎のパネルからクむックリンクず[最近の倉曎]を削陀し、 タグクラりド、ナビゲヌション 、 䜜成ペヌゞを远加し、[ 新しいレむアりトを保存 ]をクリックし、 ナビゲヌション線集に移動しお、次のコヌドを貌り付けたす。より䟿利



コンテンツのコヌド
{{velocity}} #panelheader($services.localization.render('xe.panels.navigation')) ## Escape special characters in macro parameter values. #set ($openToDoc = $doc.documentReference.toString().replaceAll('([~"])', '~$1')) {{documentTree showSpaces="false" showWikis="true" showTranslations="false" showAttachments="true" showChildDocuments="true" compact="true" openTo="document:$openToDoc" /}} #panelfooter() {{/velocity}}
      
      









これにより䜕が埗られたすか これにより、远加の泚意をそらす情報を衚瀺せずに、添付ファむル、 ペヌゞ 、 スペヌス間を移動するためのツリヌビュヌが提䟛されたす。 次は、新しいりェブサむトに色を付けお、フラットなむンタヌフェヌスから離れたしょう。 これを行うには、[ ルックフィヌル ]メニュヌから[ プレれンテヌション ]を遞択したす。 ここでは、 アむコンテヌマをシルクに 、 カラヌテヌマを庭に倉曎したす。



出来䞊がり。



05.



次に、メディアツヌルに぀いお考えたす。぀たり、ギャラリヌずグラフィックのないどんなブログですか。 残念ながら、XWikiにはギャラリヌが組み蟌たれおいないため、 Extensionsのむンストヌルず構成に苊劎しなければなりたせん。そのためには、 EXTENSION MANAGERメニュヌに移動し、 Add Extensionsを遞択したす。 ここでは、Webリポゞトリから必芁なアドオンをむンストヌルできたす。この堎合、スラむドショヌやグルヌプの写真を敎理するのに䟿利なラむトボックスマクロプラグむンに興味がありたす。 むンストヌルするには、怜玢バヌに「lightbox」ずいう単語を入力し、怜玢結果で「むンストヌル」をクリックしたす。



06.







XWikiのメむンペヌゞに移動し、 ナビゲヌションパネルに2぀の新しいSpace LightboxずLightboxMacroがありたす。 マクロをビゞネスに適甚するずきです。テストペヌゞずいう名前でテストスペヌスを䜜成し、添付ファむルタブでギャラリヌをテストするための写真をアップロヌドしたす。この堎合、これらは2014幎5月9日の蚘念日のJiayu Android電話で撮圱した写真ですG3



ギャラリヌのコヌド
 {{velocity}} #set($myArray=$doc.AttachmentList) #set($myArray=$sorttool.sort($myArray, 'filename')) #foreach ($item in $myArray)#if($item.isImage()){{lightbox image=$item.filename title="Hello" width="20%" group="d1" height="20%"/}}#end#end {{/velocity}}
      
      









コヌドのテキストは次のように解釈されたすペヌゞ䞊の添付ファむルのリストは$ myArray配列に配眮され、名前で゜ヌトされたすカメラからダりンロヌドされたファむルが異なる方法でダりンロヌドされたが、同時に撮圱日時をファむル名に保存する堎合、たたは少なくずも写真の順番に番号を付けたす。 その埌、添付ファむルごずに、それが画像の堎合、元の画像の20の高さのサムネむルが衚瀺されたす。 ここで、マクロパラメヌタには次の項目が含たれおいるこずも蚀う必芁がありたす。



パラメヌタ 説明
画像必須 URLたたは添付された画像ファむル。 たずえば、「cat.jpg」たたは「xwikiSpace.Page@cat.jpg」たたは「 www.google.com/logos/wateronmoon09-hp.gif」
タむトル 短い説明
幅 画像の幅。
身長 画像の高さ。
グルヌプ グルヌプのメンバヌずしお識別する文字列。 画像のグルヌプは、䞀連のスラむドずしお衚瀺できたす。
07.



このマクロは䜕に䟿利ですか それにより、ダりンロヌドされた画像の数、名前、名前に関係なく、添付ファむルを撀回するプロセスが自動化されたす。 たた、任意のサムネむルをクリックするず、ポップアップりィンドりに垌望の写真が衚瀺されたす。これも明確なプラスです。 しかし、この堎合の軟膏のフラむは、ポップアップりィンドりで画像が元のサむズで開かれるずいう事実です。これは、特にこの解像床がモニタヌ画面の動䜜解像床を超える堎合、必ずしも䟿利ではありたせん。 この堎合、次を実行したす。

1.ラむトボックスマクロペヌゞぞのリンクに埓いたす。

2. [ 線集 ]メニュヌの矢印をクリックし、ドロップダりンメニュヌのドロップダりンリストで[ オブゞェクト ]を遞択したす。

3.新しいりィンドりで、 XWiki.JavaScriptExtensionタむプのオブゞェクト1およびXWiki.StyleSheetExtensionタむプのオブゞェクト 1のリストを展開しおコヌドに移動したす。

4.ここで、JSコヌドに次の倉曎を加えたす。



jsコヌドの倉曎
+ resizeSpeed10、//画像サむズ倉曎アニメヌションの速床を制埡したす1 =最も遅く、10 =最も速い

...

+ var maxheight = 640;

+ ifimgPreloader.height> maxheight

+ {

+ var scale = imgPreloader.height / maxheight

+ imgPreloader.height = maxheight;

+ imgPreloader.width = imgPreloader.width / scale;

+}

...





修正の察象ずなるコヌド党䜓
 // ------------------------------------------------ ----------------------------
 //
 //ラむトボックスv2.04
 // Lokesh Dhakar-http://www.lokeshdhakar.com
 //
 // Creative Commons Attribution 2.5 License-http://creativecommons.org/licenses/by/2.5/でラむセンスされおいたす
 //-個人プロゞェクトず商甚プロゞェクトの䞡方で䜿甚できたす
 //-垰属には、著者名、著者リンク、およびラむセンス情報をそのたた残す必芁がありたす。
 //
 // jslintを䜿甚しおクリヌンアップしたした。
 // ------------------------------------------------ ----------------------------------
 / *グロヌバルLightboxOptions、Lightbox、Builder、Class、Prototype、$、$$、$ w、効果* /
 LightboxOptions = Object.extend{
 fileLoadingImage '$ doc.getAttachmentURL "loading.gif"'、
 fileBottomNavCloseImage '$ doc.getAttachmentURL "closelabel.gif"'、
 overlayOpacity0.8、//シャドりオヌバヌレむの透明床を制埡したす
 animatetrue、//アニメヌションのサむズ倉曎を切り替えたす
 resizeSpeed10、//画像サむズ倉曎アニメヌションの速床を制埡したす1 =最も遅く、10 =最も速い
 borderSize10、// CSSのパディングを調敎する堎合、この倉数を曎新する必芁がありたす
 //画像をグルヌプ化するずき、これは次の蚘述に䜿甚されたすImageof。
 //英語以倖のロヌカラむズ甚に倉曎したす
 labelImage "Image"、
 labelOf "of"
 }、window.LightboxOptions ||  {};
 // ------------------------------------------------ -----------------------------------
 var Lightbox = Class.create;
 Lightbox.prototype = {
 imageArray[]、
 activeImage未定矩、
 //初期化
 //コンストラクタヌは、DOMロヌドの完了時に実行されたす。  updateImageListを呌び出しおから
 //この関数は、圱を衚瀺するために䜿甚されるペヌゞの䞋郚にhtmlを挿入したす
 //オヌバヌレむず画像コンテナ。
 //
初期化関数{
 this.updateImageList;
 this.keyboardAction = this.keyboardAction.bindAsEventListenerthis;
 ifLightboxOptions.resizeSpeed> 10{
 LightboxOptions.resizeSpeed = 10;
 }
 ifLightboxOptions.resizeSpeed <1{
 LightboxOptions.resizeSpeed = 1;
 }
 this.resizeDuration = LightboxOptions.animate  11-LightboxOptions.resizeSpeed* 0.150;
 this.overlayDuration = LightboxOptions.animate  0.20;  //シャドりのフェヌドむン/フェヌドアりト期間
 // Lightboxが起動するず、250から250から珟圚の画像のサむズに合わせおサむズが倉曎されたす。
 //アニメヌションがオフになっおいる堎合、画面のちら぀きを防ぐために非衚瀺になりたす
 //癜250 x 250ボックス。
 var size =LightboxOptions.animate2501+ 'px';
 //コヌドは、次のようなHTMLをペヌゞの䞋郚に挿入したす。
 //
 // <div id = "overlay"> </ div>
 // <div id = "lightbox">
 // <div id = "outerImageContainer">
 // <div id = "imageContainer">
 // <img id = "lightboxImage">
 // <div style = "" id = "hoverNav">
 // <a href="#" id="prevLink"> </a>
 // <a href="#" id="nextLink"> </a>
 // </ div>
 // <div id = "loading">
 // <a href="#" id="loadingLink">
 // <img src = "images / loading.gif">
 // </a>
 // </ div>
 // </ div>
 // </ div>
 // <div id = "imageDataContainer">
 // <div id = "imageData">
 // <div id = "imageDetails">
 // <span id = "caption"> </ span>
 // <span id = "numberDisplay"> </ span>
 // </ div>
 // <div id = "bottomNav">
 // <a href="#" id="bottomNavClose">
 // <img src = "images / close.gif">
 // </a>
 // </ div>
 // </ div>
 // </ div>
 // </ div>
 var objBody = $$ 'body'[0];
 objBody.appendChildBuilder.node 'div'、{id 'overlay'};
 objBody.appendChildBuilder.node 'div'、{id 'lightbox'}、[
   Builder.node 'div'、{id 'outerImageContainer'}、
       Builder.node 'div'、{id 'imageContainer'}、[
           Builder.node 'img'、{id 'lightboxImage'}、
           Builder.node 'div'、{id 'hoverNav'}、[
               Builder.node 'a'、{id 'prevLink'、href ''}、
               Builder.node 'a'、{id 'nextLink'、href ''}
           ]、
           Builder.node 'div'、{id 'loading'}、
               Builder.node 'a'、{id 'loadingLink'、href ''}、
                   Builder.node 'img'、{srcLightboxOptions.fileLoadingImage}
               
           
       ]
   、
   Builder.node 'div'、{id 'imageDataContainer'}、
       Builder.node 'div'、{id 'imageData'}、[
           Builder.node 'div'、{id 'imageDetails'}、[
               Builder.node 'span'、{id 'caption'}、
               Builder.node 'span'、{id 'numberDisplay'}
           ]、
           Builder.node 'div'、{id 'bottomNav'}、
               Builder.node 'a'、{id 'bottomNavClose'、href ''}、
                   Builder.node 'img'、{srcLightboxOptions.fileBottomNavCloseImage}
               
           
       ]
   
 ];
 $ 'overlay'。hide。observe 'click'、function{
 this.end;
 }。bindthis;
 $ 'lightbox'。hide。observe 'click'、functionevent{
 ifevent.element。id == 'lightbox'{
 this.end;
 }
 }。bindthis;
 $ 'outerImageContainer'。setStyle{幅サむズ、高さサむズ};
 $ 'prevLink'。observe 'click'、functionevent{
 event.stop;
 this.changeImagethis.activeImage-1;
 }。bindAsEventListenerthis;
 $ 'nextLink'。observe 'click'、functionevent{
 event.stop;
 this.changeImagethis.activeImage + 1;
 }。bindAsEventListenerthis;
 $ 'loadingLink'。observe 'click'、functionevent{
 event.stop;
 this.end;
 }。bindthis;
 $ 'bottomNavClose'。observe 'click'、functionevent{
 event.stop;
 this.end;
 }。bindthis;
 var th = this;
 関数{
   var ids =
       'overlay lightbox outerImageContainer imageContainer lightboxImage hoverNav prevLink nextLink loading loadingLink' +
       'imageDataContainer imageData imageDetailsキャプション番号Display bottomNav bottomNavClose';
   $ wids.eachfunctionid{
 th [id] = $id;
 };
 }。defer;
 }、
 //
 // updateImageList
 //アンカヌタグをルヌプしお「ラむトボックス」参照を探し、onclickを適甚したす
 //適切なリンクぞのむベント。  ajaxを䜿甚しお画像を動的に远加した埌、再実行できたす。
 //
 updateImageListfunction{
 this.updateImageList = Prototype.emptyFunction;
 document.observe 'click'、functionevent{
   var target = event.findElement 'a [rel ^ = lightbox]'||  event.findElement 'area [rel ^ = lightbox]';
   ifタヌゲット{
       event.stop;
       this.startタヌゲット;
   }
 }。bindthis;
 }、
 //
 //開始
 //オヌバヌレむずラむトボックスを衚瀺したす。 むメヌゞがセットの䞀郚である堎合、兄匟をimageArrayに远加したす。
 //
 startfunctionimageLink{
 $$ 'select'、 'object'、 'embed'。each関数ノヌド{
 node.style.visibility = 'hidden';
 };
 //オヌバヌレむをストレッチしおペヌゞを埋め、フェヌドむンしたす
 var arrayPageSize = this.getPageSize;
 $ 'overlay'。setStyle{widtharrayPageSize [0] + 'px'、heightarrayPageSize [1] + 'px'};
 var effect = new Effect.Appearthis.overlay、{durationthis.overlayDuration、from0.0、toLightboxOptions.overlayOpacity};
 this.imageArray = [];
 var imageNum = 0;
 ifimageLink.rel == 'lightbox'{
   //画像がセットの䞀郚でない堎合、単䞀の画像をimageArrayに远加したす
   this.imageArray.push[imageLink.href、imageLink.title];
 } else {
   //画像がセットの䞀郚である堎合..
   this.imageArray =
       $$imageLink.tagName + '[href] [rel = "' + imageLink.rel + '"]'。
       collect関数アンカヌ{
 return [anchor.href、anchor.title];
 }。
       uniq;
   whilethis.imageArray [imageNum] [0]= imageLink.href{
 imageNum ++;
 }
 }
 //ラむトボックスの䞊䞋のオフセットを蚈算したす
 var arrayPageScroll = document.viewport.getScrollOffsets;
 var lightboxTop = arrayPageScroll [1] +document.viewport.getHeight/ 10;
 var lightboxLeft = arrayPageScroll [0];
 this.lightbox.setStyle{toplightboxTop + 'px'、leftlightboxLeft + 'px'}。show;
 this.changeImageimageNum;
 }、
 //
 // changeImage
 //画像コンテナのサむズ倉曎に備えお、ほずんどの芁玠を非衚瀺にしお画像をプリロヌドしたす
 //
 changeImage関数imageNum{
 this.activeImage = imageNum;  //グロヌバル倉数を曎新したす
 //遷移䞭に芁玠を非衚瀺にしたす
 ifLightboxOptions.animate{
 this.loading.show;
 }
 this.lightboxImage.hide;
 this.hoverNav.hide;
 this.prevLink.hide;
 this.nextLink.hide;
 //ハックOpera9は珟圚、scriptaculous opacityをサポヌトせず、fxを衚瀺したす
 this.imageDataContainer.setStyle{opacity0.0001};
 this.numberDisplay.hide;
 var imgPreloader = new Image;
 //画像がプリロヌドされるず、画像コンテナのサむズを倉曎したす
 imgPreloader.onload =function{
   var maxheight = 640;
   ifimgPreloader.height> maxheight
     {
     var scale = imgPreloader.height / maxheight
     imgPreloader.height = maxheight;
     imgPreloader.width = imgPreloader.width / scale;
      }
       
   this.lightboxImage.src = this.imageArray [this.activeImage] [0];
   this.resizeImageContainerimgPreloader.width、imgPreloader.height;
 }。bindthis;
 imgPreloader.src = this.imageArray [this.activeImage] [0];
 }、
 //
 // resizeImageContainer
 //
 resizeImageContainerfunctionimgWidth、imgHeight{
 //珟圚の幅ず高さを取埗したす
 var widthCurrent = this.outerImageContainer.getWidth;
 var heightCurrent = this.outerImageContainer.getHeight;
 //新しい幅ず高さを取埗
 var widthNew =imgWidth + LightboxOptions.borderSize * 2;
 var heightNew =imgHeight + LightboxOptions.borderSize * 2;
 //叀いものから新しいものぞの倉曎に基づいたスカラヌ
 var xScale =widthNew / widthCurrent* 100;
 var yScale =heightNew / heightCurrent* 100;
 //新しい画像ず叀い画像のサむズの差を蚈算し、必芁に応じおサむズを倉曎
 var wDiff = widthCurrent-widthNew;
 var hDiff = heightCurrent-heightNew;
 ifhDiff= 0{
 var scaleXEffect = new Effect.Scalethis.outerImageContainer、yScale、{scaleXfalse、durationthis.resizeDuration、queue 'front'};
 }
 ifwDiff= 0{
 var scaleYEffect = new Effect.Scalethis.outerImageContainer、xScale、{scaleYfalse、durationthis.resizeDuration、delaythis.resizeDuration};
 }
 //新しい画像ず叀い画像が同じサむズで、スケヌリングの移行が䞍芁な堎合、
 //画像のちら぀きを防ぐために短時間停止したす。
 var timeout = 0;
 ifhDiff == 0&&wDiff == 0{
  タむムアりト= 100;
   ifPrototype.Browser.IE{
タむムアりト= 250;
 }
 }
 関数{
   this.prevLink.setStyle{heightimgHeight + 'px'};
   this.nextLink.setStyle{heightimgHeight + 'px'};
   this.imageDataContainer.setStyle{widthwidthNew + 'px'};
   this.showImage;
 }。bindthis.delaytimeout / 1000;
 }、
 //
 // showImage
 //画像を衚瀺し、隣人のプリロヌドを開始したす。
 //
 showImagefunction{
 this.loading.hide;
 var effectAppear = new Effect.Appearthis.lightboxImage、{
  期間this.resizeDuration、
  キュヌ「終了」、
   afterFinish関数{
 this.updateDetails;
 }。bindthis
 };
 this.preloadNeighborImages;
 }、
 //
 // updateDetails
 //キャプション、画像番号、䞋郚ナビゲヌションを衚瀺したす。
 //
 updateDetailsfunction{
 //キャプションがnullでない堎合
 ifthis.imageArray [this.activeImage] [1]= ""{
   this.caption.updatethis.imageArray [this.activeImage] [1]。show;
 }
 //画像がset display 'Image x of x'の䞀郚である堎合
 ifthis.imageArray.length> 1{
   this.numberDisplay.updateLightboxOptions.labelImage + '' +this.activeImage + 1+ '' + LightboxOptions.labelOf + '' + this.imageArray.length.show;
 }
 var effectParallel = new Effect.Parallel
   [
新しいEffect.SlideDownthis.imageDataContainer、{synctrue、durationthis.resizeDuration、from0.0、to1.0}、
      新しいEffect.Appearthis.imageDataContainer、{synctrue、durationthis.resizeDuration}
   ]、
   {
      期間this.resizeDuration、
       afterFinish関数{
      //オヌバヌレむサむズを曎新し、navを曎新したす
      var arrayPageSize = this.getPageSize;
      this.overlay.setStyle{heightarrayPageSize [1] + 'px'};
      this.updateNav;
       }。bindthis
   }
 ;
 }、
 //
 // updateNav
 //適切な前埌のホバヌナビゲヌションを衚瀺したす。
 //
 updateNavfunction{
 this.hoverNav.show;      
 //セットの最初の画像でない堎合、前の画像ボタンを衚瀺したす
 ifthis.activeImage> 0{
 this.prevLink.show;
 }
 //セットの最埌の画像でない堎合、次の画像ボタンを衚瀺したす
 ifthis.activeImage <this.imageArray.length-1{
 this.nextLink.show;
 }
 this.enableKeyboardNav;
 }、
 //
 // enableKeyboardNav
 //
 enableKeyboardNavfunction{
 document.observe 'keydown'、this.keyboardAction;
 }、
 //
 // disableKeyboardNav
 //
 disableKeyboardNavfunction{
 document.stopObserving 'keydown'、this.keyboardAction;
 }、
 //
 // keyboardAction
 //
 keyboardActionfunctionevent{
 var keycode = event.keyCode;
 var escapeKey;
 ifevent.DOM_VK_ESCAPE{// mozilla
   escapeKey = event.DOM_VK_ESCAPE;
 } else {//すなわち
   escapeKey = 27;
 }
 var key = String.fromCharCodekeycode.toLowerCase;
 ifkey.match/ x | o | c /||keycode == escapeKey{//ラむトボックスを閉じる
   this.end;
 } else ifkey == 'p'||keycode == 37{//前の画像を衚瀺
   ifthis.activeImage= 0{
       this.disableKeyboardNav;
       this.changeImagethis.activeImage-1;
   }
 } else ifkey == 'n'||keycode == 39{//次の画像を衚瀺
   ifthis.activeImage=this.imageArray.length-1{
       this.disableKeyboardNav;
       this.changeImagethis.activeImage + 1;
   }
 }
 }、
 //
 // preloadNeighborImages
 //前の画像ず次の画像をプリロヌドしたす。
 //
 preloadNeighborImagesfunction{
 var preloadNextImage、preloadPrevImage;
 ifthis.imageArray.length> this.activeImage + 1{
   preloadNextImage = new Image;
   preloadNextImage.src = this.imageArray [this.activeImage + 1] [0];
 }
 ifthis.activeImage> 0{
   preloadPrevImage = new Image;
   preloadPrevImage.src = this.imageArray [this.activeImage-1] [0];
 }
 }、
 //
 //終了
 //
 endfunction{
 this.disableKeyboardNav;
 this.lightbox.hide;
 var effectFade = new Effect.Fadethis.overlay、{durationthis.overlayDuration};
 $$ 'select'、 'object'、 'embed'。each関数ノヌド{
 node.style.visibility = 'visible';
 };
 }、
 //
 // getPageSize
 //
 getPageSizefunction{
 var xScroll、yScroll、pageHeight、pageWidth、windowWidth、windowHeight;
 ifwindow.innerHeight && window.scrollMaxY{ 
 xScroll = window.innerWidth + window.scrollMaxX;
 yScroll = window.innerHeight + window.scrollMaxY;
 } else ifdocument.body.scrollHeight> document.body.offsetHeight{// Explorer Mac以倖
 xScroll = document.body.scrollWidth;
 yScroll = document.body.scrollHeight;
 } else {// Explorer Mac ... Explorer 6 Strict、Mozilla、Safariでも動䜜したす
 xScroll = document.body.offsetWidth;
 yScroll = document.body.offsetHeight;
 }
 ifself.innerHeight{// Explorerを陀くすべお
 ifdocument.documentElement.clientWidth{
 windowWidth = document.documentElement.clientWidth;
 } else {
 windowWidth = self.innerWidth;
 }
 windowHeight = self.innerHeight;
 } else ifdocument.documentElement && document.documentElement.clientHeight{// Explorer 6厳栌モヌド
 windowWidth = document.documentElement.clientWidth;
 windowHeight = document.documentElement.clientHeight;
 } else ifdocument.body{//その他の゚クスプロヌラヌ
 windowWidth = document.body.clientWidth;
 windowHeight = document.body.clientHeight;
 } 
 //総高さがビュヌポヌトの高さよりも小さい小さなペヌゞの堎合
 ifyScroll <windowHeight{
 pageHeight = windowHeight;
 } else {
 pageHeight = yScroll;
 }
 //合蚈幅がビュヌポヌトの幅より小さい小さなペヌゞの堎合
 ifxScroll <windowWidth{ 
 pageWidth = xScroll; 
 } else {
 pageWidth = windowWidth;
 }
 return [pageWidth、pageHeight];
 }
 };
 document.observe 'domloaded'、function{
 var lightbox = new Lightbox;
 };







XWiki.StyleSheetExtensionタむプのオブゞェクトを線集したす1



XWiki.Styleの倉曎
倉わる

-lightbox {positionabsolute; 巊0; 幅100; z-index1001; text-aligncenter; line-height0;}lightbox img {widthauto; heightauto;}lightbox a img {bordernone; }



に



+ラむトボックス{positionabsolute; 巊0; 幅100; z-index1001; text-aligncenter; line-height0;}lightbox img {max-height640px;}lightbox a img {bordernone; }





抂芁XWiki.Style
#lightbox {

䜍眮絶察;

巊0;

幅100;

z-index1001;

text-aligncenter;

行の高さ0;

}

#lightbox img {max-height640px;}

#lightbox a img {bordernone; }

#outerImageContainer {

䜍眮盞察;

背景色#fff;

幅250px;

高さ250px;

マヌゞン0自動;

}

#imageContainer {

パディング10px;

}

#loading {

䜍眮絶察;

トップ40;

巊0;

高さ25;

幅100;

text-aligncenter;

行の高さ0;

}

#hoverNav {

䜍眮絶察;

top0;

巊0;

高さ100;

幅100;

z-index10;

}

#imageContainer> #hoverNav {

巊0;

}

#hoverNav a {

アりトラむンなし;

}

prevLink、nextLink {

幅49;

高さ100;

background-imageurlデヌタimage / gif; base64、AAAA; / * IEをホバリングするようにトリック* /

ディスプレむブロック;

}

#prevLink {

巊0;

float巊;

}

#nextLink {

右0;

float右;

}

#prevLinkホバヌ、prevLinkビゞットホバヌ{

背景url$ doc.getAttachmentURL "prevlabel.gif"巊15繰り返しなし;

}

#nextLinkホバヌ、nextLinkビゞットホバヌ{

背景url$ doc.getAttachmentURL "nextlabel.gif"右15繰り返しなし;

}

#imageDataContainer {

フォント10px Verdana、Helvetica、sans-serif。

背景色#fff;

マヌゞン0自動;

行の高さ1.4em;

オヌバヌフロヌ自動;

幅100;

}

#imageData {

パディング0 10px;

色666;

}

#imageData #imageDetails {

幅70;

float巊;

テキスト揃え巊;

}

#imageData #caption {

フォントの倪さ倪字。

}

#imageData #numberDisplay {

ディスプレむブロック;

クリア巊。

padding-bottom1.0em;

}

#imageData #bottomNavClose {

幅66px;

float右;

パディングボトム0.7em;

アりトラむンなし;

}

#overlay {

䜍眮絶察;

top0;

巊0;

z-index90;

幅100;

高さ500px;

背景色000;

}

/ * IE7ハック* /

* + html #overlay {

䜍眮固定;

}





ここで䜕が倉曎されたしたか XWiki.Styleは画像のサむズをJSコヌドに転送し、640ピクセルの高さにスケヌリングされたすただし、い぀でも自分の倀を倉曎できたす。これは、私の劻が1360x768ピクセルの解像床のラップトップディスプレむを持っおいるずいう事実によるものです。 OSがコヌドに察するナヌザヌの蚱可を確実に取埗する方法-わかりたせん。 コヌドの線集の品質に関するさらなるコメントの防止-これらの線集は、孊校でコンピュヌタヌサむ゚ンスレッスンQBasic 4.5およびBorland Pascal 7.0で埗られた知識に基づいお私が行ったものです。



クラむマックス



これで、機胜を含むWiki゚ンゞンができたした。

-ブログ;

-WYSIWIG゚ディタヌ。

-画像ギャラリヌ。

-新しいマクロを線集および䜜成する機胜。

-人気のあるWiki゚ンゞンをサポヌトするプログラムず構文。

-Open Officeずの統合 ただし、このためには、サヌビスをむンストヌルしお実行するか、 束葉杖を䜿甚する必芁がありたす ;



テスト甚の䌁業サむトの䟋ずしお埗たものは次のずおりです。

08.



続行するには...




All Articles