Ejemplo n.º 1
0
 function activateEnumAttrInfo(&$attrInfo, $className, $attr, $withDefaults = TRUE)
 {
     global $lll, $useHtmlInEnumValues;
     $attrInfo["default"] = array();
     $attrInfo["values"] = splitByCommas($this->getAttr("values"), !$useHtmlInEnumValues);
     $defs = splitByCommas($this->getAttr("default"), !$useHtmlInEnumValues);
     foreach ($attrInfo["values"] as $val) {
         $lllLabel = "{$className}_{$attr}_{$val}";
         if (!isset($lll[$lllLabel])) {
             $lll[$lllLabel] = $val;
         }
         if ($withDefaults && in_array($val, $defs)) {
             $attrInfo["default"][] = $val;
         }
     }
     return count($attrInfo["values"]);
 }
Ejemplo n.º 2
0
 function generCheckbox($name, &$listNames, &$listValues, $selected, $cols, $vert = FALSE, $showRelation = "", $multimask = 0, $afterField = "", $anyfield = "")
 {
     global $hackTdClass;
     $selected = splitByCommas($selected);
     $s = "\n<table border='0' colspan='0' rowspan='0'>\n";
     $length = count($listValues);
     if (isset($hackTdClass) && $hackTdClass) {
         $hTdClass = " class='{$hackTdClass}'";
     } else {
         $hTdClass = " class='celltext'";
     }
     if ($vert) {
         //vertical
         $rows = ceil($length / $cols);
         $ind1 = 0;
         $ind2 = 0;
         $aind = 0;
         $aindH = 0;
         for ($i = 0; $i < $rows; $i++) {
             $s .= "<tr>";
             for ($j = 0; $j < $cols; $j++) {
                 if (!isset($listValues[$ind2])) {
                     break;
                 }
                 $v = $listValues[$ind2];
                 $s .= "<td{$hTdClass}>";
                 $s .= "<input type='checkbox' id='{$name}" . "_{$ind2}' name='{$name}" . "[{$ind2}]' value='{$v}'";
                 if ($showRelation) {
                     if (isset($showRelation[$v])) {
                         $s .= " show='{$showRelation[$v]}_rel'";
                     } else {
                         $s .= " show='none'";
                     }
                 }
                 if (in_array($v, $selected)) {
                     $s .= " checked";
                 }
                 if ($anyfield == $v) {
                     $s .= " src='any'";
                 }
                 $s .= ">" . $listNames[$ind2];
                 $s .= "</td>\n";
                 $ind2 += $rows;
             }
             $s .= "</tr>\n";
             $ind1++;
             $ind2 = $ind1;
         }
     } else {
         //horizontal
         for ($i = 0; $i < $length / $cols; $i++) {
             $s .= "<tr>";
             for ($j = $i * $cols; $j < ($i + 1) * $cols; $j++) {
                 if (!isset($listValues[$j])) {
                     break 2;
                 }
                 $v = $listValues[$j];
                 $s .= "<td{$hTdClass}>";
                 $s .= "<input type='checkbox' id='{$name}" . "_{$j}' name='{$name}" . "[{$j}]' value='{$v}'";
                 if ($showRelation) {
                     if (isset($showRelation[$v])) {
                         $s .= " show='{$showRelation[$v]}_rel'";
                     } else {
                         $s .= " show='none'";
                     }
                 }
                 if (in_array($v, $selected)) {
                     $s .= " checked";
                 }
                 if ($anyfield == $v) {
                     $s .= " src='any'";
                 }
                 $s .= ">" . $listNames[$j];
                 $s .= "</td>\n";
             }
             $s .= "</tr>\n";
         }
     }
     if ($afterField) {
         $s .= "<tr>";
         $s .= "<td colspan='{$cols}'>{$afterField}</td>";
         $s .= "</tr>";
     }
     $s .= "</table>\n";
     return $s;
 }
Ejemplo n.º 3
0
 function displayEnumValue($attr)
 {
     global $useHtmlInEnumValues;
     if ($this->{$attr} === "") {
         return "";
     }
     $vals = splitByCommas($this->{$attr}, !$useHtmlInEnumValues);
     $lllProp =& new LllProperties($this, $attr);
     $vals =& $lllProp->getSelectLabels($vals);
     return implode(", ", $vals);
 }
