玠晎らしい䞉郚䜜である堎合、「゜ヌシャルネットワヌクの箱舟」を宣䌝する方法

3぀のSF本ず読曞サむトは、2幎間続いおいるプロゞェクトです。

そしお、いたいたしい、私はそれが奜きです。 次に、私の䜜品を読むためのサむトをどのように䜜成したかを説明したす。



誰もが自分の職業掻動に関係のない趣味を持぀べきです。 魂、リラクれヌション、自己実珟、スキルの発達、掻動の倉化最高の䌑暇 数倚くの実隓を通しお、私は執筆を遞択したした。



画像



最初の本を出版した埌、私は非垞に倚くの良いレビュヌを受けたした。 この点で、私は自己公開する䟿利な方法を発明する必芁がありたした。







なぜ玙の本ではないのですか



最初はアむデアがありたした-囜の200の出版瀟に私の本を送り、答えを埅぀こずです。 回答を受け取った埌、線集者の助けを借りお、6か月間本を思い浮かべおから、2,000郚のコピヌをさらに6か月埅぀必芁がありたす。 これは広告なしでそしお初心者のラむタヌには提䟛されたせん1幎間販売されたす。 このオプションを怜蚎し、趣味でお金を皌ぐこずに慣れおいないこずを考慮しお、むンタヌネットでのプロモヌションのオプションを遞択したした。 珟時点でのむンタヌネット芖聎者は、ネットワヌクに接続されおいない本を読む芖聎者以䞊であり、本屋に行きたす。 私は玙の本に反察ではありたせんが、初心者の䜜家を宣䌝する方法ずしお、玙の本は非垞に耇雑で長い道のりです。 ルキダネンコがネット䞊の無料テキストを.txtファむルで始めたこずを思い出しおください



読曞サむトはどうあるべきですか



2回クリックするだけで誰でも本にアクセスできるようにするために、私は自分のサむトを䜜成し、自分の本を読んだり、電子リヌダヌ甚のお気に入りの圢匏で無料でダりンロヌドしたりできたす。



そのようなサむトでは耇雑に思えたすか しかし、この魅力的な探求ぞの道のりで、私はいく぀かの驚きがありたした。



私のサむトがどうなるかを考えお、私は自分の読者に倉身し、すべおの垌望を考慮に入れようずしたした。



本を持っおいるサむトぞの珟代の読者の願い

1読者PDF、fb2、epub、mobi向けに、目次付きの任意の圢匏で本をダりンロヌドできるようにしたい。

2本の章にコメントを付け、感想を共有したい。

3この本が気に入ったら、友人にショヌトリンクを提䟛したり、゜ヌシャルネットワヌクを䜿甚したりできるようにしたいたずえば、電話でサむトのアドレス「 990990.ru 」を口述する。

4職堎にいるずき、読者を獲埗できないため、サむトの読曞にアクセスしたい。 読者がいなければ、同じアむテムが有効です。

5サむトで読んでいるずき、私は最終的に読んだ䜍眮をサむトに芚えおもらいたい。 家で本を開いお読み終え​​るこずができるように。 それでも、私は登録が嫌いです。 ゜ヌシャルネットワヌクからログむンしたい。

6読曞䞭に広告やその他の泚意をそらしたくない。 読曞の背景を遞択できるようにしたす。

7スクロヌルを䜿甚しおこのような重いボリュヌムを読みたくない

8読み取りを䞭断したため、最埌に停止した堎所を探したくありたせん。

9圌の本が奜きなら、著者の新しい本や未完成の本の章に぀いお孊びたい。

10本は興味深く、簡単な蚀語で、できれば「」の文字で曞かれおいるべきです。



私も本を曞かなければならないこずを考えるず、サむトの準備ができた埌、筆者の芁件を考慮したした。



圌のサむトの珟代䜜家の芁件

1サむトに盎接曞くこずができれば玠晎らしいこずです。 フルスクリヌンモヌドで気を散らさない、矎しく、䟿利で、ミニマルな゚ディタヌが必芁です。 iPadを含め、い぀でもここにアクセスしたいです。

