Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

How does the plugin system work? Documentation Added - WIP

Featured Replies

Can't read your plugin.  There are no line feeds.

Are you using a viewer/editor that understands Linux end-of-lines?

If using Windows, open it in wordpad instead.

  • Replies 195
  • Views 67.2k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

Posted Images

Can't read your plugin.  There are no line feeds.

Are you using a viewer/editor that understands Linux end-of-lines?

Sorry I pasted it from the raw github from the browser on my phone. Not sure what happened. Fixed now

Can't read your plugin.  There are no line feeds.

Are you using a viewer/editor that understands Linux end-of-lines?

If using Windows, open it in wordpad instead.

No windows here :)  And I'm not preaching, just sharing.  I think NAS was the one who suggested to me a long time ago about separate reops and plg method originated from looking at the docker plg and at plgman.

  • 2 weeks later...

Hey, so I've had some good success updating my plugins (working on just SAB for now) but the last piece of the puzzle I'm missing is under the PLUGINS tab, after a plugin is installed you can click on the icon and it sakes you to a blank page. Where is that page located? I want it so when you click the icon it takes you to the plugin gui but i'm not sure where that page is supposed to be located.

 

 

Hey, so I've had some good success updating my plugins (working on just SAB for now) but the last piece of the puzzle I'm missing is under the PLUGINS tab, after a plugin is installed you can click on the icon and it sakes you to a blank page. Where is that page located? I want it so when you click the icon it takes you to the plugin gui but i'm not sure where that page is supposed to be located.

 

It's in /usr/local/emhttp/plugins/sabnzbd  It can be either a php file with the same name as the .page file or you can combine them together in a sabnzbd.page file.

 

 

Hey, so I've had some good success updating my plugins (working on just SAB for now) but the last piece of the puzzle I'm missing is under the PLUGINS tab, after a plugin is installed you can click on the icon and it sakes you to a blank page. Where is that page located? I want it so when you click the icon it takes you to the plugin gui but i'm not sure where that page is supposed to be located.

 

It's in /usr/local/emhttp/plugins/sabnzbd  It can be either a php file with the same name as the .page file or you can combine them together in a sabnzbd.page file.

Yeah, i've already got that page but its /usr/local/emhttp/plugins/Sabnzbd  (capital)  does that make any difference?

I don't think caps matter.  I ran into that  when I changed virtman to virtMan.  Here is what my virtMan.page file looks like. Some of it may look familiar :).

 

Icon="virtMan.png"
Menu="OtherSettings"
Title="virtMan"
---
<?php include '/usr/local/emhttp/plugins/virtMan/virtMan.css';?>
<?PHP
# -------------------------------------------------------------------------
## Load current config file and check if program is installed already
# -------------------------------------------------------------------------
$virtMan_cfgfile = "/boot/config/plugins/virtMan/virtMan.cfg";

# This will clean any ^M characters caused by windows from the config file before use
if (file_exists("$virtMan_cfgfile"))
shell_exec("sed -i 's!\r!!g' '$virtMan_cfgfile'");
$virtMan_cfg = parse_ini_file( "$virtMan_cfgfile" );

# -------------------------------------------------------------------------
## Check is program is running to get extra information
# -------------------------------------------------------------------------
# Service Status Variable
if (isset($virtMan_cfg['SERVICE']) && ($virtMan_cfg['SERVICE'] == "enable" || $virtMan_cfg['SERVICE'] == "disable"))
$virtMan_service = $virtMan_cfg['SERVICE'];
else
$virtMan_service = "enable";

$virtMan_running = trim ( shell_exec ( "[ -f /proc/`cat /var/run/libvirt/libvirtd.pid 2> /dev/null`/exe ] && echo 'yes' || echo 'no' 2> /dev/null" ) );

# Check if virtMan.img exists
if (file_exists( "/boot/config/plugins/virtMan/virtMan.img" )) {
$virtMan_filecheck = "yes";
} else {
$virtMan_filecheck = "no";
}

# if virtMan.img exists check if mounted then mount if not
if ($virtMan_filecheck == "yes") {
if (shell_exec ( "mount | grep virtMan.img" ) == "") {
	shell_exec ( "mount -t ext4 /boot/config/plugins/virtMan/virtMan.img /etc/libvirt" );
}
}