Ejemplo n.º 4
0
 function getAdvancedCustomFieldConditions(&$fields)
 {
     $cond = array();
     foreach ($fields as $v) {
         if (!$v->displayInSearchFormCondition() || !isset($this->{$v->columnIndex})) {
             continue;
         }
         if ($v->columnIndex == "title" || $v->columnIndex == "description") {
             if ($tdCond = $this->getTitleDescriptionCondition($v->columnIndex)) {
                 $cond[] = $tdCond;
             }
             continue;
         }
         $columnIndexField = $this->setUserFieldExists($v);
         $subCond = array();
         switch ($v->type) {
             case customfield_text:
                 // pl.: $-1234,345.99-$698.00
                 if ($v->columnIndex == "iid") {
                     $columnIndexField = "n.id";
                 }
                 if ($v->rangeSearch) {
                     if (ereg("^[\$]*([\\-]*[0-9\\.\\,]+)[ ]*-[ ]*[\$]*([\\-]*[0-9\\.\\,]+)", $this->{$v->columnIndex}, $regs)) {
                         $cond[] = "(0+{$columnIndexField}>={$regs['1']} AND 0+{$columnIndexField}<={$regs['2']})";
                         break;
                     } elseif (ereg("^[\$]*([\\-]*[0-9\\.\\,]+)[ ]*-", $this->{$v->columnIndex}, $regs)) {
                         $cond[] = "0+{$columnIndexField}>={$regs['1']}";
                         break;
                     } elseif (ereg("[ ]*-[ ]*[\$]*([\\-]*[0-9\\.\\,]+)", $this->{$v->columnIndex}, $regs)) {
                         $cond[] = "0+{$columnIndexField}<={$regs['1']}";
                         break;
                     }
                 }
             case customfield_text:
             case customfield_textarea:
                 // hogy ne akadjunk ossze a hiddenben erkezo 'id' valueval a custom list modify eseten:
                 $val = $v->columnIndex == "id" ? $this->iid : $this->{$v->columnIndex};
                 if ($val !== '') {
                     $word = quoteSQL($val);
                     if ($v->subType == customfield_alnum || $v->type == customfield_textarea) {
                         $cond[] = "{$columnIndexField} LIKE '%{$word}%'";
                     } else {
                         $cond[] = "{$columnIndexField}='{$word}'";
                     }
                 }
                 break;
             case customfield_bool:
                 if (($val = $this->{$v->columnIndex}) != -1) {
                     if ($v->type == customfield_bool && $val == 0) {
                         $val = "";
                     }
                     // mert a FALSE bool ertekek a TEXT fieldben ""-kent tarolodnak
                     $cond[] = "{$columnIndexField}='{$val}'";
                 }
                 break;
             case customfield_selection:
             case customfield_multipleselection:
             case customfield_checkbox:
                 $enumVal = $this->{$v->columnIndex};
                 if ($enumVal == -1 || $enumVal === "") {
                     break;
                 }
                 if (is_string($enumVal)) {
                     //$enumVal = $v->type==customfield_selection ? array($enumVal) :  splitByCommas($enumVal, FALSE);
                     $enumVal = splitByCommas($enumVal, FALSE);
                 }
                 $enumVal = array_map(create_function('$v', 'return str_replace(",", ",,", $v);'), $enumVal);
                 if (!($count = count($enumVal))) {
                     break;
                 }
                 if ($v->columnIndex == "ownerName") {
                     // ha egy db. 0 erkezik, az a gorumjuzert jeloli ('My ads' custom list),
                     // akkor viszont itt csak egy helyettesitot teszunk a querybe:
                     if ($count == 1 && !$enumVal[0]) {
                         $cond[] = "n.ownerId=#gorumuser#";
                     } elseif ($count == 1) {
                         $cond[] = "n.ownerId='" . quoteSQL($enumVal[0]) . "'";
                     } else {
                         foreach ($enumVal as $val) {
                             $subCond[] = $val ? quoteSQL($val) : "'#gorumuser#'";
                         }
                         $cond[] = "FIND_IN_SET(n.ownerId, '" . implode(",", $subCond) . "')!=0";
                     }
                     break;
                 }
                 foreach ($enumVal as $val) {
                     if ($v->type == customfield_selection) {
                         $subCond[] = "{$columnIndexField}='" . quoteSQL($val) . "'";
                     } else {
                         $subCond[] = $this->composeSearchRegexp($columnIndexField, $val);
                     }
                 }
                 $cond[] = "(" . implode(" OR ", $subCond) . ")";
                 break;
             case customfield_date:
                 if ($dateCond = $this->getDateCondition($v->columnIndex, $columnIndexField)) {
                     $cond[] = $dateCond;
                 }
                 break;
             case customfield_picture:
             case customfield_media:
                 if (($val = $this->{$v->columnIndex}) != -1) {
                     $cond[] = $val ? "{$columnIndexField}!=''" : "{$columnIndexField}=''";
                 }
                 break;
             default:
                 break;
         }
     }
     return $cond;
 }