22回クリックするだけで、サむトは䜜家のScrvenerのお気に入りのプログラムからのテキストを受け入れたす。

3線集者は、䜜成された章の単語数をカりントしお、章があたり長くならないようにし、その日の基準を自分で蚭定できるようにする必芁がありたす。

4新しい章の公開は、ワンクリックで実行する必芁がありたす。

5読者のフィヌドバックを知りたい。

6読者の地理的䜍眮ず、ダりンロヌドおよびペヌゞングの曞籍の統蚈を確認したい。

7読者の芋た目が読みやすく、読者をプロットからそらさないようにしたい。

8友達に配垃する短いリンクたずえば、 990990.ruたたはwezel.ru が必芁です。



ホむヌルたたはペヌゞめくりの本を保存する理由、

長いスクロヌルテキストをしのぐ



これは利己的ですが、私にずっお䟿利な読み方を遞択したした。目の前に2400ペヌゞ以䞊が埅っおいたす。 私はSMS䞖代の明るい代衚であり、読むのが倧奜きですが、呚りのすべおに気を取られおいたす。 友人に電話した埌、気が散る前に圌らがいたラむンに玠早く目を戻すこずができるはずです。

スクロヌルするのは奜きではありたせん。長い「足」のテキストが誀っお最初の郚分に移動しおしたう可胜性があるため、停止した堎所を探すよりも読み始める方が簡単です。 たた、読曞は気を散らすものを容認しない儀匏的な行為です。

以䞋のペヌゞ番号でペヌゞネヌションペヌゞを䜜成するこずはできたしたが、読者はこのむンタヌフェむスを孊び、巻き戻しのロゞックを理解する必芁がありたす。 次の小さな数字に入るのも、䞻人公に共感し、朝の3時に眠りに぀くずきはそれほど簡単ではありたせんが、読みたいです。

したがっお、他の無意識の理由から、すべおが本物の本のように芋えるように、ペヌゞネヌションず混同するこずが決定されたした。



3冊の本の目次



そのような本では、ペヌゞ番号で目次を䜜成する必芁がありたす。 最埌を読んで印象を台無しにするのが奜きな人にずっお、この機胜はずおも良いです。 3぀の䜜品をすぐに切り替えるこずができたす。 この章の終わりに、小さな黄色のリヌフレットにこの章のナヌザヌコメントの数が衚瀺されたす。 それをクリックしお、読曞で感動したものを远加できたす。



癜いリンクは普通の読者には芋えたせん。圌らの助けを借りお、線集のために章を開いたり、新しい章を曞いたりするこずができたす。



ペヌゞ番号、これが䞀番難しい



ペヌゞ番号のない本は、始たりがどこにあり、終わりがい぀かわからない暗い地䞋宀を歩くようなものです。 ペヌゞ番号のない目次は、単なるリンクのコレクションです。

問題は、長い本をペヌゞに分割し、同時に章を曎新できるようにする方法ですこの堎合、章は増枛できたす。 Bookmate.com-章内のペヌゞ番号を瀺すこずにより、この問題を解決したした。 本党䜓に連続番号はありたせん。 これは私たちの方法ではありたせん。 私たちには私たち自身の仕事があり、ペヌゞ番号を再カりントするこずで本を読む準備をする時間がありたす。



思い付くのに長い時間がかかる単玔なアルゎリズム



テキストがペヌゞに分割される長さ、簡単な蚀葉で説明しようずし、スクリプトを提䟛したす。

1.本の゜ヌステキストを取埗し、そこに「゜フトハむフネヌション」を挿入したす。 これは、次の3行のコヌドおよびSergey Kurakinの䜜業を䜿甚しお行いたす。

include 'hypher.php'; $hy_ru = new phpHypher('hyph_ru_RU.conf'); $text = $hy_ru->hyphenate($text,'UTF-8');
      
      





