本文整理汇总了PHP中rex_sql::getQueryType方法的典型用法代码示例。如果您正苦于以下问题:PHP rex_sql::getQueryType方法的具体用法?PHP rex_sql::getQueryType怎么用?PHP rex_sql::getQueryType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类rex_sql
的用法示例。
在下文中一共展示了rex_sql::getQueryType方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: rex_a62_metaFields
/**
* Erstellt den nötigen HTML Code um ein Formular zu erweitern
*
* @param $sqlFields rex_sql-objekt, dass die zu verarbeitenden Felder enthält
* @param $activeItem objekt, dass mit getValue() die Werte des akuellen Eintrags zurückgibt
* @param $formatCallback callback, dem die infos als Array übergeben werden und den formatierten HTML Text zurückgibt
*/
function rex_a62_metaFields($sqlFields, $activeItem, $formatCallback, $epParams)
{
global $I18N;
$s = '';
// Startwert für MEDIABUTTON, MEDIALIST, LINKLIST zähler
$media_id = 1;
$mlist_id = 1;
$link_id = 1;
$llist_id = 1;
$sqlFields->reset();
for ($i = 0; $i < $sqlFields->getRows(); $i++) {
// Umschliessendes Tag von Label und Formularelement
$tag = 'p';
$tag_attr = '';
$name = $sqlFields->getValue('name');
$title = $sqlFields->getValue('title');
$params = $sqlFields->getValue('params');
$typeLabel = $sqlFields->getValue('label');
$attr = $sqlFields->getValue('attributes');
$dblength = $sqlFields->getValue('dblength');
$dbvalues = array(htmlspecialchars($sqlFields->getValue('default')));
$dbvalues_esc = $dbvalues;
if ($activeItem) {
$itemValue = $activeItem->getValue($name);
if (strpos($itemValue, '|+|') !== false) {
// Alte notation mit |+| als Trenner
$dbvalues = explode('|+|', $activeItem->getValue($name));
} else {
// Neue Notation mit | als Trenner
$dbvalues = explode('|', $activeItem->getValue($name));
}
$dbvalues_esc = array_map('htmlspecialchars', $dbvalues);
}
if ($title != '') {
$label = htmlspecialchars(rex_translate($title));
} else {
$label = htmlspecialchars($name);
}
$id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $label);
$attr .= rex_tabindex();
$labelIt = true;
$field = '';
switch ($typeLabel) {
case 'text':
$field = '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $dbvalues_esc[0] . '" id="' . $id . ' "maxlength="' . $dblength . '" ' . $attr . ' />';
break;
case 'checkbox':
$name .= '[]';
case 'radio':
$values = array();
if (rex_sql::getQueryType($params) == 'SELECT') {
$sql = new rex_sql();
$value_groups = $sql->getDBArray($params, MYSQL_NUM);
foreach ($value_groups as $value_group) {
if (isset($value_group[1])) {
$values[$value_group[1]] = $value_group[0];
} else {
$values[$value_group[0]] = $value_group[0];
}
}
} else {
$value_groups = explode('|', $params);
foreach ($value_groups as $value_group) {
if (strpos($value_group, ':') !== false) {
$temp = explode(':', $value_group);
$values[$temp[0]] = $temp[1];
} else {
$values[$value_group] = $value_group;
}
}
}
$class = $typeLabel == 'radio' ? 'rex-rdo' : 'rex-chckbx';
$oneValue = count($values) == 1;
if (!$oneValue) {
$tag = '';
$labelIt = false;
$tag = 'div';
$tag_attr = ' class="rex-chckbxs rex-ptag"';
$field .= '<p>' . $label . '</p>';
}
foreach ($values as $key => $value) {
$id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $id . $key);
$key = htmlspecialchars($key);
// wenn man keine Werte angibt (Boolean Chkbox/Radio)
// Dummy Wert annehmen, damit an/aus unterscheidung funktioniert
if ($oneValue && $key == '') {
$key = 'true';
}
$selected = '';
if (in_array($key, $dbvalues_esc)) {
$selected = ' checked="checked"';
}
if ($oneValue) {
//.........这里部分代码省略.........
示例2: renderMetaFields
/**
* Erstellt den nötigen HTML Code um ein Formular zu erweitern.
*
* @param rex_sql $sqlFields rex_sql-objekt, dass die zu verarbeitenden Felder enthält
* @param array $epParams Array of all EP parameters
*
* @return string
*/
public function renderMetaFields(rex_sql $sqlFields, array $epParams)
{
$s = '';
// Startwert für MEDIABUTTON, MEDIALIST, LINKLIST zähler
$media_id = 1;
$mlist_id = 1;
$link_id = 1;
$llist_id = 1;
$activeItem = isset($epParams['activeItem']) ? $epParams['activeItem'] : null;
$sqlFields->reset();
for ($i = 0; $i < $sqlFields->getRows(); $i++, $sqlFields->next()) {
// Umschliessendes Tag von Label und Formularelement
$tag = 'p';
$tag_attr = '';
$name = $sqlFields->getValue('name');
$title = $sqlFields->getValue('title');
$params = $sqlFields->getValue('params');
$typeLabel = $sqlFields->getValue('label');
$attr = $sqlFields->getValue('attributes');
$dblength = $sqlFields->getValue('dblength');
$attrArray = rex_string::split($attr);
if (isset($attrArray['perm'])) {
if (!rex::getUser()->hasPerm($attrArray['perm'])) {
continue;
}
unset($attrArray['perm']);
}
$defaultValue = $sqlFields->getValue('default');
if ($activeItem) {
$itemValue = $activeItem->getValue($name);
if (strpos($itemValue, '|+|') !== false) {
// Alte notation mit |+| als Trenner
$dbvalues = explode('|+|', $activeItem->getValue($name));
} else {
// Neue Notation mit | als Trenner
$dbvalues = explode('|', $activeItem->getValue($name));
}
} else {
$dbvalues = (array) $sqlFields->getValue('default');
}
if ($title != '') {
$label = rex_i18n::translate($title);
} else {
$label = htmlspecialchars($name);
}
$id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $label);
$labelIt = true;
$label = '<label for="' . $id . '">' . $label . '</label>';
$field = '';
switch ($typeLabel) {
case 'text':
$tag_attr = ' class="form-control"';
$rexInput = rex_input::factory($typeLabel);
$rexInput->addAttributes($attrArray);
$rexInput->setAttribute('id', $id);
$rexInput->setAttribute('name', $name);
if ($dblength > 0) {
$rexInput->setAttribute('maxlength', $dblength);
}
if ($activeItem) {
$rexInput->setValue($activeItem->getValue($name));
} else {
$rexInput->setValue($defaultValue);
}
$field = $rexInput->getHtml();
$e = [];
$e['label'] = $label;
$e['field'] = $field;
$fragment = new rex_fragment();
$fragment->setVar('elements', [$e], false);
$field = $fragment->parse('core/form/form.php');
break;
case 'checkbox':
// Beachte auch default values in multiple fields bei ADD.
// Im EDIT wurde dies bereits vorher gehandelt
if (!$activeItem) {
$defaultValue = explode('|', $defaultValue);
}
$name .= '[]';
case 'radio':
$formElements = [];
$values = [];
if (rex_sql::getQueryType($params) == 'SELECT') {
$sql = rex_sql::factory();
$value_groups = $sql->getDBArray($params, [], PDO::FETCH_NUM);
foreach ($value_groups as $value_group) {
if (isset($value_group[1])) {
$values[$value_group[1]] = $value_group[0];
} else {
$values[$value_group[0]] = $value_group[0];
}
}
//.........这里部分代码省略.........
示例3: getOutput
protected function getOutput()
{
$id = $this->getArg('id', 0, true);
if (!in_array($this->getContext(), ['module', 'action']) || !is_numeric($id) || $id < 1 || $id > 20) {
return false;
}
$value = $this->getContextData()->getValue('value' . $id);
if ($this->hasArg('isset') && $this->getArg('isset')) {
return $value ? 'true' : 'false';
}
if ($this->hasArg('widget') && $this->getArg('widget')) {
if (!$this->environmentIs(self::ENV_INPUT)) {
return false;
}
$select = new rex_select();
if ($this->hasArg('multiple') && $this->getArg('options')) {
$select->setName('REX_INPUT_VALUE[' . $id . '][]');
$select->setMultiple();
$select->setSelected(rex_var::toArray($value));
} else {
$select->setName('REX_INPUT_VALUE[' . $id . ']');
$select->setSelected($value);
}
if ($this->hasArg('options') && $this->getArg('options')) {
$options = $this->getArg('options');
if (rex_sql::getQueryType($options) == 'SELECT') {
$select->addSqlOptions($options);
} else {
$groups = explode('|', $options);
if (count($groups)) {
foreach ($groups as $group) {
$parseGroup = explode(':', $group);
$groupOptions = $parseGroup[0];
if (count($parseGroup) == 2) {
$select->addOptgroup($parseGroup[0]);
$groupOptions = $parseGroup[1];
}
if (rex_sql::getQueryType($groupOptions) == 'SELECT') {
$select->addSqlOptions($groupOptions);
} else {
$groupOptions = explode(',', $groupOptions);
if (count($groupOptions)) {
foreach ($groupOptions as $groupOption) {
$optionPair = explode('=', $groupOption);
if (count($optionPair) == 1) {
$select->addOption($optionPair[0], $optionPair[0]);
} elseif (count($optionPair) == 2) {
$select->addOption($optionPair[0], $optionPair[1]);
}
}
}
}
}
}
}
}
$widget = '<div class="rex-select-style">' . $select->get() . '</div>';
if ($this->hasArg('output') && $this->getArg('output')) {
$label = $this->hasArg('label') ? $this->getArg('label') : '';
$widget = Dao::getForm($widget, $label, $this->getArg('output'));
}
return self::quote($widget);
}
return self::quote(htmlspecialchars($value));
}
示例4: rex_a62_metaFields
/**
* Erstellt den nötigen HTML Code um ein Formular zu erweitern
*
* @param $sqlFields rex_sql-objekt, dass die zu verarbeitenden Felder enthält
* @param $activeItem objekt, dass mit getValue() die Werte des akuellen Eintrags zurückgibt
* @param $formatCallback callback, dem die infos als Array übergeben werden und den formatierten HTML Text zurückgibt
*/
function rex_a62_metaFields($sqlFields, $activeItem, $formatCallback, $epParams)
{
global $I18N, $REX;
$s = '';
// Startwert für MEDIABUTTON, MEDIALIST, LINKLIST zähler
$media_id = 1;
$mlist_id = 1;
$link_id = 1;
$llist_id = 1;
$sqlFields->reset();
for ($i = 0; $i < $sqlFields->getRows(); $i++, $sqlFields->next()) {
// Umschliessendes Tag von Label und Formularelement
$tag = 'p';
$tag_attr = '';
$name = $sqlFields->getValue('name');
$title = $sqlFields->getValue('title');
$params = $sqlFields->getValue('params');
$typeLabel = $sqlFields->getValue('label');
$attr = $sqlFields->getValue('attributes');
$dblength = $sqlFields->getValue('dblength');
$restrictions = $sqlFields->getValue('restrictions');
$attr .= rex_tabindex();
$attrArray = rex_split_string($attr);
if (isset($attrArray['perm'])) {
if (!$REX['USER']->hasPerm($attrArray['perm'])) {
continue;
}
unset($attrArray['perm']);
}
$defaultValue = $sqlFields->getValue('default');
if ($activeItem) {
$itemValue = $activeItem->getValue($name);
if (strpos($itemValue, '|+|') !== false) {
// Alte notation mit |+| als Trenner
$dbvalues = explode('|+|', $activeItem->getValue($name));
} else {
// Neue Notation mit | als Trenner
$dbvalues = explode('|', $activeItem->getValue($name));
}
} else {
$dbvalues = (array) $sqlFields->getValue('default');
}
if ($title != '') {
$label = rex_translate($title);
} else {
$label = htmlspecialchars($name);
}
$id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $label);
$labelIt = true;
$field = '';
switch ($typeLabel) {
case 'text':
$tag_attr = ' class="rex-form-text"';
$rexInput = rex_input::factory($typeLabel);
$rexInput->addAttributes($attrArray);
$rexInput->setAttribute('id', $id);
$rexInput->setAttribute('name', $name);
if ($dblength > 0) {
$rexInput->setAttribute('maxlength', $dblength);
}
if ($activeItem) {
$rexInput->setValue($activeItem->getValue($name));
} else {
$rexInput->setValue($defaultValue);
}
$field = $rexInput->getHtml();
break;
case 'checkbox':
// Beachte auch default values in multiple fields bei ADD.
// Im EDIT wurde dies bereits vorher gehandelt
if (!$activeItem) {
$defaultValue = explode('|', $defaultValue);
}
$name .= '[]';
case 'radio':
$values = array();
if (rex_sql::getQueryType($params) == 'SELECT') {
$sql = rex_sql::factory();
$value_groups = $sql->getDBArray($params, MYSQL_NUM);
foreach ($value_groups as $value_group) {
if (isset($value_group[1])) {
$values[$value_group[1]] = $value_group[0];
} else {
$values[$value_group[0]] = $value_group[0];
}
}
} else {
$value_groups = explode('|', $params);
foreach ($value_groups as $value_group) {
// check ob key:value paar
// und der wert beginnt nicht mit "translate:"
if (strpos($value_group, ':') !== false && strpos($value_group, 'translate:') !== 0) {
$temp = explode(':', $value_group, 2);
//.........这里部分代码省略.........
示例5: rex_a62_metaFields
/**
* Erstellt den nötigen HTML Code um ein Formular zu erweitern
*
* @param $sqlFields rex_sql-objekt, dass die zu verarbeitenden Felder enthält
* @param $activeItem objekt, dass mit getValue() die Werte des akuellen Eintrags zurückgibt
* @param $formatCallback callback, dem die infos als Array übergeben werden und den formatierten HTML Text zurückgibt
*/
function rex_a62_metaFields($sqlFields, $activeItem, $formatCallback, $epParams)
{
global $I18N;
$s = '';
// Startwert für MEDIABUTTON, MEDIALIST, LINKLIST
$media_id = 1;
$mlist_id = 1;
$link_id = 1;
$sqlFields->reset();
for ($i = 0; $i < $sqlFields->getRows(); $i++) {
// Umschliessendes Tag von Label und Formularelement
$tag = 'p';
$tag_attr = '';
$name = $sqlFields->getValue('name');
$title = $sqlFields->getValue('title');
$params = $sqlFields->getValue('params');
$typeLabel = $sqlFields->getValue('label');
$attr = $sqlFields->getValue('attributes');
$dbvalues = array('');
if ($activeItem) {
$dbvalues = explode('|+|', $activeItem->getValue($name));
}
if ($title != '') {
$label = rex_translate($title);
} else {
$label = htmlspecialchars($name);
}
$id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $label);
$attr .= rex_tabindex();
$labelIt = true;
$field = '';
switch ($typeLabel) {
case 'text':
$field = '<input type="' . $sqlFields->getValue('label') . '" name="' . $name . '" value="' . $dbvalues[0] . '" id="' . $id . '" ' . $attr . ' />';
break;
case 'checkbox':
$name .= '[]';
case 'radio':
$values = array();
if (rex_sql::getQueryType($params) == 'SELECT') {
$sql = new rex_sql();
$value_groups = $sql->getDBArray($params, MYSQL_NUM);
foreach ($value_groups as $value_group) {
if (isset($value_group[1])) {
$values[$value_group[1]] = $value_group[0];
} else {
$values[$value_group[0]] = $value_group[0];
}
}
} else {
$value_groups = explode('|', $params);
foreach ($value_groups as $value_group) {
if (strpos($value_group, ':') !== false) {
$temp = explode(':', $value_group);
$values[$temp[0]] = $temp[1];
} else {
$values[$value_group] = $value_group;
}
}
}
// if($epParams['extension_point'] != 'CAT_META_FORM_EDIT')
// $field .= '<span>'. $label .'</span>';
$class = $typeLabel == 'radio' ? 'rex-rdo' : 'rex-chckbx';
$oneValue = count($values) == 1;
if (!$oneValue) {
$tag = '';
$labelIt = false;
$tag = 'div';
$tag_attr = ' class="rex-chckbxs rex-ptag"';
$field .= '<p>' . $label . '</p>';
}
foreach ($values as $key => $value) {
$id = preg_replace('/[^a-zA-Z\\-0-9_]/', '_', $id . $key);
// wenn man keine Werte angibt (Boolean Chkbox/Radio)
// Dummy Wert annehmen, damit an/aus unterscheidung funktioniert
if ($oneValue && $key == '') {
$key = 'true';
}
$selected = '';
if (in_array($key, $dbvalues)) {
$selected = ' checked="checked"';
}
if ($oneValue) {
$tag_attr = ' class="' . $class . '"';
$field .= '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $key . '" id="' . $id . '" ' . $attr . $selected . ' />' . "\n";
} else {
$field .= '<p class="' . $class . '">' . "\n";
$field .= '<label for="' . $id . '"><span>' . htmlspecialchars($value) . '</span></label>';
$field .= '<input type="' . $typeLabel . '" name="' . $name . '" value="' . $key . '" id="' . $id . '" ' . $attr . $selected . ' />' . "\n";
$field .= '</p>' . "\n";
}
}
break;
//.........这里部分代码省略.........