# Get free space left on virtMan.img
$virtMan_storagesize = number_format ( disk_free_space ( "/etc/libvirt" ) /1048576 , 1 );

# Get current installed version of the program
$virtMan_curversion = trim ( shell_exec ( "virsh --version" ) );
if ($virtMan_curversion == "")
$virtMan_curversion = "couldn't determine the libvirt version"; 
?>

<div style="width: 49%; float:left">
<div id="title">
	<span class="left">Status:&#32;
		<?if ($virtMan_running=="yes"):?>
				<span class="green"><b>RUNNING</b></span>
			<span style="font-size:12px;"> with libvirt version: <b><?=$virtMan_curversion?></b></span>
		<?else:?>
			<span class="red"><b>STOPPED</b></span>
		<?endif;?>
	</span>
</div>  
	<?if ($virtMan_running=="yes"):?>
		<div style="position:relative;float:left;width:50%;text-align:right; margin-bottom:24px">
			<form name="virtMan_start_stop" method="POST" action="/plugins/webGui/exec.php" target="progressFrame">
				<input type="hidden" name="command" value="/etc/rc.d/rc.libvirt stop  ">
				<input type="submit" value="Stop">
			</form>
		</div>
		<div style="position:relative;float:left;width:50%;margin-bottom:24px">
			<form name="virtMan_restart" method="POST" action="/plugins/webGui/exec.php" target="progressFrame">
				<input type="hidden" name="command" value="/etc/rc.d/rc.libvirt restart  ">
				<input type="submit" value="Restart">
			</form>
		</div>
	<?else:?>
		<div style="position:relative;float:left;width:100%;text-align:center;margin-bottom:24px">
			<form name="virtMan_start" method="POST" action="/plugins/webGui/exec.php" target="progressFrame">
				<input type="hidden" name="command" value="/etc/rc.d/rc.libvirt start  " />
				<input type="submit" value="Start">
			</form>
		</div>
	<?endif;?>
<div id="title">
	<span class="left">Information:&#32;</span>
</div>
<? if ($virtMan_filecheck == "no"):?>
	<p style="color:red;margin-left:10px;margin-right:10px;"><b>WARNING:</b> Your config image /boot/config/plugins/virtMan/virtMan.img doesn't exist</p>
	<?else:?>
	<p style="margin-left:10px;margin-bottom:0px;"><b>Total Free Space: <?=$virtMan_storagesize?> M</b></p>
<?endif;?>
</div>
<div style="width: 49%; float:right">
<div id="title">
	<span class="left">Configuration:&#32;</span>
</div>
<form name="virtMan_settings" method="POST" action="/plugins/webGui/update_cfg.php" target="progressFrame">
	<input type="hidden" name="#file" value="<?=$virtMan_cfgfile;?>" />
	<table class="settings">
		<tr>
			<td>Enable libvirt:
				<input type="checkbox" name="enable" <?=($virtMan_service=="enable")?"checked=\"checked\"":"";?> onChange="checkENABLE(this.form);">
				<input type="hidden" name="SERVICE" value="<?=$virtMan_service;?>">     
			</td>
		</tr>
		<br />
		<td></td>
		<tr><td colspan="2"><div style="background-color:#FFFFFF;border:1px solid #000000;height:1px;width:100%;font-size:8px;"> </div></td></tr>
	</table>
	<div align="center">
		<input type="submit" value="Apply" style="margin-bottom:8px">
		<button type="button" style="margin-bottom:35px" onClick="done();">Done</button>
	</div>
</form>
<br/>
</div>


<script type="text/javascript">

function checkENABLE(form) {
if (form.enable.checked == false ) {
	form.SERVICE.value = "disable";
} else {
	form.SERVICE.value = "enable";
}
}

</script>

I don't think caps matter.  I ran into that  when I changed virtman to virtMan.  Here is what my virtMan.page file looks like. Some of it may look familiar :).

 

