Exemplo n.º 1
0
 function admin_extra()
 {
     global $langmessage, $dataDir;
     $this->folder = $dataDir . '/data/_extra';
     $this->areas = gpFiles::ReadDir($this->folder);
     asort($this->areas);
     $cmd = common::GetCommand();
     $show = true;
     switch ($cmd) {
         case 'delete':
             $this->DeleteArea();
             break;
         case 'save':
             if ($this->SaveExtra()) {
                 break;
             }
         case 'edit':
             if ($this->EditExtra()) {
                 $show = false;
             }
             break;
         case 'rawcontent':
             $this->RawContent();
             break;
         case 'inlineedit':
             $this->InlineEdit();
             die;
     }
     if ($show) {
         $this->ShowExtras();
     }
 }
Exemplo n.º 2
0
 /**
  * Check page files for orphaned data files
  *
  */
 function CheckPageFiles()
 {
     global $dataDir, $gp_index;
     $pages_dir = $dataDir . '/data/_pages';
     $all_files = gpFiles::ReadDir($pages_dir, 'php');
     foreach ($all_files as $key => $file) {
         $all_files[$key] = $pages_dir . '/' . $file . '.php';
     }
     $page_files = array();
     foreach ($gp_index as $slug => $index) {
         $page_files[] = gpFiles::PageFile($slug);
     }
     $diff = array_diff($all_files, $page_files);
     if (!count($diff)) {
         return;
     }
     echo '<h2>Orphaned Data Files</h2>';
     echo '<p>The following data files appear to be orphaned and are most likely no longer needed. Before completely removing these files, we recommend backing them up first.</p>';
     echo '<table class="bordered"><tr><th>File</th></tr>';
     foreach ($diff as $file) {
         echo '<tr><td>' . $file . '</td></tr>';
     }
     echo '</table>';
 }
Exemplo n.º 3
0
 function SelectContent_Areas($param, $count_gadgets)
 {
     global $dataDir, $langmessage, $config;
     $slug = 'Admin_Theme_Content/' . rawurlencode($this->curr_layout);
     $addQuery = 'cmd=addcontent&where=' . rawurlencode($param);
     echo '<div id="area_lists">';
     //extra content
     echo '<div id="layout_extra_content">';
     echo '<table class="bordered">';
     echo '<tr><th colspan="2">&nbsp;</th></tr>';
     $extrasFolder = $dataDir . '/data/_extra';
     $files = gpFiles::ReadDir($extrasFolder);
     asort($files);
     foreach ($files as $file) {
         $extraName = $file;
         echo '<tr><td>';
         echo str_replace('_', ' ', $extraName);
         echo '</td><td class="add">';
         echo common::Link($slug, $langmessage['add'], $addQuery . '&insert=Extra:' . $extraName, array('data-cmd' => 'creq'));
         echo '</td></tr>';
     }
     //new extra area
     echo '<tr><td>';
     echo '<form action="' . common::GetUrl($slug) . '" method="post">';
     echo '<input type="hidden" name="cmd" value="addcontent" />';
     echo '<input type="hidden" name="addtype" value="new_extra" />';
     echo '<input type="hidden" name="where" value="' . htmlspecialchars($param) . '" />';
     echo '<input type="text" name="extra_area" value="" size="15" class="gpinput"/>';
     includeFile('tool/SectionContent.php');
     $types = section_content::GetTypes();
     echo '<select name="type" class="gpselect">';
     foreach ($types as $type => $info) {
         echo '<option value="' . $type . '">' . $info['label'] . '</option>';
     }
     echo '</select> ';
     echo ' <input type="submit" name="" value="' . $langmessage['Add New Area'] . '" class="gpbutton"/>';
     echo '</form>';
     echo '</td><td colspan="2" class="add">';
     echo '<form action="' . common::GetUrl($slug) . '" method="post">';
     echo ' <input type="submit" name="cmd" value="' . $langmessage['cancel'] . '" class="admin_box_close gpcancel" />';
     echo '</form>';
     echo '</td></tr>';
     echo '</table>';
     echo '</div>';
     //gadgets
     if ($count_gadgets > 0) {
         echo '<div id="layout_gadgets" class="nodisplay">';
         echo '<table class="bordered">';
         echo '<tr><th colspan="2">&nbsp;</th></tr>';
         foreach ($config['gadgets'] as $gadget => $info) {
             echo '<tr>';
             echo '<td>';
             echo str_replace('_', ' ', $gadget);
             echo '</td>';
             echo '<td class="add">';
             echo common::Link($slug, $langmessage['add'], $addQuery . '&insert=' . $gadget, array('data-cmd' => 'creq'));
             echo '</td>';
             echo '</tr>';
         }
         echo '<tr><td colspan="2" class="add">';
         echo ' <input type="submit" name="cmd" value="' . $langmessage['cancel'] . '" class="admin_box_close gpcancel" />';
         echo '</td></tr>';
         echo '</table>';
         echo '</div>';
     }
     //menus
     echo '<div id="layout_menus" class="nodisplay">';
     echo '<form action="' . common::GetUrl($slug) . '" method="post">';
     echo '<input type="hidden" name="cmd" value="addcontent" />';
     echo '<input type="hidden" name="addtype" value="preset_menu" />';
     echo '<input type="hidden" name="where" value="' . htmlspecialchars($param) . '" />';
     echo '<table class="bordered">';
     $this->PresetMenuForm();
     echo '<tr><td colspan="2" class="add">';
     echo '<input type="submit" name="" value="' . $langmessage['Add New Menu'] . '" class="gpsubmit" />';
     echo ' <input type="submit" name="cmd" value="' . $langmessage['cancel'] . '" class="admin_box_close gpcancel" />';
     echo '</td></tr>';
     echo '</table>';
     echo '</form>';
     echo '</div>';
     echo '<div id="layout_custom" class="nodisplay">';
     //custom area
     echo '<form action="' . common::GetUrl($slug) . '" method="post">';
     echo '<input type="hidden" name="cmd" value="addcontent" />';
     echo '<input type="hidden" name="addtype" value="custom_menu" />';
     echo '<input type="hidden" name="where" value="' . htmlspecialchars($param) . '" />';
     $this->CustomMenuForm();
     echo '<tr><td colspan="2" class="add">';
     echo '<input type="submit" name="" value="' . $langmessage['Add New Menu'] . '" class="gpsubmit" />';
     echo ' <input type="submit" name="cmd" value="' . $langmessage['cancel'] . '" class="admin_box_close gpcancel" />';
     echo '</td></tr>';
     echo '</table>';
     echo '</form>';
     echo '</div>';
     echo '</div>';
 }
