Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
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;
 }
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 4
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;
 }
Ejemplo n.º 5
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;
 }
Ejemplo n.º 6
0
 protected function getProfileWriter(InputInterface $input)
 {
     $ini = parse_ini_file('profiles/info.ini');
     $activeProfile = $ini['profile.name'];
     $writer = new \Tiki_Profile_Writer("profiles", $activeProfile);
     if ($this->initialized && ($ref = $input->getOption('reference'))) {
         $writer->pushReference($ref);
     }
     return $writer;
 }
Ejemplo n.º 7
0
 function filterIncluded(Tiki_Profile_Writer $writer)
 {
     array_walk($this->entries, function (&$entry) use($writer) {
         $timestamp = $writer->getInclusionTimestamp($entry['type'], $entry['object']);
         $entry['stored'] = $timestamp;
         $entry['status'] = $timestamp ? 'MODIFIED' : 'NEW';
     });
     $this->entries = array_filter($this->entries, function ($entry) use($writer) {
         return $entry['timestamp'] > $entry['stored'];
     });
 }
Ejemplo n.º 8
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;
 }
Ejemplo n.º 9
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;
 }
Ejemplo n.º 10
0
Archivo: Rss.php Proyecto: rjsmelo/tiki
 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;
 }
Ejemplo n.º 11
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;
 }
Ejemplo n.º 12
0
 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;
 }
Ejemplo n.º 13
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;
 }
Ejemplo n.º 14
0
 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;
 }
Ejemplo n.º 15
0
 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();
 }
Ejemplo n.º 16
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;
 }
Ejemplo n.º 17
0
 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);
 }
Ejemplo n.º 18
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;
 }
Ejemplo n.º 19
0
 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);
 }
Ejemplo n.º 20
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;
 }