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); } } }
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); }