Beispiel #1
0
 public static function export(Tiki_Profile_Writer $writer, $forumId)
 {
     $forumlib = TikiLib::lib('comments');
     if (!($info = $forumlib->get_forum($forumId))) {
         return false;
     }
     $writer->addObject('forum', $forumId, array('name' => $info['name'], 'description' => $info['description'], 'enable_flood_control' => $info['controlFlood'], 'flood_interval' => $info['floodInterval'], 'moderator' => $info['moderator'], 'mail' => $info['mail'], 'enable_inbound_mail' => $info['useMail'], 'section' => $info['section'], 'enable_prune_unreplied' => $info['usePruneUnreplied'], 'prune_unreplied_max_age' => $info['pruneUnrepliedAge'], 'enable_prune_old' => $info['usePruneOld'], 'prune_max_age' => $info['pruneMaxAge'], 'per_page' => $info['topicsPerPage'], 'topic_order' => $info['topicOrdering'], 'thread_order' => $info['threadOrdering'], 'attachments' => self::getAttConverter()->reverse($info['att']), 'attachments_store' => $info['att_store'], 'attachments_store_dir' => $info['att_store_dir'], 'attachments_max_size' => $info['att_max_size'], 'list_att_nb' => $info['att_list_nb'], 'enable_ui_level' => $info['ui_level'], 'enable_password_protection' => $info['forum_use_password'], 'forum_password' => $info['forum_password'], 'moderator_group' => $info['moderator_group'], 'approval_type' => $info['approval_type'], 'outbound_address' => $info['outbound_address'], 'enable_outbound_for_inbound' => $info['outbound_mails_for_inbound_mails'], 'enable_outbound_mail_reply_link' => $info['outbound_mails_reply_link'], 'outbound_from' => $info['outbound_from'], 'inbound_pop_server' => $info['inbound_pop_server'], 'inbound_pop_port' => $info['inbound_pop_port'], 'inbound_pop_user' => $info['inbound_pop_user'], 'inbound_pop_password' => $info['inbound_pop_password'], 'enable_topic_smiley' => $info['topic_smileys'], 'enable_ui_avatar' => $info['ui_avatar'], 'enable_ui_rating_choice_topic' => $info['ui_rating_choice_topic'], 'enable_ui_flag' => $info['ui_flag'], 'enable_ui_posts' => $info['ui_posts'], 'enable_ui_email' => $info['ui_email'], 'enable_ui_online' => $info['ui_online'], 'enable_topic_summary' => $info['topic_summary'], 'show_description' => $info['show_description'], 'list_topic_replies' => $info['topics_list_replies'], 'list_topic_reads' => $info['topics_list_reads'], 'list_topic_points' => $info['topics_list_pts'], 'list_topic_last_post' => $info['topics_list_lastpost'], 'list_topic_last_post_title' => $info['topics_list_lastpost_title'], 'list_topic_last_post_avatar' => $info['topics_list_lastpost_avatar'], 'list_topic_author_avatar' => $info['topics_list_author_avatar'], 'list_topic_author' => $info['topics_list_author'], 'enable_vote_threads' => $info['vote_threads'], 'forum_last_n' => $info['forum_last_n'], 'thread_style' => $info['threadStyle'], 'comments_per_page' => $info['commentsPerPage'], 'is_flat' => $info['is_flat']));
     return true;
 }
Beispiel #2
0
 public static function export(Tiki_Profile_Writer $writer, $topicId)
 {
     $artlib = TikiLib::lib('art');
     $info = $artlib->get_topic($topicId);
     if ($info) {
         $writer->addObject('article_topic', $topicId, array('name' => $info['name']));
         return true;
     }
     return false;
 }
Beispiel #3
0
 public static function export(Tiki_Profile_Writer $writer, $id)
 {
     if (is_array($id)) {
         $info = $id;
     } else {
         $ratingconfiglib = TikiLib::lib('ratingconfig');
         $info = $ratingconfiglib->get_configuration($id);
     }
     if (!$info) {
         return false;
     }
     $writer->addObject('rating_config', $info['ratingConfigId'], array('name' => $info['name'], 'expiry' => $info['expiry'], 'formula' => $info['formula']));
     return true;
 }
Beispiel #4
0
 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;
 }
