Changeset 10511 for trunk/include
- Timestamp:
- Apr 20, 2011, 4:52:52 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/ws_functions.inc.php
r10454 r10511 2736 2736 return false; 2737 2737 } 2738 2739 function ws_extensions_update($params, &$service) 2740 { 2741 if (!is_webmaster()) 2742 { 2743 return new PwgError(401, l10n('Webmaster status is required.')); 2744 } 2745 2746 if (empty($params['pwg_token']) or get_pwg_token() != $params['pwg_token']) 2747 { 2748 return new PwgError(403, 'Invalid security token'); 2749 } 2750 2751 if (empty($params['type']) or !in_array($params['type'], array('plugins', 'themes', 'languages'))) 2752 { 2753 return new PwgError(403, "invalid extension type"); 2754 } 2755 2756 if (empty($params['id']) or empty($params['revision'])) 2757 { 2758 return new PwgError(null, 'Wrong parameters'); 2759 } 2760 2761 include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); 2762 include_once(PHPWG_ROOT_PATH.'admin/include/'.$params['type'].'.class.php'); 2763 2764 $type = $params['type']; 2765 $extension_id = $params['id']; 2766 $revision = $params['revision']; 2767 2768 $extension = new $type(); 2769 2770 if ($type == 'plugins') 2771 { 2772 if (isset($extension->db_plugins_by_id[$extension_id]) and $extension->db_plugins_by_id[$extension_id]['state'] == 'active') 2773 { 2774 $extension->perform_action('deactivate', $extension_id); 2775 2776 redirect(PHPWG_ROOT_PATH 2777 . 'ws.php' 2778 . '?method=pwg.extensions.update' 2779 . '&type=plugins' 2780 . '&id=' . $extension_id 2781 . '&revision=' . $revision 2782 . '&reactivate=true' 2783 . '&pwg_token=' . get_pwg_token() 2784 . '&format=json' 2785 ); 2786 } 2787 2788 $upgrade_status = $extension->extract_plugin_files('upgrade', $revision, $extension_id); 2789 $extension_name = $extension->fs_plugins[$extension_id]['name']; 2790 2791 if (isset($params['reactivate'])) 2792 { 2793 $extension->perform_action('activate', $extension_id); 2794 } 2795 } 2796 elseif ($type == 'themes') 2797 { 2798 $upgrade_status = $extension->extract_theme_files('upgrade', $revision, $extension_id); 2799 $extension_name = $extension->fs_themes[$extension_id]['name']; 2800 } 2801 elseif ($type == 'languages') 2802 { 2803 $upgrade_status = $extension->extract_language_files('upgrade', $revision, $extension_id); 2804 $extension_name = $extension->fs_languages[$extension_id]['name']; 2805 } 2806 2807 global $template; 2808 $template->delete_compiled_templates(); 2809 2810 switch ($upgrade_status) 2811 { 2812 case 'ok': 2813 return sprintf(l10n('%s has been successfully updated.'), $extension_name); 2814 2815 case 'temp_path_error': 2816 return new PwgError(null, l10n('Can\'t create temporary file.')); 2817 2818 case 'dl_archive_error': 2819 return new PwgError(null, l10n('Can\'t download archive.')); 2820 2821 case 'archive_error': 2822 return new PwgError(null, l10n('Can\'t read or extract archive.')); 2823 2824 default: 2825 return new PwgError(null, sprintf(l10n('An error occured during extraction (%s).'), $upgrade_status)); 2826 } 2827 } 2828 2829 function ws_extensions_ignoreupdate($params, &$service) 2830 { 2831 global $conf; 2832 2833 define('IN_ADMIN', true); 2834 include_once(PHPWG_ROOT_PATH.'admin/include/functions.php'); 2835 2836 if (!is_webmaster()) 2837 { 2838 return new PwgError(401, 'Access denied'); 2839 } 2840 2841 if (empty($params['pwg_token']) or get_pwg_token() != $params['pwg_token']) 2842 { 2843 return new PwgError(403, 'Invalid security token'); 2844 } 2845 2846 $conf['updates_ignored'] = unserialize($conf['updates_ignored']); 2847 2848 if ($params['reset']) 2849 { 2850 $conf['updates_ignored'] = array( 2851 'plugins'=>array(), 2852 'themes'=>array(), 2853 'languages'=>array() 2854 ); 2855 conf_update_param('updates_ignored', pwg_db_real_escape_string(serialize($conf['updates_ignored']))); 2856 unset($_SESSION['extensions_need_update']); 2857 return true; 2858 } 2859 2860 if (empty($params['id']) or empty($params['type']) or !in_array($params['type'], array('plugins', 'themes', 'languages'))) 2861 { 2862 return new PwgError(403, 'Invalid parameters'); 2863 } 2864 2865 // Add or remove extension from ignore list 2866 if (!in_array($params['id'], $conf['updates_ignored'][$params['type']])) 2867 { 2868 array_push($conf['updates_ignored'][$params['type']], $params['id']); 2869 } 2870 conf_update_param('updates_ignored', pwg_db_real_escape_string(serialize($conf['updates_ignored']))); 2871 unset($_SESSION['extensions_need_update']); 2872 return true; 2873 } 2738 2874 ?>
Note: See TracChangeset
for help on using the changeset viewer.