Icon="virtMan.png"
Menu="OtherSettings"
Title="virtMan"
---
<?php include '/usr/local/emhttp/plugins/virtMan/virtMan.css';?>
<?PHP
# -------------------------------------------------------------------------
## Load current config file and check if program is installed already
# -------------------------------------------------------------------------
$virtMan_cfgfile = "/boot/config/plugins/virtMan/virtMan.cfg";

# This will clean any ^M characters caused by windows from the config file before use
if (file_exists("$virtMan_cfgfile"))
shell_exec("sed -i 's!\r!!g' '$virtMan_cfgfile'");
$virtMan_cfg = parse_ini_file( "$virtMan_cfgfile" );

# -------------------------------------------------------------------------
## Check is program is running to get extra information
# -------------------------------------------------------------------------
# Service Status Variable
if (isset($virtMan_cfg['SERVICE']) && ($virtMan_cfg['SERVICE'] == "enable" || $virtMan_cfg['SERVICE'] == "disable"))
$virtMan_service = $virtMan_cfg['SERVICE'];
else
$virtMan_service = "enable";

$virtMan_running = trim ( shell_exec ( "[ -f /proc/`cat /var/run/libvirt/libvirtd.pid 2> /dev/null`/exe ] && echo 'yes' || echo 'no' 2> /dev/null" ) );

# Check if virtMan.img exists
if (file_exists( "/boot/config/plugins/virtMan/virtMan.img" )) {
$virtMan_filecheck = "yes";
} else {
$virtMan_filecheck = "no";
}

# if virtMan.img exists check if mounted then mount if not
if ($virtMan_filecheck == "yes") {
if (shell_exec ( "mount | grep virtMan.img" ) == "") {
	shell_exec ( "mount -t ext4 /boot/config/plugins/virtMan/virtMan.img /etc/libvirt" );
}
}

# Get free space left on virtMan.img
$virtMan_storagesize = number_format ( disk_free_space ( "/etc/libvirt" ) /1048576 , 1 );

# Get current installed version of the program
$virtMan_curversion = trim ( shell_exec ( "virsh --version" ) );
if ($virtMan_curversion == "")
$virtMan_curversion = "couldn't determine the libvirt version"; 
?>

<div style="width: 49%; float:left">
<div id="title">
	<span class="left">Status:&#32;
		<?if ($virtMan_running=="yes"):?>
				<span class="green"><b>RUNNING</b></span>
			<span style="font-size:12px;"> with libvirt version: <b><?=$virtMan_curversion?></b></span>
		<?else:?>
			<span class="red"><b>STOPPED</b></span>
		<?endif;?>
	</span>
</div>  
	<?if ($virtMan_running=="yes"):?>
		<div style="position:relative;float:left;width:50%;text-align:right; margin-bottom:24px">
			<form name="virtMan_start_stop" method="POST" action="/plugins/webGui/exec.php" target="progressFrame">
				<input type="hidden" name="command" value="/etc/rc.d/rc.libvirt stop  ">
				<input type="submit" value="Stop">
			</form>
		</div>
		<div style="position:relative;float:left;width:50%;margin-bottom:24px">
			<form name="virtMan_restart" method="POST" action="/plugins/webGui/exec.php" target="progressFrame">
				<input type="hidden" name="command" value="/etc/rc.d/rc.libvirt restart  ">
				<input type="submit" value="Restart">
			</form>
		</div>
	<?else:?>
		<div style="position:relative;float:left;width:100%;text-align:center;margin-bottom:24px">
			<form name="virtMan_start" method="POST" action="/plugins/webGui/exec.php" target="progressFrame">
				<input type="hidden" name="command" value="/etc/rc.d/rc.libvirt start  " />
				<input type="submit" value="Start">
			</form>
		</div>
	<?endif;?>
<div id="title">
	<span class="left">Information:&#32;</span>
</div>
<? if ($virtMan_filecheck == "no"):?>
	<p style="color:red;margin-left:10px;margin-right:10px;"><b>WARNING:</b> Your config image /boot/config/plugins/virtMan/virtMan.img doesn't exist</p>
	<?else:?>
	<p style="margin-left:10px;margin-bottom:0px;"><b>Total Free Space: <?=$virtMan_storagesize?> M</b></p>
<?endif;?>
</div>
<div style="width: 49%; float:right">
<div id="title">
	<span class="left">Configuration:&#32;</span>
