public static function export(Tiki_Profile_Writer $writer, $id, $withTopic = false, $withType = false) { $artlib = TikiLib::lib('art'); $info = $artlib->get_article($id, false); if (!$info) { return false; } $bodypage = "article_{$id}_body"; $writer->writeExternal($bodypage, $writer->getReference('wiki_content', $info['body'])); $out = array('title' => $info['title'], 'author' => $info['authorName'], 'body' => "wikicontent:{$bodypage}", 'type' => $writer->getReference('article_type', $info['type']), 'publication_date' => $info['publishDate'], 'expiration_date' => $info['expireDate'], 'topline' => $info['topline'], 'subtitle' => $info['subtitle'], 'link_to' => $info['linkto'], 'language' => $info['lang']); if ($info['topicId']) { if ($withTopic) { Tiki_Profile_InstallHandler_ArticleTopic::export($writer, $info['topicId']); } $out['topic'] = $writer->getReference('article_topic', $info['topicId']); } if ($info['heading']) { $headerpage = "article_{$id}_heading"; $writer->writeExternal($headerpage, $writer->getReference('wiki_content', $info['heading'])); $out['heading'] = "wikicontent:{$headerpage}"; } $out = array_filter($out); $writer->addObject('article', $id, $out); if ($withType) { Tiki_Profile_InstallHandler_ArticleType::export($writer, $info['type']); } return true; }
function prefs_user_tracker_references(Tiki_Profile_Writer $writer, $values) { $values = array_filter(explode(',', $values)); $tracker = array_shift($values); $values = $writer->getReference('tracker_field', $values); array_unshift($values, $writer->getReference('tracker', $tracker)); return implode(',', $values); }
static function export(Tiki_Profile_Writer $writer, $field) { if (!is_array($field)) { $trklib = TikiLib::lib('trk'); $field = $trklib->get_tracker_field($field); if (!$field) { return false; } } $factory = new Tracker_Field_Factory(); $fieldInfo = $factory->getFieldInfo($field['type']); $options = Tracker_Options::fromSerialized($field['options'], $fieldInfo); $optionsData = array_filter($options->getAllParameters()); foreach ($optionsData as $key => $value) { $paramInfo = $options->getParamDefinition($key); if (isset($paramInfo['profile_reference'])) { $optionsData[$key] = $writer->getReference($paramInfo['profile_reference'], $value); } } $data = array('name' => $field['name'], 'permname' => $field['permName'], 'tracker' => $writer->getReference('tracker', $field['trackerId']), 'options' => $optionsData); $optionMap = array_flip(self::getOptionMap()); $defaults = self::getDefaultValues(); $conversions = self::getConverters(); $flag = array(); foreach ($field as $key => $value) { if (empty($optionMap[$key])) { continue; } $optionKey = $optionMap[$key]; $default = ''; if (isset($defaults[$optionKey])) { $default = $defaults[$optionKey]; } if ($value != $default) { if (in_array($optionKey, array('list', 'link', 'searchable', 'public', 'mandatory', 'multilingual'))) { if (!empty($value)) { $flag[] = $optionKey; } } elseif (!empty($conversions[$optionKey])) { $reverseVal = $conversions[$optionKey]->reverse($value); $data[$optionKey] = $reverseVal; } else { $data[$optionKey] = $value; } } } if (!empty($flag)) { $data['flags'] = $flag; } $writer->addObject('tracker_field', $field['fieldId'], $data); return true; }
public static function export(Tiki_Profile_Writer $writer, $categId, $deep, $includeObjectCallback) { $categlib = TikiLib::lib('categ'); if (!($info = $categlib->get_category($categId))) { return false; } $items = array(); foreach ($categlib->get_category_objects($categId) as $row) { if ($includeObjectCallback($row['type'], $row['itemId'])) { $items[] = array($row['type'], $writer->getReference($row['type'], $row['itemId'])); } } $data = array('name' => $info['name']); if (!empty($info['parentId'])) { $data['parent'] = $writer->getReference('category', $info['parentId']); } if (!empty($items)) { $data['items'] = $items; } $writer->addObject('category', $categId, $data); if ($deep) { $descendants = $categlib->get_category_descendants($categId); array_shift($descendants); foreach ($descendants as $children) { self::export($writer, $children, $deep, $includeObjectCallback); } } return true; }
public static function export(Tiki_Profile_Writer $writer, $id) { $rsslib = TikiLib::lib('rss'); $info = $rsslib->get_rss_module($id); if (!$info) { return false; } $out = array('name' => $info['name'], 'url' => $info['url'], 'description' => $info['description'], 'refresh' => $info['refresh'], 'show_title' => $info['showTitle'], 'show_publication_date' => $info['showPubDate']); $out = array_filter($out); $generator = $rsslib->get_article_generator($id); if ($generator['active']) { $generator['atype'] = $writer->getReference('article_type', $generator['atype']); if ($generator['topic']) { $generator['topic'] = $writer->getReference('article_topic', $generator['topic']); } $out['article_generator'] = $generator; } $writer->addObject('rss', $id, $out); return true; }
public static function exportGroup(Tiki_Profile_Writer $writer, $group, $categories = false, $objects = false) { $userlib = \TikiLib::lib('user'); $info = $userlib->get_group_info($group); if (empty($info['id'])) { return false; } $data = array('description' => $info['groupDesc'], 'home' => $info['groupHome'], 'user_tracker' => $writer->getReference('tracker', $info['userTrackerId']), 'group_tracker' => $writer->getReference('tracker', $info['groupTrackerId']), 'user_tracker_field' => $writer->getReference('tracker_field', $info['userTrackerFieldId']), 'group_tracker_field' => $writer->getReference('tracker_field', $info['groupTrackerFieldId']), 'registration_fields' => $writer->getReference('tracker_field', array_filter(explode(':', $info['registrationUsersFieldIds']))), 'user_signup' => $info['userChoice'], 'default_category' => $writer->getReference('category', $info['groupDefCat']), 'theme' => $info['groupTheme'], 'allow' => [], 'objects' => []); foreach ($info['perms'] as $perm) { // Skip tiki_p_ $data['allow'][] = substr($perm, 7); } if ($categories) { $data['objects'] = self::getPermissionList($writer, 'category', $group); } if ($objects) { $data['objects'] = array_merge($data['objects'], self::getPermissionList($writer, 'wiki page', $group), self::getPermissionList($writer, 'tracker', $group), self::getPermissionList($writer, 'forum', $group)); } // Clean and store $data = array_filter($data); $writer->addPermissions($group, $data); return true; }
public static function profileReference(Tiki_Profile_Writer $writer, $value) { return preg_replace_callback('/#([0-9]+)/', function ($args) use($writer) { return $writer->getReference('tracker_field', $args[1]); }, $value); }
public function uniform_string($type, Tiki_Profile_Writer $writer, $value) { return preg_replace_callback('/(\\d+)/', function ($args) use($writer, $type) { return $writer->getReference($type, $args[1]); }, $value); }
public static function export(Tiki_Profile_Writer $writer, $page) { $tikilib = \TikiLib::lib('tiki'); if (!($info = $tikilib->get_page_info($page))) { return false; } $writer->writeExternal($page, $writer->getReference('wiki_content', $info['data'])); $writer->addObject('wiki_page', $page, array('name' => $page, 'content' => "wikicontent:{$page}", 'description' => $info['description'], 'lang' => $info['lang'])); return true; }
public function exportPreference(Tiki_Profile_Writer $writer, $preferenceName) { global $prefs; if ($info = $this->getPreference($preferenceName)) { if (isset($info['profile_reference'])) { $writer->setPreference($preferenceName, $writer->getReference($info['profile_reference'], $info['value'])); return true; } else { $writer->setPreference($preferenceName, $info['value']); return true; } } return false; }
public static function fitnesse_content(Tiki_Profile_Writer $writer, $content) { $searchlib = TikiLib::lib('unifiedsearch'); $argumentParser = new WikiParser_PluginArgumentParser(); $matches = WikiParser_PluginMatcher::match($content); $justReplaced = false; foreach ($matches as $match) { if ($justReplaced) { $justReplaced = false; continue; } $name = $match->getName(); $args = $argumentParser->parse($match->getArguments()); if (isset($args['trackerId'])) { $args['trackerId'] = $writer->getReference('tracker', $args['trackerId']); $match->replaceWithPlugin($name, $args, $match->getBody()); $justReplaced = true; } } return $matches->getText(); }
public static function export(Tiki_Profile_Writer $writer, $galId, $withParents = false, $deep = false) { $filegallib = TikiLib::lib('filegal'); $info = $filegallib->get_file_gallery_info($galId); $default = $filegallib->default_file_gallery(); if (!$info) { return false; } $out = array('name' => $info['name'], 'visible' => $info['visible']); if ($info['parentId'] > 3) { // up to 3, standard/default galleries $out['parent'] = $writer->getReference('file_gallery', $info['parentId']); } else { $out['parent'] = $info['parentId']; } // Include any simple field whose value is different from the default $simple = array('description', 'public', 'type', 'lockable', 'archives', 'quota', 'image_max_size_x', 'image_max_size_y', 'backlinkPerms', 'wiki_syntax', 'sort_mode', 'maxRows', 'max_desc', 'subgal_conf', 'default_view', 'template'); foreach ($simple as $field) { if ($info[$field] != $default[$field]) { $out[$field] = $info[$field]; } } $popup = array(); $column = array(); foreach ($info as $field => $value) { if (isset($default[$field]) && $value == $default[$field]) { continue; // Skip default values } if (substr($field, 0, 5) == 'show_') { $short = substr($field, 5); if ($value == 'a' || $value == 'o') { $popup[] = $short; } if ($value == 'a' || $value == 'y') { $column[] = $short; } } } if (!empty($popup)) { $out['popup'] = $popup; } if (!empty($column)) { $out['column'] = $column; } $writer->addObject('file_gallery', $galId, $out); if ($deep) { $table = $filegallib->table('tiki_file_galleries'); $children = $table->fetchColumn('galleryId', array('parentId' => $galId)); foreach ($children as $id) { self::export($writer, $id, false, $deep); } } if ($withParents && $info['parentId'] > 3) { self::export($writer, $info['parentId'], $withParents, false); } return true; }