PageRenderTime 27ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/mcmis/protected/gii/crud/templates/compact/_form.php

http://mcmis.googlecode.com/
PHP | 131 lines | 111 code | 16 blank | 4 comment | 14 complexity | f3a24629126acfd1b76d9a6199f04486 MD5 | raw file
Possible License(s): LGPL-2.1
  1. <?php
  2. /**
  3. * The following variables are available in this template:
  4. * - $this: the CrudCode object
  5. */
  6. ?>
  7. <?php
  8. function getForeignKeyTableName($tableSchema, $fkey){
  9. $tableName = '';
  10. foreach($tableSchema->foreignKeys as $foreignKey){
  11. if($foreignKey[1]==$fkey){
  12. $tableName = preg_replace('/'.Yii::app()->db->tablePrefix.'/','',$foreignKey[0]);
  13. break;
  14. }
  15. }
  16. if(!$tableName){
  17. $tableName = preg_replace('/'.Yii::app()->db->tablePrefix.'/','',$tableSchema->name);
  18. }
  19. return $tableName;
  20. }
  21. function generateActiveField($modelClass,$column,$ajax=null)
  22. {
  23. if($column->type==='boolean')
  24. return "\$form->checkBox(\$model,'{$column->name}')";
  25. else if(stripos($column->dbType,'text')!==false)
  26. return "\$form->textArea(\$model,'{$column->name}',array('rows'=>6, 'cols'=>50))";
  27. else
  28. {
  29. if(preg_match('/^(password|pass|passwd|passcode)$/i',$column->name))
  30. $inputField='passwordField';
  31. else
  32. $inputField='textField';
  33. if($column->type!=='string' || $column->size===null)
  34. return "\$form->{$inputField}(\$model,'{$column->name}')";
  35. else
  36. {
  37. if(($size=$maxLength=$column->size)>60)
  38. $size=60;
  39. if($ajax==null){
  40. return "\$form->{$inputField}(\$model,'{$column->name}',array('size'=>$size,'maxlength'=>$maxLength))";
  41. }
  42. else{
  43. return "\$form->{$inputField}(\$model,'{$column->name}',array('size'=>$size,'maxlength'=>$maxLength,'ajax'=>$ajax))";
  44. }
  45. }
  46. }
  47. }
  48. ?>
  49. <div class="form">
  50. <?php echo "<?php \$form=\$this->beginWidget('CActiveForm', array(
  51. 'id'=>'".$this->class2id($this->modelClass)."-form',
  52. 'enableAjaxValidation'=>true,
  53. )); ?>\n"; ?>
  54. <p class="note"><?php echo "<?php ";?> echo Yii::t('application', 'Fields with <span class="required">*</span> are required.');<?php echo "?>";?></p>
  55. <?php echo "<?php echo \$form->errorSummary(\$model); ?>\n"; ?>
  56. <?php
  57. foreach($this->tableSchema->columns as $column)
  58. {
  59. if($column->autoIncrement)
  60. continue;
  61. $columns = array();
  62. if($column->isForeignKey){
  63. $table=CActiveRecord::model(ucfirst(getForeignKeyTableName($this->tableSchema, $column->name)))->tableSchema;
  64. foreach($table->columns as $key=>$column1){
  65. $columns[] = $column1;
  66. }
  67. }
  68. ?>
  69. <div class="row">
  70. <?php echo "<?php echo ".$this->generateActiveLabel($this->modelClass,$column)."; ?>"; ?>
  71. <?php if($column->isForeignKey): ?><?php echo "<?php echo ".generateActiveField($this->modelClass,$column, "array('type'=>'POST', 'dataType'=>'json', 'data'=>array('cid'=>'js:$(\'#".$this->modelClass."_" . $column->name ."\').val()',), 'url'=>CController::createUrl('".getForeignKeyTableName($this->tableSchema, $column->name)."/jsonmessage'), 'success'=>'function(data){\$(\'#' . CHtml::activeId(\$model,'" . $column->name ."') . '_msg\').text(data.message);}')" )."; ?>\n"; ?>
  72. <?php echo "<span id=\"<?php echo CHtml::activeId(\$model,'".$column->name."'); ?>_msg\">\n"; ?>
  73. <?php echo " <?php echo !isset(\$model->". $column->name."0->".$columns[1]->name .") || \$model->isNewRecord ? \"-\" : \$model->". $column->name."0->".$columns[1]->name."; ?>\n"; ?>
  74. <?php echo "</span>\n"; ?>
  75. <?php echo "<?php\n"; ?>
  76. <?php echo "\$imghtml = CHtml::image(Yii::app()->request->baseUrl . '/images/tooltip.png');\n"; ?>
  77. <?php echo "echo CHtml::link(\$imghtml, \"\", array(\n"; ?>
  78. <?php echo " 'style' => 'cursor: pointer; text-decoration: underline;',\n"; ?>
  79. <?php echo " 'onclick' => \"{popupview('$column->name', 'index.php?r=".getForeignKeyTableName($this->tableSchema, $column->name)."/popupview'); }\"));\n"; ?>
  80. <?php echo "?>\n"; ?><?php else: ?><?php echo "<?php echo ".generateActiveField($this->modelClass,$column)."; ?>\n"; ?><?php endif; ?>
  81. <?php echo "<?php echo \$form->error(\$model,'{$column->name}'); ?>\n"; ?>
  82. </div>
  83. <?php
  84. }
  85. ?>
  86. <div class="row buttons">
  87. <?php echo "<?php echo CHtml::submitButton(\$model->isNewRecord ? Yii::t('application', 'Create') : Yii::t('application', 'Save')); ?>\n"; ?>
  88. </div>
  89. <?php echo "<?php \$this->endWidget(); ?>\n"; ?>
  90. </div><!-- form -->
  91. <?php foreach($this->tableSchema->foreignKeys as $foreignKey): ?><?php echo "<?php\n"; ?>
  92. <?php echo "\$this->beginWidget('zii.widgets.jui.CJuiDialog', array(// the dialog\n"; ?>
  93. <?php echo "'id' => 'dialog' . get_class(\$model) . '_" . $foreignKey[1] . "',\n"; ?>
  94. <?php echo "'options' => array(\n"; ?>
  95. <?php echo "'title' => Yii::t('application', '". $this->pluralize(ucfirst(preg_replace('/'.Yii::app()->db->tablePrefix.'/','',$foreignKey[0]))) ."'),\n"; ?>
  96. <?php echo "'autoOpen' => false,\n"; ?>
  97. <?php echo "'modal' => true,\n"; ?>
  98. <?php echo "'width' => 550,\n"; ?>
  99. <?php echo "'height' => 470,\n"; ?>
  100. <?php echo "),\n"; ?>
  101. <?php echo "));\n"; ?>
  102. <?php echo "?>\n"; ?>
  103. <?php echo "<div class=\"divfor".$foreignKey[1]."\"></div>\n";?>
  104. <?php echo "<?php \$this->endWidget(); ?>\n";?><?php endforeach;?>
  105. <?php echo "<script type=\"text/javascript\">\n";?>
  106. <?php echo " function popupview(id, url)\n";?>
  107. <?php echo " {\n";?>
  108. <?php echo " jQuery.ajax({'url':url,'data':'isAjaxRequest=1&id=<?php echo get_class(\$model);?>_' + id,'type':'post','dataType':'json','success':function(data)\n";?>
  109. <?php echo " {\n";?>
  110. <?php echo " $('#dialog<?php echo get_class(\$model);?>_' + id +' div.divfor' + id).html(data.div);\n";?>
  111. <?php echo " } ,'cache':false});\n";?>
  112. <?php echo " $('#dialog<?php echo get_class(\$model);?>_' + id).dialog('open');\n";?>
  113. <?php echo " return false;\n";?>
  114. <?php echo " }\n";?>
  115. <?php echo "</script>\n";?>