mirror of
https://github.com/xevidos/codiad.git
synced 2024-12-22 22:02:15 +01:00
153 lines
10 KiB
PHP
Executable file
153 lines
10 KiB
PHP
Executable file
<?php
|
|
|
|
/*
|
|
* Copyright (c) Codiad & daeks (codiad.com), distributed
|
|
* as-is and without warranty under the MIT License. See
|
|
* [root]/license.txt for more. This information must remain intact.
|
|
*/
|
|
|
|
|
|
require_once('../../common.php');
|
|
|
|
//////////////////////////////////////////////////////////////////
|
|
// Verify Session or Key
|
|
//////////////////////////////////////////////////////////////////
|
|
|
|
checkSession();
|
|
|
|
switch($_GET['action']){
|
|
|
|
//////////////////////////////////////////////////////////////
|
|
// Marketplace
|
|
//////////////////////////////////////////////////////////////
|
|
|
|
case 'list':
|
|
if(!checkAccess()){
|
|
?>
|
|
<label><?php i18n("Restricted"); ?></label>
|
|
<pre><?php i18n("You can not access the marketplace"); ?></pre>
|
|
<button onclick="codiad.modal.unload();return false;"><?php i18n("Close"); ?></button>
|
|
<?php } else {
|
|
require_once('class.market.php');
|
|
$market = new Market();
|
|
if(sizeof($market->remote) == 0){
|
|
?>
|
|
<label><?php i18n("Connection Error"); ?></label>
|
|
<pre><?php i18n("Connection to the market place can not be made. Please check your internet connection."); ?></pre>
|
|
<button onclick="codiad.modal.unload();return false;"><?php i18n("Close"); ?></button>
|
|
<?php } else { ?>
|
|
<label><?php i18n("Codiad Marketplace"); ?></label>
|
|
<div id="market-list">
|
|
<table width="100%">
|
|
<tr>
|
|
<th valign="middle" style="white-space:nowrap;"><button style="margin:0;" class="btn-left" onclick="codiad.market.list();return false;"><?php i18n("All"); ?></button><button class="btn-mid" style="margin:0;" onclick="codiad.market.list('plugins');return false;"><?php i18n("Plugins"); ?></button><button class="btn-right" style="margin:0;" onclick="codiad.market.list('themes');return false;"><?php i18n("Themes"); ?></button></th>
|
|
<th valign="middle" width="30%" style="white-space:nowrap;"><input style="margin:0;display:inline" onkeyup="codiad.market.search(event, this.value,'<?php echo $_GET['note']; ?>')" value="<?php if(isset($_GET['query'])) echo $_GET['query'];?>" placeholder="<?php i18n("Press Enter to Search"); ?>"></th>
|
|
</tr>
|
|
</table>
|
|
<div class="market-wrapper">
|
|
<table width="100%">
|
|
<?php
|
|
$marketplace = array();
|
|
foreach($market->remote as $data) {
|
|
if(!isset($data['category']) || $data['category'] == '') {
|
|
$data['category'] = 'Common';
|
|
}
|
|
if(!array_key_exists($data['remote'], $marketplace)) {
|
|
$marketplace[$data['remote']] = array();
|
|
}
|
|
if(!array_key_exists($data['type'], $marketplace[$data['remote']])) {
|
|
$marketplace[$data['remote']][$data['type']] = array();
|
|
}
|
|
if(!array_key_exists($data['category'], $marketplace[$data['remote']][$data['type']])) {
|
|
$marketplace[$data['remote']][$data['type']][$data['category']] = array();
|
|
}
|
|
array_push($marketplace[$data['remote']][$data['type']][$data['category']], $data);
|
|
}
|
|
ksort($marketplace);
|
|
|
|
$extLoaded = (extension_loaded('zip') && extension_loaded('openssl') && ini_get('allow_url_fopen') == 1);
|
|
function sort_name($a, $b) { return strnatcmp($a['name'], $b['name']); }
|
|
|
|
foreach($marketplace as $remote=>$markettype) {
|
|
ksort($markettype);
|
|
echo '<tr><th class="market-remote-title">';
|
|
if(!$remote) {
|
|
echo get_i18n("Installed");
|
|
} else {
|
|
echo get_i18n("Available");
|
|
}
|
|
echo '</th></tr>';
|
|
foreach($markettype as $type=>$data) {
|
|
ksort($data);
|
|
if($_GET['type'] == 'undefined' || $_GET['type'] == $type) {
|
|
foreach($data as $category=>$subdata) {
|
|
usort($subdata, 'sort_name');
|
|
foreach($subdata as $addon){
|
|
if(isset($_GET['query']) && (strpos(strtolower(trim($addon['name'])), strtolower(trim($_GET['query']))) === false)) {
|
|
continue;
|
|
}
|
|
echo '<tr><td><div style="position:relative;height:100px">';
|
|
$left = 0;
|
|
$right = 0;
|
|
if(isset($addon['image']) && $addon['image'] != '') {
|
|
echo '<div style="position:absolute;top:5px;left:404px;"><a onclick="codiad.market.openInBrowser(\''.$addon['image'].'\');return false;"><img src="'.$addon['image'].'" width="150" height="90"></a></div>';
|
|
$right = 160;
|
|
}
|
|
if(isset($addon['new'])) {
|
|
echo '<div style="position:absolute;top:0px;left:0px;z-index:10000;"><img src="./themes/default/images/new.png" width="35" height="35"></div>';
|
|
$left = $left + 30;
|
|
}
|
|
echo '<div style="position:absolute;top:2px;left:'.($left+10).'px;"><a style="font-weight:bold;font-size:14px" onclick="codiad.market.openInBrowser(\''.$addon['url'].'\');return false;">'.$addon['name'].'</a></div>';
|
|
echo '<div style="position:absolute;top:15px;left:'.($left+10).'px;"><font style="font-size:10px">'.get_i18n(ucfirst(rtrim($type,'s'))).' - '.get_i18n(ucfirst($category)).' | <a style="font-weight:bold;text-decoration:underline;" onclick="codiad.market.openInBrowser(\'https://github.com/'.$addon['author'].'\');return false;">'.$addon['author'].'</a> | '.$addon['count'].' '.get_i18n("Users").'</font></div>';
|
|
echo '<div style="position:absolute;top:25px;left:5px;"><pre style="height:60px;color:#a8a6a8;width:'.(550-$right).'px;white-space: pre-wrap;">'.$addon['description'].'</pre></div>';
|
|
if(!$addon['remote']) {
|
|
if(!isset($addon['update'])) {
|
|
echo '<div style="position:absolute;top:7px;left:570px;"><font style="color:green">'.get_i18n("Latest Version").' v'.$addon['version'].'</font></div>';
|
|
} else {
|
|
if($extLoaded && is_writable(BASE_PATH.'/'.$type.'/'.$addon['folder'])) {
|
|
echo '<div style="position:absolute;top:-5px;left:570px;"><button style="color: blue; width:150px;white-space:nowrap;" onclick="codiad.market.update(\''.$_GET['type'].'\',\''.$type.'\', \''.$addon['folder'].'\');return false;">'.get_i18n("Update ".ucfirst(rtrim($type,'s'))).'</button></div>';
|
|
} else {
|
|
echo '<div style="position:absolute;top:-5px;left:570px;"><button style="width:150px;white-space:nowrap;" onclick="codiad.market.openInBrowser(\''.$addon['url'].'\');">'.get_i18n("Download ".ucfirst(rtrim($type,'s'))).'</button><div>';
|
|
}
|
|
}
|
|
if(is_writable(BASE_PATH.'/'.$type.'/'.$addon['folder'])) {
|
|
echo '<div style="position:absolute;top:30px;left:570px;"><button style="color: red; width:150px;white-space:nowrap;" onclick="codiad.market.remove(\''.$_GET['type'].'\',\''.$type.'\', \''.$addon['folder'].'\');return false;">'.get_i18n("Delete ".ucfirst(rtrim($type,'s'))).'</button><div>';
|
|
}
|
|
} else {
|
|
if($extLoaded && is_writable(BASE_PATH.'/'.$type)) {
|
|
echo '<div style="position:absolute;top:-5px;left:570px;"><button style="width:150px;white-space:nowrap;" onclick="codiad.market.install(\''.$_GET['type'].'\',\''.$type.'\', \''.$addon['name'].'\',\''.$addon['url'].'\');return false;">'.get_i18n("Install ".ucfirst(rtrim($type,'s'))).'</button><div>';
|
|
} else {
|
|
echo '<div style="position:absolute;top:-5px;left:570px;"><button style="width:150px;white-space:nowrap;" onclick="codiad.market.openInBrowser(\''.$addon['url'].'\');">'.get_i18n("Download ".ucfirst(rtrim($type,'s'))).'</button><div>';
|
|
}
|
|
}
|
|
echo '</div></td></tr>';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
</table></div>
|
|
</div>
|
|
<?php } ?>
|
|
<table width="100%">
|
|
<tr>
|
|
<th valign="middle" align="center" width="40px"><?php
|
|
if($_GET['note'] != 'undefined' && $_GET['note'] == 'true') {
|
|
?><button style="color: blue;white-space:nowrap;" onclick="window.location.reload();return false;"><?php i18n("Reload Codiad"); ?></button><?php
|
|
} else {
|
|
?><button class="icon-arrows-ccw bigger-icon" onclick="window.location.reload();return false;"></button><?php
|
|
}
|
|
?></th>
|
|
<th valign="middle"><input style="margin:0;display:inline" id="repourl" placeholder="<?php i18n("Enter GitHub Repository Url..."); ?>"></th>
|
|
<th valign="middle" align="right" style="white-space:nowrap;" width="222px"><button class="btn-left" onclick="codiad.market.install('<?php echo $_GET['type']; ?>','','Manually',getElementById('repourl').value);return false;"><?php i18n("Install Manually"); ?></button><button class="btn-right" onclick="codiad.modal.unload();return false;"><?php i18n("Close"); ?></button></th>
|
|
</tr>
|
|
</table>
|
|
<?php
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
?>
|
|
|