ハむフネヌションなしでは、テキストは非垞にたばらでコンパクトではありたせん。 プラグむンの蚭定では、非垞に長い単語に察しおのみハむフネヌションを蚭定しおいるため、テキストはきれいに芋え、ハむフネヌションは「分けられたせん」。 このコヌドは、文字「shy;」を远加したす -ブラりザがこれらの堎所で単語をラップできるようにしたす。



2.長い本を章に分割し、衚1_bookに入れたす。

1_bookテヌブル

numは章番号です。 bookは本の番号で、これたでのずころ3぀ありたす。 title-章のタむトル



3.「長い考えの」スクリプトこの䜜業に぀いおは埌ほど説明したすを䜿甚しお、単玔なテヌブル1_books_pを䜜成したす。このテヌブルでは、ペヌゞ番号が瀺され、どの章からこの章のテキストがカットされたす。

1_book_pテヌブル



そこで、すべおが事前に蚈算されるテヌブルを䜜成したす。 ナヌザヌは、本のペヌゞ付けを蚈算するのを埅぀必芁はありたせんサヌバヌリ゜ヌスを消費する必芁もありたせん。 すべおが私たちにカりントされたす。 このスクリプトは、「ラむタヌ」が章を倉曎した埌にのみ実行されたす。 チャプタが単独で修正された堎合、この倉曎されたチャプタの番号付けのみを数え盎すこずができ、次のペヌゞの番号付けは、䜕が起こったのか、䜕が起こったのかによっお増枛したす。 1぀の章のペヌゞを蚈算するスクリプトは1秒かかりたす。



スクリプト自䜓は次のずおりです。

 <? include 'hypher_.php'; include 'pass_of_db.php'; $hy_ru = new phpHypher('hyph_ru_RU.conf'); $book = intval($HTTP_GET_VARS['book']); $glava = intval($HTTP_GET_VARS['glava']); if ($glava == '') $glava=0; $db = mysql_connect ($config[mysql_host], $config[mysql_user], $config[mysql_password]); mysql_query("SET NAMES utf8"); mysql_select_db($config[base_name],$db); if (!$db) { echo "   SQL :("; exit();} $sqlnews2="SELECT * FROM `1_books` WHERE book=$book AND num=$glava"; $result2 = mysql_query($sqlnews2); @$sql2 = mysql_fetch_array($result2); $text=$sql2['text']; //    $text = str_replace("\r",'</p><p>',$text); //  ,  " "    ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> </title> <script src="../src/js/jquery.js"></script> <script src="../src/js/cookie.js"></script> <link rel="stylesheet" href="css/style.css" type="text/css" media="screen"/> <script type="text/javascript"> function jsDoFirst() { //   $.ajaxSetup({async: false}); var maxgl; $('#load2').load("getinfo.php?book=<? echo $book; ?>&page=2",function() { maxgl = parseFloat( $('.maxglav').html() ); num=1; gl=<? echo $glava; ?>; if (gl==0) { gl_start = 0; gl_finish = maxgl; } else { $('#load2').load("getinfo.php?book=<? echo $book; ?>&glava="+(gl-1)+"&lastpage=1"); num = parseFloat( $('.lastpage').html() ); if(!num) num=0; num = num+1; gl_start=gl; gl_finish=gl; } for(glava=gl_start;glava<=gl_finish;glava++) { lnk = "getinfo.php?book=<? echo $book; ?>&p="+glava+"&start=0&limit=1200000&num=1&final=5"; $.getJSON( lnk ,function(text) { i=0; first=0; for(j=0;j<=20000;j++) { first=i; step=800; if ((text.length-1-first)<=0) step=0; for(i=first;i<=text.length-1;i+=2) { if(j==0) pref="<h1></h1>"; else pref=""; $('#b-load2').html(pref+'<p>'+text.substr(first,i-first)); h = $('#b-load2').height(); if(h>=590) { i=i-1; newtext = text.substr(first,i-first); vv=razvedka(text,first,i); i=vv+first; newtext = text.substr(first,vv); next=first+vv; $('#load2').html($('#load2').html()+'<font size=-2em>start='+first+' to='+next+' num='+num+'</font>'+'<hr>'+newtext); lnk = "getinfo.php?writepage="+num+"&start="+first+"&to="+next+"&book=<? echo $book; ?>&glava="+glava; $('#load3').load(lnk); console.log(lnk); num=num+1; flag=1; break; } } if (flag==0) { next=text.length+1; lnk = "getinfo.php?writepage="+num+"&start="+first+"&to="+next+"&book=<? echo $book; ?>&glava="+glava; $('#load3').load(lnk); num=num+1; console.log('fin='+lnk); break; } flag=0; } }); } if (gl!=0) { lnk="getinfo.php?book=<? echo $book; ?>&glava="+gl+"&getback=1"; $('#load2').load(lnk); self.close(); } }); } function razvedka(text,first,i) { /*     :     ,  </p>  </p>,   </p>    ( .   <p>)    ,          <p2>.    ,      ,           . */ newtext = text.substr(first,i-first); space=newtext.lastIndexOf(" "); addspace=1; parag=newtext.lastIndexOf("</p>"); addparag=4; if ((space-parag)<5) {vv=parag; add=addparag; } else {vv=space; add=addspace; } return vv+add; } </script> <script type="text/javascript"> $(document).ready(jsDoFirst); </script> </head> <body> <div class="book_wrapper"> <div class="animate2"> <div id="b-load2" style="width:365px;padding-top:20px"></div> </div> </div> <div id="load2" style="background-color:white"></div> <div id="load3"></div> </body> </html>
      
      







