$rowarray[] = $onerow; $rowclass == "row1" ? $rowclass = "row2" : ($rowclass = "row1"); } $this->smarty->assign('items', $rowarray); $this->smarty->assign('itemcount', count($rowarray)); $this->smarty->assign('prompt_themename', $this->Lang('prompt_themename')); $this->smarty->assign('input_themename', $this->CreateInputText($id, 'input_themename', '', 20, 20)); $this->smarty->assign('info_themename', $this->Lang('info_themename')); $this->smarty->assign('submit', $this->CreateInputSubmit($id, 'submit', $this->Lang('export'))); $this->smarty->assign('endform', $this->CreateFormEnd()); echo $this->ProcessTemplate('export.tpl'); echo $this->EndTab(); } // the import tab if ($this->CheckPermission('Add Stylesheets') && $this->CheckPermission('Add Templates') && $this->CheckPermission('Add Stylesheet Assoc')) { echo $this->StartTab('import'); if (FALSE == can_admin_upload()) { echo '<div class="pageerrorcontainer"><div class="pageoverflow"><p class="pageerror">' . $this->Lang('error_uploadpermissions') . '</p></div></div>'; return; } else { $this->smarty->assign('startform', $this->CreateFormStart($id, 'importtheme', $returnid, 'post', 'multipart/form-data')); $this->smarty->assign('prompt_browse', $this->Lang('upload')); $this->smarty->assign('input_browse', $this->CreateFileUploadInput($id, 'input_browse', '', 30)); $this->smarty->assign('submit', $this->CreateInputSubmit($id, 'submit', $this->Lang('import'))); $this->smarty->assign('endform', $this->CreateFormEnd()); echo $this->ProcessTemplate('import.tpl'); } echo $this->EndTab(); } echo "</div>"; // <--strange that one
function _DisplayAdminModulesTab($id, &$params, $returnid) { $caninstall = true; if (FALSE == can_admin_upload()) { echo '<div class="pageerrorcontainer"><div class="pageoverflow"><p class="pageerror">' . $this->Lang('error_permissions') . '</p></div></div>'; $caninstall = false; } $curletter = 'A'; if (isset($params['curletter'])) { $curletter = $params['curletter']; $_SESSION['mm_curletter'] = $curletter; } else { if (isset($_SESSION['mm_curletter'])) { $curletter = $_SESSION['mm_curletter']; } } // get the modules available in the repository $repmodules = ''; $newest = $this->GetPreference('onlynewest', 1); $result = $this->_GetRepositoryModules($curletter, $newest); if (!$result[0]) { $this->_DisplayErrorPage($id, $params, $returnid, $result[1]); return; } $repmodules = $result[1]; // get the modules that are already installed $instmodules = ''; $result = $this->_GetInstalledModules(); if (!$result[0]) { $this->_DisplayErrorPage($id, $params, $returnid, $result[1]); return; } $instmodules = $result[1]; // build a letters list $letters = array(); $tmp = explode(',', 'A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z'); foreach ($tmp as $i) { if ($i == $curletter) { $letters[] = "<strong>{$i}</strong>"; } else { $letters[] = $this->CreateLink($id, 'defaultadmin', $returnid, $i, array('curletter' => $i, 'active_tab' => 'modules')); } } // cross reference them $data = array(); if (count($repmodules)) { $data = $this->_BuildModuleData($repmodules, $instmodules); } if (count($data)) { $size = count($data); // check for permissions $moduledir = dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR . "modules"; $writable = is_writable($moduledir); // build the table $rowarray = array(); $rowclass = 'row1'; $newestdisplayed = ""; foreach ($data as $row) { $onerow = new stdClass(); $onerow->name = $row['name']; $onerow->version = $row['version']; $onerow->helplink = $this->CreateLink($id, 'modulehelp', $returnid, $this->Lang('helptxt'), array('name' => $row['name'], 'version' => $row['version'], 'filename' => $row['filename'])); $onerow->dependslink = $this->CreateLink($id, 'moduledepends', $returnid, $this->Lang('dependstxt'), array('name' => $row['name'], 'version' => $row['version'], 'filename' => $row['filename'])); $onerow->aboutlink = $this->CreateLink($id, 'moduleabout', $returnid, $this->Lang('abouttxt'), array('name' => $row['name'], 'version' => $row['version'], 'filename' => $row['filename'])); switch ($row['status']) { case 'incompatible': $onerow->status = $this->Lang('incompatible'); break; case 'uptodate': $onerow->status = $this->Lang('uptodate'); break; case 'newerversion': $onerow->status = $this->Lang('newerversion'); break; case 'notinstalled': $mod = $moduledir . DIRECTORY_SEPARATOR . $row['name']; if (($writable && is_dir($mod) && is_directory_writable($mod) || $writable && !file_exists($mod)) && $caninstall) { $onerow->status = $this->CreateLink($id, 'installmodule', $returnid, $this->Lang('download'), array('name' => $row['name'], 'version' => $row['version'], 'filename' => $row['filename'], 'size' => $row['size'])); } else { $onerow->status = $this->Lang('cantdownload'); } break; case 'upgrade': $mod = $moduledir . DIRECTORY_SEPARATOR . $row['name']; if (($writable && is_dir($mod) && is_directory_writable($mod) || $writable && !file_exists($mod)) && $caninstall) { $onerow->status = $this->CreateLink($id, 'upgrademodule', $returnid, $this->Lang('upgrade'), array('name' => $row['name'], 'version' => $row['version'], 'filename' => $row['filename'], 'size' => $row['size'])); } else { $onerow->status = $this->Lang('cantdownload'); } break; } $onerow->size = (int) ((double) $row['size'] / 1024.0 + 0.5); $onerow->rowclass = $rowclass; if (isset($row['description'])) { $onerow->description = $row['description']; } $rowarray[] = $onerow; $rowclass == "row1" ? $rowclass = "row2" : ($rowclass = "row1"); } // for $this->smarty->assign('items', $rowarray); $this->smarty->assign('itemcount', count($rowarray)); } else { $this->smarty->assign('message', $this->Lang('error_connectnomodules')); } // Setup search form $searchstart = $this->CreateFormStart($id, 'searchmod', $returnid); $searchend = $this->CreateFormEnd(); $searchfield = $this->CreateInputText($id, 'search_input', "Doesn't Work", 30, 100); //todo $searchsubmit = $this->CreateInputSubmit($id, 'submit', 'Search'); // todo -- $this->Lang('search')); $this->smarty->assign('search', $searchstart . $searchfield . $searchsubmit . $searchend); // and display our page $this->smarty->assign('letters', implode(' ', array_values($letters))); $this->smarty->assign('nametext', $this->Lang('nametext')); $this->smarty->assign('vertext', $this->Lang('vertext')); $this->smarty->assign('sizetext', $this->Lang('sizetext')); $this->smarty->assign('statustext', $this->Lang('statustext')); echo $this->processTemplate('adminpanel.tpl'); }