public function add_user_attribute_key($handle, $name, $type = 'text') { $ak = UserAttributeKey::getByHandle($handle); if (!is_object($ak)) { UserAttributeKey::add($type, array('akHandle' => $handle, 'akName' => t($name)), $pkg); } }
public function install() { Loader::library('mootools/attribute', FRONTEND_DEVELOPER_PACKAGE_HANDLE); $pkg = parent::install(); Loader::model('single_page'); Loader::model('attribute/categories/user'); Loader::model('attribute/categories/file'); $singlePages = array("/dashboard/mootools" => array('cName' => t('Mootools Plugin Developer'), 'cDescription' => t('Management of mootools plugin')), "/dashboard/mootools/plugin" => array('cName' => t('plugin'), 'cDescription' => t('Management of Mootools Plugin that does import')), "/dashboard/mootools/importer" => array('cName' => t('import'), 'cDescription' => t('Import from repository'))); foreach ($singlePages as $key => $page) { $collection = SinglePage::add($key, $pkg); if (!empty($collection)) { $collection->update($page); } } //The name of the user of github is added to the attribute. $values = array("akHandle" => MOOTOOLS_GITHUB_USER, "akName" => t("Name of user of github"), "akIsSearchable" => true, "akIsSearchableIndexed" => true, "akIsAutoCreated" => true, "akIsEditable" => true); $key = UserAttributeKey::add("text", $values, $pkg); $fileAttributes = array(array("type" => "boolean", "values" => array("akHandle" => MOOTOOLS_PLUGIN, "akName" => t("This file is a plugin of Mootools"), "akIsSearchable" => true, "akIsSearchableIndexed" => true, "akIsAutoCreated" => true, "akIsEditable" => true)), array("type" => "text", "values" => array("akHandle" => MOOTOOLS_COMPONENT_NAME, "akName" => t("Component name of Mootools"), "akIsSearchable" => true, "akIsSearchableIndexed" => true, "akIsAutoCreated" => true, "akIsEditable" => true)), array("type" => "text", "values" => array("akHandle" => MOOTOOLS_PLUGIN_LICENSE, "akName" => t("License of Mootools plugin"), "akIsSearchable" => true, "akIsSearchableIndexed" => true, "akIsAutoCreated" => true, "akIsEditable" => true)), array("type" => "text", "values" => array("akHandle" => MOOTOOLS_PLUGIN_AUTHORS, "akName" => t("Authors of Mootools plugin"), "akIsSearchable" => true, "akIsSearchableIndexed" => true, "akIsAutoCreated" => true, "akIsEditable" => true)), array("type" => "select", "values" => array("akHandle" => MOOTOOLS_PLUGIN_DEPENDENCES, "akName" => t("Dependence of Mootools plugin"), "akIsSearchable" => true, "akIsSearchableIndexed" => true, "akIsAutoCreated" => true, "akIsEditable" => true)), array("type" => "number", "values" => array("akHandle" => MOOTOOLS_PLUGIN_DISPLAY_ORDER, "akName" => t("The order of display of Mootools plugin"), "akIsSearchable" => true, "akIsSearchableIndexed" => true, "akIsAutoCreated" => true, "akIsEditable" => true))); $attributesKeys = array(); foreach ($fileAttributes as $key => $attr) { $type = $attr["type"]; $values = $attr["values"]; $handle = $values["akHandle"]; $attributesKeys[$handle] = FileAttributeKey::add($type, $values, $pkg); } if (!empty($attributesKeys[MOOTOOLS_PLUGIN_DEPENDENCES])) { $key = $attributesKeys[MOOTOOLS_PLUGIN_DEPENDENCES]; $db = Loader::db(); $db->Replace('atSelectSettings', array('akID' => $key->getAttributeKeyID(), 'akSelectAllowMultipleValues' => true), array('akID'), true); } BlockType::installBlockTypeFromPackage("mootools_plugin_build_form", $pkg); BlockType::installBlockTypeFromPackage("github_tags", $pkg); BlockType::installBlockTypeFromPackage("github_issues", $pkg); BlockType::installBlockTypeFromPackage("github_repository", $pkg); PageTheme::add('small_project', $pkg); }
public function add() { $this->select_type(); $type = $this->get('type'); $cnt = $type->getController(); $e = $cnt->validateKey($this->post()); if ($e->has()) { $this->set('error', $e); } else { $type = AttributeType::getByID($this->post('atID')); $ak = UserAttributeKey::add($type, $this->post()); $this->redirect('/dashboard/users/attributes/', 'attribute_created'); } }
public static function import(SimpleXMLElement $ak) { $type = AttributeType::getByHandle($ak['type']); $pkg = false; if ($ak['package']) { $pkg = Package::getByHandle($ak['package']); } $akn = UserAttributeKey::add($type, array('akHandle' => $ak['handle'], 'akName' => $ak['name'], 'akIsSearchableIndexed' => $ak['indexed'], 'akIsSearchable' => $ak['searchable'], 'uakProfileDisplay' => $ak['profile-displayed'], 'uakProfileEdit' => $ak['profile-editable'], 'uakProfileEditRequired' => $ak['profile-required'], 'uakRegisterEdit' => $ak['register-editable'], 'uakRegisterEditRequired' => $ak['register-required'], 'uakMemberListDisplay' => $ak['member-list-displayed']), $pkg); $akn->getController()->importKey($ak); }
private function installUserAttributes($pkg) { $uakc = AttributeKeyCategory::getByHandle('user'); // Multiple means an attribute can be in more than one set, but you // can't choose what set they show up in for the gui // $uakc->setAllowAttributeSets(AttributeKeyCategory::ASET_ALLOW_MULTIPLE); // $uakc->setAllowAttributeSets(AttributeKeyCategory::ASET_ALLOW_NONE); $uakc->setAllowAttributeSets(AttributeKeyCategory::ASET_ALLOW_SINGLE); $bua = $uakc->addSet('c5_boilerplate_user_attributes', t('Boilerplate User Attributes'), $pkg); //add boolean attributes $bp_boolean = UserAttributeKey::getByHandle('bp_boolean'); if (!$bp_boolean instanceof UserAttributeKey) { $bp_boolean = UserAttributeKey::add('boolean', array('akHandle' => 'bp_boolean', 'akName' => t('Boolean Name'), 'akIsSearchable' => true, 'akIsSearchableIndexed' => true), $pkg)->setAttributeSet($bua); } //add text attributes $bp_text = UserAttributeKey::getByHandle('bp_text'); if (!$bp_text instanceof UserAttributeKey) { $bp_text = UserAttributeKey::add('text', array('akHandle' => 'bp_text', 'akName' => t('Text Name'), 'akIsSearchable' => true, 'akIsSearchableIndexed' => true), $pkg)->setAttributeSet($bua); } }
protected function upgradeUserAttributes() { $messages = array(); $db = Loader::db(); $r = $db->Execute('select _UserAttributeKeys.* from _UserAttributeKeys order by displayOrder asc'); while ($row = $r->FetchRow()) { $cleanHandle = preg_replace("/[^A-Za-z0-9\_]/",'',$row['ukHandle']); // remove spaces, chars that'll mess up our index tables $existingAKID = $db->GetOne('select akID from AttributeKeys where akHandle = ?', array($cleanHandle) ); if ($existingAKID < 1) { if(!$row['ukHandle']) continue; $args = array( 'akHandle' => $cleanHandle, 'akIsSearchable' => 1, 'akIsEditable' => 1, 'akName' => $row['ukName'], 'uakIsActive' => ($row['ukHidden']?0:1), 'uakProfileEditRequired' => $row['ukRequired'], 'uakProfileDisplay' => ($row['ukPrivate'] == 0), 'uakRegisterEdit' => $row['ukDisplayedOnRegister'] ); $sttype = $row['ukType']; if ($sttype == 'TEXTAREA') { $sttype = 'TEXT'; } if ($sttype == 'RADIO') { $sttype = 'SELECT'; } $type = AttributeType::getByHandle(strtolower($sttype)); $ak = UserAttributeKey::add($type, $args); if ($sttype == 'SELECT') { $selectOptions = explode("\n", $row['ukValues']); foreach($selectOptions as $so) { if ($so != '') { SelectAttributeTypeOption::add($ak, $so); } } } } else { $ak = UserAttributeKey::getByID($existingAKID); } $r2 = $db->Execute('select * from _UserAttributeValues where ukID = ? and isImported = 0', $row['ukID']); while ($row2 = $r2->FetchRow()) { $ui = UserInfo::getByID($row2['uID']); if(is_object($ui)) { $value = $row2['value']; $ui->setAttribute($ak, $value); } unset($ui); $db->Execute('update _UserAttributeValues set isImported = 1 where ukID = ? and uID = ?', array($row['ukID'], $row2['uID'])); $this->incrementImported(); } unset($ak); unset($row2); $r2->Close(); unset($r2); } unset($row); $r->Close(); unset($r); return $messages; }
public function add() { $this->select_type(); $type = $this->get('type'); $cnt = $type->getController(); $e = $cnt->validateKey($this->post()); if ($e->has()) { $this->set('error', $e); } else { $type = AttributeType::getByID($this->post('atID')); $args = array( 'akHandle' => $this->post('akHandle'), 'akName' => $this->post('akName'), 'akIsSearchable' => $this->post('akIsSearchable'), 'akIsSearchableIndexed' => $this->post('akIsSearchableIndexed'), 'uakProfileDisplay' => $this->post('uakProfileDisplay'), 'uakMemberListDisplay' => $this->post('uakMemberListDisplay'), 'uakProfileEdit' => $this->post('uakProfileEdit'), 'uakProfileEditRequired' => $this->post('uakProfileEditRequired'), 'uakRegisterEdit' => $this->post('uakRegisterEdit'), 'uakRegisterEditRequired' => $this->post('uakRegisterEditRequired'), 'akIsAutoCreated' => 0, 'akIsEditable' => 1 ); $ak = UserAttributeKey::add($type, $this->post()); $this->redirect('/dashboard/users/attributes/', 'attribute_created'); } }