</div>
<form name="virtMan_settings" method="POST" action="/plugins/webGui/update_cfg.php" target="progressFrame">
	<input type="hidden" name="#file" value="<?=$virtMan_cfgfile;?>" />
	<table class="settings">
		<tr>
			<td>Enable libvirt:
				<input type="checkbox" name="enable" <?=($virtMan_service=="enable")?"checked=\"checked\"":"";?> onChange="checkENABLE(this.form);">
				<input type="hidden" name="SERVICE" value="<?=$virtMan_service;?>">     
			</td>
		</tr>
		<br />
		<td></td>
		<tr><td colspan="2"><div style="background-color:#FFFFFF;border:1px solid #000000;height:1px;width:100%;font-size:8px;"> </div></td></tr>
	</table>
	<div align="center">
		<input type="submit" value="Apply" style="margin-bottom:8px">
		<button type="button" style="margin-bottom:35px" onClick="done();">Done</button>
	</div>
</form>
<br/>
</div>


<script type="text/javascript">

function checkENABLE(form) {
if (form.enable.checked == false ) {
	form.SERVICE.value = "disable";
} else {
	form.SERVICE.value = "enable";
}
}

</script>

Lol, even my spelling mistakes "Check is program is running to get extra information"

I don't think caps matter.  I ran into that  when I changed virtman to virtMan.  Here is what my virtMan.page file looks like. Some of it may look familiar :).

 

Icon="virtMan.png"
Menu="OtherSettings"
Title="virtMan"
---
<?php include '/usr/local/emhttp/plugins/virtMan/virtMan.css';?>
<?PHP
# -------------------------------------------------------------------------
## Load current config file and check if program is installed already
# -------------------------------------------------------------------------
$virtMan_cfgfile = "/boot/config/plugins/virtMan/virtMan.cfg";

# This will clean any ^M characters caused by windows from the config file before use
if (file_exists("$virtMan_cfgfile"))
shell_exec("sed -i 's!\r!!g' '$virtMan_cfgfile'");
$virtMan_cfg = parse_ini_file( "$virtMan_cfgfile" );

# -------------------------------------------------------------------------
## Check is program is running to get extra information
# -------------------------------------------------------------------------
# Service Status Variable
if (isset($virtMan_cfg['SERVICE']) && ($virtMan_cfg['SERVICE'] == "enable" || $virtMan_cfg['SERVICE'] == "disable"))
$virtMan_service = $virtMan_cfg['SERVICE'];
else
$virtMan_service = "enable";

$virtMan_running = trim ( shell_exec ( "[ -f /proc/`cat /var/run/libvirt/libvirtd.pid 2> /dev/null`/exe ] && echo 'yes' || echo 'no' 2> /dev/null" ) );

# Check if virtMan.img exists
if (file_exists( "/boot/config/plugins/virtMan/virtMan.img" )) {
$virtMan_filecheck = "yes";
} else {
$virtMan_filecheck = "no";
}

# if virtMan.img exists check if mounted then mount if not
if ($virtMan_filecheck == "yes") {
if (shell_exec ( "mount | grep virtMan.img" ) == "") {
	shell_exec ( "mount -t ext4 /boot/config/plugins/virtMan/virtMan.img /etc/libvirt" );
}
}

# Get free space left on virtMan.img
$virtMan_storagesize = number_format ( disk_free_space ( "/etc/libvirt" ) /1048576 , 1 );

# Get current installed version of the program
$virtMan_curversion = trim ( shell_exec ( "virsh --version" ) );
if ($virtMan_curversion == "")
$virtMan_curversion = "couldn't determine the libvirt version"; 
?>

<div style="width: 49%; float:left">
<div id="title">
	<span class="left">Status: 
		<?if ($virtMan_running=="yes"):?>
				<span class="green"><b>RUNNING</b></span>
			<span style="font-size:12px;"> with libvirt version: <b><?=$virtMan_curversion?></b></span>
		<?else:?>
			<span class="red"><b>STOPPED</b></span>
		<?endif;?>
	</span>
