theme-options.php 159 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160
  1. <?php
  2. if( class_exists( 'Sakurairo_CSF' ) ) {
  3. $AVAIL_METADATA_ARTICLE_AREA = array(
  4. "author" => __("Author","sakurairo_csf"),
  5. "category" => __("Category","sakurairo_csf"),
  6. "comment_count" => __("Number of Comments","sakurairo_csf"),
  7. "post_views" => __("Number of Views","sakurairo_csf"),
  8. "post_words_count" => __("Number of Words","sakurairo_csf"),
  9. "reading_time" => __("Estimate Reading Time","sakurairo_csf"),
  10. );
  11. /**
  12. * 可显示的文章元数据及其对应的友好文本。
  13. */
  14. $AVAIL_METADATA_POST_HEADER = array_merge(
  15. $AVAIL_METADATA_ARTICLE_AREA,
  16. array(
  17. "publish_time_relative" => __("Publish Time (Relatively)","sakurairo_csf"), // WP_Post::post_date
  18. "last_edit_time_relative" => __("Last Edit Time (Relatively)","sakurairo_csf"), // WP_Post::post_modified
  19. "EDIT" => __("Action Edit (only displays while user has sufficient permissions)","sakurairo_csf"),
  20. ));
  21. $prefix = 'iro_options';
  22. if ( ! function_exists( 'iro_validate_optional_url' ) ) {
  23. function iro_validate_optional_url( $value ) {
  24. if ( !empty( $value ) ) {
  25. return csf_validate_url($value);
  26. }
  27. }
  28. }
  29. Sakurairo_CSF::createOptions( $prefix, array(
  30. 'menu_title' => __('iro-Options','sakurairo_csf'),
  31. 'menu_slug' => 'iro_options',
  32. ) );
  33. Sakurairo_CSF::createSection($prefix, array(
  34. 'title' => __('Hello!','sakurairo_csf'),
  35. 'icon' => 'fa fa-podcast',
  36. 'fields' => array(
  37. array(
  38. 'type' => 'heading',
  39. 'content' => __('News+','sakurairo_csf'),
  40. ),
  41. array(
  42. 'type' => 'content',
  43. 'content' => __('<img src="https://news.maho.cc/sakurairo.php" alt="News_Plus" width="100%" height="100%" />','sakurairo_csf'),
  44. ),
  45. )
  46. ) );
  47. Sakurairo_CSF::createSection( $prefix, array(
  48. 'id' => 'preliminary',
  49. 'title' => __('Preliminary Options','sakurairo_csf'),
  50. 'icon' => 'fa fa-sliders',
  51. 'fields' => array(
  52. array(
  53. 'type' => 'submessage',
  54. 'style' => 'info',
  55. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Preliminary/">here</a> to learn how to set the options on this page','sakurairo_csf'),
  56. ),
  57. array(
  58. 'id' => 'personal_avatar',
  59. 'type' => 'upload',
  60. 'title' => __('Personal Avatar','sakurairo_csf'),
  61. 'desc' => __('The best length-width ratio of is 1:1','sakurairo_csf'),
  62. 'library' => 'image',
  63. ),
  64. array(
  65. 'id' => 'text_logo_options',
  66. 'type' => 'switcher',
  67. 'title' => __('Mashiro Special Effects Text','sakurairo_csf'),
  68. 'label' => __('After turned on, the personal avatar will be replaced by the text as the home page display content','sakurairo_csf'),
  69. 'default' => false
  70. ),
  71. array(
  72. 'id' => 'text_logo',
  73. 'type' => 'fieldset',
  74. 'title' => __('Mashiro Special Effects Text Options','sakurairo_csf'),
  75. 'dependency' => array( 'text_logo_options', '==', 'true', '', 'true' ),
  76. 'fields' => array(
  77. array(
  78. 'id' => 'text',
  79. 'type' => 'text',
  80. 'title' => __('Text','sakurairo_csf'),
  81. 'desc' => __('The text content should not be too long, and the recommended length is 16 bytes.','sakurairo_csf'),
  82. ),
  83. array(
  84. 'id' => 'font',
  85. 'type' => 'text',
  86. 'title' => __('Font','sakurairo_csf'),
  87. 'desc' => __('Fill in the font name. For example: Noto Serif SC','sakurairo_csf'),
  88. ),
  89. array(
  90. 'id' => 'size',
  91. 'type' => 'slider',
  92. 'title' => __('Size','sakurairo_csf'),
  93. 'desc' => __('Slide to adjust, the recommended value range is 70-90','sakurairo_csf'),
  94. 'unit' => 'px',
  95. 'min' => '40',
  96. 'max' => '140',
  97. ),
  98. array(
  99. 'id' => 'color',
  100. 'type' => 'color',
  101. 'title' => __('Color','sakurairo_csf'),
  102. 'desc' => __('Customize the colors, light colors are recommended','sakurairo_csf'),
  103. ),
  104. ),
  105. 'default' => array(
  106. 'text' => 'ひょうりゅ',
  107. 'size' => '80',
  108. 'color' => '#FFF',
  109. ),
  110. ),
  111. array(
  112. 'id' => 'iro_logo',
  113. 'type' => 'upload',
  114. 'title' => __('Navigation Menu Logo','sakurairo_csf'),
  115. 'desc' => __('The best size is 40px, and the nav menu text logo will not be displayed after filling in','sakurairo_csf'),
  116. 'library' => 'image',
  117. ),
  118. array(
  119. 'id' => 'favicon_link',
  120. 'type' => 'text',
  121. 'title' => __('Site Icon','sakurairo_csf'),
  122. 'desc' => __('Fill in the address, which decides the icon next to the title above the browser','sakurairo_csf'),
  123. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/basic/favicon.ico'
  124. ),
  125. array(
  126. 'id' => 'iro_meta',
  127. 'type' => 'switcher',
  128. 'title' => __('Custom Site Keywords and Descriptions','sakurairo_csf'),
  129. 'label' => __('After turning on, you can customize the site keywords and descriptions','sakurairo_csf'),
  130. 'default' => false
  131. ),
  132. array(
  133. 'id' => 'iro_meta_keywords',
  134. 'type' => 'text',
  135. 'title' => __('Site Keywords','sakurairo_csf'),
  136. 'dependency' => array( 'iro_meta', '==', 'true', '', 'true' ),
  137. 'desc' => __('The keywords should be separated with half width comma "," and it\'s better to set within 5 keywords','sakurairo_csf'),
  138. ),
  139. array(
  140. 'id' => 'iro_meta_description',
  141. 'type' => 'text',
  142. 'title' => __('Site Descriptions','sakurairo_csf'),
  143. 'dependency' => array( 'iro_meta', '==', 'true', '', 'true' ),
  144. 'desc' => __('Use concise words to describe the site, it is recommended to write within 120 words','sakurairo_csf'),
  145. ),
  146. )
  147. ) );
  148. Sakurairo_CSF::createSection( $prefix, array(
  149. 'id' => 'global',
  150. 'title' => __('Global Options','sakurairo_csf'),
  151. 'icon' => 'fa fa-globe',
  152. ) );
  153. Sakurairo_CSF::createSection( $prefix, array(
  154. 'parent' => 'global',
  155. 'title' => __('Appearance Options','sakurairo_csf'),
  156. 'icon' => 'fa fa-tree',
  157. 'fields' => array(
  158. array(
  159. 'type' => 'submessage',
  160. 'style' => 'info',
  161. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Global/#%E5%A4%96%E8%A7%82%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  162. ),
  163. array(
  164. 'type' => 'subheading',
  165. 'content' => __('Color Schemes','sakurairo_csf'),
  166. ),
  167. array(
  168. 'id' => 'extract_theme_skin_from_cover',
  169. 'type' => 'switcher',
  170. 'title' => __('Extract Theme Color from Cover Image','sakurairo_csf'),
  171. 'label' => __('Default on, Following options will be used as fallback (while cover image cannot be read by scripts)','sakurairo_csf'),
  172. 'default' => true
  173. ),
  174. array(
  175. 'id' => 'theme_skin',
  176. 'type' => 'color',
  177. 'title' => __('Theme Color','sakurairo_csf'),
  178. 'desc' => __('Customize the colors','sakurairo_csf'),
  179. 'default' => '#505050'
  180. ),
  181. array(
  182. 'id' => 'theme_skin_matching',
  183. 'type' => 'color',
  184. 'title' => __('Matching Color','sakurairo_csf'),
  185. 'desc' => __('Customize the colors','sakurairo_csf'),
  186. 'default' => '#a4cdf6'
  187. ),
  188. array(
  189. 'type' => 'subheading',
  190. 'content' => __('Dark Mode','sakurairo_csf'),
  191. ),
  192. array(
  193. 'id' => 'theme_skin_dark',
  194. 'type' => 'color',
  195. 'title' => __('Dark Mode Theme Color','sakurairo_csf'),
  196. 'desc' => __('Customize the colors','sakurairo_csf'),
  197. 'default' => '#294aa4'
  198. ),
  199. array(
  200. 'id' => 'theme_darkmode_auto',
  201. 'type' => 'switcher',
  202. 'title' => __('Automatically Switch to Dark Mode','sakurairo_csf'),
  203. 'label' => __('Default on','sakurairo_csf'),
  204. 'default' => true
  205. ),
  206. array(
  207. 'type' => 'content',
  208. 'content' => __(
  209. '<p><strong>Client local time:</strong>Dark mode will switch on automatically from 22:00 to 7:00</p>'
  210. .'<p><strong>Follow client settings:</strong>Follow client browser settings</p>'
  211. .'<p><strong>Always on:</strong>Always on, except being configured by the client</p>','sakurairo_csf'),
  212. 'dependency' => array( 'theme_darkmode_auto', '==', 'true', '', 'true' ),
  213. ),
  214. array(
  215. 'id' => 'theme_darkmode_strategy',
  216. 'type' => 'select',
  217. 'title' => __('Automatic Switch Strategy of Dark Mode','sakurairo_csf'),
  218. 'dependency' => array( 'theme_darkmode_auto', '==', 'true', '', 'true' ),
  219. 'options' => array(
  220. 'time' => __('Client local time','sakurairo_csf'),
  221. 'client' => __('Follow client settings','sakurairo_csf'),
  222. 'eien' => __('Always on','sakurairo_csf'),
  223. ),
  224. "default"=>"time"
  225. ),
  226. array(
  227. 'id' => 'theme_darkmode_img_bright',
  228. 'type' => 'slider',
  229. 'title' => __('Dark Mode Image Brightness','sakurairo_csf'),
  230. 'desc' => __('Slide to adjust, the recommended value range is 0.6-0.8','sakurairo_csf'),
  231. 'step' => '0.01',
  232. 'min' => '0.4',
  233. 'max' => '1',
  234. 'default' => '0.8'
  235. ),
  236. array(
  237. 'id' => 'theme_darkmode_widget_transparency',
  238. 'type' => 'slider',
  239. 'title' => __('Dark Mode Component Transparency','sakurairo_csf'),
  240. 'desc' => __('Slide to adjust, the recommended value range is 0.6-0.8','sakurairo_csf'),
  241. 'step' => '0.01',
  242. 'min' => '0.2',
  243. 'max' => '1',
  244. 'default' => '0.8'
  245. ),
  246. array(
  247. 'id' => 'theme_darkmode_background_transparency',
  248. 'type' => 'slider',
  249. 'title' => __('Dark mode Background Transparency','sakurairo_csf'),
  250. 'desc' => __('Slide to adjust, the recommended value range is 0.6-0.8. In order to ensure the best appearance, please keep the display of the frontend background image','sakurairo_csf'),
  251. 'step' => '0.01',
  252. 'min' => '0.2',
  253. 'max' => '1',
  254. 'default' => '0.8'
  255. ),
  256. array(
  257. 'type' => 'subheading',
  258. 'content' => __('Other Appearance Related','sakurairo_csf'),
  259. ),
  260. array(
  261. 'id' => 'theme_commemorate_mode',
  262. 'type' => 'switcher',
  263. 'title' => __('Commemorate Mode','sakurairo_csf'),
  264. 'label' => __('After turning on, a black and white filter will be added to the global theme','sakurairo_csf'),
  265. 'default' => false
  266. ),
  267. array(
  268. 'id' => 'load_out_svg',
  269. 'type' => 'text',
  270. 'title' => __('Occupying SVG while Loading Control Units','sakurairo_csf'),
  271. 'desc' => __('Fill in the address, which is the SVG displayed when loading control units','sakurairo_csf'),
  272. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/load_svg/outload.svg'
  273. ),
  274. )
  275. ) );
  276. Sakurairo_CSF::createSection( $prefix, array(
  277. 'parent' => 'global',
  278. 'title' => __('Font Options','sakurairo_csf'),
  279. 'icon' => 'fa fa-font',
  280. 'fields' => array(
  281. array(
  282. 'type' => 'submessage',
  283. 'style' => 'info',
  284. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Global/#%E5%AD%97%E4%BD%93%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  285. ),
  286. array(
  287. 'type' => 'subheading',
  288. 'content' => __('Global','sakurairo_csf'),
  289. ),
  290. array(
  291. 'id' => 'global_font_weight',
  292. 'type' => 'slider',
  293. 'title' => __('Non-Emphasis Text Weight','sakurairo_csf'),
  294. 'desc' => __('Slide to adjust, the recommended value range is 300-500','sakurairo_csf'),
  295. 'step' => '10',
  296. 'min' => '100',
  297. 'max' => '700',
  298. 'default' => '300'
  299. ),
  300. array(
  301. 'id' => 'global_font_size',
  302. 'type' => 'slider',
  303. 'title' => __('Text Font Size','sakurairo_csf'),
  304. 'desc' => __('Slide to adjust, the recommended value range is 15-18','sakurairo_csf'),
  305. 'step' => '1',
  306. 'unit' => 'px',
  307. 'min' => '10',
  308. 'max' => '20',
  309. 'default' => '15'
  310. ),
  311. array(
  312. 'type' => 'subheading',
  313. 'content' => __('External Fonts','sakurairo_csf'),
  314. ),
  315. array(
  316. 'id' => 'reference_exter_font',
  317. 'type' => 'switcher',
  318. 'title' => __('Reference External Fonts','sakurairo_csf'),
  319. 'label' => __('After turning on, you can use external fonts as the default font or other component fonts, but it may affect performance','sakurairo_csf'),
  320. 'default' => false
  321. ),
  322. array(
  323. 'id' => 'exter_font',
  324. 'type' => 'fieldset',
  325. 'title' => __('External Font Options','sakurairo_csf'),
  326. 'dependency' => array( 'reference_exter_font', '==', 'true', '', 'true' ),
  327. 'fields' => array(
  328. array(
  329. 'id' => 'font1',
  330. 'type' => 'text',
  331. 'title' => __('Font 1 Name','sakurairo_csf'),
  332. ),
  333. array(
  334. 'id' => 'link1',
  335. 'type' => 'text',
  336. 'title' => __('Font 1 Link','sakurairo_csf'),
  337. ),
  338. array(
  339. 'id' => 'font2',
  340. 'type' => 'text',
  341. 'title' => __('Font 2 Name','sakurairo_csf'),
  342. ),
  343. array(
  344. 'id' => 'link2',
  345. 'type' => 'text',
  346. 'title' => __('Font 2 Link','sakurairo_csf'),
  347. ),
  348. ),
  349. 'default' => array(
  350. 'font1' => '',
  351. 'link1' => '',
  352. 'font2' => '',
  353. 'link2' => '',
  354. ),
  355. ),
  356. array(
  357. 'id' => 'gfonts_api',
  358. 'type' => 'text',
  359. 'title' => __('Google Fonts Api Link','sakurairo_csf'),
  360. 'default' => 'fonts.googleapis.com'
  361. ),
  362. array(
  363. 'id' => 'gfonts_add_name',
  364. 'type' => 'text',
  365. 'title' => __('Google Fonts Name','sakurairo_csf'),
  366. 'desc' => __('Please make sure that the added fonts can be referenced in Google Fonts library. Fill in the font names. The added fonts must be preceded by "|". If multiple fonts are referenced, use "|" as the separator. If the font name has spaces, use a plus sign instead. For example: | zcool + xiaowei| Ma + Shan + Zheng','sakurairo_csf'),
  367. ),
  368. )
  369. ) );
  370. Sakurairo_CSF::createSection( $prefix, array(
  371. 'parent' => 'global',
  372. 'title' => __('Navigation Menu Options','sakurairo_csf'),
  373. 'icon' => 'fa fa-map-signs',
  374. 'fields' => array(
  375. array(
  376. 'type' => 'submessage',
  377. 'style' => 'info',
  378. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Global/#%E5%AF%BC%E8%88%AA%E8%8F%9C%E5%8D%95%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  379. ),
  380. array(
  381. 'id' => 'nav_menu_style',
  382. 'type' => 'image_select',
  383. 'title' => __('Nav Menu Style','sakurairo_csf'),
  384. 'options' => array(
  385. 'sakurairo' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/nav_menu_style_iro.webp',
  386. 'sakura' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/nav_menu_style_sakura.webp',
  387. ),
  388. 'default' => 'sakurairo'
  389. ),
  390. array(
  391. 'id' => 'nav_menu_radius',
  392. 'type' => 'slider',
  393. 'title' => __('Nav Menu Radius','sakurairo_csf'),
  394. 'dependency' => array( 'nav_menu_style', '==', 'sakurairo', '', 'true' ),
  395. 'desc' => __('Slide to adjust, the recommended value is 15','sakurairo_csf'),
  396. 'unit' => 'px',
  397. 'max' => '50',
  398. 'default' => '15'
  399. ),
  400. array(
  401. 'id' => 'nav_menu_display',
  402. 'type' => 'radio',
  403. 'title' => __('Nav Menu Content Display Method','sakurairo_csf'),
  404. 'desc' => __('You can choose to unfold or fold the nav menu contents','sakurairo_csf'),
  405. 'options' => array(
  406. 'unfold' => __('Unfold','sakurairo_csf'),
  407. 'fold' => __('Fold','sakurairo_csf'),
  408. ),
  409. 'default' => 'unfold'
  410. ),
  411. array(
  412. 'id' => 'nav_menu_animation',
  413. 'type' => 'switcher',
  414. 'title' => __('Nav Menu Animation Effects','sakurairo_csf'),
  415. 'label' => __('It is on by default. If it is off, the nav menu content will be displayed directly without effects','sakurairo_csf'),
  416. 'default' => true
  417. ),
  418. array(
  419. 'id' => 'nav_menu_animation_time',
  420. 'type' => 'slider',
  421. 'title' => __('Nav Menu Animation Time','sakurairo_csf'),
  422. 'dependency' => array( 'nav_menu_animation', '==', 'true', '', 'true' ),
  423. 'desc' => __('Slide to adjust, the recommended value range is 1-2','sakurairo_csf'),
  424. 'step' => '0.01',
  425. 'unit' => 's',
  426. 'max' => '5',
  427. 'default' => '2'
  428. ),
  429. array(
  430. 'id' => 'nav_menu_font',
  431. 'type' => 'text',
  432. 'title' => __('Nav Menu Font','sakurairo_csf'),
  433. 'desc' => __('Fill in the font name. For example: Noto Serif SC','sakurairo_csf'),
  434. 'default' => 'Noto Serif SC'
  435. ),
  436. array(
  437. 'id' => 'nav_menu_search',
  438. 'type' => 'switcher',
  439. 'title' => __('Nav Menu Search','sakurairo_csf'),
  440. 'label' => __('It is on by default. Click to enter the search area','sakurairo_csf'),
  441. 'default' => true
  442. ),
  443. array(
  444. 'id' => 'search_area_background',
  445. 'type' => 'upload',
  446. 'title' => __('Search Area Background Image','sakurairo_csf'),
  447. 'desc' => __('Set the background image of your search area. Leave this option blank to display a white background','sakurairo_csf'),
  448. 'dependency' => array( 'nav_menu_search', '==', 'true', '', 'true' ),
  449. 'library' => 'image',
  450. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/basic/iloli.gif'
  451. ),
  452. array(
  453. 'id' => 'nav_menu_user_avatar',
  454. 'type' => 'switcher',
  455. 'title' => __('Nav Menu User Avatar','sakurairo_csf'),
  456. 'label' => __('It is on by default. Click to enter the login interface','sakurairo_csf'),
  457. 'default' => true
  458. ),
  459. array(
  460. 'id' => 'mobile_menu_user_avatar',
  461. 'type' => 'switcher',
  462. 'title' => __('Nav Menu User Avatar in Mobile','sakurairo_csf'),
  463. 'label' => __('It is on by default. Click to enter the login interface','sakurairo_csf'),
  464. 'default' => true
  465. ),
  466. array(
  467. 'id' => 'unlisted_avatar',
  468. 'type' => 'upload',
  469. 'title' => __('Nav Menu Unlisted User Avatar','sakurairo_csf'),
  470. 'dependency' => array( 'nav_menu_user_avatar', '==', 'true', '', 'true' ),
  471. 'desc' => __('The best length-width ratio of is 1:1','sakurairo_csf'),
  472. 'library' => 'image',
  473. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/basic/topavatar.png'
  474. ),
  475. array(
  476. 'id' => 'nav_menu_secondary_arrow',
  477. 'type' => 'switcher',
  478. 'title' => __('Secondary Menu Prompt Arrow','sakurairo_csf'),
  479. 'label' => __('After turning on, the menu prompt arrow will appear in the secondary menu of the navigation menu','sakurairo_csf'),
  480. 'default' => false
  481. ),
  482. array(
  483. 'id' => 'nav_menu_secondary_radius',
  484. 'type' => 'slider',
  485. 'title' => __('Secondary Menu Radius','sakurairo_csf'),
  486. 'dependency' => array( 'nav_menu_style', '==', 'sakurairo', '', 'true' ),
  487. 'desc' => __('Slide to adjust, the recommended value is 15','sakurairo_csf'),
  488. 'unit' => 'px',
  489. 'max' => '30',
  490. 'default' => '15'
  491. ),
  492. array(
  493. 'id' => 'mashiro_logo_option',
  494. 'type' => 'switcher',
  495. 'title' => __('Mashiro Logo Style','sakurairo_csf'),
  496. 'label' => __('After turning on, the Mashiro Logo will appear and replace the navigation menu logo position','sakurairo_csf'),
  497. 'default' => false
  498. ),
  499. array(
  500. 'id' => 'mashiro_logo',
  501. 'type' => 'fieldset',
  502. 'title' => __('Nav Menu Text Logo Options','sakurairo_csf'),
  503. 'fields' => array(
  504. array(
  505. 'id' => 'text_a',
  506. 'type' => 'text',
  507. 'title' => __('Text A','sakurairo_csf'),
  508. ),
  509. array(
  510. 'id' => 'text_b',
  511. 'type' => 'text',
  512. 'title' => __('Text B','sakurairo_csf'),
  513. ),
  514. array(
  515. 'id' => 'text_c',
  516. 'type' => 'text',
  517. 'title' => __('Text C','sakurairo_csf'),
  518. ),
  519. array(
  520. 'id' => 'text_secondary',
  521. 'type' => 'text',
  522. 'title' => __('Secondary Text','sakurairo_csf'),
  523. 'dependency' => array(
  524. array('text_b', '!=', '', '', 'true'),
  525. array('mashiro_logo_option', '==', 'true', '', 'true')
  526. ),
  527. ),
  528. array(
  529. 'id' => 'font_name',
  530. 'type' => 'text',
  531. 'title' => __('Font Name','sakurairo_csf'),
  532. ),
  533. ),
  534. 'default' => array(
  535. 'text_a' => '',
  536. 'text_b' => '',
  537. 'text_c' => '',
  538. 'text_secondary' => '',
  539. 'font_name' => 'Noto Serif SC',
  540. ),
  541. ),
  542. )
  543. ) );
  544. Sakurairo_CSF::createSection( $prefix, array(
  545. 'parent' => 'global',
  546. 'title' => __('Widgets Panel and Frontend Related Options','sakurairo_csf'),
  547. 'icon' => 'fa fa-th-large',
  548. 'fields' => array(
  549. array(
  550. 'type' => 'submessage',
  551. 'style' => 'info',
  552. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Global/#%E6%A0%B7%E5%BC%8F%E8%8F%9C%E5%8D%95%E5%92%8C%E5%89%8D%E5%8F%B0%E8%83%8C%E6%99%AF%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  553. ),
  554. array(
  555. 'type' => 'subheading',
  556. 'content' => __('Widgets Panel','sakurairo_csf'),
  557. ),
  558. array(
  559. 'id' => 'style_menu_radius',
  560. 'type' => 'slider',
  561. 'title' => __('Widgets Panel Button Radius','sakurairo_csf'),
  562. 'desc' => __('Slide to adjust, the recommended value is 10','sakurairo_csf'),
  563. 'unit' => 'px',
  564. 'max' => '50',
  565. 'default' => '10'
  566. ),
  567. array(
  568. 'id' => 'style_menu_selection_radius',
  569. 'type' => 'slider',
  570. 'title' => __('Widgets Panel Widget Radius','sakurairo_csf'),
  571. 'desc' => __('Slide to adjust, the recommended value is 10','sakurairo_csf'),
  572. 'unit' => 'px',
  573. 'max' => '30',
  574. 'default' => '10'
  575. ),
  576. array(
  577. 'id' => 'style_menu_font',
  578. 'type' => 'text',
  579. 'title' => __('Widgets Panel Font','sakurairo_csf'),
  580. 'desc' => __('Fill in the font name. For example: Noto Serif SC','sakurairo_csf'),
  581. 'default' => 'Noto Serif SC'
  582. ),
  583. array(
  584. 'id' => 'sakura_widget',
  585. 'type' => 'switcher',
  586. 'title' => __('Widgets Panel WP Widget Area','sakurairo_csf'),
  587. 'label' => __('When turned on, the WP Widget Area will be displayed in Widgets Panel','sakurairo_csf'),
  588. 'default' => false
  589. ),
  590. array(
  591. 'id' => 'widget_daynight',
  592. 'type' => 'switcher',
  593. 'title' => __('Widgets Panel Day&Night Switching','sakurairo_csf'),
  594. 'label' => __('Enabled by default, the Day&Night Switching will be displayed in Widgets Panel','sakurairo_csf'),
  595. 'default' => true
  596. ),
  597. array(
  598. 'id' => 'widget_font',
  599. 'type' => 'switcher',
  600. 'title' => __('Widgets Panel Font Switching','sakurairo_csf'),
  601. 'label' => __('Enabled by default, the Font Switching will be displayed in Widgets Panel','sakurairo_csf'),
  602. 'default' => true
  603. ),
  604. array(
  605. 'type' => 'subheading',
  606. 'content' => __('Frontend Background','sakurairo_csf'),
  607. ),
  608. array(
  609. 'id' => 'reception_background_size',
  610. 'type' => 'select',
  611. 'options' => array(
  612. 'cover' => __('Cover','sakurairo_csf'),
  613. 'contain' => __('Contain','sakurairo_csf'),
  614. 'auto' => __('Auto','sakurairo_csf'),
  615. ),
  616. 'title' => __('Frontend Background Scaling Method','sakurairo_csf'),
  617. 'desc' => __('You can choose two ways to scale the frontend background, the default is auto-scaling','sakurairo_csf'),
  618. 'default' => 'auto'
  619. ),
  620. array(
  621. 'id' => 'reception_background_blur',
  622. 'type' => 'switcher',
  623. 'title' => __('Background Transparency Blur','sakurairo_csf'),
  624. 'label' => __('After opening Background Transparency Blur','sakurairo_csf'),
  625. 'default' => false
  626. ),
  627. array(
  628. 'id' => 'reception_background',
  629. 'type' => 'tabbed',
  630. 'title' => __('Widgets Panel Background Switching(Frontend Background)','sakurairo_csf'),
  631. 'tabs' => array(
  632. array(
  633. 'title' => __('Default','sakurairo_csf'),
  634. 'icon' => 'fa fa-television',
  635. 'fields' => array(
  636. array(
  637. 'id' => 'img1',
  638. 'type' => 'upload',
  639. 'title' => __('Image','sakurairo_csf'),
  640. ),
  641. )
  642. ),
  643. array(
  644. 'title' => __('Heart Shaped','sakurairo_csf'),
  645. 'icon' => 'fa fa-heart-o',
  646. 'fields' => array(
  647. array(
  648. 'id' => 'heart_shaped',
  649. 'type' => 'switcher',
  650. 'title' => __('Switch','sakurairo_csf'),
  651. ),
  652. array(
  653. 'id' => 'img2',
  654. 'type' => 'upload',
  655. 'title' => __('Image','sakurairo_csf'),
  656. ),
  657. )
  658. ),
  659. array(
  660. 'title' => __('Star Shaped','sakurairo_csf'),
  661. 'icon' => 'fa fa-star-o',
  662. 'fields' => array(
  663. array(
  664. 'id' => 'star_shaped',
  665. 'type' => 'switcher',
  666. 'title' => __('Switch','sakurairo_csf'),
  667. ),
  668. array(
  669. 'id' => 'img3',
  670. 'type' => 'upload',
  671. 'title' => __('Image','sakurairo_csf'),
  672. ),
  673. )
  674. ),
  675. array(
  676. 'title' => __('Square Shaped','sakurairo_csf'),
  677. 'icon' => 'fa fa-delicious',
  678. 'fields' => array(
  679. array(
  680. 'id' => 'square_shaped',
  681. 'type' => 'switcher',
  682. 'title' => __('Switch','sakurairo_csf'),
  683. ),
  684. array(
  685. 'id' => 'img4',
  686. 'type' => 'upload',
  687. 'title' => __('Image','sakurairo_csf'),
  688. ),
  689. )
  690. ),
  691. array(
  692. 'title' => __('Lemon Shaped','sakurairo_csf'),
  693. 'icon' => 'fa fa-lemon-o',
  694. 'fields' => array(
  695. array(
  696. 'id' => 'lemon_shaped',
  697. 'type' => 'switcher',
  698. 'title' => __('Switch','sakurairo_csf'),
  699. ),
  700. array(
  701. 'id' => 'img5',
  702. 'type' => 'upload',
  703. 'title' => __('Image','sakurairo_csf'),
  704. ),
  705. )
  706. ),
  707. ),
  708. 'default' => array(
  709. 'heart_shaped' => true,
  710. 'star_shaped' => true,
  711. 'square_shaped' => true,
  712. 'lemon_shaped' => true,
  713. 'img2' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/background/bg1.png',
  714. 'img3' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/background/bg2.png',
  715. 'img4' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/background/bg3.png',
  716. 'img5' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/background/bg4.png',
  717. )
  718. ),
  719. array(
  720. 'id' => 'reception_background_transparency',
  721. 'type' => 'slider',
  722. 'title' => __('Background Transparency in the Frontend','sakurairo_csf'),
  723. 'desc' => __('Slide to adjust, the recommended sliding value range is 0.6-0.8','sakurairo_csf'),
  724. 'step' => '0.01',
  725. 'min' => '0.2',
  726. 'max' => '1',
  727. 'default' => '0.8'
  728. ),
  729. array(
  730. 'type' => 'subheading',
  731. 'content' => __('Frontend Font','sakurairo_csf'),
  732. ),
  733. array(
  734. 'id' => 'global_default_font',
  735. 'type' => 'text',
  736. 'title' => __('Global Default Font/Widgets Panel Font Switching A','sakurairo_csf'),
  737. 'desc' => __('Fill in the font name. For example: Noto Serif SC','sakurairo_csf'),
  738. 'default' => 'Noto Serif SC'
  739. ),
  740. array(
  741. 'id' => 'global_font_2',
  742. 'type' => 'text',
  743. 'title' => __('Widgets Panel Font Switching B','sakurairo_csf'),
  744. 'dependency' => array( 'widget_font', '==', 'true', '', 'true' ),
  745. 'desc' => __('Fill in the font name. For example: Noto Serif SC','sakurairo_csf'),
  746. 'default' => 'Noto Sans SC'
  747. ),
  748. )
  749. ) );
  750. Sakurairo_CSF::createSection( $prefix, array(
  751. 'parent' => 'global',
  752. 'title' => __('Footer Options','sakurairo_csf'),
  753. 'icon' => 'fa fa-caret-square-o-down',
  754. 'fields' => array(
  755. array(
  756. 'type' => 'submessage',
  757. 'style' => 'info',
  758. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Global/#%E9%A1%B5%E5%B0%BE%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  759. ),
  760. array(
  761. 'id' => 'aplayer_server',
  762. 'type' => 'select',
  763. 'title' => __('Footer Online Music Player','sakurairo_csf'),
  764. 'desc' => __('A button will appear at the bottom left corner of the footer after turning on, click it and the footer online player will be displayed','sakurairo_csf'),
  765. 'options' => array(
  766. 'off' => __('Off','sakurairo_csf'),
  767. 'netease' => __('Netease Cloud Music','sakurairo_csf'),
  768. 'kugou' => __('Kugou Music(may not be available)','sakurairo_csf'),
  769. 'tencent' => __('QQ Music(may not be available)','sakurairo_csf'),
  770. ),
  771. 'default' => 'off'
  772. ),
  773. array(
  774. 'id' => 'custom_music_api',
  775. 'type' => 'text',
  776. 'title' => __('Use custom Meting API or playlist','sakurairo_csf'),
  777. 'dependency' => array( 'aplayer_server', '!=', 'off', '', 'true' ),
  778. 'desc' => __('Enter a custom Meting-api, which can also point to a playlist file. However, the ID will only be effective if the playlist is specified','sakurairo_csf'),
  779. ),
  780. array(
  781. 'id' => 'aplayer_server_proxy',
  782. 'type' => 'text',
  783. 'title' => __('Footer Online Music Player Proxy','sakurairo_csf'),
  784. 'dependency' => array( 'aplayer_server', '!=', 'off', '', 'true' ),
  785. 'desc' => __('Ex. http://127.0.0.1:8080. Reference: https://curl.se/libcurl/c/CURLOPT_PROXY.html','sakurairo_csf'),
  786. 'default' => ''
  787. ),
  788. array(
  789. 'id' => 'aplayer_playlistid',
  790. 'type' => 'text',
  791. 'title' => __('Footer Online Music Player Songlist ID','sakurairo_csf'),
  792. 'dependency' => array( 'aplayer_server', '!=', 'off', '', 'true' ),
  793. 'desc' => __('Fill in the song ID, e.g. https://music.163.com/#/playlist?id=5380675133 SongID:5380675133','sakurairo_csf'),
  794. 'default' => '5380675133'
  795. ),
  796. array(
  797. 'id' => 'aplayer_order',
  798. 'type' => 'select',
  799. 'title' => __('Footer Online Music Player Mode','sakurairo_csf'),
  800. 'dependency' => array( 'aplayer_server', '!=', 'off', '', 'true' ),
  801. 'desc' => __('Select music player mode','sakurairo_csf'),
  802. 'options' => array(
  803. 'list' => __('List','sakurairo_csf'),
  804. 'random' => __('Random','sakurairo_csf'),
  805. ),
  806. 'default' => 'list'
  807. ),
  808. array(
  809. 'id' => 'aplayer_preload',
  810. 'type' => 'select',
  811. 'title' => __('Footer Online Music Player Preload','sakurairo_csf'),
  812. 'dependency' => array( 'aplayer_server', '!=', 'off', '', 'true' ),
  813. 'desc' => __('Whether to preload songs','sakurairo_csf'),
  814. 'options' => array(
  815. 'none' => __('Off','sakurairo_csf'),
  816. 'metadata' => __('Preload Metadata','sakurairo_csf'),
  817. 'auto' => __('Auto','sakurairo_csf'),
  818. ),
  819. 'default' => 'auto'
  820. ),
  821. array(
  822. 'id' => 'aplayer_volume',
  823. 'type' => 'slider',
  824. 'title' => __('Default Volume of Footer Online Music Player','sakurairo_csf'),
  825. 'dependency' => array( 'aplayer_server', '!=', 'off', '', 'true' ),
  826. 'desc' => __('Slide to adjust, the recommended sliding value range is 0.4-0.6','sakurairo_csf'),
  827. 'step' => '0.01',
  828. 'max' => '1',
  829. 'default' => '0.5'
  830. ),
  831. array(
  832. 'id' => 'aplayer_cookie',
  833. 'type' => 'textarea',
  834. 'title' => __('Netease Cloud Music Cookies','sakurairo_csf'),
  835. 'dependency' => array( 'aplayer_server', '==', 'netease', '', 'true' ),
  836. 'desc' => __('If you want to play VIP music on Netease Cloud Music Platform, please fill in your account cookies in this option.','sakurairo_csf'),
  837. ),
  838. array(
  839. 'id' => 'footer_sakura',
  840. 'type' => 'switcher',
  841. 'title' => __('Footer Sakura Icon','sakurairo_csf'),
  842. 'label' => __('Enabled by default, sakura icon will appear on the footer','sakurairo_csf'),
  843. 'default' => true
  844. ),
  845. array(
  846. 'id' => 'footer_info',
  847. 'type' => 'textarea',
  848. 'title' => __('Footer Info','sakurairo_csf'),
  849. 'desc' => __('Footer description text, supports HTML code','sakurairo_csf'),
  850. 'default' => 'Copyright &copy; by FUUKEI All Rights Reserved.'
  851. ),
  852. array(
  853. 'id' => 'footer_text_font',
  854. 'type' => 'text',
  855. 'title' => __('Footer Text Font','sakurairo_csf'),
  856. 'desc' => __('Fill in the font name. For example: Noto Serif SC','sakurairo_csf'),
  857. 'default' => 'Noto Serif SC'
  858. ),
  859. array(
  860. 'id' => 'footer_load_occupancy',
  861. 'type' => 'switcher',
  862. 'title' => __('Footer Load Occupancy Query','sakurairo_csf'),
  863. 'label' => __('Load occupancy information will appear at the end of the page after turning it on. Not recommended in production environment.','sakurairo_csf'),
  864. 'default' => false
  865. ),
  866. array(
  867. 'id' => 'footer_upyun',
  868. 'type' => 'switcher',
  869. 'title' => __('Footer Upyun League Logo','sakurairo_csf'),
  870. 'label' => __('Upyun Logo will appear at the end of the page after turning it on','sakurairo_csf'),
  871. 'default' => false
  872. ),
  873. array(
  874. 'id'=>'footer_addition',
  875. 'type' => 'code_editor',
  876. 'sanitize' => false,
  877. 'title' => __('Footer Addition','sakurairo_csf'),
  878. 'desc' => __('Add HTML code at the end of the page. Useful for adding customize JavaScript.','sakurairo_csf'),
  879. ),
  880. array(
  881. 'type' => 'subheading',
  882. 'content' => __('Hitokoto','sakurairo_csf'),
  883. ),
  884. array(
  885. 'id' => 'footer_yiyan',
  886. 'type' => 'switcher',
  887. 'title' => __('Footer Hitokoto','sakurairo_csf'),
  888. 'label' => __('Hitokoto will appear at the end of the page after turning it on','sakurairo_csf'),
  889. 'default' => false
  890. ),
  891. array(
  892. 'type' => 'content',
  893. 'dependency' => array( 'footer_yiyan', '==', 'true', '', 'true' ),
  894. 'content' => __('<h4>Hitokoto API Setup Instructions</h4>'
  895. .' <p>Fill in as the example:<code> ["https://api.nmxc.ltd/yiyan/", "https://v1.hitokoto.cn/"]</code>, where the first API will be used first and the next ones will be the backup. </p>'
  896. .' <p><strong>Official API:</strong> See the <a href="https://developer.hitokoto.cn/sentence/"> documentation</a> for how to use it, and the parameter "return code" should not be anything except JSON. <a href="https://v1.hitokoto.cn/">https://v1.hitokoto.cn/</a></p>'
  897. .' <p><strong>Maho API:</strong> An reverse proxy mirror of the official API. <a href="https://api.nmxc.ltd/yiyan/">https://api.nmxc.ltd/yiyan/</a></p>','sakurairo_csf'),
  898. ),
  899. array(
  900. 'id' => 'yiyan_api',
  901. 'type' => 'textarea',
  902. 'title' => __('Hitokoto API address','sakurairo_csf'),
  903. 'dependency' => array( 'footer_yiyan', '==', 'true', '', 'true' ),
  904. 'desc' => __('Fill in the address in JavaScript array format','sakurairo_csf'),
  905. 'default' => '["https://v1.hitokoto.cn/","https://api.nmxc.ltd/yiyan/"]'
  906. ),
  907. )
  908. ) );
  909. Sakurairo_CSF::createSection( $prefix, array(
  910. 'parent' => 'global',
  911. 'title' => __('Cursor Options','sakurairo_csf'),
  912. 'icon' => 'fa fa-i-cursor',
  913. 'fields' => array(
  914. array(
  915. 'type' => 'submessage',
  916. 'style' => 'info',
  917. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Global/#%E5%85%89%E6%A0%87%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  918. ),
  919. array(
  920. 'id' => 'cursor_nor',
  921. 'type' => 'text',
  922. 'title' => __('Standard Cursor Style','sakurairo_csf'),
  923. 'desc' => __('Apply to global, fill in ".cur" mouse file link','sakurairo_csf'),
  924. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/cursor/normal.cur'
  925. ),
  926. array(
  927. 'id' => 'cursor_no',
  928. 'type' => 'text',
  929. 'title' => __('Selected Cursor Style','sakurairo_csf'),
  930. 'desc' => __('Apply to multiple styles, fill in ".cur" file link','sakurairo_csf'),
  931. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/cursor/No_Disponible.cur'
  932. ),
  933. array(
  934. 'id' => 'cursor_ayu',
  935. 'type' => 'text',
  936. 'title' => __('Selected Control Unit Cursor Style','sakurairo_csf'),
  937. 'desc' => __('Apply to selected control unit, fill in ".cur" file link','sakurairo_csf'),
  938. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/cursor/ayuda.cur'
  939. ),
  940. array(
  941. 'id' => 'cursor_text',
  942. 'type' => 'text',
  943. 'title' => __('Selected Text Cursor Style','sakurairo_csf'),
  944. 'desc' => __('Apply to selected text, fill in ".cur" file link','sakurairo_csf'),
  945. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/cursor/texto.cur'
  946. ),
  947. array(
  948. 'id' => 'cursor_work',
  949. 'type' => 'text',
  950. 'title' => __('Work Status Cursor Style','sakurairo_csf'),
  951. 'desc' => __('Apply to load control unit, fill in ".cur" file link','sakurairo_csf'),
  952. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/cursor/work.cur'
  953. ),
  954. )
  955. ) );
  956. Sakurairo_CSF::createSection( $prefix, array(
  957. 'parent' => 'global',
  958. 'title' => __('Additional Options','sakurairo_csf'),
  959. 'icon' => 'fa fa-gift',
  960. 'fields' => array(
  961. array(
  962. 'type' => 'submessage',
  963. 'style' => 'info',
  964. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Global/#%E9%A2%9D%E5%A4%96%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  965. ),
  966. array(
  967. 'type' => 'subheading',
  968. 'content' => __('Effects&Animations','sakurairo_csf'),
  969. ),
  970. array(
  971. 'id' => 'preload_animation',
  972. 'type' => 'switcher',
  973. 'title' => __('Preload Animation','sakurairo_csf'),
  974. 'label' => __('Preload animation before new pages load; To enable this option, ensure your page resources can load properly.' ,'sakurairo_csf'),
  975. 'default' => false
  976. ),
  977. array(
  978. 'id' => 'preload_animation_color1',
  979. 'type' => 'color',
  980. 'title' => __('Preload Animation Color A','sakurairo_csf'),
  981. 'dependency' => array( 'preload_animation', '==', 'true', '', 'true' ),
  982. 'desc' => __('Customize the colors','sakurairo_csf'),
  983. 'default' => '#ffea99'
  984. ),
  985. array(
  986. 'id' => 'preload_animation_color2',
  987. 'type' => 'color',
  988. 'title' => __('Preload Animation Color B','sakurairo_csf'),
  989. 'dependency' => array( 'preload_animation', '==', 'true', '', 'true' ),
  990. 'desc' => __('Customize the colors','sakurairo_csf'),
  991. 'default' => '#FCCD00'
  992. ),
  993. array(
  994. 'id' => 'preload_blur',
  995. 'title' => __('Preload Animation Blur Transition Effect','sakurairo_csf'),
  996. 'dependency' => array( 'preload_animation', '==', 'true', '', 'true' ),
  997. 'desc' => __('Blur transition duration in milliseconds ms, off when set to 0.' ,'sakurairo_csf'),
  998. 'default' => '0',
  999. 'type' => 'slider',
  1000. 'step' => '10',
  1001. 'max' => '10000',
  1002. ),
  1003. array(
  1004. 'id' => 'sakura_falling_effects',
  1005. 'type' => 'select',
  1006. 'title' => __('Sakura Falling Effects','sakurairo_csf'),
  1007. 'options' => array(
  1008. 'off' => __('Off','sakurairo_csf'),
  1009. 'native' => __('Native Quantity','sakurairo_csf'),
  1010. 'quarter' => __('Quarter Quantity','sakurairo_csf'),
  1011. 'half' => __('Half Quantity','sakurairo_csf'),
  1012. 'less' => __('Less Quantity','sakurairo_csf'),
  1013. ),
  1014. 'default' => 'off'
  1015. ),
  1016. array(
  1017. 'id' => 'particles_effects',
  1018. 'type' => 'switcher',
  1019. 'title' => __('Particles Effects','sakurairo_csf'),
  1020. 'dependency' => array( 'sakura_falling_effects', '==', 'off', '', 'true' ),
  1021. 'label' => __('Particles effects will appear in the global background. Please open the Cover-and-Frontend-Background-Integration Options to get the best experience','sakurairo_csf'),
  1022. 'default' => false
  1023. ),
  1024. array(
  1025. 'id'=> 'particles_json',
  1026. 'type' => 'code_editor',
  1027. 'sanitize' => false,
  1028. 'title' => __('Particles JSON','sakurairo_csf'),
  1029. 'dependency' => array( 'particles_effects', '==', 'true', '', 'true' ),
  1030. 'desc' => __('You can go to the <a href="https://vincentgarreau.com/particles.js/">Project Address</a> to generate your unique Particles Effects','sakurairo_csf'),
  1031. 'default' => '
  1032. {
  1033. "particles": {
  1034. "number": {
  1035. "value": 200,
  1036. "density": {
  1037. "enable": true,
  1038. "value_area": 800
  1039. }
  1040. },
  1041. "color": {
  1042. "value": "#fff"
  1043. },
  1044. "shape": {
  1045. "type": "circle",
  1046. "stroke": {
  1047. "width": 0,
  1048. "color": "#000000"
  1049. },
  1050. "polygon": {
  1051. "nb_sides": 5
  1052. },
  1053. "image": {
  1054. "src": "img/github.svg",
  1055. "width": 100,
  1056. "height": 100
  1057. }
  1058. },
  1059. "opacity": {
  1060. "value": 0.5,
  1061. "random": true,
  1062. "anim": {
  1063. "enable": false,
  1064. "speed": 1,
  1065. "opacity_min": 0.1,
  1066. "sync": false
  1067. }
  1068. },
  1069. "size": {
  1070. "value": 10,
  1071. "random": true,
  1072. "anim": {
  1073. "enable": false,
  1074. "speed": 40,
  1075. "size_min": 0.1,
  1076. "sync": false
  1077. }
  1078. },
  1079. "line_linked": {
  1080. "enable": false,
  1081. "distance": 500,
  1082. "color": "#ffffff",
  1083. "opacity": 0.4,
  1084. "width": 2
  1085. },
  1086. "move": {
  1087. "enable": true,
  1088. "speed": 2,
  1089. "direction": "bottom",
  1090. "random": false,
  1091. "straight": false,
  1092. "out_mode": "out",
  1093. "bounce": false,
  1094. "attract": {
  1095. "enable": false,
  1096. "rotateX": 600,
  1097. "rotateY": 1200
  1098. }
  1099. }
  1100. },
  1101. "interactivity": {
  1102. "detect_on": "canvas",
  1103. "events": {
  1104. "onhover": {
  1105. "enable": true,
  1106. "mode": "bubble"
  1107. },
  1108. "onclick": {
  1109. "enable": true,
  1110. "mode": "repulse"
  1111. },
  1112. "resize": true
  1113. },
  1114. "modes": {
  1115. "grab": {
  1116. "distance": 400,
  1117. "line_linked": {
  1118. "opacity": 0.5
  1119. }
  1120. },
  1121. "bubble": {
  1122. "distance": 400,
  1123. "size": 4,
  1124. "duration": 0.3,
  1125. "opacity": 1,
  1126. "speed": 3
  1127. },
  1128. "repulse": {
  1129. "distance": 200,
  1130. "duration": 0.4
  1131. },
  1132. "push": {
  1133. "particles_nb": 4
  1134. },
  1135. "remove": {
  1136. "particles_nb": 2
  1137. }
  1138. }
  1139. },
  1140. "retina_detect": true
  1141. }'
  1142. ),
  1143. array(
  1144. 'id' => 'note_effects',
  1145. 'type' => 'switcher',
  1146. 'title' => __('Note Touch Effects','sakurairo_csf'),
  1147. 'label' => __('After turning on, there will be a note sound alert when the back to top button and Mashiro style logo touch','sakurairo_csf'),
  1148. 'default' => false
  1149. ),
  1150. array(
  1151. 'type' => 'subheading',
  1152. 'content' => __('Feature','sakurairo_csf'),
  1153. ),
  1154. array(
  1155. 'id' => 'poi_pjax',
  1156. 'type' => 'switcher',
  1157. 'title' => __('PJAX Partial Refresh','sakurairo_csf'),
  1158. 'label' => __('Enabled by default, clicking to a new page will not require reloading','sakurairo_csf'),
  1159. 'default' => true
  1160. ),
  1161. array(
  1162. 'id' => 'pjax_keep_loading',
  1163. 'type' => 'textarea',
  1164. 'title' => __('Resources that still need refreshing in the footer after enabling PJAX','sakurairo_csf'),
  1165. 'dependency' => array( 'poi_pjax', '==', 'true', '', 'true' ),
  1166. 'desc' => __('After enabling PJAX, custom content in the footer will not be refreshed on page navigation. You can specify paths for JavaScript and stylesheet resources that need to be reloaded on each page in the footer here, one per line. These resources will be reloaded once PJAX completes content loading.','sakurairo_csf'),
  1167. ),
  1168. array(
  1169. 'id' => 'nprogress_on',
  1170. 'type' => 'switcher',
  1171. 'title' => __('NProgress Loading Progress Bar','sakurairo_csf'),
  1172. 'label' => __('Enabled by default, when loading page there will be a progress bar alert','sakurairo_csf'),
  1173. 'default' => true
  1174. ),
  1175. array(
  1176. 'id' => 'smoothscroll_option',
  1177. 'type' => 'switcher',
  1178. 'title' => __('Global Smooth Scroll','sakurairo_csf'),
  1179. 'label' => __('Enabled by default, page scrolling will be smoother','sakurairo_csf'),
  1180. 'default' => true
  1181. ),
  1182. array(
  1183. 'id' => 'captcha_select',
  1184. 'type' => 'select',
  1185. 'title' => __('Captcha Selection','sakurairo_csf'),
  1186. 'options' => array(
  1187. 'off' => __('Off','sakurairo_csf'),
  1188. 'iro_captcha' => __('Theme Built in Captcha','sakurairo_csf'),
  1189. 'vaptcha' => __('Vaptcha','sakurairo_csf')
  1190. ),
  1191. 'default' => 'off',
  1192. ),
  1193. array(
  1194. 'id' => 'vaptcha_vid',
  1195. 'type' => 'text',
  1196. 'title' => __('Vaptcha VID','sakurairo_csf'),
  1197. 'dependency' => array( 'captcha_select', '==', 'vaptcha', '', 'true' ),
  1198. 'desc' => __('Fill in your Vaptcha VID','sakurairo_csf'),
  1199. ),
  1200. array(
  1201. 'id' => 'vaptcha_key',
  1202. 'type' => 'text',
  1203. 'title' => __('Vaptcha KEY','sakurairo_csf'),
  1204. 'dependency' => array( 'captcha_select', '==', 'vaptcha', '', 'true' ),
  1205. 'desc' => __('Fill in your Vaptcha KEY','sakurairo_csf'),
  1206. ),
  1207. array(
  1208. 'id' => 'vaptcha_scene',
  1209. 'type' => 'select',
  1210. 'title' => __('Vaptcha Scene','sakurairo_csf'),
  1211. 'dependency' => array( 'captcha_select', '==', 'vaptcha', '', 'true' ),
  1212. 'options' => array(
  1213. '1' => __(1,'sakurairo_csf'),
  1214. '2' => __(2,'sakurairo_csf'),
  1215. '3' => __(3,'sakurairo_csf'),
  1216. '4' => __(4,'sakurairo_csf'),
  1217. '5' => __(5,'sakurairo_csf'),
  1218. '6' => __(6,'sakurairo_csf'),
  1219. ),
  1220. 'default' => 1,
  1221. ),
  1222. array(
  1223. 'id' => 'pagenav_style',
  1224. 'type' => 'radio',
  1225. 'title' => __('Pagination Mode','sakurairo_csf'),
  1226. 'options' => array(
  1227. 'ajax' => __('Ajax Load','sakurairo_csf'),
  1228. 'np' => __('Page Up/Down','sakurairo_csf'),
  1229. ),
  1230. 'default' => 'ajax'
  1231. ),
  1232. array(
  1233. 'id' => 'page_auto_load',
  1234. 'type' => 'select',
  1235. 'title' => __('Next Page Auto Load','sakurairo_csf'),
  1236. 'dependency' => array( 'pagenav_style', '==', 'ajax', '', 'true' ),
  1237. 'options' => array(
  1238. '0' => __('0 Sec','sakurairo_csf'),
  1239. '1' => __('1 Sec','sakurairo_csf'),
  1240. '2' => __('2 Sec','sakurairo_csf'),
  1241. '3' => __('3 Sec','sakurairo_csf'),
  1242. '4' => __('4 Sec','sakurairo_csf'),
  1243. '5' => __('5 Sec','sakurairo_csf'),
  1244. '6' => __('6 Sec','sakurairo_csf'),
  1245. '7' => __('7 Sec','sakurairo_csf'),
  1246. '8' => __('8 Sec','sakurairo_csf'),
  1247. '9' => __('9 Sec','sakurairo_csf'),
  1248. '10' => __('10 Sec','sakurairo_csf'),
  1249. '233' => __('do not autoload','sakurairo_csf'),
  1250. ),
  1251. 'default' => '233'
  1252. ),
  1253. array(
  1254. 'id' => 'load_nextpage_svg',
  1255. 'type' => 'text',
  1256. 'title' => __('Placeholder SVG when loading the next page','sakurairo_csf'),
  1257. 'desc' => __('Fill in the address, this is the SVG that will be displayed as a placeholder when the next page is loading','sakurairo_csf'),
  1258. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/load_svg/ball.svg'
  1259. ),
  1260. )
  1261. ) );
  1262. Sakurairo_CSF::createSection( $prefix, array(
  1263. 'id' => 'homepage',
  1264. 'title' => __('HomePage Options','sakurairo_csf'),
  1265. 'icon' => 'fa fa-home',
  1266. ) );
  1267. Sakurairo_CSF::createSection( $prefix, array(
  1268. 'parent' => 'homepage',
  1269. 'title' => __('Cover Options','sakurairo_csf'),
  1270. 'icon' => 'fa fa-laptop',
  1271. 'fields' => array(
  1272. array(
  1273. 'type' => 'submessage',
  1274. 'style' => 'info',
  1275. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Homepage/#%E5%B0%81%E9%9D%A2%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  1276. ),
  1277. array(
  1278. 'id' => 'cover_switch',
  1279. 'type' => 'switcher',
  1280. 'title' => __('Cover Switch','sakurairo_csf'),
  1281. 'label' => __('On by default, if off, all options below will be disabled','sakurairo_csf'),
  1282. 'default' => true
  1283. ),
  1284. array(
  1285. 'id' => 'cover_full_screen',
  1286. 'type' => 'switcher',
  1287. 'title' => __('Cover Full Screen','sakurairo_csf'),
  1288. 'label' => __('Default on','sakurairo_csf'),
  1289. 'dependency' => array( 'cover_switch', '==', 'true', '', 'true' ),
  1290. 'default' => true
  1291. ),
  1292. array(
  1293. 'id' => 'cover_half_screen_curve',
  1294. 'type' => 'switcher',
  1295. 'title' => __('Cover Arc Occlusion (Below)','sakurairo_csf'),
  1296. 'label' => __('An arc occlusion will appear below the cover when turned on','sakurairo_csf'),
  1297. 'dependency' => array(
  1298. array( 'cover_switch', '==', 'true', '', 'true' ),
  1299. array( 'cover_full_screen', '==', 'false' ),
  1300. ),
  1301. 'default' => false
  1302. ),
  1303. array(
  1304. 'id' => 'cover_radius',
  1305. 'type' => 'slider',
  1306. 'title' => __('Cover Radius','sakurairo_csf'),
  1307. 'desc' => __('Slide to adjust, the recommended value range is 15-20','sakurairo_csf'),
  1308. 'dependency' => array( 'cover_switch', '==', 'true', '', 'true' ),
  1309. 'unit' => 'px',
  1310. 'max' => '60',
  1311. 'default' => '15'
  1312. ),
  1313. array(
  1314. 'id' => 'cover_animation',
  1315. 'type' => 'switcher',
  1316. 'title' => __('Cover Animation','sakurairo_csf'),
  1317. 'label' => __('On by default, if off, the cover will be displayed directly','sakurairo_csf'),
  1318. 'dependency' => array( 'cover_switch', '==', 'true', '', 'true' ),
  1319. 'default' => true
  1320. ),
  1321. array(
  1322. 'id' => 'cover_animation_time',
  1323. 'type' => 'slider',
  1324. 'title' => __('Cover Animation Time','sakurairo_csf'),
  1325. 'desc' => __('Slide to adjust, the recommended value range is 1-2','sakurairo_csf'),
  1326. 'dependency' => array(
  1327. array( 'cover_switch', '==', 'true', '', 'true' ),
  1328. array( 'cover_animation', '==', 'true' ),
  1329. ),
  1330. 'step' => '0.01',
  1331. 'unit' => 's',
  1332. 'max' => '5',
  1333. 'default' => '2'
  1334. ),
  1335. array(
  1336. 'id' => 'infor_bar',
  1337. 'type' => 'switcher',
  1338. 'title' => __('Cover Info Bar','sakurairo_csf'),
  1339. 'label' => __('Enabled by default, show avatar, Mashiro effects text, signature bar, shuoshuo bar, social area','sakurairo_csf'),
  1340. 'dependency' => array( 'cover_switch', '==', 'true', '', 'true' ),
  1341. 'default' => true
  1342. ),
  1343. array(
  1344. 'id' => 'infor_bar_style',
  1345. 'type' => 'image_select',
  1346. 'title' => __('Cover Info Bar Style','sakurairo_csf'),
  1347. 'options' => array(
  1348. 'v1' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/infor_bar_style_v1.webp',
  1349. 'v2' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/infor_bar_style_v2.webp',
  1350. ),
  1351. 'dependency' => array(
  1352. array( 'cover_switch', '==', 'true', '', 'true' ),
  1353. array( 'infor_bar', '==', 'true' ),
  1354. ),
  1355. 'default' => 'v1'
  1356. ),
  1357. array(
  1358. 'id' => 'homepage_widget_transparency',
  1359. 'type' => 'slider',
  1360. 'title' => __('HomePage Widget Transparency','sakurairo_csf'),
  1361. 'desc' => __('Slide to adjust, the recommended value range is 0.6-0.8','sakurairo_csf'),
  1362. 'step' => '0.01',
  1363. 'min' => '0.2',
  1364. 'max' => '1',
  1365. 'default' => '0.7'
  1366. ),
  1367. array(
  1368. 'id' => 'avatar_radius',
  1369. 'type' => 'slider',
  1370. 'title' => __('Cover Info Bar Avatar Radius','sakurairo_csf'),
  1371. 'desc' => __('Slide to adjust, the recommended value is 100','sakurairo_csf'),
  1372. 'dependency' => array(
  1373. array( 'cover_switch', '==', 'true', '', 'true' ),
  1374. array( 'infor_bar', '==', 'true' ),
  1375. ),
  1376. 'unit' => 'px',
  1377. 'default' => '100'
  1378. ),
  1379. array(
  1380. 'id' => 'signature_radius',
  1381. 'type' => 'slider',
  1382. 'title' => __('Cover Info Bar Rounded','sakurairo_csf'),
  1383. 'desc' => __('Slide to adjust, the recommended value range 10-20','sakurairo_csf'),
  1384. 'dependency' => array(
  1385. array( 'cover_switch', '==', 'true', '', 'true' ),
  1386. array( 'infor_bar', '==', 'true' ),
  1387. ),
  1388. 'unit' => 'px',
  1389. 'max' => '50',
  1390. 'default' => '15'
  1391. ),
  1392. array(
  1393. 'id' => 'signature_text',
  1394. 'type' => 'text',
  1395. 'title' => __('Cover Signature Field Text','sakurairo_csf'),
  1396. 'desc' => __('A self-descriptive quote','sakurairo_csf'),
  1397. 'dependency' => array(
  1398. array( 'cover_switch', '==', 'true', '', 'true' ),
  1399. array( 'infor_bar', '==', 'true' ),
  1400. ),
  1401. 'default' => '届ける言葉を今は育ててる'
  1402. ),
  1403. array(
  1404. 'id' => 'signature_font',
  1405. 'type' => 'text',
  1406. 'title' => __('Cover Signature Field Text Font','sakurairo_csf'),
  1407. 'desc' => __('Fill in the font name. For example: Noto Serif SC','sakurairo_csf'),
  1408. 'dependency' => array(
  1409. array( 'cover_switch', '==', 'true', '', 'true' ),
  1410. array( 'infor_bar', '==', 'true' ),
  1411. ),
  1412. 'default' => 'Noto Serif SC'
  1413. ),
  1414. array(
  1415. 'id' => 'signature_font_size',
  1416. 'type' => 'slider',
  1417. 'title' => __('Cover Signature Field Text Font Size','sakurairo_csf'),
  1418. 'desc' => __('Slide to adjust, the recommended value range is 15-18','sakurairo_csf'),
  1419. 'dependency' => array(
  1420. array( 'cover_switch', '==', 'true', '', 'true' ),
  1421. array( 'infor_bar', '==', 'true' ),
  1422. ),
  1423. 'unit' => 'px',
  1424. 'min' => '5',
  1425. 'max' => '20',
  1426. 'default' => '16'
  1427. ),
  1428. array(
  1429. 'id' => 'signature_typing',
  1430. 'type' => 'switcher',
  1431. 'title' => __('Cover Signature Bar Typing Effects','sakurairo_csf'),
  1432. 'label' => __('When turned on, the signature bar text will have an additional paragraph of text and will be rendered with typing effects','sakurairo_csf'),
  1433. 'dependency' => array(
  1434. array( 'cover_switch', '==', 'true', '', 'true' ),
  1435. array( 'infor_bar', '==', 'true' ),
  1436. ),
  1437. 'default' => false
  1438. ),
  1439. array(
  1440. 'id' => 'signature_typing_marks',
  1441. 'type' => 'switcher',
  1442. 'title' => __('Cover Signature Field Typing Effects Double Quotes','sakurairo_csf'),
  1443. 'dependency' => array(
  1444. array( 'cover_switch', '==', 'true', '', 'true' ),
  1445. array( 'infor_bar', '==', 'true' ),
  1446. array( 'signature_typing', '==', 'true' ),
  1447. ),
  1448. 'label' => __('Typing effects will be appended with double quotes when turned on','sakurairo_csf'),
  1449. 'default' => false
  1450. ),
  1451. array(
  1452. 'id' => 'signature_typing_placeholder',
  1453. 'type' => 'text',
  1454. 'title' => __('Cover Signature Field Typing Effects Placeholder','sakurairo_csf'),
  1455. 'dependency' => array(
  1456. array( 'cover_switch', '==', 'true', '', 'true' ),
  1457. array( 'infor_bar', '==', 'true' ),
  1458. array( 'signature_typing', '==', 'true' ),
  1459. ),
  1460. 'default' => '疯狂造句中......'
  1461. ),
  1462. array(
  1463. 'id' => 'signature_typing_json',
  1464. 'type' => 'code_editor',
  1465. 'sanitize' => false,
  1466. 'title' => __('Typed.js initial option','sakurairo_csf'),
  1467. 'dependency' => array(
  1468. array( 'cover_switch', '==', 'true', '', 'true' ),
  1469. array( 'infor_bar', '==', 'true' ),
  1470. array( 'signature_typing', '==', 'true' ),
  1471. ),
  1472. 'default' => '{"strings":["给时光以生命,给岁月以文明"],"typeSpeed":140,"backSpeed":50,"loop":false,"showCursor":true}'
  1473. ),
  1474. array(
  1475. 'id' => 'random_graphs_options',
  1476. 'type' => 'select',
  1477. 'title' => __('Cover Random Image Options','sakurairo_csf'),
  1478. 'options' => array(
  1479. 'external_api' => __('External API','sakurairo_csf'),
  1480. 'webp_optimization' => __('Webp optimized','sakurairo_csf'),
  1481. 'local' => __('Local','sakurairo_csf'),
  1482. ),
  1483. 'dependency' => array( 'cover_switch', '==', 'true', '', 'true' ),
  1484. 'default' => 'external_api'
  1485. ),
  1486. array(
  1487. 'id' => 'random_graphs_mts',
  1488. 'type' => 'switcher',
  1489. 'title' => __('Cover Random Image Multi-terminal Separation','sakurairo_csf'),
  1490. 'label' => __('Enabled by default, desktop and mobile devices will use separate random image addresses','sakurairo_csf'),
  1491. 'dependency' => array( 'cover_switch', '==', 'true', '', 'true' ),
  1492. 'default' => true
  1493. ),
  1494. array(
  1495. 'id' => 'random_graphs_link',
  1496. 'type' => 'text',
  1497. 'title' => __('Webp Optimization/External API Desktop Side Random Graphics Address','sakurairo_csf'),
  1498. 'desc' => __('Fill in an URL','sakurairo_csf'),
  1499. 'dependency' => array(
  1500. array( 'cover_switch', '==', 'true', '', 'true' ),
  1501. array( 'random_graphs_options', '!=', 'local', '', 'true' ),
  1502. ),
  1503. 'default' => 'https://api.maho.cc/random-img/pc.php',
  1504. 'sanitize' => false,
  1505. 'validate' => 'csf_validate_url',
  1506. ),
  1507. array(
  1508. 'id' => 'random_graphs_link_mobile',
  1509. 'type' => 'text',
  1510. 'title' => __('External API Mobile Devices Random Image Address','sakurairo_csf'),
  1511. 'dependency' => array(
  1512. array( 'random_graphs_mts', '==', 'true' ),
  1513. array( 'cover_switch', '==', 'true', '', 'true' ),
  1514. array( 'random_graphs_options', '!=', 'local', '', 'true' ),
  1515. ),
  1516. 'desc' => __('Fill in an URL','sakurairo_csf'),
  1517. 'default' => 'https://api.maho.cc/random-img/mobile.php',
  1518. 'sanitize' => false,
  1519. 'validate' => 'csf_validate_url',
  1520. ),
  1521. array(
  1522. 'id' => 'cache_cover',
  1523. 'type' => 'switcher',
  1524. 'title' => __('Cover Random Background Image Cache','sakurairo_csf'),
  1525. 'label' => __('Enabled by default, this feature will cache a cover image locally, which can improve the loading speed of the first cover after entering the homepage. Note: This feature needs the cover APIs that accept cross-domain requests.' ,'sakurairo_csf'),
  1526. 'dependency' => array( 'cover_switch', '==', 'true', '', 'true' ),
  1527. 'default' => true
  1528. ),
  1529. array(
  1530. 'id' => 'site_bg_as_cover',
  1531. 'type' => 'switcher',
  1532. 'title' => __('Cover and Frontend Background Integration','sakurairo_csf'),
  1533. 'label' => __('When enabled, the background of the cover will be set to transparent, while the frontend background will use the cover\'s random image API','sakurairo_csf'),
  1534. 'dependency' => array( 'cover_switch', '==', 'true', '', 'true' ),
  1535. 'default' => false
  1536. ),
  1537. array(
  1538. 'id' => 'random_graphs_filter',
  1539. 'type' => 'select',
  1540. 'title' => __('Cover Random Images Filter','sakurairo_csf'),
  1541. 'options' => array(
  1542. 'filter-nothing' => __('No filter','sakurairo_csf'),
  1543. 'filter-undertint' => __('Light filter','sakurairo_csf'),
  1544. 'filter-dim' => __('Dimmed filter','sakurairo_csf'),
  1545. 'filter-grid' => __('Grid filter','sakurairo_csf'),
  1546. 'filter-dot' => __('Dot filter','sakurairo_csf'),
  1547. ),
  1548. 'dependency' => array( 'cover_switch', '==', 'true', '', 'true' ),
  1549. 'default' => 'filter-nothing'
  1550. ),
  1551. array(
  1552. 'id' => 'wave_effects',
  1553. 'type' => 'switcher',
  1554. 'title' => __('Cover Wave Effects','sakurairo_csf'),
  1555. 'label' => __('Wave effect will appear at the bottom of the cover of the home page after turning on, and it will be forced off in the dark mode','sakurairo_csf'),
  1556. 'dependency' => array( 'cover_switch', '==', 'true', '', 'true' ),
  1557. 'default' => false
  1558. ),
  1559. array(
  1560. 'id' => 'drop_down_arrow',
  1561. 'type' => 'switcher',
  1562. 'title' => __('Cover Dropdown Arrow','sakurairo_csf'),
  1563. 'label' => __('Enabled by default, show a dropdown arrow at bottom of home cover','sakurairo_csf'),
  1564. 'dependency' => array( 'cover_switch', '==', 'true', '', 'true' ),
  1565. 'default' => true
  1566. ),
  1567. array(
  1568. 'id' => 'drop_down_arrow_mobile',
  1569. 'type' => 'switcher',
  1570. 'title' => __('Cover Dropdown Arrow Display on Mobile Devices','sakurairo_csf'),
  1571. 'dependency' => array(
  1572. array( 'drop_down_arrow', '==', 'true' ),
  1573. array( 'cover_switch', '==', 'true', '', 'true' ),
  1574. ),
  1575. 'label' => __('Drop down arrow will appear at the bottom of the mobile devices\' home cover after turning it on','sakurairo_csf'),
  1576. 'default' => false
  1577. ),
  1578. array(
  1579. 'id' => 'drop_down_arrow_color',
  1580. 'type' => 'color',
  1581. 'title' => __('Cover Dropdown Arrow Color','sakurairo_csf'),
  1582. 'dependency' => array(
  1583. array( 'drop_down_arrow', '==', 'true' ),
  1584. array( 'cover_switch', '==', 'true', '', 'true' ),
  1585. ),
  1586. 'desc' => __('Customize the colors, light colors are recommended','sakurairo_csf'),
  1587. 'default' => 'rgba(255,255,255,0.8)'
  1588. ),
  1589. array(
  1590. 'id' => 'drop_down_arrow_dark_color',
  1591. 'type' => 'color',
  1592. 'title' => __('Cover Dropdown Arrow Color (Dark Mode)','sakurairo_csf'),
  1593. 'dependency' => array(
  1594. array( 'drop_down_arrow', '==', 'true' ),
  1595. array( 'cover_switch', '==', 'true', '', 'true' ),
  1596. ),
  1597. 'desc' => __('Customize the colors, dark colors are recommended','sakurairo_csf'),
  1598. 'default' => 'rgba(51,51,51,0.8)'
  1599. ),
  1600. array(
  1601. 'id' => 'cover_video',
  1602. 'type' => 'switcher',
  1603. 'title' => __('Cover Video','sakurairo_csf'),
  1604. 'label' => __('Use a video instead of the images as the cover','sakurairo_csf'),
  1605. 'dependency' => array( 'cover_switch', '==', 'true', '', 'true' ),
  1606. 'default' => false
  1607. ),
  1608. array(
  1609. 'id' => 'cover_video_loop',
  1610. 'type' => 'switcher',
  1611. 'title' => __('Cover Video Loop','sakurairo_csf'),
  1612. 'dependency' => array(
  1613. array( 'cover_video', '==', 'true' ),
  1614. array( 'cover_switch', '==', 'true', '', 'true' ),
  1615. ),
  1616. 'label' => __('Video will loop automatically when enabled.','sakurairo_csf'),
  1617. 'default' => false
  1618. ),
  1619. array(
  1620. 'id' => 'cover_video_live',
  1621. 'type' => 'switcher',
  1622. 'title' => __('Cover Video Auto Resume','sakurairo_csf'),
  1623. 'dependency' => array(
  1624. array( 'cover_video', '==', 'true' ),
  1625. array( 'cover_switch', '==', 'true', '', 'true' ),
  1626. ),
  1627. 'label' => __('Cover Video will resume automatically when coming back to homepage while Pjax enabled.','sakurairo_csf'),
  1628. 'default' => false
  1629. ),
  1630. array(
  1631. 'id' => 'cover_video_link',
  1632. 'type' => 'text',
  1633. 'title' => __('Cover Video URL Base Path','sakurairo_csf'),
  1634. 'dependency' => array(
  1635. array( 'cover_video', '==', 'true' ),
  1636. array( 'cover_switch', '==', 'true', '', 'true' ),
  1637. ),
  1638. 'validate' => 'iro_validate_optional_url',
  1639. 'desc' => __("Fill in the base path your video located at. For example: https://localhost. Your site's URL is used as default. Please pay attention to the protocol name of the URL.",'sakurairo_csf'),
  1640. ),
  1641. array(
  1642. 'id' => 'cover_video_title',
  1643. 'type' => 'text',
  1644. 'title' => __('Cover Video File Name','sakurairo_csf'),
  1645. 'dependency' => array(
  1646. array( 'cover_video', '==', 'true' ),
  1647. array( 'cover_switch', '==', 'true', '', 'true' ),
  1648. ),
  1649. 'desc' => __('For example: abc.mp4. Multiple videos should be separated by English commas like "abc.mp4,efg.mp4," Random play is on by default.','sakurairo_csf'),
  1650. ),
  1651. )
  1652. ) );
  1653. Sakurairo_CSF::createSection( $prefix, array(
  1654. 'parent' => 'homepage',
  1655. 'title' => __('Cover Social Area Options','sakurairo_csf'),
  1656. 'icon' => 'fa fa-share-square-o',
  1657. 'fields' => array(
  1658. array(
  1659. 'type' => 'submessage',
  1660. 'style' => 'info',
  1661. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Homepage/#%E5%B0%81%E9%9D%A2%E7%A4%BE%E4%BA%A4%E5%8C%BA%E5%9F%9F%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  1662. ),
  1663. array(
  1664. 'type' => 'subheading',
  1665. 'content' => __('Related Options','sakurairo_csf'),
  1666. ),
  1667. array(
  1668. 'id' => 'social_area',
  1669. 'type' => 'switcher',
  1670. 'title' => __('Cover Social Area','sakurairo_csf'),
  1671. 'label' => __('Enabled by default, show cover random image toggle button and social network icons','sakurairo_csf'),
  1672. 'default' => true
  1673. ),
  1674. array(
  1675. 'id' => 'social_display_icon',
  1676. 'type' => 'image_select',
  1677. 'title' => __('Social Icon','sakurairo_csf'),
  1678. 'desc' => __('Select your favorite icon pack. Icon pack references are detailed in the "About Theme" section','sakurairo_csf'),
  1679. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1680. 'options' => array(
  1681. 'display_icon/fluent_design' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/display_icon_fd.gif',
  1682. 'display_icon/muh2' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/display_icon_h2.gif',
  1683. 'display_icon/flat_colorful' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/display_icon_fc.gif',
  1684. 'display_icon/remix_iconfont' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/display_icon_svg.webp',
  1685. ),
  1686. 'default' => 'display_icon/fluent_design'
  1687. ),
  1688. array(
  1689. 'id' => 'social_area_radius',
  1690. 'type' => 'slider',
  1691. 'title' => __('Cover Social Area Rounded Corners','sakurairo_csf'),
  1692. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1693. 'desc' => __('Slide to adjust, the recommended value range is 10-20','sakurairo_csf'),
  1694. 'unit' => 'px',
  1695. 'max' => '30',
  1696. 'default' => '15'
  1697. ),
  1698. array(
  1699. 'id' => 'cover_random_graphs_switch',
  1700. 'type' => 'switcher',
  1701. 'title' => __('Switch Button of Random Images','sakurairo_csf'),
  1702. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1703. 'label' => __('Enabled by default, show cover random image toggle button','sakurairo_csf'),
  1704. 'default' => true
  1705. ),
  1706. array(
  1707. 'type' => 'subheading',
  1708. 'content' => __('Social Network','sakurairo_csf'),
  1709. ),
  1710. array(
  1711. 'id' => 'wechat',
  1712. 'type' => 'upload',
  1713. 'title' => __('Wechat','sakurairo_csf'),
  1714. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1715. 'desc' => __('The best length-width ratio of is 1:1','sakurairo_csf'),
  1716. 'library' => 'image',
  1717. ),
  1718. array(
  1719. 'id' => 'qq',
  1720. 'type' => 'text',
  1721. 'title' => __('QQ','sakurairo_csf'),
  1722. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1723. 'desc' => __('Please note the format of filling out the form, e.g. tencent://message/?uin=123456','sakurairo_csf'),
  1724. ),
  1725. array(
  1726. 'id' => 'bili',
  1727. 'type' => 'text',
  1728. 'title' => __('Bilibili','sakurairo_csf'),
  1729. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1730. 'desc' => __('add URL','sakurairo_csf'),
  1731. ),
  1732. array(
  1733. 'id' => 'wangyiyun',
  1734. 'type' => 'text',
  1735. 'title' => __('NetEase Music','sakurairo_csf'),
  1736. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1737. 'desc' => __('add URL','sakurairo_csf'),
  1738. ),
  1739. array(
  1740. 'id' => 'sina',
  1741. 'type' => 'text',
  1742. 'title' => __('Weibo','sakurairo_csf'),
  1743. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1744. 'desc' => __('add URL','sakurairo_csf'),
  1745. ),
  1746. array(
  1747. 'id' => 'github',
  1748. 'type' => 'text',
  1749. 'title' => __('Github','sakurairo_csf'),
  1750. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1751. 'desc' => __('add URL','sakurairo_csf'),
  1752. ),
  1753. array(
  1754. 'id' => 'telegram',
  1755. 'type' => 'text',
  1756. 'title' => __('Telegram','sakurairo_csf'),
  1757. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1758. 'desc' => __('add URL','sakurairo_csf'),
  1759. ),
  1760. array(
  1761. 'id' => 'steam',
  1762. 'type' => 'text',
  1763. 'title' => __('Steam','sakurairo_csf'),
  1764. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1765. 'desc' => __('add URL','sakurairo_csf'),
  1766. ),
  1767. array(
  1768. 'id' => 'youtube',
  1769. 'type' => 'text',
  1770. 'title' => __('Youtube','sakurairo_csf'),
  1771. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1772. 'desc' => __('add URL','sakurairo_csf'),
  1773. ),
  1774. array(
  1775. 'id' => 'instagram',
  1776. 'type' => 'text',
  1777. 'title' => __('Instagram','sakurairo_csf'),
  1778. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1779. 'desc' => __('add URL','sakurairo_csf'),
  1780. ),
  1781. array(
  1782. 'id' => 'douyin',
  1783. 'type' => 'text',
  1784. 'title' => __('Tiktok','sakurairo_csf'),
  1785. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1786. 'desc' => __('add URL','sakurairo_csf'),
  1787. ),
  1788. array(
  1789. 'id' => 'xiaohongshu',
  1790. 'type' => 'text',
  1791. 'title' => __('YELLOWnote','sakurairo_csf'),
  1792. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1793. 'desc' => __('add URL','sakurairo_csf'),
  1794. ),
  1795. array(
  1796. 'id' => 'discord',
  1797. 'type' => 'text',
  1798. 'title' => __('Discord','sakurairo_csf'),
  1799. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1800. 'desc' => __('add URL','sakurairo_csf'),
  1801. ),
  1802. array(
  1803. 'id' => 'zhihu',
  1804. 'type' => 'text',
  1805. 'title' => __('ZhiHu','sakurairo_csf'),
  1806. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1807. 'desc' => __('add URL','sakurairo_csf'),
  1808. ),
  1809. array(
  1810. 'id' => 'linkedin',
  1811. 'type' => 'text',
  1812. 'title' => __('Linkedin','sakurairo_csf'),
  1813. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1814. 'desc' => __('add URL','sakurairo_csf'),
  1815. ),
  1816. array(
  1817. 'id' => 'twitter',
  1818. 'type' => 'text',
  1819. 'title' => __('Twitter','sakurairo_csf'),
  1820. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1821. 'desc' => __('add URL','sakurairo_csf'),
  1822. ),
  1823. array(
  1824. 'id' => 'facebook',
  1825. 'type' => 'text',
  1826. 'title' => __('Facebook','sakurairo_csf'),
  1827. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1828. 'desc' => __('add URL','sakurairo_csf'),
  1829. ),
  1830. array(
  1831. 'id' => 'socialdiy1',
  1832. 'type' => 'text',
  1833. 'title' => __('Customized Social Network Ⅰ','sakurairo_csf'),
  1834. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1835. 'desc' => __('add URL','sakurairo_csf'),
  1836. ),
  1837. array(
  1838. 'id' => 'socialdiy1_title',
  1839. 'type' => 'text',
  1840. 'title' => __('Customized Social Network Ⅰ Title','sakurairo_csf'),
  1841. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1842. "default" => "DIY1"
  1843. ),
  1844. array(
  1845. 'id' => 'socialdiyp1',
  1846. 'type' => 'upload',
  1847. 'title' => __('Customized Social Network Ⅰ icon','sakurairo_csf'),
  1848. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1849. 'desc' => __('The best length-width ratio of is 1:1','sakurairo_csf'),
  1850. 'library' => 'image',
  1851. ),
  1852. array(
  1853. 'id' => 'socialdiy2',
  1854. 'type' => 'text',
  1855. 'title' => __('Customized Social Network Ⅱ','sakurairo_csf'),
  1856. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1857. 'desc' => __('add URL','sakurairo_csf'),
  1858. ),
  1859. array(
  1860. 'id' => 'socialdiy2_title',
  1861. 'type' => 'text',
  1862. 'title' => __('Customized Social Network Ⅱ Title','sakurairo_csf'),
  1863. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1864. "default" => "DIY2"
  1865. ),
  1866. array(
  1867. 'id' => 'socialdiyp2',
  1868. 'type' => 'upload',
  1869. 'title' => __('Customized Social Network Ⅱ icon','sakurairo_csf'),
  1870. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1871. 'desc' => __('The best length-width ratio of is 1:1','sakurairo_csf'),
  1872. 'library' => 'image',
  1873. ),
  1874. array(
  1875. 'id' => 'email_name',
  1876. 'type' => 'text',
  1877. 'title' => __('Email Username','sakurairo_csf'),
  1878. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1879. 'desc' => __('name@domain.com fo name, the full address can be known only when there is a js runtime in the frontend, you can fill in with confidence','sakurairo_csf'),
  1880. ),
  1881. array(
  1882. 'id' => 'email_domain',
  1883. 'type' => 'text',
  1884. 'title' => __('Email Domain','sakurairo_csf'),
  1885. 'dependency' => array( 'social_area', '==', 'true', '', 'true' ),
  1886. 'desc' => __('name@domain.com fo domain.com','sakurairo_csf'),
  1887. ),
  1888. )
  1889. ) );
  1890. Sakurairo_CSF::createSection( $prefix, array(
  1891. 'parent' => 'homepage',
  1892. 'title' => __('Bulletin Board and Area Title Options','sakurairo_csf'),
  1893. 'icon' => 'fa fa-bullhorn',
  1894. 'fields' => array(
  1895. array(
  1896. 'type' => 'submessage',
  1897. 'style' => 'info',
  1898. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Homepage/#%E5%85%AC%E5%91%8A%E6%A0%8F%E5%92%8C%E5%8C%BA%E5%9F%9F%E6%A0%87%E9%A2%98%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  1899. ),
  1900. array(
  1901. 'type' => 'subheading',
  1902. 'content' => __('Bulletin Board','sakurairo_csf'),
  1903. ),
  1904. array(
  1905. 'id' => 'bulletin_board',
  1906. 'type' => 'switcher',
  1907. 'title' => __('Bulletin Board','sakurairo_csf'),
  1908. 'label' => __('When enabled the bulletin board will be displayed below the front cover','sakurairo_csf'),
  1909. 'default' => false
  1910. ),
  1911. array(
  1912. 'id' => 'bulletin_board_style',
  1913. 'type' => 'radio',
  1914. 'title' => __('Bulletin Board Style','sakurairo_csf'),
  1915. 'dependency' => array( 'bulletin_board', '==', 'true', '', 'true' ),
  1916. 'options' => array(
  1917. 'picture' => __('Picture Background','sakurairo_csf'),
  1918. 'pure' => __('Color Background','sakurairo_csf'),
  1919. ),
  1920. 'default' => 'picture'
  1921. ),
  1922. array(
  1923. 'id' => 'bulletin_board_icon',
  1924. 'type' => 'switcher',
  1925. 'title' => __('Bulletin Board "Notice" Icon','sakurairo_csf'),
  1926. 'dependency' => array( 'bulletin_board', '==', 'true', '', 'true' ),
  1927. 'label' => __('The "Notice" icon will be displayed on the left side of the announcement bar','sakurairo_csf'),
  1928. 'default' => true
  1929. ),
  1930. array(
  1931. 'id' => 'bulletin_board_bg',
  1932. 'type' => 'upload',
  1933. 'title' => __('Bulletin Board Background','sakurairo_csf'),
  1934. 'dependency' => array(
  1935. array( 'bulletin_board', '==', 'true', '', 'true' ),
  1936. array( 'bulletin_board_style', '==', 'picture' ),
  1937. ),
  1938. 'desc' => __('Best width 820px, best height 67px','sakurairo_csf'),
  1939. 'library' => 'image',
  1940. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/series/announcement_bg.webp'
  1941. ),
  1942. array(
  1943. 'id' => 'bulletin_board_border_color',
  1944. 'type' => 'color',
  1945. 'title' => __('Bulletin Board Border Color','sakurairo_csf'),
  1946. 'dependency' => array(
  1947. array( 'bulletin_board', '==', 'true', '', 'true' ),
  1948. array( 'bulletin_board_style', '==', 'pure' ),
  1949. ),
  1950. 'desc' => __('Customize the colors, it is recommended to use a light color that corresponds with the theme color','sakurairo_csf'),
  1951. 'default' => '#E6E6E6'
  1952. ),
  1953. array(
  1954. 'id' => 'bulletin_text',
  1955. 'type' => 'text',
  1956. 'title' => __('Bulletin Board Text','sakurairo_csf'),
  1957. 'dependency' => array( 'bulletin_board', '==', 'true', '', 'true' ),
  1958. 'desc' => __('Fill in the announcement text, the text beyond 142 bytes will be hidden','sakurairo_csf'),
  1959. ),
  1960. array(
  1961. 'id' => 'bulletin_board_text_align',
  1962. 'type' => 'image_select',
  1963. 'title' => __('Bulletin Board Alignment','sakurairo_csf'),
  1964. 'dependency' => array( 'bulletin_board', '==', 'true', '', 'true' ),
  1965. 'options' => array(
  1966. 'left' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/announce_text_left.webp',
  1967. 'right' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/announce_text_right.webp',
  1968. 'center' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/announce_text_center.webp',
  1969. ),
  1970. 'default' => 'left'
  1971. ),
  1972. array(
  1973. 'id' => 'bulletin_text_color',
  1974. 'type' => 'color',
  1975. 'title' => __('Bulletin Board Text Color','sakurairo_csf'),
  1976. 'dependency' => array( 'bulletin_board', '==', 'true', '', 'true' ),
  1977. 'desc' => __('Customize the colors, suggest using a corresponding color with the background color','sakurairo_csf'),
  1978. 'default' => '#999'
  1979. ),
  1980. array(
  1981. 'type' => 'subheading',
  1982. 'content' => __('Area Title','sakurairo_csf'),
  1983. ),
  1984. array(
  1985. 'id' => 'exhibition_area_icon',
  1986. 'type' => 'text',
  1987. 'title' => __('Display Area Icon','sakurairo_csf'),
  1988. 'desc' => __('Default is "fa-solid fa-laptop", You can check the <a href="https://fontawesome.com/search?o=r&m=free">FontAwesome Website</a> to see the icons that can be filled in' ,'sakurairo_csf'),
  1989. 'default' => 'fa-solid fa-laptop'
  1990. ),
  1991. array(
  1992. 'id' => 'exhibition_area_title',
  1993. 'type' => 'text',
  1994. 'title' => __('Display Area Title','sakurairo_csf'),
  1995. 'desc' => __('Default is "Display", you can change it to anything else, but of course it CANNOT be used as an ad! Not allowed!!!' ,'sakurairo_csf'),
  1996. 'default' => 'Display'
  1997. ),
  1998. array(
  1999. 'id' => 'post_area_icon',
  2000. 'type' => 'text',
  2001. 'title' => __('Post Area Icon','sakurairo_csf'),
  2002. 'desc' => __('Default is "fa-regular fa-bookmark", You can check the <a href="https://fontawesome.com/search?o=r&m=free">FontAwesome Website</a> to see the icons that can be filled in' ,'sakurairo_csf'),
  2003. 'default' => 'fa-regular fa-bookmark'
  2004. ),
  2005. array(
  2006. 'id' => 'post_area_title',
  2007. 'type' => 'text',
  2008. 'title' => __('Post Area Title','sakurairo_csf'),
  2009. 'desc' => __('Default is "Article", you can change it to anything else, but of course it CANNOT be used as an ad! Not allowed!!!' ,'sakurairo_csf'),
  2010. 'default' => 'Article'
  2011. ),
  2012. array(
  2013. 'id' => 'area_title_font',
  2014. 'type' => 'text',
  2015. 'title' => __('Area Title Font','sakurairo_csf'),
  2016. 'desc' => __('Fill in the font name. For example: Noto Serif SC','sakurairo_csf'),
  2017. 'default' => 'Noto Serif SC'
  2018. ),
  2019. array(
  2020. 'id' => 'area_title_text_align',
  2021. 'type' => 'image_select',
  2022. 'title' => __('Area Title Alignment','sakurairo_csf'),
  2023. 'options' => array(
  2024. 'left' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/area_title_text_left.webp',
  2025. 'right' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/area_title_text_right.webp',
  2026. 'center' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/area_title_text_center.webp',
  2027. ),
  2028. 'default' => 'left'
  2029. ),
  2030. )
  2031. ) );
  2032. Sakurairo_CSF::createSection( $prefix, array(
  2033. 'parent' => 'homepage',
  2034. 'title' => __('Display Area Options','sakurairo_csf'),
  2035. 'icon' => 'fa fa-bookmark',
  2036. 'fields' => array(
  2037. array(
  2038. 'type' => 'submessage',
  2039. 'style' => 'info',
  2040. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Homepage/#%E5%B1%95%E7%A4%BA%E5%8C%BA%E5%9F%9F%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  2041. ),
  2042. array(
  2043. 'id' => 'exhibition_area',
  2044. 'type' => 'switcher',
  2045. 'title' => __('Display Area','sakurairo_csf'),
  2046. 'label' => __('Enabled by default, display area is above article area','sakurairo_csf'),
  2047. 'default' => true
  2048. ),
  2049. array(
  2050. 'id' => 'exhibition_area_matching_color',
  2051. 'type' => 'color',
  2052. 'title' => __('Display Area Matching Color','sakurairo_csf'),
  2053. 'desc' => __('Customize the colors, suggest using a corresponding color with the background color','sakurairo_csf'),
  2054. 'dependency' => array( 'exhibition_area', '==', 'true', '', 'true' ),
  2055. 'default' => '#a0daa9'
  2056. ),
  2057. array(
  2058. 'id' => 'exhibition_area_style',
  2059. 'type' => 'image_select',
  2060. 'title' => __('Display Area Style','sakurairo_csf'),
  2061. 'dependency' => array( 'exhibition_area', '==', 'true', '', 'true' ),
  2062. 'options' => array(
  2063. 'left_and_right' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/exhibition_area_style_lr.webp',
  2064. 'bottom_to_top' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/exhibition_area_style_ud.webp',
  2065. ),
  2066. 'default' => 'left_and_right'
  2067. ),
  2068. array(
  2069. 'id' => 'exhibition_area_compat',
  2070. 'type' => 'switcher',
  2071. 'title' => __('Display Area Compatibility Mode','sakurairo_csf'),
  2072. 'dependency' => array(
  2073. array( 'exhibition_area_style', '==', 'left_and_right', '', 'true' ),
  2074. array( 'exhibition_area', '==', 'true' ),
  2075. ),
  2076. 'label' => __('Enabled by default, this option avoids the problem of misaligned display areas','sakurairo_csf'),
  2077. 'default' => true
  2078. ),
  2079. array(
  2080. 'id' => 'exhibition_background_color',
  2081. 'type' => 'color',
  2082. 'title' => __('Display Area Background Color','sakurairo_csf'),
  2083. 'dependency' => array(
  2084. array( 'exhibition_area_style', '==', 'left_and_right', '', 'true' ),
  2085. array( 'exhibition_area', '==', 'true' ),
  2086. ),
  2087. 'desc' => __('Customize the colors, light colors are recommended','sakurairo_csf'),
  2088. 'default' => 'rgba(255,255,255,0.4)'
  2089. ),
  2090. array(
  2091. 'id' => 'exhibition_radius',
  2092. 'type' => 'slider',
  2093. 'title' => __('Display Area Rounded Corners','sakurairo_csf'),
  2094. 'dependency' => array(
  2095. array( 'exhibition_area_style', '==', 'left_and_right', '', 'true' ),
  2096. array( 'exhibition_area_compat', '==', 'true' ),
  2097. array( 'exhibition_area', '==', 'true' ),
  2098. ),
  2099. 'desc' => __('Slide to adjust, the recommended value is 15','sakurairo_csf'),
  2100. 'unit' => 'px',
  2101. 'default' => '15'
  2102. ),
  2103. array(
  2104. 'id' => 'exhibition',
  2105. 'type' => 'tabbed',
  2106. 'title' => __('Display Area Options','sakurairo_csf'),
  2107. 'dependency' => array( 'exhibition_area', '==', 'true', '', 'true' ),
  2108. 'tabs' => array(
  2109. array(
  2110. 'title' => __('First Display Area','sakurairo_csf'),
  2111. 'fields' => array(
  2112. array(
  2113. 'id' => 'img1',
  2114. 'type' => 'upload',
  2115. 'title' => __('image','sakurairo_csf'),
  2116. 'desc' => __('best width 260px, best height 160px','sakurairo_csf'),
  2117. ),
  2118. array(
  2119. 'id' => 'title1',
  2120. 'type' => 'text',
  2121. 'title' => __('title','sakurairo_csf'),
  2122. ),
  2123. array(
  2124. 'id' => 'description1',
  2125. 'type' => 'text',
  2126. 'title' => __('description','sakurairo_csf'),
  2127. ),
  2128. array(
  2129. 'id' => 'link1',
  2130. 'type' => 'text',
  2131. 'title' => __('add URL','sakurairo_csf'),
  2132. ),
  2133. )
  2134. ),
  2135. array(
  2136. 'title' => __('Second Display Area','sakurairo_csf'),
  2137. 'fields' => array(
  2138. array(
  2139. 'id' => 'img2',
  2140. 'type' => 'upload',
  2141. 'title' => __('image','sakurairo_csf'),
  2142. 'desc' => __('best width 260px, best height 160px','sakurairo_csf'),
  2143. ),
  2144. array(
  2145. 'id' => 'title2',
  2146. 'type' => 'text',
  2147. 'title' => __('title','sakurairo_csf'),
  2148. ),
  2149. array(
  2150. 'id' => 'description2',
  2151. 'type' => 'text',
  2152. 'title' => __('description','sakurairo_csf'),
  2153. ),
  2154. array(
  2155. 'id' => 'link2',
  2156. 'type' => 'text',
  2157. 'title' => __('add URL','sakurairo_csf'),
  2158. ),
  2159. )
  2160. ),
  2161. array(
  2162. 'title' => __('Third Display Area','sakurairo_csf'),
  2163. 'fields' => array(
  2164. array(
  2165. 'id' => 'img3',
  2166. 'type' => 'upload',
  2167. 'title' => __('image','sakurairo_csf'),
  2168. 'desc' => __('best width 260px, best height 160px','sakurairo_csf'),
  2169. ),
  2170. array(
  2171. 'id' => 'title3',
  2172. 'type' => 'text',
  2173. 'title' => __('title','sakurairo_csf'),
  2174. ),
  2175. array(
  2176. 'id' => 'description3',
  2177. 'type' => 'text',
  2178. 'title' => __('description','sakurairo_csf'),
  2179. ),
  2180. array(
  2181. 'id' => 'link3',
  2182. 'type' => 'text',
  2183. 'title' => __('add URL','sakurairo_csf'),
  2184. ),
  2185. )
  2186. ),
  2187. ),
  2188. 'default' => array(
  2189. 'link1' => '',
  2190. 'link2' => '',
  2191. 'link3' => '',
  2192. 'img1' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/series/exhibition1.webp',
  2193. 'img2' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/series/exhibition2.webp',
  2194. 'img3' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/series/exhibition3.webp',
  2195. 'title1' => 'アンコール',
  2196. 'title2' => 'ハルジオン',
  2197. 'title3' => 'かいぶつ',
  2198. 'description1' => 'ここは夜のない世界',
  2199. 'description2' => '過ぎてゆく時間の中',
  2200. 'description3' => '素晴らしき世界に今日も乾杯',
  2201. )
  2202. ),
  2203. )
  2204. ) );
  2205. Sakurairo_CSF::createSection( $prefix, array(
  2206. 'parent' => 'homepage',
  2207. 'title' => __('Article Area Options','sakurairo_csf'),
  2208. 'icon' => 'fa fa-book',
  2209. 'fields' => array(
  2210. array(
  2211. 'type' => 'submessage',
  2212. 'style' => 'info',
  2213. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Homepage/#%E6%96%87%E7%AB%A0%E5%8C%BA%E5%9F%9F%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  2214. ),
  2215. array(
  2216. 'id' => 'article_meta_displays',
  2217. "type" => "select",
  2218. "title" => __("Article Area Meta Displays","sakurairo_csf"),
  2219. 'desc' => __('You can freely select the information Meta to be displayed, this option cannot be set on mobile','sakurairo_csf'),
  2220. "chosen" => true,
  2221. "multiple" => true,
  2222. "sortable" => true,
  2223. "options"=> $AVAIL_METADATA_ARTICLE_AREA,
  2224. "default" => array("post_views","comment_count","category"),
  2225. ),
  2226. array(
  2227. 'id' => 'post_list_design',
  2228. 'type' => 'image_select',
  2229. 'title' => __('Article Area Card Design','sakurairo_csf'),
  2230. 'desc' => __('You can choose between letter design or ticket design','sakurairo_csf'),
  2231. 'options' => array(
  2232. 'letter' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/post_list_design_letter.webp',
  2233. 'ticket' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/post_list_design_ticket.webp',
  2234. ),
  2235. 'default' => 'letter'
  2236. ),
  2237. array(
  2238. 'id' => 'post_list_ticket_type',
  2239. 'type' => 'image_select',
  2240. 'title' => __('Article Area Card Ticket Design Title Style','sakurairo_csf'),
  2241. 'desc' => __('You can choose between card style or Non-card style','sakurairo_csf'),
  2242. 'dependency' => array( 'post_list_design', '==', 'ticket', '', 'true' ),
  2243. 'options' => array(
  2244. 'card' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/post_list_design_ticket.webp',
  2245. 'non-card' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/post_list_design_ticket_2.webp',
  2246. ),
  2247. 'default' => 'card'
  2248. ),
  2249. array(
  2250. 'id' => 'post_cover_options',
  2251. 'type' => 'radio',
  2252. 'title' => __('Article Area Featured Image Options','sakurairo_csf'),
  2253. 'options' => array(
  2254. 'type_1' => __('Cover Random Image','sakurairo_csf'),
  2255. 'type_2' => __('External API Random Image','sakurairo_csf'),
  2256. ),
  2257. 'default' => 'type_1'
  2258. ),
  2259. array(
  2260. 'id' => 'post_cover',
  2261. 'type' => 'text',
  2262. 'title' => __('Article Area Featured Image External API Random Image Address','sakurairo_csf'),
  2263. 'desc' => __('add URL','sakurairo_csf'),
  2264. 'sanitize' => false,
  2265. 'validate' => 'iro_validate_optional_url',
  2266. ),
  2267. array(
  2268. 'id' => 'post_list_card_radius',
  2269. 'type' => 'slider',
  2270. 'title' => __('Article Area Card Rounded Corners','sakurairo_csf'),
  2271. 'desc' => __('Slide to adjust, the recommended value range is 5-15','sakurairo_csf'),
  2272. 'unit' => 'px',
  2273. 'max' => '30',
  2274. 'default' => '10'
  2275. ),
  2276. array(
  2277. 'id' => 'article_meta_background_compatible',
  2278. 'type' => 'switcher',
  2279. 'title' => __('Article Area Card Information Meta Background Compatible','sakurairo_csf'),
  2280. 'label' => __('When enabled, information Meta will be standardized to white on black for compatibility with the background, increasing readability.','sakurairo_csf'),
  2281. 'default' => false
  2282. ),
  2283. array(
  2284. 'id' => 'post_meta_radius',
  2285. 'type' => 'slider',
  2286. 'title' => __('Article Area Card Information Meta Rounded Corners','sakurairo_csf'),
  2287. 'desc' => __('Slide to adjust, the recommended value range is 3-10','sakurairo_csf'),
  2288. 'unit' => 'px',
  2289. 'max' => '30',
  2290. 'default' => '5'
  2291. ),
  2292. array(
  2293. 'id' => 'post_list_title_radius',
  2294. 'type' => 'slider',
  2295. 'title' => __('Article Area Card Title Meta Rounded Corners','sakurairo_csf'),
  2296. 'desc' => __('Slide to adjust, the recommended value range is 0-20','sakurairo_csf'),
  2297. 'unit' => 'px',
  2298. 'max' => '30',
  2299. 'default' => '0'
  2300. ),
  2301. array(
  2302. 'id' => 'post_title_font_size',
  2303. 'type' => 'slider',
  2304. 'title' => __('Article Area Title Font Size','sakurairo_csf'),
  2305. 'desc' => __('Slide to adjust, the recommended value range is 16-20','sakurairo_csf'),
  2306. 'unit' => 'px',
  2307. 'step' => '1',
  2308. 'min' => '10',
  2309. 'max' => '30',
  2310. 'default' => '18'
  2311. ),
  2312. )
  2313. ) );
  2314. Sakurairo_CSF::createSection( $prefix, array(
  2315. 'id' => 'page',
  2316. 'title' => __('Page Options','sakurairo_csf'),
  2317. 'icon' => 'fa fa-file-text',
  2318. ) );
  2319. Sakurairo_CSF::createSection( $prefix, array(
  2320. 'parent' => 'page',
  2321. 'title' => __('Common Options','sakurairo_csf'),
  2322. 'icon' => 'fa fa-compass',
  2323. 'fields' => array(
  2324. array(
  2325. 'type' => 'submessage',
  2326. 'style' => 'info',
  2327. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Pages/#%E7%BB%BC%E5%90%88%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  2328. ),
  2329. array(
  2330. 'id' => 'page_style',
  2331. 'type' => 'image_select',
  2332. 'title' => __('Page Style','sakurairo_csf'),
  2333. 'options' => array(
  2334. 'sakurairo' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/page_style_iro.webp',
  2335. 'sakura' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/page_style_sakura.webp',
  2336. ),
  2337. 'default' => 'sakurairo'
  2338. ),
  2339. array(
  2340. 'id' => 'entry_content_style',
  2341. 'type' => 'radio',
  2342. 'title' => __('Page Layout Style','sakurairo_csf'),
  2343. 'options' => array(
  2344. 'sakurairo' => __('Default Style','sakurairo_csf'),
  2345. 'github' => __('Github Style','sakurairo_csf'),
  2346. ),
  2347. 'default' => 'sakurairo'
  2348. ),
  2349. array(
  2350. 'id' => 'patternimg',
  2351. 'type' => 'switcher',
  2352. 'title' => __('Page Decoration Image','sakurairo_csf'),
  2353. 'label' => __('Enabled by default, show on article pages, standalone pages and category pages','sakurairo_csf'),
  2354. 'default' => true
  2355. ),
  2356. array(
  2357. 'id' => 'page_title_animation',
  2358. 'type' => 'switcher',
  2359. 'title' => __('Page Title Animation','sakurairo_csf'),
  2360. 'label' => __('Page title will have float-in animation when turned on','sakurairo_csf'),
  2361. 'default' => true
  2362. ),
  2363. array(
  2364. 'id' => 'page_title_animation_time',
  2365. 'type' => 'slider',
  2366. 'title' => __('Page Title Animation Time','sakurairo_csf'),
  2367. 'dependency' => array( 'page_title_animation', '==', 'true', '', 'true' ),
  2368. 'desc' => __('Slide to adjust, recommended value range is 1-2','sakurairo_csf'),
  2369. 'step' => '0.01',
  2370. 'unit' => 's',
  2371. 'max' => '5',
  2372. 'default' => '2'
  2373. ),
  2374. array(
  2375. 'id' => 'clipboard_ref',
  2376. 'type' => 'switcher',
  2377. 'title' => __('Add Reference while copying on Pages','sakurairo_csf'),
  2378. 'label' => __('Enabled by default. When copying text content over 30 bytes, a reference in APA-style will be appended to the copying text.','sakurairo_csf'),
  2379. 'default' => true
  2380. ),
  2381. array(
  2382. 'id' => 'page_lazyload',
  2383. 'type' => 'switcher',
  2384. 'title' => __('Page LazyLoad','sakurairo_csf'),
  2385. 'label' => __('LazyLoad effect for page images, WordPress block editor already comes with similar effect, not recommended to turn on','sakurairo_csf'),
  2386. 'default' => false
  2387. ),
  2388. array(
  2389. 'id' => 'page_lazyload_spinner',
  2390. 'type' => 'text',
  2391. 'title' => __('Page LazyLoad Placeholder SVG','sakurairo_csf'),
  2392. 'dependency' => array( 'page_lazyload', '==', 'true', '', 'true' ),
  2393. 'desc' => __('Fill in the address, this is the placeholder image that will be displayed when the page LazyLoad is being loaded','sakurairo_csf'),
  2394. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/load_svg/inload.svg'
  2395. ),
  2396. array(
  2397. 'id' => 'load_in_svg',
  2398. 'type' => 'text',
  2399. 'title' => __('Page Image Placeholder SVG','sakurairo_csf'),
  2400. 'desc' => __('Fill address, this is the SVG that will be displayed as a placeholder when the page image is being loaded','sakurairo_csf'),
  2401. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/load_svg/inload.svg'
  2402. ),
  2403. )
  2404. ) );
  2405. Sakurairo_CSF::createSection( $prefix, array(
  2406. 'parent' => 'page',
  2407. 'title' => __('Article Page Options','sakurairo_csf'),
  2408. 'icon' => 'fa fa-archive',
  2409. 'fields' => array(
  2410. array(
  2411. 'type' => 'submessage',
  2412. 'style' => 'info',
  2413. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Pages/#%E6%96%87%E7%AB%A0%E9%A1%B5%E9%9D%A2%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  2414. ),
  2415. array(
  2416. 'id' => 'article_title_font_size',
  2417. 'type' => 'slider',
  2418. 'title' => __('Article Page Title Font Size','sakurairo_csf'),
  2419. 'desc' => __('Slide to adjust, recommended value range is 28-36. This option is only available for article pages that have a featured image set','sakurairo_csf'),
  2420. 'unit' => 'px',
  2421. 'min' => '16',
  2422. 'max' => '48',
  2423. 'default' => '32'
  2424. ),
  2425. array(
  2426. 'id' => 'article_title_line',
  2427. 'type' => 'switcher',
  2428. 'title' => __('Article Page Title Underline Animation','sakurairo_csf'),
  2429. 'label' => __('Article title will have underline animation when this is enabled and article has a featured image set','sakurairo_csf'),
  2430. 'default' => false
  2431. ),
  2432. array(
  2433. 'id' => 'article_meta_show_in_head',
  2434. "type" => "select",
  2435. "title" => __("Display Article Meta before the Contents","sakurairo_csf"),
  2436. 'desc' => __('You can freely select the information Meta to be displayed, this option cannot be set on mobile','sakurairo_csf'),
  2437. "chosen" => true,
  2438. "multiple" => true,
  2439. "sortable" => true,
  2440. "options"=> $AVAIL_METADATA_POST_HEADER,
  2441. "default" => array("author","publish_time_relative","post_views","EDIT")
  2442. ),
  2443. array(
  2444. 'id' => 'article_auto_toc',
  2445. 'type' => 'switcher',
  2446. 'title' => __('Article Page Auto Show Menu','sakurairo_csf'),
  2447. 'label' => __('Enabled by default, the article page will automatically show the menu. PHP extension "DOM" is required for this feature.','sakurairo_csf'),
  2448. 'default' => true
  2449. ),
  2450. array(
  2451. 'id' => 'inline_code_background_color',
  2452. 'type' => 'color',
  2453. 'title' => __('Inline Code Background Color','sakurairo_csf'),
  2454. 'desc' => __('Customize the colors, suggest using a corresponding color with the background color','sakurairo_csf'),
  2455. 'default' => '#F2F1F1'
  2456. ),
  2457. array(
  2458. 'id' => 'inline_code_background_color_in_dark_mode',
  2459. 'type' => 'color',
  2460. 'title' => __('Inline Code Background Color In Dark Mode','sakurairo_csf'),
  2461. 'desc' => __('Customize the colors, suggest using a corresponding color with the background color,this color is only displayed in dark mode','sakurairo_csf'),
  2462. 'default' => '#505050'
  2463. ),
  2464. array(
  2465. 'type' => 'subheading',
  2466. 'content' => __('Article Expansion Area','sakurairo_csf'),
  2467. ),
  2468. array(
  2469. 'id' => 'article_function',
  2470. 'type' => 'switcher',
  2471. 'title' => __('Article Page Function Bar','sakurairo_csf'),
  2472. 'label' => __('Enabled by default, will be displayed on the article page with the features enabled below','sakurairo_csf'),
  2473. 'default' => true
  2474. ),
  2475. array(
  2476. 'id' => 'article_lincenses',
  2477. 'type' => 'select',
  2478. 'title' => __('Article License','sakurairo_csf'),
  2479. 'dependency' => array( 'article_function', '==', 'true', '', 'true' ),
  2480. 'label' => __('Enabled by default, Article license will appear on the function bar. License can also be selected by custom metadata "license".','sakurairo_csf'),
  2481. 'options' => array(
  2482. false => __("Not Display","sakurairo_csf"),
  2483. "cc0" => "CC0 1.0",
  2484. "cc-by" => "CC BY 4.0",
  2485. "cc-by-nc" => "CC BY-NC 4.0",
  2486. "cc-by-nc-nd" => "CC BY-NC-ND 4.0",
  2487. true => "CC BY-NC-SA 4.0",
  2488. "cc-by-nd" => "CC BY-ND 4.0",
  2489. "cc-by-sa" => "CC BY-SA 4.0",
  2490. ),
  2491. 'default' => true
  2492. ),
  2493. array(
  2494. 'type' => 'content',
  2495. 'content' => __(
  2496. '<p><strong>"BY"</strong> means reusers should give credit to the creator</p>'
  2497. .'<p><strong>"NC"</strong> means no commercial use</p>'
  2498. .'<p><strong>"ND"</strong> means no redistribution</p>'
  2499. .'<p><strong>"SA"</strong> means must be shared under the same terms</p>'
  2500. .'<p><strong>"CC0"</strong> is a public dedication tool, which enables creators to give up their copyright and put their works into the worldwide public domain.</p>'
  2501. .'<p>For details and legal advice, You can visit <a href="https://creativecommons.org/">the official website</a></p>'
  2502. .'<p>If you want to change license <strong>per post</strong>, change (or add if not exist) the post meta "license" to the license name you want in specific format.</p>'
  2503. .'<p>For example:</p>'
  2504. .'<ul><li><code>cc0</code> for CC0 1.0</li><li><code>cc-by-nc-sa</code> for CC BY-NC-SA 4.0</li></ul>'
  2505. ,'sakurairo_csf'),
  2506. 'dependency' => array( 'article_lincenses', '!=', 'false', '', 'true' ),
  2507. ),
  2508. array(
  2509. 'id' => 'alipay_code',
  2510. 'type' => 'upload',
  2511. 'title' => __('Article Page Appreciation Function (Alipay QR Code)','sakurairo_csf'),
  2512. 'dependency' => array( 'article_function', '==', 'true', '', 'true' ),
  2513. 'desc' => __('Upload Alipay Receipt QR Code Image','sakurairo_csf'),
  2514. 'library' => 'image',
  2515. ),
  2516. array(
  2517. 'id' => 'wechat_code',
  2518. 'type' => 'upload',
  2519. 'title' => __('Article Page Appreciation Function (Wechat QR Code)','sakurairo_csf'),
  2520. 'dependency' => array( 'article_function', '==', 'true', '', 'true' ),
  2521. 'desc' => __('Upload WeChat Receipt QR Code Image','sakurairo_csf'),
  2522. 'library' => 'image',
  2523. ),
  2524. array(
  2525. 'id' => 'author_profile_avatar',
  2526. 'type' => 'switcher',
  2527. 'title' => __('Article Page Author Avatar','sakurairo_csf'),
  2528. 'dependency' => array( 'article_function', '==', 'true', '', 'true' ),
  2529. 'label' => __('Enabled by default, Author avatar will appear on the function bar','sakurairo_csf'),
  2530. 'default' => true
  2531. ),
  2532. array(
  2533. 'id' => 'author_profile_name',
  2534. 'type' => 'switcher',
  2535. 'title' => __('Article Page Author Name','sakurairo_csf'),
  2536. 'dependency' => array( 'article_function', '==', 'true', '', 'true' ),
  2537. 'label' => __('Author name will appear on the function bar when enabled','sakurairo_csf'),
  2538. 'default' => false
  2539. ),
  2540. array(
  2541. 'id' => 'author_profile_quote',
  2542. 'type' => 'switcher',
  2543. 'title' => __('Article Page Author Signature','sakurairo_csf'),
  2544. 'dependency' => array( 'article_function', '==', 'true', '', 'true' ),
  2545. 'label' => __('Enabled by default, Author signature will appear on the function bar','sakurairo_csf'),
  2546. 'default' => true
  2547. ),
  2548. array(
  2549. 'id' => 'article_modified_time',
  2550. 'type' => 'switcher',
  2551. 'title' => __('Article Last Update Time','sakurairo_csf'),
  2552. 'dependency' => array( 'article_function', '==', 'true', '', 'true' ),
  2553. 'label' => __('Article last update time will appear on the function bar when enabled','sakurairo_csf'),
  2554. 'default' => false
  2555. ),
  2556. array(
  2557. 'id' => 'article_tag',
  2558. 'type' => 'switcher',
  2559. 'title' => __('Article Tag','sakurairo_csf'),
  2560. 'dependency' => array( 'article_function', '==', 'true', '', 'true' ),
  2561. 'label' => __('Enabled by default, Article tag will appear on the function bar','sakurairo_csf'),
  2562. 'default' => true
  2563. ),
  2564. array(
  2565. 'id' => 'article_nextpre',
  2566. 'type' => 'switcher',
  2567. 'title' => __('Article Page Prev/Next Article Switcher','sakurairo_csf'),
  2568. 'label' => __('Enabled by default, the previous and next article switch will appear on the article pages','sakurairo_csf'),
  2569. 'default' => true
  2570. ),
  2571. )
  2572. ) );
  2573. Sakurairo_CSF::createSection( $prefix, array(
  2574. 'parent' => 'page',
  2575. 'title' => __('Template Page Options','sakurairo_csf'),
  2576. 'icon' => 'fa fa-window-maximize',
  2577. 'fields' => array(
  2578. array(
  2579. 'type' => 'submessage',
  2580. 'style' => 'info',
  2581. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Pages/#%E6%A8%A1%E6%9D%BF%E9%A1%B5%E9%9D%A2%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  2582. ),
  2583. array(
  2584. 'type' => 'subheading',
  2585. 'content' => __('Public Settings','sakurairo_csf'),
  2586. ),
  2587. array(
  2588. 'id' => 'page_temp_title_font_size',
  2589. 'type' => 'slider',
  2590. 'title' => __('Template Page Title Font Size','sakurairo_csf'),
  2591. 'desc' => __('Slide to adjust, recommended value range is 36-48. This option is only available for template pages with featured images already set','sakurairo_csf'),
  2592. 'unit' => 'px',
  2593. 'min' => '20',
  2594. 'max' => '64',
  2595. 'default' => '40'
  2596. ),
  2597. array(
  2598. 'type' => 'subheading',
  2599. 'content' => __('Bangumi Template Settings','sakurairo_csf'),
  2600. ),
  2601. array(
  2602. 'id' => 'bangumi_source',
  2603. 'type' => 'image_select',
  2604. 'title' => __('Bangumi Template Source', 'sakurairo_csf'),
  2605. 'options' => array(
  2606. 'bilibili' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/bangumi_tep_bili.webp',
  2607. 'myanimelist' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/bangumi_tep_mal.webp',
  2608. ),
  2609. 'default' => 'bilibili'
  2610. ),
  2611. array(
  2612. 'id' => 'my_anime_list_username',
  2613. 'type' => 'text',
  2614. 'title' => __('My Anime List Username','sakurairo_csf'),
  2615. 'dependency' => array( 'bangumi_source', '==', 'myanimelist', '', 'true' ),
  2616. 'desc' => __('Username on https://myanimelist.net/','sakurairo_csf'),
  2617. 'default' => ''
  2618. ),
  2619. array(
  2620. 'id' => 'my_anime_list_sort',
  2621. 'type' => 'radio',
  2622. 'title' => __('My Anime List Sort','sakurairo_csf'),
  2623. 'dependency' => array( 'bangumi_source', '==', 'myanimelist', '', 'true' ),
  2624. 'options' => array(
  2625. '1' => __('Status and Last Updated', 'sakurairo_csf'),
  2626. '2' => __('Last Updated', 'sakurairo_csf'),
  2627. '3' => __('Status', 'sakurairo_csf'),
  2628. ),
  2629. 'default' => '1'
  2630. ),
  2631. array(
  2632. 'id' => 'bilibili_id',
  2633. 'type' => 'text',
  2634. 'title' => __('Bilibili Account UID','sakurairo_csf'),
  2635. 'desc' => __('Fill in your account ID, e.g. https://space.bilibili.com/13972644/, just the number part "13972644"','sakurairo_csf'),
  2636. 'dependency' => array( 'bangumi_source', '==', 'bilibili', '', 'true' ),
  2637. 'default' => '13972644'
  2638. ),
  2639. array(
  2640. 'id' => 'bilibili_cookie',
  2641. 'type' => 'text',
  2642. 'title' => __('Bilibili Account Cookies','sakurairo_csf'),
  2643. 'desc' => __('Fill in your account cookies, F12 to open your browser web panel, go to your bilibili homepage to get cookies. If left empty, it will not show the progress of catching up bangumis','sakurairo_csf'),
  2644. 'dependency' => array( 'bangumi_source', '==', 'bilibili', '', 'true' ),
  2645. 'default' => 'LIVE_BUVID='
  2646. ),
  2647. array(
  2648. 'type' => 'subheading',
  2649. 'content' => __('Friend Link Template Settings','sakurairo_csf'),
  2650. ),
  2651. array(
  2652. 'id' => 'friend_link_align',
  2653. 'type' => 'image_select',
  2654. 'title' => __('Friend Link Template Unit Alignment','sakurairo_csf'),
  2655. 'options' => array(
  2656. 'left' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/friend_link_left.webp',
  2657. 'right' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/friend_link_right.webp',
  2658. 'center' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/friend_link_center.webp',
  2659. ),
  2660. 'default' => 'left'
  2661. ),
  2662. array(
  2663. 'id' => 'friend_link_title_matching_color',
  2664. 'type' => 'color',
  2665. 'title' => __('Friend Link Template Unit Matching Color','sakurairo_csf'),
  2666. 'desc' => __('Customize the colors, suggest using a corresponding color with the background color','sakurairo_csf'),
  2667. 'default' => '#ac354b'
  2668. ),
  2669. array(
  2670. 'id' => 'friend_link_shadow_color',
  2671. 'type' => 'color',
  2672. 'title' => __('Friend Link Template Unit Border Shadow Color','sakurairo_csf'),
  2673. 'desc' => __('Customize the colors, suggest using a corresponding color with the background color','sakurairo_csf'),
  2674. 'default' => '#e8e8e8'
  2675. ),
  2676. array(
  2677. 'id' => 'friend_link_sorting_mode',
  2678. 'type' => 'select',
  2679. 'title' => __('Friend Link Sorting Mode','sakurairo_csf'),
  2680. 'desc' => __('Select the friend link sorting mode, "Name" is used by Default.','sakurairo_csf'),
  2681. 'options' => array(
  2682. 'name' => __('Name','sakurairo_csf'),
  2683. 'rating' => __('Rating','sakurairo_csf'),
  2684. 'updated' => __('Updated','sakurairo_csf'),
  2685. 'rand' => __('Rand','sakurairo_csf'),
  2686. ),
  2687. 'default' => 'name'
  2688. ),
  2689. array(
  2690. 'id' => 'friend_link_order',
  2691. 'type' => 'select',
  2692. 'title' => __('Ascending OR Descending','sakurairo_csf'),
  2693. 'desc' => __('Order friend link in ascending or descending.','sakurairo_csf'),
  2694. 'dependency' => array( 'friend_link_sorting_mode', '!=', 'rand', '', 'true' ),
  2695. 'options' => array(
  2696. 'ASC' => __('Ascending','sakurairo_csf'),
  2697. 'DESC' => __('Descending','sakurairo_csf'),
  2698. ),
  2699. 'default' => 'ASC'
  2700. ),
  2701. array(
  2702. 'type' => 'subheading',
  2703. 'content' => __('Login Template Settings','sakurairo_csf'),
  2704. ),
  2705. array(
  2706. 'id' => 'ex_register_open',
  2707. 'type' => 'switcher',
  2708. 'title' => __('Login Template Registration Function','sakurairo_csf'),
  2709. 'label' => __('Login template will allow registration when enabled','sakurairo_csf'),
  2710. 'default' => false
  2711. ),
  2712. )
  2713. ) );
  2714. Sakurairo_CSF::createSection( $prefix, array(
  2715. 'parent' => 'page',
  2716. 'title' => __('Comment-related Options','sakurairo_csf'),
  2717. 'icon' => 'fa fa-comments-o',
  2718. 'fields' => array(
  2719. array(
  2720. 'type' => 'submessage',
  2721. 'style' => 'info',
  2722. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Pages/#%E8%AF%84%E8%AE%BA%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  2723. ),
  2724. array(
  2725. 'type' => 'subheading',
  2726. 'content' => __('Comment Area Style','sakurairo_csf'),
  2727. ),
  2728. array(
  2729. 'id' => 'comment_area',
  2730. 'type' => 'radio',
  2731. 'title' => __('Page Comment Area Display','sakurairo_csf'),
  2732. 'desc' => __('You can choose to expand or shirink the content of the comment area','sakurairo_csf'),
  2733. 'options' => array(
  2734. 'unfold' => __('Expand','sakurairo_csf'),
  2735. 'fold' => __('Shrink','sakurairo_csf'),
  2736. ),
  2737. 'default' => 'unfold'
  2738. ),
  2739. array(
  2740. 'id' => 'comment_area_image',
  2741. 'type' => 'upload',
  2742. 'title' => __('Page Comment Area Bottom Right Background Image','sakurairo_csf'),
  2743. 'desc' => __('If this option is blank, there will be no image, no best recommendation here','sakurairo_csf'),
  2744. 'library' => 'image',
  2745. ),
  2746. array(
  2747. 'type' => 'subheading',
  2748. 'content' => __('Comment Area Function','sakurairo_csf'),
  2749. ),
  2750. array(
  2751. 'id' => 'smilies_list',
  2752. 'type' => 'button_set',
  2753. 'title' => __('Comment Area Emoticon','sakurairo_csf'),
  2754. 'desc' => __('Select the emoticons to be displayed in the comment area input box. Uncheck all to turn off the comment input box emoticon function.','sakurairo_csf'),
  2755. 'multiple' => true,
  2756. 'options' => array(
  2757. 'bilibili' => __('BiliBili Emoticon Pack','sakurairo_csf'),
  2758. 'tieba' => __('Baidu Tieba Emoticon Pack','sakurairo_csf'),
  2759. 'yanwenzi' => __('Emoji','sakurairo_csf'),
  2760. 'custom' => __('Customized Emoticon Pack','sakurairo_csf'),
  2761. ),
  2762. 'default' => array( 'bilibili', 'tieba', 'yanwenzi' )
  2763. ),
  2764. array(
  2765. 'id' => 'smilies_name',
  2766. 'type' => 'text',
  2767. 'title' => __('Customized Emoticon Column Name','sakurairo_csf'),
  2768. 'desc' => __('It is recommended to enter less than 4 Chinese characters in length to avoid causing compatibility issues on mobile terminals.','sakurairo_csf'),
  2769. 'dependency' => array( 'smilies_list', 'any', 'custom', '', 'true' ),
  2770. 'default' => 'custom'
  2771. ),
  2772. array(
  2773. 'id' => 'smilies_dir',
  2774. 'type' => 'text',
  2775. 'title' => __('Path To Custom Expression','sakurairo_csf'),
  2776. 'desc' => __('Click <a href="./admin.php?update_custom_smilies=true" target="_blank">here</a> updating emoticon list. Specific usage reference: <a href="https://docs.fuukei.org/Sakurairo/Pages/#%E8%AF%84%E8%AE%BA%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE" target="_blank">Comment related settings</a>','sakurairo_csf'),
  2777. 'dependency' => array( 'smilies_list', 'any', 'custom', '', 'true' ),
  2778. ),
  2779. array(
  2780. 'id' => 'smilies_proxy',
  2781. 'type' => 'text',
  2782. 'title' => __('Custom Emoticon Proxy Address','sakurairo_csf'),
  2783. 'desc' => __('Fill in the CDN address of the emoticon image. If left blank, the CDN proxy function will not be enabled.','sakurairo_csf'),
  2784. 'dependency' => array(
  2785. array('smilies_list', 'any', 'custom', '', 'true' ),
  2786. array('smilies_dir', '!=', '', '', 'true'),
  2787. ),
  2788. ),
  2789. array(
  2790. 'id' => 'comment_useragent',
  2791. 'type' => 'switcher',
  2792. 'title' => __('Page Comment Area UA Info','sakurairo_csf'),
  2793. 'label' => __('When enabled, the page comment area will display the user’s browser, operating system information','sakurairo_csf'),
  2794. 'default' => false
  2795. ),
  2796. array(
  2797. 'id' => 'comment_location',
  2798. 'type' => 'switcher',
  2799. 'title' => __('Page Comment Area Location Information','sakurairo_csf'),
  2800. 'label' => __('When enabled, the page comment area will show the user’s location information','sakurairo_csf'),
  2801. 'default' => false
  2802. ),
  2803. array(
  2804. 'id' => 'show_location_in_manage',
  2805. 'type' => 'switcher',
  2806. 'title' => __('Management Page Displays Location Information', 'sakurairo_csf'),
  2807. 'label' => __('When enabled, the commenter\'s IP geographical location information will be displayed on the comment management page', 'sakurairo_csf'),
  2808. 'default' => true
  2809. ),
  2810. array(
  2811. 'id' => 'save_location',
  2812. 'type' => 'switcher',
  2813. 'title' => __('Location Information Persistence','sakurairo_csf'),
  2814. 'label' => __('When enabled, the commenter\'s IP geographical location information will be stored in the database','sakurairo_csf'),
  2815. 'default' => true
  2816. ),
  2817. array(
  2818. 'id' => 'location_server',
  2819. 'type' => 'select',
  2820. 'title' => __('API To Parse Geographical Location','sakurairo_csf'),
  2821. 'options' => array(
  2822. 'sakurairo' => __('Theme Official','sakurairo_csf'),
  2823. 'ip-api' => __('IP—API','sakurairo_csf'),
  2824. 'all' => __('All','sakurairo_csf'),
  2825. ),
  2826. 'default' => 'all'
  2827. ),
  2828. array(
  2829. 'type' => 'content',
  2830. 'content' => __(
  2831. '<p><strong>Theme Official:</strong>Official API of the theme</p>'
  2832. .'<p><strong>IP-API:</strong>Provided by <a target="_blank" href="https://ip-api.com/">ip-api.com</a></p>'
  2833. .'<p><strong>All:</strong>Priority is given to Theme Official, IP—API for fallback</p>','sakurairo_csf'),
  2834. ),
  2835. array(
  2836. 'id' => 'comment_private_message',
  2837. 'type' => 'switcher',
  2838. 'title' => __('Private Comment Function','sakurairo_csf'),
  2839. 'label' => __('When enabled, users are allowed to set their comments to be invisible to others','sakurairo_csf'),
  2840. 'default' => false
  2841. ),
  2842. array(
  2843. 'id' => 'not_robot',
  2844. 'type' => 'switcher',
  2845. 'title' => __('Page Comment Area Bot Verification','sakurairo_csf'),
  2846. 'label' => __('After turning on user comments need to be verified before posting','sakurairo_csf'),
  2847. 'default' => false
  2848. ),
  2849. array(
  2850. 'id' => 'qq_avatar_link',
  2851. 'type' => 'select',
  2852. 'title' => __('QQ Avatar Link Encryption','sakurairo_csf'),
  2853. 'options' => array(
  2854. 'off' => __('Off','sakurairo_csf'),
  2855. 'type_1' => __('Redirect (low security)','sakurairo_csf'),
  2856. 'type_2' => __('Get avatar data in the backend (medium security)','sakurairo_csf'),
  2857. 'type_3' => __('Parse avatar interface in the backend (high security, slow)','sakurairo_csf'),
  2858. ),
  2859. 'default' => 'off'
  2860. ),
  2861. array(
  2862. 'id' => 'img_upload_api',
  2863. 'type' => 'select',
  2864. 'title' => __('Page Comment Area Upload Image Interface','sakurairo_csf'),
  2865. 'options' => array(
  2866. 'off' => __('Off','sakurairo_csf'),
  2867. 'imgur' => 'Imgur (https://imgur.com)',
  2868. 'smms' => 'SM.MS (https://sm.ms)',
  2869. 'chevereto' => 'Chevereto (https://chevereto.com)',
  2870. 'lsky' => 'Lsky Pro (https://www.lsky.pro)',
  2871. ),
  2872. 'default' => 'off'
  2873. ),
  2874. array(
  2875. 'id' => 'imgur_client_id',
  2876. 'type' => 'text',
  2877. 'title' => __('Imgur Client ID','sakurairo_csf'),
  2878. 'dependency' => array( 'img_upload_api', '==', 'imgur', '', 'true' ),
  2879. 'desc' => __('Fill in Client ID here, to register please visit https://api.imgur.com/oauth2/addclient','sakurairo_csf'),
  2880. ),
  2881. array(
  2882. 'id' => 'imgur_upload_image_proxy',
  2883. 'type' => 'text',
  2884. 'title' => __('Imgur Upload Proxy','sakurairo_csf'),
  2885. 'dependency' => array( 'img_upload_api', '==', 'imgur', '', 'true' ),
  2886. 'desc' => __('The proxy used by the backend when uploading images to Imgur. You can refer to the tutorial: https://2heng.xin/2018/06/06/javascript-upload-images-with-imgur-api/','sakurairo_csf'),
  2887. 'default' => 'https://api.imgur.com/3/image/'
  2888. ),
  2889. array(
  2890. 'id' => 'smms_client_id',
  2891. 'type' => 'text',
  2892. 'title' => __('SM.MS Secret Token','sakurairo_csf'),
  2893. 'dependency' => array( 'img_upload_api', '==', 'smms', '', 'true' ),
  2894. 'desc' => __('Fill in your Key here, to get it please visit https://sm.ms/home/apitoken','sakurairo_csf'),
  2895. ),
  2896. array(
  2897. 'id' => 'chevereto_api_key',
  2898. 'type' => 'text',
  2899. 'title' => __('Chevereto API v1 Key','sakurairo_csf'),
  2900. 'dependency' => array( 'img_upload_api', '==', 'chevereto', '', 'true' ),
  2901. 'desc' => __('Fill in the Key here, to get please visit your Chevereto home page address/dashboard/settings/api','sakurairo_csf'),
  2902. ),
  2903. array(
  2904. 'id' => 'cheverto_url',
  2905. 'type' => 'text',
  2906. 'title' => __('Chevereto Address','sakurairo_csf'),
  2907. 'dependency' => array( 'img_upload_api', '==', 'chevereto', '', 'true' ),
  2908. 'desc' => __('Your Chevereto home page address. Please note that there is no "/" at the end, e.g. https://your.cherverto.com','sakurairo_csf'),
  2909. ),
  2910. array(
  2911. 'id' => 'lsky_api_key',
  2912. 'type' => 'text',
  2913. 'title' => __('Lsky Pro v1 Token','sakurairo_csf'),
  2914. 'dependency' => array( 'img_upload_api', '==', 'lsky', '', 'true' ),
  2915. 'desc' => __('Fill in the Token here, Please note that there is no "Bearer " at first, to get please visit your Lsky Pro home page address/api','sakurairo_csf'),
  2916. ),
  2917. array(
  2918. 'id' => 'lsky_url',
  2919. 'type' => 'text',
  2920. 'title' => __('Lsky Pro Address','sakurairo_csf'),
  2921. 'dependency' => array( 'img_upload_api', '==', 'lsky', '', 'true' ),
  2922. 'desc' => __('Your Lsky Pro home page address. Please note that there is no "/" at the end, e.g. https://your.lskypro.com','sakurairo_csf'),
  2923. ),
  2924. array(
  2925. 'id' => 'comment_image_proxy',
  2926. 'type' => 'text',
  2927. 'title' => __('Comment Image Proxy','sakurairo_csf'),
  2928. 'desc' => __('Proxy for the image displayed on the frontend','sakurairo_csf'),
  2929. 'dependency' => array( 'img_upload_api', '!=', 'off', '', 'true' ),
  2930. 'default' => 'https://images.weserv.nl/?url='
  2931. ),
  2932. array(
  2933. 'type' => 'subheading',
  2934. 'content' => __('Comment Email Notification','sakurairo_csf'),
  2935. ),
  2936. array(
  2937. 'id' => 'mail_img',
  2938. 'type' => 'upload',
  2939. 'title' => __('Mail Template Featured Image','sakurairo_csf'),
  2940. 'desc' => __('Set the background image of your reply email','sakurairo_csf'),
  2941. 'library' => 'image',
  2942. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/series/mail_head.webp'
  2943. ),
  2944. array(
  2945. 'id' => 'mail_user_name',
  2946. 'type' => 'text',
  2947. 'title' => __('Mail Template Sending Address Prefix','sakurairo_csf'),
  2948. 'desc' => __('Used to send system mail. The sender address will be displayed in the user\'s mailbox, don\'t use Non-English Characters. The default system mail address is bibi@your domain','sakurairo_csf'),
  2949. 'default' => 'bibi'
  2950. ),
  2951. array(
  2952. 'id' => 'mail_notify',
  2953. 'type' => 'switcher',
  2954. 'title' => __('User Mail Reply Notification','sakurairo_csf'),
  2955. 'label' => __('By default WordPress will use email notifications to notify users when their comments receive a reply. After turning it on users are allowed to set whether to use email notifications when their comments receive a reply','sakurairo_csf'),
  2956. 'default' => false
  2957. ),
  2958. array(
  2959. 'id' => 'admin_notify',
  2960. 'type' => 'switcher',
  2961. 'title' => __('Admin Email Reply Notification','sakurairo_csf'),
  2962. 'label' => __('Use email notifications when admin comments receive a reply after turning it on','sakurairo_csf'),
  2963. 'default' => false
  2964. ),
  2965. )
  2966. ) );
  2967. Sakurairo_CSF::createSection( $prefix, array(
  2968. 'id' => 'others',
  2969. 'title' => __('Other Options','sakurairo_csf'),
  2970. 'icon' => 'fa fa-coffee',
  2971. ) );
  2972. Sakurairo_CSF::createSection( $prefix, array(
  2973. 'parent' => 'others',
  2974. 'title' => __('Login Screen and Dashboard Related Options','sakurairo_csf'),
  2975. 'icon' => 'fa fa-sign-in',
  2976. 'fields' => array(
  2977. array(
  2978. 'type' => 'submessage',
  2979. 'style' => 'info',
  2980. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Others/#%E7%99%BB%E5%BD%95%E7%95%8C%E9%9D%A2%E5%92%8C%E4%BB%AA%E8%A1%A8%E7%9B%98%E7%9B%B8%E5%85%B3%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  2981. ),
  2982. array(
  2983. 'type' => 'subheading',
  2984. 'content' => __('Login Screen','sakurairo_csf'),
  2985. ),
  2986. array(
  2987. 'id' => 'custom_login_switch',
  2988. 'type' => 'switcher',
  2989. 'title' => __('Custom Login Screen','sakurairo_csf'),
  2990. 'label' => __('Default on, custom login screen will replace the default login screen','sakurairo_csf'),
  2991. 'default' => true
  2992. ),
  2993. array(
  2994. 'id' => 'login_background',
  2995. 'type' => 'upload',
  2996. 'title' => __('Login Screen Background Image','sakurairo_csf'),
  2997. 'desc' => __('Set your login screen background image, leave this option blank to show the default','sakurairo_csf'),
  2998. 'dependency' => array( 'custom_login_switch', '==', 'true', '', 'true' ),
  2999. 'library' => 'image',
  3000. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/series/login_background.webp'
  3001. ),
  3002. array(
  3003. 'id' => 'login_blur',
  3004. 'type' => 'switcher',
  3005. 'title' => __('Login Screen Background Blur','sakurairo_csf'),
  3006. 'label' => __('Login screen background image will be blurred when enabled','sakurairo_csf'),
  3007. 'dependency' => array( 'custom_login_switch', '==', 'true', '', 'true' ),
  3008. 'default' => false
  3009. ),
  3010. array(
  3011. 'id' => 'login_logo_img',
  3012. 'type' => 'upload',
  3013. 'title' => __('Login Screen Logo','sakurairo_csf'),
  3014. 'desc' => __('Set your login screen Logo','sakurairo_csf'),
  3015. 'dependency' => array( 'custom_login_switch', '==', 'true', '', 'true' ),
  3016. 'library' => 'image',
  3017. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/series/login_logo.webp'
  3018. ),
  3019. array(
  3020. 'id' => 'login_urlskip',
  3021. 'type' => 'switcher',
  3022. 'title' => __('Jump after login','sakurairo_csf'),
  3023. 'label' => __('Jump to backend for admins and home for users after turning on.','sakurairo_csf'),
  3024. 'default' => false
  3025. ),
  3026. array(
  3027. 'id' => 'login_language_opt',
  3028. 'type' => 'switcher',
  3029. 'title' => __('Login Screen Language Option','sakurairo_csf'),
  3030. 'label' => __('Login screen language option will be display when enabled','sakurairo_csf'),
  3031. 'default' => false
  3032. ),
  3033. array(
  3034. 'type' => 'subheading',
  3035. 'content' => __('Dashboard','sakurairo_csf'),
  3036. ),
  3037. array(
  3038. 'id' => 'admin_background',
  3039. 'type' => 'upload',
  3040. 'title' => __('Dashboard Background Image','sakurairo_csf'),
  3041. 'desc' => __('Set your dashboard background image, leave this option blank to show white background','sakurairo_csf'),
  3042. 'library' => 'image',
  3043. 'default' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/series/admin_background.webp'
  3044. ),
  3045. array(
  3046. 'id' => 'admin_left_style',
  3047. 'type' => 'image_select',
  3048. 'title' => __('Dashboard Options Menu Style','sakurairo_csf'),
  3049. 'options' => array(
  3050. 'v1' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/admin_left_style_v1.webp',
  3051. 'v2' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/admin_left_style_v2.webp',
  3052. ),
  3053. 'default' => 'v1'
  3054. ),
  3055. array(
  3056. 'id' => 'admin_first_class_color',
  3057. 'type' => 'color',
  3058. 'title' => __('Dashboard Primary Menu Color','sakurairo_csf'),
  3059. 'desc' => __('Customize the colors','sakurairo_csf'),
  3060. 'default' => '#3c5571'
  3061. ),
  3062. array(
  3063. 'id' => 'admin_second_class_color',
  3064. 'type' => 'color',
  3065. 'title' => __('Dashboard Secondary Menu Color','sakurairo_csf'),
  3066. 'desc' => __('Customize the colors','sakurairo_csf'),
  3067. 'default' => '#4e739d'
  3068. ),
  3069. array(
  3070. 'id' => 'admin_emphasize_color',
  3071. 'type' => 'color',
  3072. 'title' => __('Dashboard Emphasis Color','sakurairo_csf'),
  3073. 'desc' => __('Customize the colors','sakurairo_csf'),
  3074. 'default' => '#cfc3af'
  3075. ),
  3076. array(
  3077. 'id' => 'admin_button_color',
  3078. 'type' => 'color',
  3079. 'title' => __('Dashboard Button Color','sakurairo_csf'),
  3080. 'desc' => __('Customize the colors','sakurairo_csf'),
  3081. 'default' => '#ac9c91'
  3082. ),
  3083. array(
  3084. 'id' => 'admin_text_color',
  3085. 'type' => 'color',
  3086. 'title' => __('Dashboard Text Color','sakurairo_csf'),
  3087. 'desc' => __('Customize the colors','sakurairo_csf'),
  3088. 'default' => '#FFFFFF'
  3089. ),
  3090. )
  3091. ) );
  3092. Sakurairo_CSF::createSection( $prefix, array(
  3093. 'parent' => 'others',
  3094. 'title' => __('ChatGPT Options','sakurairo_csf'),
  3095. 'icon' => 'fas fa-atom',
  3096. 'fields' => array(
  3097. array(
  3098. 'type' => 'submessage',
  3099. 'style' => 'info',
  3100. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Others/#ChatGPT%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  3101. ),
  3102. array(
  3103. 'id' => 'composer_load',
  3104. 'type' => 'switcher',
  3105. 'title' => __('ChatGPT Function','sakurairo_csf'),
  3106. 'label' => __('After turning on ChatGPT Function will be available','sakurairo_csf'),
  3107. 'default' => false
  3108. ),
  3109. array(
  3110. 'type' => 'content',
  3111. 'content' => __('<img src="https://s.nmxc.ltd/sakurairo_vision/@2.7/options/leaflow.webp" width="25%" height="25%"/><img src="https://s.nmxc.ltd/sakurairo_vision/@2.7/options/postchat.webp" width="25%" height="25%"/>','sakurairo_csf'),
  3112. ),
  3113. array(
  3114. 'type' => 'callback',
  3115. 'function' => function (){
  3116. ?>
  3117. <div>
  3118. <h5><?=__("Reset to API providers' default options","sakurairo_csf")?></h5>
  3119. <div class="chatgpt_config_defaults"><button data-name="leaflow">
  3120. <?=__("Leaflow","sakurairo_csf")?>
  3121. </button>
  3122. <button data-name="postchat">
  3123. <?=__("PostChat","sakurairo_csf")?>
  3124. </button>
  3125. <button data-name="openai">
  3126. <?=__("OpenAI","sakurairo_csf")?>
  3127. </button>
  3128. </div>
  3129. <script>
  3130. const defaults = {
  3131. leaflow:{
  3132. chatgpt_base_url:"https://amber-api.leaflow.cn/api/openai-compatible",
  3133. chatgpt_model:"auto"
  3134. },
  3135. postchat:{
  3136. chatgpt_base_url:"https://ai.tianli0.top",
  3137. chatgpt_model:"tianli"
  3138. },
  3139. openai:{
  3140. chatgpt_base_url:"https://api.openai.com",
  3141. chatgpt_model:"gpt-4o-mini",
  3142. }
  3143. }
  3144. document.querySelector(".chatgpt_config_defaults").addEventListener('click',(e)=>{
  3145. if(e.target.tagName === "BUTTON"){
  3146. const name = e.target.dataset.name
  3147. const def = defaults[name]
  3148. if(!def)return
  3149. e.preventDefault()
  3150. e.stopPropagation()
  3151. try {
  3152. for(const key in def){
  3153. document.querySelector(`input[name="iro_options[${key}]"]`).value = def[key]
  3154. }
  3155. alert('<?=__("Reset successfully","sakurairo_csf")?>')
  3156. } catch (error) {
  3157. alert("<?=__("Failed to reset","sakurairo_csf")?>" )
  3158. console.error(error)
  3159. }
  3160. }
  3161. })
  3162. </script>
  3163. </div>
  3164. <?php
  3165. },
  3166. ),
  3167. array(
  3168. 'id' => 'chatgpt_base_url',
  3169. 'type' => 'text',
  3170. 'title' => __('ChatGPT Base URL','sakurairo_csf'),
  3171. 'desc' => __('Fill in the ChatGPT Base URL','sakurairo_csf'),
  3172. 'dependency' => array( 'composer_load', '==', 'true', '', 'true' ),
  3173. 'default' => 'https://api.openai.com'
  3174. ),
  3175. array(
  3176. 'id' => 'chatgpt_access_token',
  3177. 'type' => 'text',
  3178. 'title' => __('ChatGPT API keys','sakurairo_csf'),
  3179. 'desc' => __('Fill in Your ChatGPT API keys, please refer to <a href="https://platform.openai.com/account/api-keys">OpenAI Website</a> for further information.','sakurairo_csf'),
  3180. 'dependency' => array( 'composer_load', '==', 'true', '', 'true' ),
  3181. ),
  3182. array(
  3183. 'id' => 'chatgpt_article_summarize',
  3184. 'type' => 'switcher',
  3185. 'title' => __('ChatGPT Article Summarize','sakurairo_csf'),
  3186. 'label' => __('After turning on, title and context of your articles will be automatically sent to ChatGPT to generate excerpts.','sakurairo_csf'),
  3187. 'dependency' => array( 'composer_load', '==', 'true', '', 'true' ),
  3188. 'default' => false
  3189. ),
  3190. array(
  3191. 'type' => 'content',
  3192. 'content'=> __('Each update of your post will trigger a request to generate a summary. Due to current API limitations, if your article exceeds 4097 Token, the system will only send the unexceeded portion to generate a summary','sakurairo_csf'),
  3193. 'dependency' => array(
  3194. array( 'composer_load', '==', 'true'),
  3195. array( 'chatgpt_article_summarize', '==', 'true', '', 'true' ),
  3196. ),
  3197. ),
  3198. array(
  3199. 'id' => 'chatgpt_exclude_ids',
  3200. 'type' => 'text',
  3201. 'title' => __('Article IDs that do not Require ChatGPT Summarize','sakurairo_csf'),
  3202. 'desc' => __('Those articles will never be sent to ChatGPT for excerpt generation. Split each id with a ",".','sakurairo_csf'),
  3203. 'dependency' => array(
  3204. array( 'composer_load', '==', 'true'),
  3205. array( 'chatgpt_article_summarize', '==', 'true', '', 'true' ),
  3206. ),
  3207. 'default' => ''
  3208. ),
  3209. array(
  3210. 'id' => 'chatgpt_init_prompt',
  3211. 'type' => 'textarea',
  3212. 'title' => __('ChatGPT Article Summarize Init Prompt','sakurairo_csf'),
  3213. 'dependency' => array(
  3214. array( 'composer_load', '==', 'true'),
  3215. array( 'chatgpt_article_summarize', '==', 'true', '', 'true' ),
  3216. ),
  3217. 'desc' => __('Init Prompt instructs AI how to generate summaries for your articles. Init Prompt will be passed to ChatGPT as "system" role','sakurairo_csf'),
  3218. 'default' => '请以作者的身份,以激发好奇吸引阅读为目的,结合文章核心观点来提取的文章中最吸引人的内容,为以下文章编写一个用词精炼简短、110字以内、与文章语言一致的引言。'
  3219. ),
  3220. array(
  3221. 'id' => 'chatgpt_model',
  3222. 'type' => 'text',
  3223. 'title' => __('ChatGPT Model','sakurairo_csf'),
  3224. 'descr' => __('Only models support Chat Completion API can be used. The default is "gpt-4o-mini. View https://platform.openai.com/docs/models/overview for further info.','sakurairo_csf'),
  3225. 'dependency' => array(
  3226. array( 'composer_load', '==', 'true'),
  3227. array( 'chatgpt_article_summarize', '==', 'true', '', 'true' ),
  3228. ),
  3229. "default" => "gpt-4o-mini"
  3230. ),
  3231. array(
  3232. 'type' => 'callback',
  3233. 'function' => function (){
  3234. ?>
  3235. <div>
  3236. <h5><?=__("ChatGPT API self test","sakurairo_csf")?></h5>
  3237. <label for="chatgpt_post_id">post_id: </label>
  3238. <input type="text" id="chatgpt_post_id" value="" required pattern="\d+"/>
  3239. <button>
  3240. <?=__("TEST","sakurairo_csf")?>
  3241. </button>
  3242. <br>
  3243. <label><?=__("Results: ","sakurairo_csf")?></label>
  3244. <p id="chatgpt_result"></p>
  3245. <script>
  3246. /**@type {HTMLInputElement} */
  3247. const input = document.querySelector("#chatgpt_post_id");
  3248. input.nextElementSibling.addEventListener('click',async (e)=>{
  3249. e.stopPropagation()
  3250. e.preventDefault()
  3251. const btn = e.currentTarget
  3252. try{
  3253. btn.disabled = true
  3254. if(input.checkValidity()){
  3255. chatgpt_result.innerHTML = "<?=__("Waiting for response...","sakurairo_csf")?>"
  3256. const resp = await fetch(`/wp-json/sakura/v1/chatgpt?post_id=${input.value}`,{
  3257. headers:{'X-WP-Nonce':"<?=wp_create_nonce( 'wp_rest' )?>"}
  3258. })
  3259. const data = await resp.text()
  3260. try{
  3261. chatgpt_result.textContent = JSON.stringify(JSON.parse(data),null,2)
  3262. }catch{
  3263. chatgpt_result.innerHTML = data.replaceAll(/\\u[\da-f]{4}/gi,(m)=>String.fromCharCode(parseInt(m.slice(2),16)))
  3264. }
  3265. }else{
  3266. chatgpt_result.textContent = "<?=__("Malformed post_id: ","sakurairo_csf")?>"+input.validationMessage
  3267. }
  3268. }finally{
  3269. btn.disabled = false
  3270. }
  3271. })
  3272. </script>
  3273. </div>
  3274. <?php
  3275. },
  3276. ),
  3277. )
  3278. ) );
  3279. Sakurairo_CSF::createSection( $prefix, array(
  3280. 'parent' => 'others',
  3281. 'title' => __('Low Use Options','sakurairo_csf'),
  3282. 'icon' => 'fa fa-low-vision',
  3283. 'fields' => array(
  3284. array(
  3285. 'type' => 'submessage',
  3286. 'style' => 'info',
  3287. 'content' => __('You can click <a href="https://docs.fuukei.org/Sakurairo/Others/#%E4%BD%8E%E4%BD%BF%E7%94%A8%E8%AE%BE%E7%BD%AE">here</a> to learn how to set the options on this page','sakurairo_csf'),
  3288. ),
  3289. array(
  3290. 'id' => 'statistics_api',
  3291. 'type' => 'radio',
  3292. 'title' => __('Statistics API','sakurairo_csf'),
  3293. 'desc' => __('You can choose WP-Statistics plugin statistics or theme built-in statistics to display','sakurairo_csf'),
  3294. 'options' => array(
  3295. 'theme_build_in' => __('Theme Built in Statistics','sakurairo_csf'),
  3296. 'wp_statistics' => __('WP-Statistics Plugin Statistics','sakurairo_csf'),
  3297. ),
  3298. 'default' => 'theme_build_in'
  3299. ),
  3300. array(
  3301. 'id' => 'statistics_format',
  3302. 'type' => 'select',
  3303. 'title' => __('Statistics display format','sakurairo_csf'),
  3304. 'desc' => __('You can choose from four different data display formats','sakurairo_csf'),
  3305. 'options' => array(
  3306. 'type_1' => __('23333 Visits','sakurairo_csf'),
  3307. 'type_2' => __('23,333 Visits','sakurairo_csf'),
  3308. 'type_3' => __('23 333 Visits','sakurairo_csf'),
  3309. 'type_4' => __('23K Visits','sakurairo_csf'),
  3310. ),
  3311. 'default' => 'type_1'
  3312. ),
  3313. array(
  3314. 'id' => 'live_search',
  3315. 'type' => 'switcher',
  3316. 'title' => __('Live Search','sakurairo_csf'),
  3317. 'label' => __('After turning on the live search in the frontend, call Rest API to update the cache once an hour. You can set the cache time manually in api.php','sakurairo_csf'),
  3318. 'default' => false
  3319. ),
  3320. array(
  3321. 'id' => 'live_search_comment',
  3322. 'type' => 'switcher',
  3323. 'title' => __('Live Search Comment Support','sakurairo_csf'),
  3324. 'dependency' => array( 'live_search', '==', 'true', '', 'true' ),
  3325. 'label' => __('Enable to search for comments in live search (not recommended if site has too many comments)','sakurairo_csf'),
  3326. 'default' => false
  3327. ),
  3328. array(
  3329. 'id' => 'google_analytics_id',
  3330. 'type' => 'text',
  3331. 'title' => __('Google Analytics Id','sakurairo_csf'),
  3332. 'label' => __('If you already have a plugin to handle it, please keep here empty.','sakurairo_csf'),
  3333. ),
  3334. array(
  3335. 'id' => 'site_custom_style',
  3336. 'type' => 'code_editor',
  3337. 'title' => __('Custom CSS Styles','sakurairo_csf'),
  3338. 'desc' => __('Fill in the CSS code without writing style tag','sakurairo_csf'),
  3339. ),
  3340. array(
  3341. 'id'=>'site_header_insert',
  3342. 'type' => 'code_editor',
  3343. 'sanitize' => false,
  3344. 'title' => __('Code inserted in the header','sakurairo_csf'),
  3345. 'desc' => __('Insert HTML code right before </head>.','sakurairo_csf'),
  3346. ),
  3347. array(
  3348. 'id' => 'time_zone_fix',
  3349. 'type' => 'slider',
  3350. 'title' => __('Timezone Fix','sakurairo_csf'),
  3351. 'desc' => __('Slide to adjust. If the comment has a time difference problem, adjust it here, fill in an integer. Calculation method: actual time = time of display error - the integer you entered (in hours)','sakurairo_csf'),
  3352. 'step' => '1',
  3353. 'max' => '24',
  3354. 'default' => '0'
  3355. ),
  3356. array(
  3357. 'id' => 'gravatar_proxy',
  3358. 'type' => 'select',
  3359. 'title' => __('Gravatar Service Proxy','sakurairo_csf'),
  3360. 'desc' => __('You can select multiple proxy as the Gravatar Service Proxy. By default, Tianli is used as the Gravatar Service Proxy.','sakurairo_csf'),
  3361. 'options' => array(
  3362. 'weavatar.com/avatar' => __('Weavatar Service','sakurairo_csf'),
  3363. 'cravatar.cn/avatar' => __('Cravatar Service','sakurairo_csf'),
  3364. 'sdn.geekzu.org/avatar' => __('Geekzu','sakurairo_csf'),
  3365. 'gravatar.loli.net/avatar' => __('Loli Net','sakurairo_csf'),
  3366. 'gravatar.com/avatar' => __('Official','sakurairo_csf'),
  3367. 'custom_proxy_address_of_gravatar' => __('Custom Proxy Address','sakurairo_csf'),
  3368. ),
  3369. 'default' => 'weavatar.com/avatar'
  3370. ),
  3371. array(
  3372. 'id' => 'custom_proxy_address_of_gravatar',
  3373. 'type' => 'text',
  3374. 'title' => __('Custom Proxy Address','sakurairo_csf'),
  3375. 'desc' => __('Enter your Gravatar proxy address without starting with "http(s)://" and ending with "/". Example: gravatar.com/avatar.','sakurairo_csf'),
  3376. 'dependency' => array( 'gravatar_proxy', '==', 'custom_proxy_address_of_gravatar', '', 'true' ),
  3377. 'default' => 'gravatar.com/avatar'
  3378. ),
  3379. array(
  3380. 'type' => 'subheading',
  3381. 'content' => __('Lightbox','sakurairo_csf'),
  3382. ),
  3383. array(
  3384. 'id' => 'baguetteBox',
  3385. 'type' => 'switcher',
  3386. 'title' => __('BaguetteBox Lightbox Effect','sakurairo_csf'),
  3387. 'label' => __('BaguetteBox will be used as the image lightbox effect when turned on','sakurairo_csf'),
  3388. 'dependency' => array(
  3389. array( 'fancybox', '==', 'false', '', 'true' ),
  3390. array( 'lightgallery', '==', 'false' ),
  3391. ),
  3392. 'default' => false
  3393. ),
  3394. array(
  3395. 'id' => 'fancybox',
  3396. 'type' => 'switcher',
  3397. 'title' => __('FancyBox Lightbox Effect','sakurairo_csf'),
  3398. 'label' => __('FancyBox will be used as an image lightbox effect after turning on, additional JQ libraries will be loaded','sakurairo_csf'),
  3399. 'dependency' => array(
  3400. array( 'baguetteBox', '==', 'false', '', 'true' ),
  3401. array( 'lightgallery', '==', 'false' ),
  3402. ),
  3403. 'default' => false
  3404. ),
  3405. array(
  3406. 'id' => 'lightgallery',
  3407. 'type' => 'switcher',
  3408. 'title' => __('LightGallery Lightbox Effect','sakurairo_csf'),
  3409. 'label' => __('LightGallery will be used as an image lightbox effect after turning on.','sakurairo_csf'),
  3410. 'dependency' => array(
  3411. array( 'fancybox', '==', 'false', '', 'true' ),
  3412. array( 'baguetteBox', '==', 'false' ),
  3413. ),
  3414. 'default' => false
  3415. ),
  3416. array(
  3417. 'type' => 'content',
  3418. 'content'=>__('<strong>Attension: Please read <a href="https://github.com/sachinchoolur/lightGallery#license">License Instruction</a> before use.</strong>'
  3419. .'<br/><strong><a href="https://www.lightgalleryjs.com/demos/thumbnails/">Demos</a></strong> | <strong><a href="https://www.lightgalleryjs.com/docs/settings/">Reference</a></strong> | <strong><a href="https://fastly.jsdelivr.net/npm/lightgallery@latest/plugins/">Plugin List</a></strong> '
  3420. .'<br/> Please write settings in JavaScript. An example has been provided as default setting.'
  3421. .'<br/> It should be captiable for Most User using WordPress Guttenberg Editor.'
  3422. .'<br/>Submit new discussion on Github for assistance. https://github.com/mirai-mamori/Sakurairo/discussions','sakurairo_csf') ,
  3423. 'dependency' => array( 'lightgallery', '==', 'true', '', 'true' ),
  3424. ),
  3425. array(
  3426. 'type' => 'submessage',
  3427. 'style' => 'warning',
  3428. 'content'=>__('Start from Sakurairo v2.4.0, plugins names in LightGallery option follow the form cite in official document (eg. lgHash instead of "hash")','sakurairo_csf') ,
  3429. 'dependency' => array( 'lightgallery', '==', 'true', '', 'true' ),
  3430. ),
  3431. array(
  3432. 'id' => 'lightgallery_option',
  3433. 'type' => 'code_editor',
  3434. 'sanitize' => false,
  3435. 'title' => __('LightGallery Lightbox Effect Options','sakurairo_csf'),
  3436. 'dependency' => array( 'lightgallery', '==', 'true', '', 'true' ),
  3437. 'default' => '{
  3438. "plugins":["lgHash","lgZoom"],
  3439. "supportLegacyBrowser":false,
  3440. "selector":"figure > img"
  3441. }'
  3442. ),
  3443. array(
  3444. 'type' => 'subheading',
  3445. 'content' => __('Code Highlighting','sakurairo_csf'),
  3446. ),
  3447. array(
  3448. 'type' => 'content',
  3449. 'content' => __('<p><strong>Highlight.js:</strong> Default. Automatic language recognition. </p>'
  3450. .' <p><strong>Prism.js:</strong> Requires a language to be specified, see <a href="https://prismjs.com/#basic-usage">basic usage</a> and <a href="https://prismjs.com/ plugins/file-highlight/">How to code highlight dynamically loaded files</a>. </p>'
  3451. .' <p><strong>Custom:</strong> For cases where another configuration is available. </p>','sakurairo_csf'),
  3452. ),
  3453. array(
  3454. 'id' => 'code_highlight_method',
  3455. 'type' => 'select',
  3456. 'title' => __('Code Highlight Method','sakurairo_csf'),
  3457. 'options' => array(
  3458. 'hljs' => 'highlight.js',
  3459. 'prism' => 'Prism.js',
  3460. 'custom' => __('Custom Program','sakurairo_csf'),
  3461. ),
  3462. "default" => "hljs"
  3463. ),
  3464. array(
  3465. 'id' => 'code_highlight_prism_line_number_all',
  3466. 'type' => 'switcher',
  3467. 'title' => __('Prism.js: Add Line Number Display for All Code Blocks','sakurairo_csf'),
  3468. 'dependency' => array(
  3469. array( 'code_highlight_method', '==', 'prism', '', 'true' ),
  3470. ),
  3471. 'desc' => __('See the <a href="https://prismjs.com/plugins/line-numbers/">plugin description documentation</a>','sakurairo_csf'),
  3472. ),
  3473. array(
  3474. 'id' => 'code_highlight_prism_autoload_path',
  3475. 'type' => 'text',
  3476. 'title' => __('Prism.js: Autoload Address','sakurairo_csf'),
  3477. 'dependency' => array(
  3478. array( 'code_highlight_method', '==', 'prism', '', 'true' ),
  3479. ),
  3480. 'desc' => __('Leave blank to use default values','sakurairo_csf'),
  3481. 'default'=>'https://fastly.jsdelivr.net/npm/prismjs@1.23.0/'
  3482. ),
  3483. array(
  3484. 'id' => 'code_highlight_prism_theme_light',
  3485. 'type' => 'text',
  3486. 'title' => __('Prism.js: Code Highlight Theme','sakurairo_csf'),
  3487. 'desc' => __('Relative to autoload address. Leave blank to use default values','sakurairo_csf'),
  3488. 'dependency' => array(
  3489. array( 'code_highlight_method', '==', 'prism', '', 'true' ),
  3490. ),
  3491. 'default' => 'themes/prism.min.css'
  3492. ),
  3493. array(
  3494. 'id' => 'code_highlight_prism_theme_dark',
  3495. 'type' => 'text',
  3496. 'title' => __('Prism.js: Code Highlight Theme (Dark Mode)','sakurairo_csf'),
  3497. 'desc' => __('Relative to autoload address. Leave blank to use default values','sakurairo_csf'),
  3498. 'dependency' => array(
  3499. array( 'code_highlight_method', '==', 'prism', '', 'true' ),
  3500. ),
  3501. 'default' => 'themes/prism-tomorrow.min.css'
  3502. ),
  3503. array(
  3504. 'type' => 'submessage',
  3505. 'style' => 'danger',
  3506. 'content' => __('The following Options are not recommended to be modified blindly, please use them under the guidance of others','sakurairo_csf'),
  3507. ),
  3508. array(
  3509. 'id' => 'image_cdn',
  3510. 'type' => 'text',
  3511. 'title' => __('Image CDN','sakurairo_csf'),
  3512. 'desc' => __('Note: fill in the format https://your CDN domain/. This means that images with original path http://your.domain/wp-content/uploads/2018/05/xx.png will be loaded from http://your CDN domain/2018/05/xx.png','sakurairo_csf'),
  3513. 'default' => ''
  3514. ),
  3515. array(
  3516. 'id' => 'classify_display',
  3517. 'type' => 'text',
  3518. 'title' => __('Articles Categories (Do not display)','sakurairo_csf'),
  3519. 'desc' => __('Fill in category ID, seperate in English" , " when more than one','sakurairo_csf'),
  3520. ),
  3521. array(
  3522. 'id' => 'image_category',
  3523. 'type' => 'text',
  3524. 'title' => __('Image Display Category','sakurairo_csf'),
  3525. 'desc' => __('Fill in category ID, seperate in English" , " when more than one','sakurairo_csf'),
  3526. ),
  3527. array(
  3528. 'id' => 'exlogin_url',
  3529. 'type' => 'text',
  3530. 'title' => __('Specify Login Address','sakurairo_csf'),
  3531. 'desc' => __('Force not to use the WordPress login page address to login, fill in the new login page address, such as: http://www.xxx.com/login. Note that before filling in the new page you can test the normal opening, so as not to cause the inability to enter the background, etc.','sakurairo_csf'),
  3532. ),
  3533. array(
  3534. 'id' => 'exregister_url',
  3535. 'type' => 'text',
  3536. 'title' => __('Specify Registration Address','sakurairo_csf'),
  3537. 'desc' => __('This address is used as the registration entry on the login page, if you specify a login address, it is recommended to fill in','sakurairo_csf'),
  3538. ),
  3539. array(
  3540. 'id' => 'cookie_version',
  3541. 'type' => 'text',
  3542. 'title' => __('Version Control','sakurairo_csf'),
  3543. 'desc' => __('Used to update front-end cookies and browser cache, can use any string','sakurairo_csf'),
  3544. ),
  3545. )
  3546. ) );
  3547. Sakurairo_CSF::createSection($prefix, array(
  3548. 'title' => __('Backup&Recovery','sakurairo_csf'),
  3549. 'icon' => 'fa fa-shield',
  3550. 'description' => __('Backup or Recovery your theme options','sakurairo_csf'),
  3551. 'fields' => array(
  3552. array(
  3553. 'type' => 'backup',
  3554. ),
  3555. )
  3556. ) );
  3557. Sakurairo_CSF::createSection($prefix, array(
  3558. 'title' => __('About Theme','sakurairo_csf'),
  3559. 'icon' => 'fa fa-paperclip',
  3560. 'fields' => array(
  3561. array(
  3562. 'type' => 'subheading',
  3563. 'content' => __('Version Info','sakurairo_csf'),
  3564. ),
  3565. array(
  3566. 'type' => 'content',
  3567. 'content' => __('<img src="https://s.nmxc.ltd/sakurairo_vision/@2.7/series/headlogo.webp" alt="Theme Information" />','sakurairo_csf'),
  3568. ),
  3569. array(
  3570. 'type' => 'submessage',
  3571. 'style' => 'normal',
  3572. 'content' => sprintf(__('Theme Sakurairo Version %s | Internal Version %s | <a href="https://github.com/mirai-mamori/Sakurairo">Project Address</a>','sakurairo_csf'), IRO_VERSION, INT_VERSION),
  3573. ),
  3574. array(
  3575. 'type' => 'subheading',
  3576. 'content' => __('Update Related','sakurairo_csf'),
  3577. ),
  3578. array(
  3579. 'id' => 'iro_update_source',
  3580. 'type' => 'image_select',
  3581. 'title' => __('Theme Update Source','sakurairo_csf'),
  3582. 'options' => array(
  3583. 'github' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/update_source_github.webp',
  3584. 'upyun' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/update_source_upyun.webp',
  3585. 'official_building' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/update_source_iro.webp',
  3586. ),
  3587. 'desc' => __('If you are using a server set up in mainland China, please use the Upyun source or the official theme source as your theme update source','sakurairo_csf'),
  3588. 'default' => 'github'
  3589. ),
  3590. array(
  3591. 'id' => 'channel_validate_value',
  3592. 'type' => 'text',
  3593. 'title' => __('Theme Update Test Channel Disclaimer','sakurairo_csf'),
  3594. 'dependency' => array(
  3595. array( 'core_library_basepath', '==', 'true', '', 'true' ),
  3596. array( 'shared_library_basepath', '==', 'true' ),
  3597. array( 'iro_update_source', '==', 'official_building' ),
  3598. ),
  3599. 'desc' => __('Please copy the text in quotes after <strong>ensure that you have carefully understood the risks associated with participating in the test and are willing to assume all consequences at your own risk</strong> (including but not limited to possible data loss) into the options text box <strong> "I agree and am willing to bear all unexpected consequences"</strong>','sakurairo_csf'),
  3600. ),
  3601. array(
  3602. 'id' => 'iro_update_channel',
  3603. 'type' => 'radio',
  3604. 'title' => __('Theme Update Channel','sakurairo_csf'),
  3605. 'dependency' => array(
  3606. array( 'channel_validate_value', '==', 'I agree and am willing to bear all unexpected consequences' ),
  3607. array( 'core_library_basepath', '==', 'true', '', 'true' ),
  3608. array( 'shared_library_basepath', '==', 'true' ),
  3609. array( 'iro_update_source', '==', 'official_building' ),
  3610. ),
  3611. 'desc' => __('You can toggle the update channel here to participate in the testing of the new version','sakurairo_csf'),
  3612. 'options' => array(
  3613. 'stable' => __('Stable Channel','sakurairo_csf'),
  3614. 'beta' => __('Beta Channel','sakurairo_csf'),
  3615. 'preview' => __('Preview Channel','sakurairo_csf'),
  3616. ),
  3617. 'default' => 'stable'
  3618. ),
  3619. array(
  3620. 'type' => 'subheading',
  3621. 'content' => __('Resource Control','sakurairo_csf'),
  3622. ),
  3623. array(
  3624. 'id' => 'core_library_basepath',
  3625. 'type' => 'switcher',
  3626. 'title' => __('Provide Critical Frontend Resource locally','sakurairo_csf'),
  3627. 'label' => __('Enabeld by default. Critical resources are those resources whose loading performance will have a significant impact on the user experience.','sakurairo_csf'),
  3628. 'default' => true
  3629. ),
  3630. array(
  3631. 'id' => 'shared_library_basepath',
  3632. 'type' => 'switcher',
  3633. 'title' => __('Provide Other Frontend Resource locally','sakurairo_csf'),
  3634. 'label' => __('Less important frontend resource in the theme\'s folder.','sakurairo_csf'),
  3635. 'default' => false
  3636. ),
  3637. array(
  3638. 'id' => 'external_vendor_lib',
  3639. 'type' => 'switcher',
  3640. 'title' => __('Provide 3rd-party library from public CDN','sakurairo_csf'),
  3641. 'label' => __('When disabled, 3rd-party dependencies, which have been built to bundles along with themes\'s entry script, will be loaded from the exact same origin with Critical Frontend Resource. ','sakurairo_csf'),
  3642. 'default' => false
  3643. ),
  3644. array(
  3645. 'id' => 'lib_cdn_path',
  3646. 'type' => 'image_select',
  3647. 'title' => __('Public CDN Basepath','sakurairo_csf'),
  3648. 'dependency' => array( 'external_vendor_lib', '==', 'true', '', 'true' ),
  3649. 'options' => array(
  3650. 'https://s.nmxc.ltd/sakurairo/@' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/update_source_upyun.webp',
  3651. 'https://fastly.jsdelivr.net/gh/mirai-mamori/Sakurairo@' => 'https://s.nmxc.ltd/sakurairo_vision/@2.7/options/update_source_jsd.webp',
  3652. ),
  3653. 'default' => 'https://s.nmxc.ltd/sakurairo/@'
  3654. ),
  3655. array(
  3656. 'id' => 'vision_resource_basepath',
  3657. 'type' => 'text',
  3658. 'title' => __('Vision Resource Basepath','sakurairo_csf'),
  3659. 'desc' => __('This link directory structure needs to be consistent with the <a href="https://github.com/Fuukei/Sakurairo_Vision">Sakurairo Vision</a> repositories officially provided by fuukei, otherwise some resources 404 may appear. The image source officially provided by <a href="https://www.upyun.com/">Upyun</a> is adopted by default.','sakurairo_csf'),
  3660. 'default' => "https://s.nmxc.ltd/sakurairo_vision/@2.7/"
  3661. ),
  3662. array(
  3663. 'type' => 'subheading',
  3664. 'content' => __('Theme Sponsors','sakurairo_csf'),
  3665. ),
  3666. array(
  3667. 'type' => 'content',
  3668. 'content' => __('<img src="https://news.maho.cc/sponsors.php" alt="sponsors" width="65%" height="65%" />','sakurairo_csf'),
  3669. ),
  3670. array(
  3671. 'type' => 'subheading',
  3672. 'content' => __('Theme Contributors','sakurairo_csf'),
  3673. ),
  3674. array(
  3675. 'type' => 'content',
  3676. 'content' => __('<img src="https://opencollective.com/fuukei/contributors.svg" alt="Theme Contributors" width="100%" height="100%" />','sakurairo_csf'),
  3677. ),
  3678. array(
  3679. 'type' => 'subheading',
  3680. 'content' => __('Privacy information','sakurairo_csf'),
  3681. ),
  3682. array(
  3683. 'type' => 'content',
  3684. 'content' => __('<p>The theme respects your privacy</p>
  3685. <p>However, when you use a service provider pre-populated by the theme to provide relevant services in mainland China, the service provider may collect data about your visitors and compile statistics</p>
  3686. <p>You can reduce the amount of information sent to third parties by localising the theme-related resources, which are pre-configured with options for you to modify</p>','sakurairo_csf'),
  3687. ),
  3688. array(
  3689. 'id' => 'send_theme_version',
  3690. 'type' => 'switcher',
  3691. 'title' => __('Send Theme Version to Fuukei','sakurairo_csf'),
  3692. 'label' => __('The theme will only send time and version information to Fuukei officials and the data will be cleaned regularly and used only to count version updates.','sakurairo_csf'),
  3693. 'default' => false
  3694. ),
  3695. array(
  3696. 'type' => 'subheading',
  3697. 'content' => __('Reference Information','sakurairo_csf'),
  3698. ),
  3699. array(
  3700. 'type' => 'content',
  3701. 'content' => __('<p>Fluent Design Icon Referenced by Paradox Fluent Icon Pack</p>
  3702. <p>MUH2 Design Icon Referenced by 缄默 <a href="https://www.coolapk.com/apk/com.muh2.icon">MUH2 Icon Pack</a></p>
  3703. <p>Mashiro Style Logo References the Original Theme Author Mashiro, As Provided and Referenced by Hyacm</p>','sakurairo_csf'),
  3704. ),
  3705. array(
  3706. 'type' => 'subheading',
  3707. 'content' => __('Dependency Information','sakurairo_csf'),
  3708. ),
  3709. array(
  3710. 'type' => 'content',
  3711. 'content' => __('<p>Options Framework Relies on the Codestar Open Source <a href="https://github.com/Codestar/codestar-framework">Codestar Framework</a> Project</p>
  3712. <p>Update Function Relies on YahnisElsts Open Source <a href="https://github.com/YahnisElsts/plugin-update-checker">Plugin Update Checker</a> Project</p>
  3713. <p>ChatGPT-related Capabilities Relies on orhanerday Open Source <a href="https://github.com/orhanerday/open-ai">open-ai</a> Project</p>','sakurairo_csf'),
  3714. ),
  3715. array(
  3716. 'type' => 'content',
  3717. 'content' => __('<img src="https://img.shields.io/github/v/release/mirai-mamori/Sakurairo.svg?style=flat-square" alt="Theme latest version" style="border-radius: 3px;" /> <img src="https://img.shields.io/github/release-date/mirai-mamori/Sakurairo?style=flat-square" alt="Theme latest version release date" style="border-radius: 3px;" /> <img src="https://data.jsdelivr.com/v1/package/gh/mirai-mamori/Sakurairo/badge" alt="Theme CDN resource access" style="border-radius: 3px;" />','sakurairo_csf'),
  3718. ),
  3719. )
  3720. ) );
  3721. }