Beispiel #5
0
 public static function export(Tiki_Profile_Writer $writer, $typeName)
 {
     $artlib = TikiLib::lib('art');
     $info = $artlib->get_type($typeName);
     if (!$info) {
         return false;
     }
     $out = array('name' => $info['type'], 'allow' => array(), 'show' => array());
     $map = array('use_ratings' => 'allow_ratings', 'show_pre_publ' => 'show_pre_publication', 'heading_only' => 'show_heading_only', 'comment_can_rate_article' => 'allow_comments_rating_article', 'show_pubdate' => 'show_publication_date', 'show_expdate' => 'show_expiration_date', 'show_linkto' => 'show_link_to', 'creator_edit' => 'allow_creator_edit');
     foreach ($info as $key => $value) {
         if (isset($map[$key])) {
             $key = $map[$key];
         }
         if ($value == 'y' && substr($key, 0, 5) == 'show_') {
             $out['show'][] = substr($key, 5);
         } elseif ($value == 'y' && substr($key, 0, 6) == 'allow_') {
             $out['allow'][] = substr($key, 6);
         }
     }
     $out = array_filter($out);
     $writer->addObject('article_type', $info['type'], $out);
     return true;
 }
Beispiel #6
0
 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;
 }
Beispiel #7
0
 function export(Tiki_Profile_Writer $writer, $trackerId)
 {
     $trklib = TikiLib::lib('trk');
     $info = $trklib->get_tracker($trackerId);
     if (!$info) {
         return false;
     }
     if ($options = $trklib->get_tracker_options($trackerId)) {
         $info = array_merge($info, $options);
     }
     $data = array('name' => $info['name'], 'description' => $info['description']);
     $optionMap = array_flip(self::getOptionMap());
     $defaults = self::getDefaults();
     $conversions = self::getOptionConverters();
     $allow = array();
     $show = array();
     foreach ($info as $key => $value) {
         if (empty($optionMap[$key])) {
             continue;
         }
         $optionKey = $optionMap[$key];
         $default = '';
         if (isset($defaults[$optionKey])) {
             $default = $defaults[$optionKey];
         }
         if ($value != $default) {
             if (strstr($optionKey, 'allow_')) {
                 $allow[] = str_replace('allow_', '', $optionKey);
             } elseif (strstr($optionKey, 'show_')) {
                 $show[] = str_replace('show_', '', $optionKey);
             } else {
                 if (isset($conversions[$optionKey]) && method_exists($conversions[$optionKey], 'reverse')) {
                     $data[$optionKey] = $conversions[$optionKey]->reverse($value);
                 } else {
                     $data[$optionKey] = $value;
                 }
             }
         }
     }
     if (!empty($allow)) {
         $data['allow'] = $allow;
     }
     if (!empty($show)) {
         $data['show'] = $show;
     }
     $fieldReferences = array();
     foreach (array('sort_default_field', 'popup_fields') as $key) {
         if (isset($data[$key])) {
             $fieldReferences[$key] = $data[$key];
             unset($data[$key]);
         }
     }
     $reference = $writer->addObject('tracker', $trackerId, $data);
     $fields = $trklib->list_tracker_fields($trackerId);
     foreach ($fields['data'] as $field) {
         $writer->pushReference("{$reference}_{$field['permName']}");
         Tiki_Profile_InstallHandler_TrackerField::export($writer, $field);
     }
     foreach (array_filter($fieldReferences) as $key => $value) {
         $value = preg_replace_callback('/(\\d+)/', function ($match) use($writer) {
             return $writer->getReference('tracker_field', $match[1]);
         }, $value);
         $writer->pushReference("{$reference}_{$key}");
         $writer->addObject('tracker_option', "{$key}-{$trackerId}", array('tracker' => $writer->getReference('tracker', $trackerId), 'name' => $key, 'value' => $value));
     }
     return true;
 }
Beispiel #8
0
 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;
 }
Beispiel #9
0
 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;
 }
Beispiel #10
0
 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;
 }
Beispiel #11
0
 public static function export(Tiki_Profile_Writer $writer, $menuId)
 {
     $menulib = TikiLib::lib('menu');
     $menu = $menulib->get_menu($menuId);
     if (!$menu) {
         return false;
     }
     $options = $menulib->list_menu_options($menuId, 0, -1, 'position_asc', '', true, 0, true);
     $menu['items'] = array_map(function ($entry) use($writer) {
         unset($entry['menuId']);
         unset($entry['optionId']);
         if ($entry['perm']) {
             $entry['permissions'] = array($entry['perm']);
         }
         return $entry;
     }, $options['data']);
     $writer->addObject('menu', $menuId, $menu);
     return true;
 }