</div>  
	<?if ($virtMan_running=="yes"):?>
		<div style="position:relative;float:left;width:50%;text-align:right; margin-bottom:24px">
			<form name="virtMan_start_stop" method="POST" action="/plugins/webGui/exec.php" target="progressFrame">
				<input type="hidden" name="command" value="/etc/rc.d/rc.libvirt stop  ">
				<input type="submit" value="Stop">
			</form>
		</div>
		<div style="position:relative;float:left;width:50%;margin-bottom:24px">
			<form name="virtMan_restart" method="POST" action="/plugins/webGui/exec.php" target="progressFrame">
				<input type="hidden" name="command" value="/etc/rc.d/rc.libvirt restart  ">
				<input type="submit" value="Restart">
			</form>
		</div>
	<?else:?>
		<div style="position:relative;float:left;width:100%;text-align:center;margin-bottom:24px">
			<form name="virtMan_start" method="POST" action="/plugins/webGui/exec.php" target="progressFrame">
				<input type="hidden" name="command" value="/etc/rc.d/rc.libvirt start  " />
				<input type="submit" value="Start">
			</form>
		</div>
	<?endif;?>
<div id="title">
	<span class="left">Information: </span>
</div>
<? if ($virtMan_filecheck == "no"):?>
	<p style="color:red;margin-left:10px;margin-right:10px;"><b>WARNING:</b> Your config image /boot/config/plugins/virtMan/virtMan.img doesn't exist</p>
	<?else:?>
	<p style="margin-left:10px;margin-bottom:0px;"><b>Total Free Space: <?=$virtMan_storagesize?> M</b></p>
<?endif;?>
</div>
<div style="width: 49%; float:right">
<div id="title">
	<span class="left">Configuration: </span>
</div>
<form name="virtMan_settings" method="POST" action="/plugins/webGui/update_cfg.php" target="progressFrame">
	<input type="hidden" name="#file" value="<?=$virtMan_cfgfile;?>" />
	<table class="settings">
		<tr>
			<td>Enable libvirt:
				<input type="checkbox" name="enable" <?=($virtMan_service=="enable")?"checked=\"checked\"":"";?> onChange="checkENABLE(this.form);">
				<input type="hidden" name="SERVICE" value="<?=$virtMan_service;?>">     
			</td>
		</tr>
		<br />
		<td></td>
		<tr><td colspan="2"><div style="background-color:#FFFFFF;border:1px solid #000000;height:1px;width:100%;font-size:8px;"> </div></td></tr>
	</table>
	<div align="center">
		<input type="submit" value="Apply" style="margin-bottom:8px">
		<button type="button" style="margin-bottom:35px" onClick="done();">Done</button>
	</div>
</form>
<br/>
</div>


<script type="text/javascript">

function checkENABLE(form) {
if (form.enable.checked == false ) {
	form.SERVICE.value = "disable";
} else {
	form.SERVICE.value = "enable";
}
}

</script>

Lol, even my spelling mistakes "Check is program is running to get extra information"

Lol I misunderstood your post before.  I thought you meant under the settings. I don't think there is any thing you can do for that link in plugins page

Phaze (and others creating v6/plgman compatible plugins), don't bother creating and downloading png files. Instead generate them from inline code and save directly to your plugin directory underneath /usr/local/emhttp/plugins

 

eg.

Instead of

<!-- Download application and web GUI icons -->
<FILE Name="/boot/config/plugins/&name;/images/information.png">
<URL>--no-check-certificate https://raw.githubusercontent.com/PhAzE-Variance/AppSupport/master/information.png</URL>
</FILE>

 

do

 