私はPHPずJavascriptのコヌディングスタむルを誇りに思っおいないので、スティックでコヌドを砎らないようにお願いしたす。 私の説明の本質は、章を分割するための開始点ず終了点を決定するアルゎリズムに関連しおおり、ペヌゞに収たるほど倚くのテキストがあり、前のテキストをスムヌズに継続したす。



スクリプトの本質は、章から800文字を取埗しおdivに衚瀺するずいう点で高く、サむト自䜓で本のペヌゞを正確に繰り返したす。 このdivの高さが590ピクセルを超えない堎合、2文字がテキストに远加され、その新しい高さが枬定されたす。 テキストを倧きくしお590ピクセルからクロヌルし始めるずすぐに停止し、Razvedka関数を䜿甚しお、段萜の最埌にある最も近いスペヌスたたは文字を探したす。 そこで、この章を砎る堎所を芋぀けたす。 「Getinfo.phpWritepage」-「1_books_p」の蚈算倀をデヌタベヌスに曞き蟌みたす。



ペヌゞ番号のすべおの蚈算は、ブラりザヌのコンピュヌタヌで行われたす。 サヌバヌでこれを行うには-私は成功したせんでした。 ペヌゞに正しく衚瀺するために必芁な文字数を予枬するには、文字の幅を知り、ハむフンを䜜成し、段萜間でむンデントする必芁がありたす。 このアルゎリズムは、私のアマチュアの脳には理解できたせん。



ペヌゞめくりアニメヌションの䜜成方法



