1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
<?php
namespace hji\common\models;
class GForms
{
protected $cache = array();
const HJI_FORM_KEY = 'hji_form_key';
const HJI_FIELD_KEY = 'hji_field_key';
function isHJIform($form, $hjiFormKey = null)
{
if (is_object($form))
{
$form = $this->getFormsMetaById($form->id);
}
if (isset($form[self::HJI_FORM_KEY]) && !empty($form[self::HJI_FORM_KEY]))
{
if ($hjiFormKey && ($form[self::HJI_FORM_KEY] != $hjiFormKey))
{
return false;
}
return true;
}
return false;
}
function isHJIfield(array $field, $fieldKey = null)
{
if (isset($field[self::HJI_FIELD_KEY]) && !empty($field[self::HJI_FIELD_KEY]))
{
if ($fieldKey && ($field[self::HJI_FIELD_KEY] != $fieldKey))
{
return false;
}
return true;
}
return false;
}
function getFormByKey($hjiFormKey)
{
if (!$forms = $this->getForms())
{
return false;
}
$ids = array();
foreach ($forms as $form)
{
$ids[] = $form->id;
}
if (!$formsMeta = $this->getFormsMetaById($ids))
{
return false;
}
foreach ($formsMeta as $form)
{
if ($this->isHJIform($form, $hjiFormKey))
{
return (array)$form;
}
}
return false;
}
public function getForms()
{
if (!isset($this->cache['forms']))
{
$this->cache['forms'] = \GFFormsModel::get_forms( null, 'title' );
}
return $this->cache['forms'];
}
public function getFormsMetaById($id)
{
if (!isset($this->cache['formsMeta']))
{
$this->cache['formsMeta'] = \GFFormsModel::get_form_meta_by_id($id);
}
return (array)$this->cache['formsMeta'];
}
}