<FILE Name="/usr/local/emhttp/plugins/&name;/information.png" Type="base64">
<INLINE>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKcSURBVDjLpZPLa9RXHMU/d0ysZEwmMQqZiTaP0agoaKGJUiwIxU0hUjtUQaIuXHSVbRVc+R8ICj5WvrCldJquhVqalIbOohuZxjDVxDSP0RgzyST9zdzvvffrQkh8tBs9yy9fPhw45xhV5X1U8+Yhc3U0LcEdVxdOVq20OA0ooQjhpnfhzuDZTx6++m9edfDFlZGMtXKxI6HJnrZGGtauAWAhcgwVnnB/enkGo/25859l3wIcvpzP2EhuHNpWF9/dWs/UnKW4EOGDkqhbQyqxjsKzMgM/P1ymhlO5C4ezK4DeS/c7RdzQoa3x1PaWenJjJZwT9rQ1gSp/js1jYoZdyfX8M1/mp7uFaTR8mrt29FEMQILr62jQ1I5kA8OF59jIItVA78dJertTiBNs1ZKfLNG+MUHX1oaURtIHEAOw3p/Y197MWHEJEUGCxwfHj8MTZIcnsGKxzrIURYzPLnJgbxvG2hMrKdjItjbV11CYKeG8R7ygIdB3sBMFhkem0RAAQ3Fuka7UZtRHrasOqhYNilOwrkrwnhCU/ON5/q04vHV48ThxOCuoAbxnBQB+am65QnO8FqMxNCjBe14mpHhxBBGCWBLxD3iyWMaYMLUKsO7WYH6Stk1xCAGccmR/Ozs/bKJuXS39R/YgIjgROloSDA39Deit1SZWotsjD8pfp5ONqZ6uTfyWn+T7X0f59t5fqDhUA4ry0fYtjJcWeZQvTBu4/VqRuk9/l9Fy5cbnX+6Od26s58HjWWaflwkusKGxjm1bmhkvLXHvh1+WMbWncgPfZN+qcvex6xnUXkzvSiYP7EvTvH4toDxdqDD4+ygT+cKMMbH+3MCZ7H9uAaDnqytpVX8cDScJlRY0YIwpAjcNcuePgXP/P6Z30QuoP4J7WbYhuQAAAABJRU5ErkJggg==
</INLINE>
</FILE>

 

 

 

Here's my beta for Sabnzbd plugin 2.0.0.  If you want to test it for suggestions, or to use some of the code, feel free. Use this on a development unraid server just in case, not one that already has sab installed. 

 

I haven't really added any new features to the sab plugin yet (have a few in mind) but this should allow you to start your server and install even if your internet isn't working (assuming the app was downloaded once before with internet working).

 

All png files are in a zip file along with the page, php, rc and css files. This simplifies the plugin file and makes all supporting files and dependency files "external" on my git.  If you get a chance, let me know if anything seems broken so i can fix them.  I'll probably change all my plugins over to this format since it's more versatile and easier to update because the support files and dependency files are separate.

Sabnzbd.plg

Hey, so I've had some good success updating my plugins (working on just SAB for now) but the last piece of the puzzle I'm missing is under the PLUGINS tab, after a plugin is installed you can click on the icon and it sakes you to a blank page. Where is that page located? I want it so when you click the icon it takes you to the plugin gui but i'm not sure where that page is supposed to be located.

It's looking for a .page file in /usr/local/emhttp I tried symlinking to the plugin page file but it just brings up the text cause it doesn't know what to do with .page.  Also I made a file in /usr/local/emhttp/virtMan.page and added some html code but no luck.  I'll have to look through the plgman code again and see if there's an error.

Hey, so I've had some good success updating my plugins (working on just SAB for now) but the last piece of the puzzle I'm missing is under the PLUGINS tab, after a plugin is installed you can click on the icon and it sakes you to a blank page. Where is that page located? I want it so when you click the icon it takes you to the plugin gui but i'm not sure where that page is supposed to be located.

It's looking for a .page file in /usr/local/emhttp I tried symlinking to the plugin page file but it just brings up the text cause it doesn't know what to do with .page.  Also I made a file in /usr/local/emhttp/virtMan.page and added some html code but no luck.  I'll have to look through the plgman code again and see if there's an error.

Ya those are the same steps I took :)  Maybe its just not a finished feature of the plugin manager yet. 

Here's my beta for Sabnzbd plugin 2.0.0.  If you want to test it for suggestions, or to use some of the code, feel free. Use this on a development unraid server just in case, not one that already has sab installed. 

 

I haven't really added any new features to the sab plugin yet (have a few in mind) but this should allow you to start your server and install even if your internet isn't working (assuming the app was downloaded once before with internet working).

 

