function getFileSelectionHTML($root) { // Import usefull JoomlaPack classes jpimport('classes.filter.sff'); jpimport('helpers.lang'); jpimport('classes.core.utility.filtermanager'); // Cleanup the root folder we were passed $root = realpath($root); // Get some translation strings $lang_dir = JoomlapackLangManager::_('SFF_DIR'); $lang_excluded = JoomlapackLangManager::_('SFF_EXCLUDE'); $lang_file = JoomlapackLangManager::_('SFF_FILE'); // Scan folder for files $sff = new JoomlapackFilterSFF(); $scanResult = $sff->getDirectory($root); // Get the directories filters; we're not going to allow the user to enter excluded folders :) $filterManager = new JoomlapackFilterManager(); $filterManager->init(); // Produce the output $out = <<<END \t\t\t<h4>{$root}</h4> \t\t\t<table border="0" cellspacing="10"> \t\t\t\t<tr> \t\t\t\t\t<td valign="top"> \t\t\t\t\t\t<!-- Directory Selection --> \t\t\t\t\t\t<table class="adminlist"> \t\t\t\t\t\t\t<thead> \t\t\t\t\t\t\t\t<tr> \t\t\t\t\t\t\t\t\t<th>{$lang_dir}</th> \t\t\t\t\t\t\t\t</tr> \t\t\t\t\t\t\t</thead> \t\t\t\t\t\t\t<tbody> END; $dirFilters = $filterManager->getFilters('folder'); foreach ($scanResult['folders'] as $folder) { if (is_array($dirFilters)) { $wholefolder = JoomlapackAbstraction::TranslateWinPath($root . DIRECTORY_SEPARATOR . $folder); $showLink = !in_array($wholefolder, $dirFilters); } else { $showLink = true; } $out .= "\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td>\n"; if ($showLink) { $out .= "<a href=\"javascript:dirSelectionHTML('" . JoomlapackAbstraction::TranslateWinPath($root . DIRECTORY_SEPARATOR . $folder) . "');\">" . htmlentities($folder) . "</a>"; } else { $out .= htmlentities($folder); } $out .= "\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t</tr>\n"; } $out .= <<<END \t\t\t\t\t\t\t</tbody> \t\t\t\t\t\t</table> \t\t\t\t\t</td> \t\t\t\t\t<td valign="top"> \t\t\t\t\t\t<!-- File Selection --> \t\t\t\t\t\t<table class="adminlist"> \t\t\t\t\t\t\t<thead> \t\t\t\t\t\t\t\t<tr> \t\t\t\t\t\t\t\t\t<th>{$lang_excluded}</th> \t\t\t\t\t\t\t\t\t<th>{$lang_file}</th> \t\t\t\t\t\t\t\t</tr> \t\t\t\t\t\t\t</thead> \t\t\t\t\t\t\t<tbody> END; $id = 0; foreach ($scanResult['files'] as $file => $excluded) { $id++; $checked = $excluded ? " checked = \"true\" " : ""; $out .= "\n<tr><td align=\"center\">"; $out .= "<input type=\"checkbox\" {$checked} onclick=\"ToggleFilter('" . JoomlapackAbstraction::TranslateWinPath($root) . "', '{$file}','sff-{$id}');\" id=\"sff-{$id}\">"; $out .= "</td><td align=\"left\">"; $out .= htmlentities($file); $out .= "</td></tr>"; } $out .= <<<END \t\t\t\t\t\t\t</tbody> \t\t\t\t\t\t</table> \t\t\t\t\t</td> \t\t\t\t</tr> \t\t\t</table> END; return $out; }
/** * Loads the exclusion filters off the db and caches them inside the object */ function _loadAndCacheFilters() { jpimport('classes.core.utility.filtermanager'); JoomlapackLogger::WriteLog(_JP_LOG_DEBUG, "JoomlapackDomainPack :: Initializing filter manager"); $filterManager = new JoomlapackFilterManager(); $filterManager->init(); JoomlapackLogger::WriteLog(_JP_LOG_DEBUG, "JoomlapackDomainPack :: Getting DEF"); $this->_ExcludeDirs = $filterManager->getFilters('folder'); JoomlapackLogger::WriteLog(_JP_LOG_DEBUG, "JoomlapackDomainPack :: Getting SFF"); $this->_ExcludeFiles = $filterManager->getFilters('singlefile'); JoomlapackLogger::WriteLog(_JP_LOG_DEBUG, "JoomlapackDomainPack :: Done with filter manager"); unset($filterManager); }