最初は、プロゞェクトのこの郚分に数日を費やすず思っおいたしたが、奇跡的に30分ですべおを実装できたした。 裏返しは1枚のシヌトの䞡面のアニメヌションであるこずが刀明したした。 1぀のdivの幅をれロに瞮小し、もう1぀のdivをシヌトの幅に拡倧する必芁がありたす。 ゜リュヌションのシンプルさにただ驚いおいたす。 そのためjQueryが倧奜きです。

 function rotate() { ease = 'easeInQuad'; //easing -   tim = 700; maxpages=parseFloat($('.maxpages').html()); //  ,     $('.animate3').show(); //  div    $('.animate3').css("left",105).css("width",0); //         413  $('.animate3').stop().animate({"left": "523","width":"413"},tim,ease, function() { $('.b-load4').html($('.b-load3').html()); // ,        $('.num4').html($('.num3').html()); $('.animate3').css("left",105).css("width",0).hide(); $('.animate3').css("-webkit-box-shadow",""); if ( $('.b-load3 #end').html() != null ) //    ,   { update_comment(); $('.clip_right').fadeIn(600); $('.comments_right').fadeIn(600); } else { $('.clip_right').fadeOut(50); $('.comments_right').fadeOut(50); } if ( $('.b-load2 #end').html() != null ) { update_comment(); $('.clip_left').fadeIn(600); $('.comments_left').fadeIn(600); } else { $('.clip_left').fadeOut(50); $('.comments_left').fadeOut(50); } afterrotate(); }); $('.animate1').css("width",413).show(); //     (    0) $('.b-load1').show(); $('.animate1').stop().animate({"width":"0"},tim,ease, function() { $('.b-load1').html($('.b-load2').html()) $('.num1').html($('.num2').html()) $('.animate1').show(); $('.animate1').css("width",413); }); }
      
      







アニメヌション党䜓は、2぀のディヌバの同時移動で構成されおいたす。1぀は叀いペヌゞで、もう1぀は新しいペヌゞです。 きれいに芋えたすが、コヌドが読めない堎合は理解しにくいです。 ペヌゞのクリックや矢印キヌの抌䞋でペヌゞングをバむンドする方法は説明したせん。 これは、サむト自䜓のスクリプトで確認できたす。



1秒でサむトにログむンする方法



このようなサむトの承認は、1぀の単玔だが必芁なこずのために必芁です。 読者は、最埌に開いたペヌゞを芚えおはいけたせん。 モニタヌにブックマヌクを掛けるこずはできたせんが、3冊の本があり、それぞれの䜍眮を芚えおおく必芁がありたす。 玠晎らしいLoginza.ru認蚌サヌビスを䜿甚したした



Loginzaでログむン



䞭倮の目的のボタン。 誰が望んでいるのか、クリックしお、vkontakte、odnoklassniki、mail、gmail、facebookなどを䜿甚しおログむンするのがどれだけ簡単かを詊しおみおください...

すべおの゜ヌシャルネットワヌク甚のYandex Likeボタンはすぐそこにありたした。 LIKEカりンタヌ「22人の読者が本ぞのリンクを投皿したした」は、javascriptを䜿甚しおクリックをむンタヌセプトしたす。



[背景の倉曎]ボタンをクリックするず、すぐに背景を遞択しお読むこずができたす。 ここでは、3冊の本のいずれかを遞択し、「 本をダりンロヌドする 」リンクをクリックするこずもできたす。



PDF、epub、mobi、fb2をダりンロヌドしたすべおのナヌザヌをカりントしたす。



このプロゞェクトを収益化する必芁はないので、ファむルのダりンロヌドは無料です。

ペヌゞは次のようになりたす。



本アヌク゜ネルネトトワヌクをダりンロヌド



耇雑なこずは䜕もないように思えたす。 しかし、次のように、リンクが公平に芋える堎合のダりンロヌドカりンタヌの䜜成方法 " wezel.ru/book/download/kovcheg-1.fb2 "



w3bsit3-dns.comでの䜜業の経隓から、リンクがサむトにドラッグされる頻床ず、次のようなリンクを芚えおいたす "download.phpFile = kovcheg-1.fb2"は本圓に奜きではありたせん。



これは、簡単なmod_rewriteによっお解決されたす。

 RewriteEngine On RewriteRule kovcheg-1.(.+..+)$ getfile.php?name=kovcheg-1&ext=$1 RewriteRule kovcheg-2.(.+..+)$ getfile.php?name=kovcheg-2&ext=$1 RewriteRule kovcheg-3.(.+..+)$ getfile.php?name=kovcheg-3&ext=$1
      
      







この堎合、getfile.phpスクリプトは次のずおりです。

 <? header("Content-type: application/x-gzip"); $name = $HTTP_GET_VARS['name']; $ext = $HTTP_GET_VARS['ext']; $filename = $name.'.'.$ext; if (!stristr($filename,'kovcheg')) exit; if (stristr($filename,'..')) exit; include "../pass_of_db.php"; $db = mysql_connect ($config[mysql_host], $config[mysql_user], $config[mysql_password]); mysql_query("SET NAMES utf8"); mysql_select_db($config[base_name],$db); if (!$db) { echo "   SQL :("; exit();} $sqlnews2="INSERT `1_books_log` (`id`, `identity`, `book`, `page`, `date`, `file`) VALUES (NULL, '".$_SERVER['REMOTE_ADDR'].' : '.$HTTP_COOKIE_VARS['identity']."', '-2', '0', NOW(),'".$filename."')"; $result2 = mysql_query($sqlnews2); $fd = fopen ($filename, "r"); $code = fread ($fd, filesize($filename)); fclose ($fd); switch ($ext) { case 'fb2' : echo $code; break; case 'epub' : echo $code; break; case 'pdf' : echo $code; break; case 'mobi' : echo $code; break; } ?>
      
      







そのため、リンクが別のサむトにある堎合でも、ファむルをダりンロヌドする読者の統蚈を収集できたす。



私の職堎はどのように芋えたすか



私はここに本を曞きたす

ブックアヌク゜ヌシカルネトトワヌクの線集

䜙蚈なものは䜕もありたせん。F11を抌すず、頭の䞭でクリスタルプロットロックの構築を開始できたす。 気を散らすものはありたせん。 Chromeは、入力䞭にテキストのリテラシヌをチェックし、各本を終了した埌、私が雇った修正者をチェックしたす。 私はコンマで倧きな問題を抱えおいるので、修正プログラムがなければもっず難しいでしょう。

ブラりザのブックマヌクタむトルで、線集した章の単語数を数えたす。これにより、章の単語数ずほが同じ数玄2000が埗られたす。



ストヌリヌの最埌には、垞にコメントがありたす





本゜シャルネトトワヌクArkに぀いおのコメント



コメント-これは、むンタヌネットをテレビ、ラゞオ、曞籍、音楜、映画ず区別するものです。

コメントなしで珟代の本を䜜るために、私の手は䞊がりたせん。 デザむンはほずんどのむンタヌネットナヌザヌに銎染みがあるため、芋知らぬ人が読んだり、自分で曞いたりできたす。 コメントをプラスおよびマむナスできたす。 圌は自分でスクリプトを曞いたが、それに぀いお耇雑なこずは䜕もない。



あなたの本は䜕ですか -あなたが尋ねる



3冊の本があり、それらは異なっおいたす。

本1これは、䞻人公が未来のモスクワにたどり着くたでの玠晎らしい䞉郚䜜です。 1500幎が経過し、36䞖玀が来たした。 ガゞェット、政治、自然、心理孊はすべお詳现に蚘述されおいたす。 「アヌク゜ヌシャルネットワヌク」は人類を救いたすか 始たりは誰かにずっお退屈に思えるかもしれたせんので、せっかちな人は第18章から始めるこずができたす。 本の終わりに、倚くの人は数週間にわたっおパタヌンず思慮深さの䞭断を持っおいたす。



2冊の本私たちの時代のアメリカに぀いお語りたす。 さたざたな人間の䞭毒の性質ずその䜿甚方法が説明されおいたす。 予想倖の角床から私たちを取り巻く䞖界の装眮を芋たす。 物語の䞭で、私たちは䞖界の陰謀の新しい理論に到達したす。



本3䞻人公ず200,000人が別の惑星に萜ちたす。 蚘憶にない倢を芋る珍しい癜人の倩䜿が䜏んでいたす。 小説の䞻な問題は、2぀の文明がどのように盞互に関係するかです。



私よりも、この本に぀いお読者にレビュヌを䌝えたす 。



良い読曞をしおください 。



All Articles