PageRenderTime 57ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/baser/views/installations/admin/step3.php

https://github.com/hashing/basercms
PHP | 219 lines | 176 code | 20 blank | 23 comment | 41 complexity | 3f52c93f93e12795e872eadba04633b4 MD5 | raw file
Possible License(s): MIT
  1. <?php
  2. /* SVN FILE: $Id$ */
  3. /**
  4. * [PUBLISH] インストーラー Step3
  5. *
  6. * PHP versions 5
  7. *
  8. * baserCMS : Based Website Development Project <http://basercms.net>
  9. * Copyright 2008 - 2012, baserCMS Users Community <http://sites.google.com/site/baserusers/>
  10. *
  11. * @copyright Copyright 2008 - 2012, baserCMS Users Community
  12. * @link http://basercms.net baserCMS Project
  13. * @package baser.views
  14. * @since baserCMS v 0.1.0
  15. * @version $Revision$
  16. * @modifiedby $LastChangedBy$
  17. * @lastmodified $Date$
  18. * @license http://basercms.net/license/index.html
  19. */
  20. ?>
  21. <script type="text/javascript">
  22. $(document).ready( function() {
  23. if ($('#btnnext').attr('disabled')) {
  24. $('#btnnext').hide();
  25. }
  26. initForm();
  27. <?php if (!empty($blDBSettingsOK)): ?>$('#btnnext').show();<?php endif; ?>
  28. /* イベント登録 */
  29. $('#checkdb,#btnnext,#btnback').click( function a() {
  30. if (this.id=='btnnext') {
  31. $("#buttonclicked").val('createdb');
  32. } else if (this.id == 'btnback') {
  33. $("#buttonclicked").val('back');
  34. } else if (this.id == 'checkdb'){
  35. $("#buttonclicked").val('checkdb');
  36. }
  37. if (this.id != 'btnback' &&
  38. $('#InstallationDbType').val() != 'csv' &&
  39. $('#InstallationDbType').val() != 'sqlite3') {
  40. if ($("#InstallationDbHost").val() == "") {
  41. alert("データベースのホスト名を入力してください。");
  42. return false;
  43. } else if ($("#InstallationDbUsername").val() == "") {
  44. alert("データベースユーザー名を入力してください。");
  45. return false;
  46. } else if ($("#InstallationDbName").val() == "") {
  47. alert("データベース名を入力してください。");
  48. return false;
  49. } else if ($("#InstallationDbPrefix").val() == "") {
  50. alert("他のアプリケーションと重複しないプレフィックスを入力してください。(例)bc_");
  51. return false;
  52. } else if (!$("#InstallationDbPrefix").val().match(/[_]$/)) {
  53. alert("プレフィックスの末尾はアンダースコアにしてください。(例)bc_");
  54. return false;
  55. } else if (!$("#InstallationDbPrefix").val().match(/^[a-zA-z0-9_]+_$/)) {
  56. alert("プレフィックスは英数字とアンダースコアの組み合わせにしてください。(例)bc_");
  57. return false;
  58. } else if ($("#InstallationDbPort").val() == "") {
  59. alert("データベースのポートナンバーを入力してください。");
  60. return false;
  61. }
  62. }
  63. $('#dbsettings').submit();
  64. });
  65. $('#InstallationDbType').change( function() {
  66. $('#InstallationDbHost').val('');
  67. $('#InstallationDbUsername').val('');
  68. $('#InstallationDbPassword').val('');
  69. $('#InstallationDbDBName').val('');
  70. $('#InstallationDbPort').val('');
  71. initForm();
  72. });
  73. });
  74. /**
  75. * フォームを初期化する
  76. * @return void
  77. */
  78. function initForm() {
  79. var dbType = $('#InstallationDbType');
  80. var port,host,dbName,prefix;
  81. if (dbType.val()=='mysql') {
  82. $('#dbHost').show(500);
  83. $('#dbUser').show(500);
  84. $('#dbInfo').show(500);
  85. $('#checkdb').show();
  86. $('#btnnext').hide();
  87. host = 'localhost';
  88. dbName = 'baser';
  89. port = '3306';
  90. prefix = 'bc_'
  91. } else if (dbType.val()=='postgres') {
  92. $('#dbHost').show(500);
  93. $('#dbUser').show(500);
  94. $('#dbInfo').show(500);
  95. $('#checkdb').show();
  96. $('#btnnext').hide();
  97. host = 'localhost';
  98. dbName = 'baser';
  99. port = '5432';
  100. prefix = 'bc_'
  101. } else if(dbType.val()=='sqlite3') {
  102. $('#dbHost').hide(500);
  103. $('#dbUser').hide(500);
  104. $('#dbInfo').hide(500);
  105. $('#checkdb').hide();
  106. $('#btnnext').removeAttr("disabled");
  107. $('#btnnext').show();
  108. dbName = 'baser';
  109. port = '';
  110. $('#InstallationDbPrefix').val('');
  111. } else if(dbType.val()=='csv') {
  112. $('#dbHost').hide(500);
  113. $('#dbUser').hide(500);
  114. $('#dbInfo').hide(500);
  115. $('#checkdb').hide();
  116. $('#btnnext').removeAttr("disabled");
  117. $('#btnnext').show();
  118. dbName = 'baser';
  119. port = '';
  120. $('#InstallationDbPrefix').val('');
  121. } else {
  122. $('#dbHost').show(500);
  123. $('#dbUser').show(500);
  124. $('#dbInfo').show(500);
  125. $('#checkdb').show();
  126. $('#btnnext').hide();
  127. }
  128. if(!$('#InstallationDbHost').val()){
  129. $('#InstallationDbHost').val(host);
  130. }
  131. if(!$('#InstallationDbDBName').val()){
  132. $('#InstallationDbDBName').val(dbName);
  133. }
  134. if(!$('#InstallationDbPort').val()){
  135. $('#InstallationDbPort').val(port);
  136. }
  137. if(!$('#InstallationDbPrefix').val()){
  138. $('#InstallationDbPrefix').val(prefix);
  139. }
  140. }
  141. </script>
  142. <?php echo $bcForm->create(null, array('action' => 'step3', 'id' => 'dbsettings', 'name' => 'dbsettings')) ?>
  143. <div class="step-3">
  144. <div class="em-box">
  145. データベースサーバーの場合はデータベースの接続情報を入力し接続テストを実行してください<br />
  146. <strong>MySQL / PostgreSQLの場合はデータベースが存在し初期化されている必要があります</strong>
  147. </div>
  148. <h2>データベース設定</h2>
  149. <div class="panel-box corner10">
  150. <div class="section">
  151. <h3>接続情報</h3>
  152. <ul>
  153. <li id="dbType"> <?php echo $bcForm->label('Installation.dbType', 'データベースタイプ');?><br />
  154. <?php echo $bcForm->input('Installation.dbType', array('type' => 'select', 'options' => $dbsource)) ?> </li>
  155. <li id="dbHost"> <?php echo $bcForm->label('Installation.dbHost', 'データベースホスト名');?><br />
  156. <?php echo $bcForm->input('Installation.dbHost', array('type' => 'text', 'maxlength' => '300','size' => 45)); ?> </li>
  157. <li id="dbUser" class="clearfix">
  158. <label>ログイン情報</label>
  159. <br />
  160. <div class="float-left"> <?php echo $bcForm->input('Installation.dbUsername',array('type' => 'text', 'maxlength'=>'100')); ?><br />
  161. <small>ユーザー名</small> </div>
  162. <div class="float-left"> <?php echo $bcForm->input('Installation.dbPassword',array('type' => 'text', 'maxlength'=>'100','type'=>'password')); ?><br />
  163. <small>パスワード</small> </div>
  164. </li>
  165. <li id="dbInfo" class="clearfix">
  166. <label>データベース情報</label>
  167. <br />
  168. <div class="float-left"> <?php echo $bcForm->input('Installation.dbPrefix',array('type' => 'text', 'size'=>'10')); ?><br />
  169. <small>プレフィックス</small> </div>
  170. <div class="float-left"> <?php echo $bcForm->input('Installation.dbName',array('type' => 'text', 'maxlength'=>'100')); ?><br />
  171. <small>データベース名</small> </div>
  172. <div class="float-left"> <?php echo $bcForm->input('Installation.dbPort',array('type' => 'text', 'maxlength'=>'5','size'=>5)); ?><br />
  173. <small>ポート</small> </div>
  174. <?php echo $bcForm->input('buttonclicked',array('style'=>'display:none','type'=>'hidden')); ?>
  175. <br style="clear:both" /><br />
  176. <small> プレフィックスは英数字とアンダースコアの組み合わせとし末尾はアンダースコアにしてください<br />
  177. ホスト名データベース名ポートは実際の環境に合わせて書き換えてください</small></li>
  178. </ul>
  179. </div>
  180. <?php if (!empty($blDBSettingsOK)): ?>
  181. <div class="section">
  182. <h3>オプション</h3>
  183. <ul>
  184. <li><?php echo $bcForm->input('Installation.non_demo_data', array('type'=>'checkbox', 'label'=>' デモデータを作成しない')); ?>
  185. </ul>
  186. </div>
  187. <?php endif ?>
  188. </div>
  189. <div class="submit">
  190. <?php echo $bcForm->button('戻る', array('class' => 'btn-gray button', 'id' => 'btnback')) ?>
  191. <?php echo $bcForm->button('接続テスト', array('class' => 'btn-orange button', 'id' => 'checkdb')) ?>
  192. <?php if (!isset($blDBSettingsOK) || !$blDBSettingsOK): ?>
  193. <?php echo $bcForm->button('次のステップへ', array('class' => 'btn-red button', 'id' => 'btnnext', 'name' => 'btnnext', 'disabled' => 'disabled')) ?>
  194. <?php else: ?>
  195. <?php echo $bcForm->button('次のステップへ', array('class' => 'btn-red button', 'id' => 'btnnext', 'name' => 'btnnext')) ?>
  196. <?php endif ?>
  197. </div>
  198. <?php echo $bcForm->end() ?>
  199. </div>