Esempio n. 1
0
 function getFeed($feedID, $force = FALSE)
 {
     global $tp, $e107, $sql, $eArrayStorage, $admin_log;
     $this->readFeedList();
     // Make sure we've got the feed data.
     if (!isset($this->feedList[$feedID])) {
         if (NEWSFEED_DEBUG) {
             echo "Invalid feed number: {$feedID}<br />";
         }
         return FALSE;
     }
     if ($force || !isset($this->newsList[$feedID]['newsfeed_data']) || !$this->newsList[$feedID]['newsfeed_data']) {
         // No data already in memory
         if ($force || !($this->newsList[$feedID]['newsfeed_data'] = $e107->ecache->retrieve(NEWSFEED_NEWS_CACHE_TAG . $feedID, $this->feedList[$feedID]['newsfeed_updateint'] / 60))) {
             // Need to re-read from source - either no cached data yet, or cache expired
             if (NEWSFEED_DEBUG) {
                 $admin_log->e_log_event(10, debug_backtrace(), "DEBUG", "Newsfeed update", "Refresh item: " . $feedID, FALSE, LOG_TO_ROLLING);
             }
             require_once e_HANDLER . 'xml_class.php';
             $xml = new xmlClass();
             require_once e_HANDLER . 'magpie_rss.php';
             $dbData = array();
             // In case we need to update DB
             if ($rawData = $xml->getRemoteFile($this->feedList[$feedID]['newsfeed_url'])) {
                 // Need to update feed
                 $rss = new MagpieRSS($rawData);
                 list($newsfeed_image, $newsfeed_showmenu, $newsfeed_showmain) = explode("::", $this->feedList[$feedID]['newsfeed_image']);
                 $temp['channel'] = $rss->channel;
                 if ($newsfeed_showmenu == 0 || $newsfeed_showmain == 0) {
                     $temp['items'] = $rss->items;
                     // Unlimited items
                 } else {
                     $temp['items'] = array_slice($rss->items, 0, max($newsfeed_showmenu, $newsfeed_showmain));
                     // Limited items
                 }
                 $newsfeed_des = FALSE;
                 if ($this->feedList[$feedID]['newsfeed_description'] == 'default') {
                     $temp['newsfeed_description'] = 'default';
                     // This prevents db writes if no better data found
                     if ($rss->channel['description']) {
                         $newsfeed_des = $tp->toDB($rss->channel['description']);
                         $temp['newsfeed_description'] = $newsfeed_des;
                     } else {
                         if ($rss->channel['tagline']) {
                             $newsfeed_des = $tp->toDB($rss->channel['tagline']);
                             $temp['newsfeed_description'] = $newsfeed_des;
                         }
                     }
                     if ($temp['newsfeed_description'] != $this->feedList[$feedID]['newsfeed_description']) {
                         // Need to write updated feed name to DB
                         $this->feedList[$feedID]['newsfeed_description'] = $temp['newsfeed_description'];
                         $dbData['newsfeed_description'] = $temp['newsfeed_description'];
                         if ($this->useCache) {
                             $e107->ecache->clear(NEWSFEED_LIST_CACHE_TAG);
                             // Clear the newsfeed cache so its re-read next time
                         }
                     }
                 }
                 if ($newsfeed_image == 'default') {
                     $temp['newsfeed_image_link'] = "<a href='" . $rss->image['link'] . "' rel='external'><img src='" . $rss->image['url'] . "' alt='" . $rss->image['title'] . "' style='vertical-align: middle;' /></a>";
                 } else {
                     $temp['newsfeed_image_link'] = "<img src='" . $this->feedList[$feedID]['newsfeed_image'] . "' alt='' />";
                 }
                 $serializedArray = $eArrayStorage->WriteArray($temp, FALSE);
                 $now = time();
                 $this->newsList[$feedID]['newsfeed_data'] = $serializedArray;
                 $this->newsList[$feedID]['newsfeed_timestamp'] = $now;
                 if ($this->useCache) {
                     $e107->ecache->set(NEWSFEED_NEWS_CACHE_TAG . $feedID, $serializedArray);
                 } else {
                     $dbData['newsfeed_data'] = addslashes($serializedArray);
                     $dbData['newsfeed_timestamp'] = $now;
                 }
                 if (count($dbData)) {
                     // Only write the feed data to DB if not using cache. Write description if changed
                     if (FALSE === $sql->db_UpdateArray('newsfeed', $dbData, " WHERE newsfeed_id=" . $feedID)) {
                         if (NEWSFEED_DEBUG) {
                             echo NFLAN_48 . "<br /><br />" . var_dump($dbData);
                         }
                     }
                 }
                 unset($rss);
             } else {
                 if (NEWSFEED_DEBUG) {
                     echo $xml->error;
                 }
                 return FALSE;
             }
         }
     }
     return $eArrayStorage->ReadArray($this->newsList[$feedID]['newsfeed_data']);
 }
