Example #1
0
function convertToDbFormat(&$value, &$attrInfo, $attr)
{
    if (is_object($value)) {
        $value = $value->getDbFormat();
    } elseif (is_array($value)) {
        if (in_array("url", $attrInfo)) {
            //if( !preg_match("{^https?://}", $value[0] ) ) $value[0] = "http://$value[0]";
            $value = "<a href='{$value['0']}' target='_blank'>{$value['1']}</a>";
        } elseif (in_array("multimask", $attrInfo)) {
            $tmp = "";
            foreach ($value as $val) {
                $tmp += $val;
            }
            $value = $tmp;
        } else {
            $value = dbEncodeEnumValue($value);
        }
    }
}
Example #2
0
 function propagateField($attr, $value, $intoSubcatsOnly = FALSE, $default = FALSE, $stack = FALSE)
 {
     global $lll;
     load($this);
     if ($intoSubcatsOnly) {
         $wholeName = G::getAttr($this->cid, "appcategory", "wholeName");
         $query = "SELECT f.* FROM @itemfield AS f, @category AS c WHERE c.id=f.cid AND c.wholeName LIKE '" . quoteSQL($wholeName) . "%' AND\n                 ((f.name!='' AND f.name=#name# AND f.type=#type#) OR (f.name='' AND userField!=0 AND userField=#uf#)) \n                 AND cid!=#cid#";
     } else {
         $query = "SELECT * FROM @itemfield WHERE \n                 ((name!='' AND name=#name# AND type=#type#) OR (name='' AND userField!=0 AND userField=#uf#)) \n                 AND cid!=#cid#";
     }
     // ha egy masik kategoriaban letezik olyan field aminek neve es tipusa megegyezik az eppen letrehozottal,
     // vagy ami ugyanarra a userFieldre mutat, azt atallitjuk common-ra:
     G::load($fields, array($query, $this->name, $this->type, $this->userField, $this->cid));
     // a 'values' es a 'default' fieldek propagalasa specialis, mert ezekben egy tomb erkezhet:
     if ($default !== FALSE) {
         $values = JavaScript::jsonDecode($value);
         $defaults = JavaScript::jsonDecode($default);
         $stack = JavaScript::jsonDecode($stack);
         $value = dbEncodeEnumValue($values);
         $default = dbEncodeEnumValue($defaults);
     }
     foreach ($fields as $field) {
         if ($default === FALSE) {
             if (strstr($attr, "default_")) {
                 $attr = "default";
             }
             executeQuery("UPDATE @customfield SET `attr`=#value# WHERE id=#id#", $attr, $value, $field->id);
         } else {
             executeQuery("UPDATE @customfield SET `attr`=#value#, `default`=#default# WHERE id=#id#", $attr, $value, "default", $default, $field->id);
             $field->handleEnumValueChange($stack, $field->values, $values);
         }
         if ($attr == "mainPicture" && $value != "0") {
             $field->mainPicture = $value;
             $field->handleMainPictureChange();
         } elseif ($attr == "seo" && $value != "0") {
             $field->seo = $value;
             $field->handleSeoChange();
         }
     }
     return count($fields);
 }