Exemplo n.º 4
0
 function GetAvailAddons()
 {
     global $dataDir;
     $addonPath = $dataDir . '/addons';
     if (!file_exists($addonPath)) {
         message('Warning: The /addons folder "<em>' . $addonPath . '</em>" does not exist on your server.');
         return array();
     }
     $folders = gpFiles::ReadDir($addonPath, 1);
     $avail = array();
     foreach ($folders as $key => $value) {
         $fullPath = $addonPath . '/' . $key;
         $info = $this->GetAvailInstall($fullPath);
         if (!$info) {
             continue;
         }
         $info['upgrade_key'] = $this->UpgradePath($info);
         $avail[$key] = $info;
     }
     return $avail;
 }
Exemplo n.º 5
0
 function SetExported()
 {
     $this->exported = gpFiles::ReadDir($this->export_dir, $this->all_extenstions);
     arsort($this->exported);
 }
Exemplo n.º 6
0
 /**
  * Remove a file or directory and it's contents
  *
  */
 public static function RmAll($path)
 {
     if (empty($path)) {
         return false;
     }
     if (is_link($path)) {
         return @unlink($path);
     }
     if (!is_dir($path)) {
         return @unlink($path);
     }
     $success = true;
     $subDirs = array();
     //$files = scandir($path);
     $files = gpFiles::ReadDir($path, false);
     foreach ($files as $file) {
         $full_path = $path . '/' . $file;
         if (!is_link($full_path) && is_dir($full_path)) {
             $subDirs[] = $full_path;
             continue;
         }
         if (!@unlink($full_path)) {
             $success = false;
         }
     }
     foreach ($subDirs as $subDir) {
         if (!gpFiles::RmAll($subDir)) {
             $success = false;
         }
     }
     if ($success) {
         return gpFiles::RmDir($path);
     }
     return false;
 }