Esempio n. 2
0
/**
 *
 */
function show_upload_filetypes()
{
    $ns = e107::getRender();
    $e_userclass = e107::getUserClass();
    if (!getperms("0")) {
        exit;
    }
    //TODO still needed?
    $definition_source = DOWLAN_71;
    $source_file = '';
    $edit_upload_list = varset($_POST['upload_do_edit'], false);
    if (isset($_POST['generate_filetypes_xml'])) {
        // Write back edited data to filetypes_.xml
        $file_text = "<e107Filetypes>\n";
        foreach ($_POST['file_class_select'] as $k => $c) {
            if (!isset($_POST['file_line_delete_' . $c]) && vartrue($_POST['file_type_list'][$k])) {
                $file_text .= "   <class name='{$c}' type='{$_POST['file_type_list'][$k]}' maxupload='" . vartrue($_POST['file_maxupload'][$k], ini_get('upload_max_filesize')) . "'/>\n";
            }
        }
        $file_text .= "</e107Filetypes>";
        if (($handle = fopen(e_UPLOAD_TEMP_DIR . e_SAVE_FILETYPES, 'wt')) == FALSE || fwrite($handle, $file_text) == FALSE || fclose($handle) == FALSE) {
            $text = DOWLAN_88 . e_UPLOAD_TEMP_DIR . e_SAVE_FILETYPES;
        } else {
            $text = DOWLAN_86 . e_UPLOAD_TEMP_DIR . e_SAVE_FILETYPES . '<br/>' . DOWLAN_87 . e_ADMIN . e_READ_FILETYPES . '<br/>';
        }
        $ns->tablerender(DOWLAN_49, $text);
    }
    $current_perms = array();
    if ($edit_upload_list && is_readable(e_UPLOAD_TEMP_DIR . e_SAVE_FILETYPES) || !$edit_upload_list && is_readable(e_ADMIN . e_READ_FILETYPES)) {
        require_once e_HANDLER . 'xml_class.php';
        $xml = new xmlClass();
        $xml->setOptArrayTags('class');
        $source_file = $edit_upload_list ? e_UPLOAD_TEMP_DIR . e_SAVE_FILETYPES : e_ADMIN . e_READ_FILETYPES;
        $temp_vars = $xml->loadXMLfile($source_file, true, false);
        if ($temp_vars === FALSE) {
            echo "Error parsing XML file!";
        } else {
            foreach ($temp_vars['class'] as $v1) {
                $v = $v1['@attributes'];
                $current_perms[$v['name']] = array('type' => $v['type'], 'maxupload' => $v['maxupload']);
            }
        }
    } elseif (is_readable(e_ADMIN . 'filetypes.php')) {
        $source_file = 'filetypes.php';
        $current_perms[e_UC_MEMBER] = array('type' => implode(',', array_keys(get_allowed_filetypes('filetypes.php', ''))), 'maxupload' => '2M');
        if (is_readable(e_ADMIN . 'admin_filetypes.php')) {
            $current_perms[e_UC_ADMIN] = array('type' => implode(',', array_keys(get_allowed_filetypes('admin_filetypes.php', ''))), 'maxupload' => '2M');
            $source_file .= ' + admin_filetypes.php';
        }
    } else {
        // Set a default
        $current_perms[e_UC_MEMBER] = array('type' => 'zip,tar,gz,jpg,png', 'maxupload' => '2M');
    }
    $frm = new e_form(true);
    //enable inner tabindex counter
    $columnInfo = array("ftypes_userclass" => array("title" => DOWLAN_73, "type" => "", "width" => "auto", "thclass" => "", "forced" => true), "ftypes_extension" => array("title" => DOWLAN_74, "type" => "", "width" => "auto", "thclass" => ""), "ftypes_max_size" => array("title" => DOWLAN_75, "type" => "", "width" => "auto", "thclass" => ""), "ftypes_confirm_del" => array("title" => DOWLAN_76, "type" => "", "width" => "auto", "thclass" => "last"));
    $filterColumns = array("ftypes_userclass", "ftypes_extension", "ftypes_max_size", "ftypes_confirm_del");
    $text = "\n         <form method='post' action='" . e_SELF . "?filetypes'>\n            <fieldset id='core-download-upload1'>\n               <div>\n                  <div>\n                     <input type='hidden' name='upload_do_edit' value='1'/><p>" . str_replace(array('--SOURCE--', '--DEST--'), array(e_UPLOAD_TEMP_DIR . e_SAVE_FILETYPES, e_ADMIN . e_READ_FILETYPES), DOWLAN_85) . "</p><p>" . DOWLAN_72 . $source_file . "\n                  </p></div>\n                  <table class='table adminform'>" . $frm->colGroup($columnInfo) . $frm->thead($columnInfo, $filterColumns) . "\n                     <tbody>\n      ";
    foreach ($current_perms as $uclass => $uinfo) {
        $text .= "\n            <tr>\n               <td>\n                  <select name='file_class_select[]' class='tbox'>\n                     " . $e_userclass->vetted_tree('file_class_select', array($e_userclass, 'select'), $uclass, 'member,main,classes,admin, no-excludes') . "\n                  </select>\n               </td>\n               <td><input type='text' name='file_type_list[]' value='{$uinfo['type']}' class='tbox' size='40'/></td>\n               <td><input type='text' name='file_maxupload[]' value='{$uinfo['maxupload']}' class='tbox' size='10'/></td>\n               <td><input type='checkbox' value='1' name='file_line_delete_{$uclass}'/></td>\n            </tr>\n         ";
    }
    // Now put up a box to add a new setting
    $text .= "\n                        <tr>\n                           <td colspan='" . count($columnInfo) . "'>" . DOWLAN_90 . "</td>\n                        </tr>\n                        <tr>\n                           <td><select name='file_class_select[]' class='tbox'>\n                           " . $e_userclass->vetted_tree('file_class_select', array($e_userclass, 'select'), '', 'member,main,classes,admin,blank, no-excludes') . "\n                           </select></td>\n                           <td><input type='text' name='file_type_list[]' value='' class='tbox' size='40'/></td>\n                           <td colspan='2'><input type='text' name='file_maxupload[]' value='" . ini_get('upload_max_filesize') . "' class='tbox' size='10'/></td>\n                        </tr>\n                     </tbody>\n                  </table>\n               </div>\n            </fieldset>\n            <div class='buttons-bar center'>\n               <input class='btn btn-default button' type='submit' name='generate_filetypes_xml' value='" . DOWLAN_77 . "'/>\n               </div>\n        \t\t</form>\n      ";
    $ns->tablerender(DOWLAN_23, $text);
}
Esempio n. 3
0
 /**
  *	@todo - $plugin_path is undefined - needs to be obtained from somewhere
  */
 function get_plugin_data($plugid)
 {
     if (($tmp = getcachedvars('loginbox_eplug_data_' . $plugid)) !== FALSE) {
         return $tmp;
     }
     $ret = array();
     if (is_readable(e_PLUGIN . $plugin_path . '/plugin.xml')) {
         require_once e_HANDLER . 'xml_class.php';
         $xml = new xmlClass();
         $xml->filter = array('name' => FALSE, 'version' => FALSE);
         // Just want a couple of variables
         $readFile = $xml->loadXMLfile(e_PLUGIN . $plugin_path . '/plugin.xml', true, true);
         $ret['eplug_name'] = defined($readFile['name']) ? constant($readFile['name']) : $readFile['name'];
         $ret['eplug_version'] = $readFile['version'];
     } elseif (is_readable(e_PLUGIN . $plugid . '/plugin.php')) {
         include e_PLUGIN . $plugid . '/plugin.php';
         $ret['eplug_name'] = defined($eplug_name) ? constant($eplug_name) : $eplug_name;
         $ret['eplug_version'] = $eplug_version;
     } else {
         return array();
     }
     // Valid data here
     cachevars('loginbox_eplug_data_' . $plugid, $ret);
     return $ret;
 }