All png files are in a zip file along with the page, php, rc and css files. This simplifies the plugin file and makes all supporting files and dependency files "external" on my git.  If you get a chance, let me know if anything seems broken so i can fix them.  I'll probably change all my plugins over to this format since it's more versatile and easier to update because the support files and dependency files are separate.

I noticed one thing is you can remove the check for internet.  Users should be installing this using a url in the plugins page.  So if it gets installed once they don't need internet to install it again.

 

Disregard my caps answer before too. They do matter for emhttp but not for command line.

 

Also maybe you could explain how you decided to handle package removal. I'll look at the code later.

 

Edit. Looks good. Once you do one the others should go quicker.

Actually the net check is more of a gateway check, when you reboot the server it won't attempt to download the files that might be missing until the nic can at least reach the router. People had failing plugins because the download would start before their slow nic cards. It skips instantly if there is a default gateway that is reachable.

For package removal, I've now got them installed into a common folder, and the app is started with a wrapper that exports the environment path to that common folder. When the plugin is removed it deletes the associated common folder too.

Anyone know what we should be filling in for 'category' entity?  Just a category for the plugin type, like "downloader" or "movie organizer" or is there anything specific we should be using?

Anyone know what we should be filling in for 'category' entity?  Just a category for the plugin type, like "downloader" or "movie organizer" or is there anything specific we should be using?

Category has been deprecated. No need to use anymore.

Thanks jonp,

 

just to confirm, the following are still used? Any other items i'm missing?

 

name="&name;"

author="&author;"

version="&plgVersion;"

pluginURL="&pluginURL;"

 

  • 3 weeks later...
  • Author

There is a change in v6b12 that will affect plugins. The emhttp file structure has changed and you can no longer have a .page and a .php file.  unRAID expects the php for your page to be included in the .page file of your plugin.  The OP has more details.

 

EDIT: I have found a work around.  I have posted in the OP.

 

 

There is a change in v6b11 that will affect plugins. The file structure has changed and you can no longer have a .page and a .php file.  The php for your page needs to be included in the .page file of your plugin.  The OP has more details.

 

Do you happen to know if you have have multiple page files like the plugin tab, if you can sort them?  I know the main page file is first but the others seem random.  I'm more interested in sorting when you have Tabs="true" in the page file under dynamix and the multiple pages as tabs.

 

Also some of the  php functions have changed like exec.php and the config write one.

The sorting of pages is done alphabetically, if you want pages to appear in a different order then a sequence number needs to be added to the menu reference.

 

For example you have the files

 

A.page

B.page

C.page

 

These are shown in the sequence A, B, C

 

If you want to show them in the sequence C, B, A (as an example), do the following:

 

In file A.page

Menu="parent:3"

 

In file B.page

Menu="parent:2"

 

In file C.page

Menu="parent:1"

 

"parent" is the name of the menu under which these pages will be shown.

 

 

 

The sorting of pages is done alphabetically, if you want pages to appear in a different order then a sequence number needs to be added to the menu reference.

 

For example you have the files

 

A.page

B.page

C.page

 

These are shown in the sequence A, B, C

 

If you want to show them in the sequence C, B, A (as an example), do the following:

 

In file A.page

Menu="parent:3"

 

In file B.page

Menu="parent:2"

 

In file C.page

Menu="parent:1"

 

"parent" is the name of the menu under which these pages will be shown.

 

Thanks I'll use the numbered parent method.  I was confused about the sorting but I figured it out. I had a page with a misplaced </div>  and it would always go to the end of the tabs.

The sorting of pages is done alphabetically, if you want pages to appear in a different order then a sequence number needs to be added to the menu reference.

 

For example you have the files

 

A.page

B.page

C.page

 

These are shown in the sequence A, B, C

 

If you want to show them in the sequence C, B, A (as an example), do the following:

 

In file A.page

Menu="parent:3"

 

In file B.page

Menu="parent:2"

 

In file C.page

Menu="parent:1"

 

"parent" is the name of the menu under which these pages will be shown.

I may have a few more questions about the tablesorter table class later.  You may be interested in a simple mod i made to filetree.js that adds a directory select function.

LOL. The included filetree.js is already modded to allow selection of file extensions, but any good ideas can be merged :)

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.