Exemplo n.º 7
0
 /**
  * Get a list of available addons
  *
  */
 function GetAvailAddons()
 {
     global $dataDir;
     $addonPath = $dataDir . '/addons';
     if (!file_exists($addonPath)) {
         message('Warning: The /addons folder "<em>' . $addonPath . '</em>" does not exist on your server.');
         return array();
     }
     $installed_path = $dataDir . '/data/_addoncode';
     $folders = gpFiles::ReadDir($addonPath, 1);
     $versions = array();
     $avail = array();
     foreach ($folders as $value) {
         $fullPath = $addonPath . '/' . $value;
         $info = $this->GetAvailInstall($fullPath);
         if (!$info) {
             continue;
         }
         $info['upgrade_key'] = admin_addons_tool::UpgradePath($info);
         $avail[$value] = $info;
         if (isset($info['Addon_Version']) && isset($info['Addon_Unique_ID'])) {
             $id = $info['Addon_Unique_ID'];
             $version = $info['Addon_Version'];
             if (!isset($versions[$id])) {
                 $versions[$id] = $version;
                 continue;
             }
             if (version_compare($versions[$id], $version, '<')) {
                 $versions[$id] = $version;
             }
         }
     }
     if (!gp_unique_addons) {
         return $avail;
     }
     //show only the most recent versions
     $temp = array();
     foreach ($avail as $key => $info) {
         if (!isset($info['Addon_Version']) || !isset($info['Addon_Unique_ID'])) {
             $temp[$key] = $info;
             continue;
         }
         $id = $info['Addon_Unique_ID'];
         $version = $info['Addon_Version'];
         if (version_compare($versions[$id], $version, '>')) {
             continue;
         }
         $temp[$key] = $info;
     }
     return $temp;
 }
Exemplo n.º 8
0
 function Getdata()
 {
     $this->areas = gpFiles::ReadDir($this->folder);
     asort($this->areas);
 }
Exemplo n.º 9
0
 /**
  * Clean old files and folders from the temporary folder
  * Delete after 36 hours (129600 seconds)
  *
  */
 function CleanTemp()
 {
     global $dataDir;
     $temp_folder = $dataDir . '/data/_temp';
     $files = gpFiles::ReadDir($temp_folder, false);
     foreach ($files as $file) {
         if ($file == 'index.html') {
             continue;
         }
         $full_path = $temp_folder . '/' . $file;
         $mtime = (int) filemtime($full_path);
         $diff = time() - $mtime;
         if ($diff < 129600) {
             continue;
         }
         gpFiles::RmAll($full_path);
     }
 }
Exemplo n.º 10
0
 function ScheduledTasks($status)
 {
     global $dataDir;
     switch ($status) {
         case 'embedcheck':
         case 'checkincompat':
             //these will continue
             break;
         case 'checklater':
         default:
             return;
     }
     //clean cache
     //delete files older than 2 weeks, they will be regenerated if needed
     $cache_dir = $dataDir . '/data/_cache';
     $cache_files = gpFiles::ReadDir($cache_dir, 'css');
     $time = time();
     foreach ($cache_files as $file) {
         $full_path = $cache_dir . '/' . $file . '.css';
         if ($time - filemtime($full_path) > 1209600) {
             @unlink($full_path);
         }
     }
 }
Exemplo n.º 11
0
 function GenerateTrashIndex()
 {
     global $dataDir;
     $trash_dir = $dataDir . '/data/_trash';
     $trash_files = gpFiles::ReadDir($trash_dir);
     natcasesort($trash_files);
     $trash_titles = array();
     foreach ($trash_files as $file) {
         $trash_titles[$file] = array();
         $trash_titles[$file]['label'] = admin_tools::LabelToSlug($file);
         $trash_titles[$file]['time'] = time();
     }
     admin_trash::SaveTrashTitles($trash_titles);
     return $trash_titles;
 }
Exemplo n.º 12
0
 /**
  * Get a list of available addons
  *
  */
 function GetAvailAddons()
 {
     global $dataDir;
     $addonPath = $dataDir . '/addons';
     if (!file_exists($addonPath)) {
         message('Warning: The /addons folder "<em>' . $addonPath . '</em>" does not exist on your server.');
         return array();
     }
     $installed_path = $dataDir . '/data/_addoncode';
     $folders = gpFiles::ReadDir($addonPath, 1);
     $versions = array();
     $avail = array();
     foreach ($folders as $value) {
         $fullPath = $addonPath . '/' . $value;
         $info = $this->GetAvailInstall($fullPath);
         if (!$info) {
             continue;
         }
         $info['upgrade_key'] = admin_addons_tool::UpgradePath($info);
         $avail[$value] = $info;
         if (isset($info['Addon_Version']) && isset($info['Addon_Unique_ID'])) {
             $id = $info['Addon_Unique_ID'];
             if (!isset($versions[$id])) {
                 $versions[$id] = $info['Addon_Version'];
             } elseif (version_compare($versions[$id], $info['Addon_Version'], '<')) {
                 $versions[$id] = $info['Addon_Version'];
                 continue;
             }
         }
         if (!$info['upgrade_key']) {
             $this->avail_count++;
         }
     }
     if (gp_unique_addons) {
         $avail = self::FilterUnique($avail, $versions);
     }
     return $avail;
 }