private function addUserAttributeKeys($pkg) { $att = UserAttributeKey::getByHandle("db_table_demo"); if (!$att) { UserAttributeKey::add('db_table_demo', array('akHandle' => 'db_table_demo', 'akName' => t('Database Table Tutorial Demo'), 'akIsSearchable' => true), $pkg); } }
public function publish(AttributeKey $ak, Package $pkg = null) { /** @var $category UserAttributeKeyCategoryInstance */ $category = $ak->getCategory(); $key = UserKey::add($ak->getType(), array('akHandle' => $ak->getHandle(), 'akName' => $ak->getName(), 'akIsInternal' => $ak->getIsInternal(), 'akIsSearchableIndexed' => $ak->getIsIndexed(), 'akIsSearchable' => $ak->getIsSearchable(), 'uakProfileDisplay' => $category->getDisplayedInProfile(), 'uakProfileEdit' => $category->getEditableInProfile(), 'uakProfileEditRequired' => $category->getRequiredInProfile(), 'uakRegisterEdit' => $category->getEditableInRegistration(), 'uakRegisterEditRequired' => $category->getRequiredInRegistration(), 'uakMemberListDisplay' => $category->getDisplayedInMemberList()), $pkg); return $key; }
public function install() { $pkg = parent::install(); //install our dashboard singlepages SinglePage::add('/dashboard/store/', $pkg); SinglePage::add('/dashboard/store/orders/', $pkg); SinglePage::add('/dashboard/store/products/', $pkg); SinglePage::add('/dashboard/store/products/attributes', $pkg); SinglePage::add('/dashboard/store/settings/', $pkg); //install our cart/checkout pages SinglePage::add('/cart/', $pkg); SinglePage::add('/checkout/', $pkg); SinglePage::add('/checkout/complete', $pkg); Page::getByPath('/cart/')->setAttribute('exclude_nav', 1); Page::getByPath('/checkout/')->setAttribute('exclude_nav', 1); Page::getByPath('/checkout/complete')->setAttribute('exclude_nav', 1); //install a default page to pushlish products under $productParentPage = Page::getByPath('/product-detail'); if ($productParentPage->isError()) { $productParentPage = Page::getByID(1)->add(PageType::getByHandle('page'), array('cName' => t('Product Detail'), 'cHandle' => 'product-detail', 'pkgID' => $pkg->pkgID), PageTemplate::getByHandle('full')); } Page::getByPath('/product-detail')->setAttribute('exclude_nav', 1); $this->installStoreProductPageType($pkg); Config::save('vividstore.productPublishTarget', $productParentPage->getCollectionID()); //install our blocks BlockTypeSet::add("vivid_store", "Store", $pkg); BlockType::installBlockTypeFromPackage('vivid_product_list', $pkg); BlockType::installBlockTypeFromPackage('vivid_utility_links', $pkg); BlockType::installBlockTypeFromPackage('vivid_product', $pkg); //install some default blocks for page type. $pageType = PageType::getByHandle('store_product'); $template = $pageType->getPageTypeDefaultPageTemplateObject(); $pageObj = $pageType->getPageTypePageTemplateDefaultPageObject($template); $bt = BlockType::getByHandle('vivid_product'); $blocks = $pageObj->getBlocks('Main'); if (count($blocks) < 1) { $data = array('productLocation' => 'page', 'showProductName' => 1, 'showProductDescription' => 1, 'showProductDetails' => 1, 'showProductPrice' => 1, 'showImage' => 1, 'showCartButton' => 1, 'showGroups' => 1); $pageObj->addBlock($bt, 'Main', $data); } //set our default currency configs Config::save('vividstore.symbol', '$'); Config::save('vividstore.whole', '.'); Config::save('vividstore.thousand', ','); //set defaults for shipping Config::save('vividstore.sizeUnit', 'in'); Config::save('vividstore.weightUnit', 'l'); //tax label $pkg->getconfig()->save('vividstore.taxName', t('Tax')); //user attributes for customers $uakc = AttributeKeyCategory::getByHandle('user'); $uakc->setAllowAttributeSets(AttributeKeyCategory::ASET_ALLOW_MULTIPLE); //define attr group, and the different attribute types we'll use $custSet = $uakc->addSet('customer_info', t('Store Customer Info'), $pkg); $text = AttributeType::getByHandle('text'); $address = AttributeType::getByHandle('address'); //email $bFirstname = UserAttributeKey::getByHandle('email'); if (!is_object($bFirstname)) { UserAttributeKey::add($text, array('akHandle' => 'email', 'akName' => t('Email'), 'akIsSearchable' => false, 'uakProfileEdit' => true, 'uakProfileEditRequired' => false, 'uakRegisterEdit' => false, 'uakProfileEditRequired' => false, 'akCheckedByDefault' => true, 'displayOrder' => '1'), $pkg)->setAttributeSet($custSet); } //billing first name $bFirstname = UserAttributeKey::getByHandle('billing_first_name'); if (!is_object($bFirstname)) { UserAttributeKey::add($text, array('akHandle' => 'billing_first_name', 'akName' => t('Billing First Name'), 'akIsSearchable' => false, 'uakProfileEdit' => true, 'uakProfileEditRequired' => false, 'uakRegisterEdit' => false, 'uakProfileEditRequired' => false, 'akCheckedByDefault' => true, 'displayOrder' => '1'), $pkg)->setAttributeSet($custSet); } //billing last name $bLastname = UserAttributeKey::getByHandle('billing_last_name'); if (!is_object($bLastname)) { UserAttributeKey::add($text, array('akHandle' => 'billing_last_name', 'akName' => t('Billing Last Name'), 'akIsSearchable' => false, 'uakProfileEdit' => true, 'uakProfileEditRequired' => false, 'uakRegisterEdit' => false, 'uakProfileEditRequired' => false, 'akCheckedByDefault' => true, 'displayOrder' => '2'), $pkg)->setAttributeSet($custSet); } //billing address $bAddress = UserAttributeKey::getByHandle('billing_address'); if (!is_object($bAddress)) { UserAttributeKey::add($address, array('akHandle' => 'billing_address', 'akName' => t('Billing Address'), 'akIsSearchable' => false, 'uakProfileEdit' => true, 'uakProfileEditRequired' => false, 'uakRegisterEdit' => false, 'uakProfileEditRequired' => false, 'akCheckedByDefault' => true, 'displayOrder' => '3'), $pkg)->setAttributeSet($custSet); } //billing Phone $bPhone = UserAttributeKey::getByHandle('billing_phone'); if (!is_object($bPhone)) { UserAttributeKey::add($text, array('akHandle' => 'billing_phone', 'akName' => t('Billing Phone'), 'akIsSearchable' => false, 'uakProfileEdit' => true, 'uakProfileEditRequired' => false, 'uakRegisterEdit' => false, 'uakProfileEditRequired' => false, 'akCheckedByDefault' => true, 'displayOrder' => '4'), $pkg)->setAttributeSet($custSet); } //shipping first name $sFirstname = UserAttributeKey::getByHandle('shipping_first_name'); if (!is_object($sFirstname)) { UserAttributeKey::add($text, array('akHandle' => 'shipping_first_name', 'akName' => t('Shipping First Name'), 'akIsSearchable' => false, 'uakProfileEdit' => true, 'uakProfileEditRequired' => false, 'uakRegisterEdit' => false, 'uakProfileEditRequired' => false, 'akCheckedByDefault' => true, 'displayOrder' => '1'), $pkg)->setAttributeSet($custSet); } //shipping last name $bLastname = UserAttributeKey::getByHandle('shipping_last_name'); if (!is_object($bLastname)) { UserAttributeKey::add($text, array('akHandle' => 'shipping_last_name', 'akName' => t('Shipping Last Name'), 'akIsSearchable' => false, 'uakProfileEdit' => true, 'uakProfileEditRequired' => false, 'uakRegisterEdit' => false, 'uakProfileEditRequired' => false, 'akCheckedByDefault' => true, 'displayOrder' => '2'), $pkg)->setAttributeSet($custSet); } //shipping address $sAddress = UserAttributeKey::getByHandle('shipping_address'); if (!is_object($sAddress)) { UserAttributeKey::add($address, array('akHandle' => 'shipping_address', 'akName' => t('Shipping Address'), 'akIsSearchable' => false, 'uakProfileEdit' => true, 'uakProfileEditRequired' => false, 'uakRegisterEdit' => false, 'uakProfileEditRequired' => false, 'akCheckedByDefault' => true, 'displayOrder' => '3'), $pkg)->setAttributeSet($custSet); } //create user group $group = Group::getByName('Store Customer'); if (!$group || $group->getGroupID() < 1) { $group = Group::add('Store Customer', t('Registered Customer in your store')); } //create custom attribute category for orders $oakc = AttributeKeyCategory::getByHandle('store_order'); if (!is_object($oakc)) { $oakc = AttributeKeyCategory::add('store_order', AttributeKeyCategory::ASET_ALLOW_SINGLE, $pkg); $oakc->associateAttributeKeyType(AttributeType::getByHandle('text')); $oakc->associateAttributeKeyType(AttributeType::getByHandle('textarea')); $oakc->associateAttributeKeyType(AttributeType::getByHandle('number')); $oakc->associateAttributeKeyType(AttributeType::getByHandle('address')); $oakc->associateAttributeKeyType(AttributeType::getByHandle('boolean')); $oakc->associateAttributeKeyType(AttributeType::getByHandle('date_time')); $orderCustSet = $oakc->addSet('order_customer', t('Store Customer Info'), $pkg); } $email = StoreOrderKey::getByHandle('email'); if (!is_object($email)) { StoreOrderKey::add($text, array('akHandle' => 'email', 'akName' => t('Email')), $pkg)->setAttributeSet($orderCustSet); } $bFirstname = StoreOrderKey::getByHandle('billing_first_name'); if (!is_object($bFirstname)) { StoreOrderKey::add($text, array('akHandle' => 'billing_first_name', 'akName' => t('Billing First Name')), $pkg)->setAttributeSet($orderCustSet); } $bLastname = StoreOrderKey::getByHandle('billing_last_name'); if (!is_object($bLastname)) { StoreOrderKey::add($text, array('akHandle' => 'billing_last_name', 'akName' => t('Billing Last Name')), $pkg)->setAttributeSet($orderCustSet); } $bAddress = StoreOrderKey::getByHandle('billing_address'); if (!is_object($bAddress)) { StoreOrderKey::add($address, array('akHandle' => 'billing_address', 'akName' => t('Billing Address')), $pkg)->setAttributeSet($orderCustSet); } $bPhone = StoreOrderKey::getByHandle('billing_phone'); if (!is_object($bPhone)) { StoreOrderKey::add($text, array('akHandle' => 'billing_phone', 'akName' => t('Billing Phone')), $pkg)->setAttributeSet($orderCustSet); } $sFirstname = StoreOrderKey::getByHandle('shipping_first_name'); if (!is_object($sFirstname)) { StoreOrderKey::add($text, array('akHandle' => 'shipping_first_name', 'akName' => t('Shipping First Name')), $pkg)->setAttributeSet($orderCustSet); } $sLastname = StoreOrderKey::getByHandle('shipping_last_name'); if (!is_object($sLastname)) { StoreOrderKey::add($text, array('akHandle' => 'shipping_last_name', 'akName' => t('Shipping Last Name')), $pkg)->setAttributeSet($orderCustSet); } $sAddress = StoreOrderKey::getByHandle('shipping_address'); if (!is_object($sAddress)) { StoreOrderKey::add($address, array('akHandle' => 'shipping_address', 'akName' => t('Shipping Address')), $pkg)->setAttributeSet($orderCustSet); } //create custom attribute category for products $pakc = AttributeKeyCategory::getByHandle('store_product'); if (!is_object($pakc)) { $pakc = AttributeKeyCategory::add('store_product', AttributeKeyCategory::ASET_ALLOW_SINGLE, $pkg); $pakc->associateAttributeKeyType(AttributeType::getByHandle('text')); $pakc->associateAttributeKeyType(AttributeType::getByHandle('textarea')); $pakc->associateAttributeKeyType(AttributeType::getByHandle('number')); $pakc->associateAttributeKeyType(AttributeType::getByHandle('address')); $pakc->associateAttributeKeyType(AttributeType::getByHandle('boolean')); $pakc->associateAttributeKeyType(AttributeType::getByHandle('date_time')); } //install payment gateways PaymentMethod::add('auth_net', 'Authorize .NET', $pkg); PaymentMethod::add('invoice', 'Invoice', $pkg, null, true); PaymentMethod::add('paypal_standard', 'PayPal', $pkg); //create fileset to place digital downloads $fs = FileSet::getByName('Digital Downloads'); if (!is_object($fs)) { FileSet::add("Digital Downloads"); } Installer::addOrderStatusesToDatabase($pkg); Config::save('vividstore.cartOverlay', false); }
public static function installUserAttribute($handle, $type, $pkg, $set, $data = null) { $attr = UserAttributeKey::getByHandle($handle); if (!is_object($attr)) { $name = Core::make("helper/text")->camelcase($handle); if (!$data) { $data = array('akHandle' => $handle, 'akName' => t($name), 'akIsSearchable' => false, 'uakProfileEdit' => true, 'uakProfileEditRequired' => false, 'uakRegisterEdit' => false, 'uakProfileEditRequired' => false, 'akCheckedByDefault' => true); } UserAttributeKey::add($type, $data, $pkg)->setAttributeSet($set); } }
public function install_pb_user_attributes($pkg) { $euku = AttributeKeyCategory::getByHandle('user'); $euku->setAllowAttributeSets(AttributeKeyCategory::ASET_ALLOW_MULTIPLE); $uset = $euku->addSet('author_info', t('Author Info'), $pkg); $texta = AttributeType::getByHandle('textarea'); $sbbio = UserAttributeKey::getByHandle('user_bio'); if (!is_object($sbbio)) { UserAttributeKey::add($texta, array('akHandle' => 'user_bio', 'akName' => t('About the author'), 'akIsSearchable' => false, 'uakProfileEdit' => true, 'uakProfileEditRequired' => true, 'uakRegisterEdit' => true, 'uakProfileEditRequired' => true, 'akCheckedByDefault' => true, 'displayOrder' => '3'), $pkg)->setAttributeSet($uset); } $textt = AttributeType::getByHandle('text'); $sbname = UserAttributeKey::getByHandle('first_name'); if (!is_object($sbname)) { UserAttributeKey::add($textt, array('akHandle' => 'first_name', 'akName' => t('First Name'), 'akIsSearchable' => false, 'uakProfileEdit' => true, 'uakProfileEditRequired' => true, 'uakRegisterEdit' => true, 'uakProfileEditRequired' => true, 'akCheckedByDefault' => true, 'displayOrder' => '1'), $pkg)->setAttributeSet($uset); } $sblname = UserAttributeKey::getByHandle('last_name'); if (!is_object($sblname)) { UserAttributeKey::add($textt, array('akHandle' => 'last_name', 'akName' => t('Last Name'), 'akIsSearchable' => false, 'uakProfileEdit' => true, 'uakProfileEditRequired' => true, 'uakRegisterEdit' => true, 'uakProfileEditRequired' => true, 'akCheckedByDefault' => true, 'displayOrder' => '2'), $pkg)->setAttributeSet($uset); } /** * To Do: rework and add back at later date. * Permissions can be manual for the time being. */ // $group = Group::getByName('ProBlog Editor'); // if (!$group || $group->getGroupID() < 1) { // $group = Group::add('ProBlog Editor','Can create and edit Blog posts'); // } // // $pk = PermissionKey::getByHandle('problog_post'); // if (!$pk || $pk->getPermissionKeyID() < 1) { // $pk = AdminPermissionKey::add('admin','problog_post',t('Create Blog Posts'),t('User can use ProBlog frontend features.'),true,false,$pkg); // } // // $pe = GroupPermissionAccessEntity::getOrCreate($group); // // $pa = AdminPermissionAccess::create($pk); // // $pka = new PermissionAssignment(); // $pka->setPermissionKeyObject($pk); // $pka->assignPermissionAccess($pa); // // $pa->addListItem($pe, false, 10); // // $agroup = Group::getByName('ProBlog Approver'); // if (!$agroup || $group->getGroupID() < 1) { // $agroup = Group::add('ProBlog Approver','Can Approve Blog posts'); // } // // $apk = PermissionKey::getByHandle('problog_approve'); // if (!$apk || $apk->getPermissionKeyID() < 1) { // $apk = AdminPermissionKey::add('admin','problog_approve',t('Approve Blog Posts'),t('User can Approve ProBlog posts.'),true,false,$pkg); // } // // $ape = GroupPermissionAccessEntity::getOrCreate($agroup); // // $apa = AdminPermissionAccess::create($apk); // // $apka = new PermissionAssignment(); // $apka->setPermissionKeyObject($apk); // $apka->assignPermissionAccess($apa); // // $apa->addListItem($ape, false, 10); //add approver // $pa->addListItem($ape, false, 10); //append approver to edit }