How does the plugin system work? Documentation Added - WIP


dlandon

Recommended Posts

  • Replies 195
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Posted Images

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.

Link to comment
  • 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.

Link to comment

 

 

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.

Link to comment

 

 

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?

Link to comment

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>

Link to comment

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"

Link to comment

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

Link to comment

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>

 

 

 

Link to comment

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

Link to comment

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.

Link to comment

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. 

Link to comment

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.

Link to comment

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.

Link to comment
  • 3 weeks later...

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.

Link to comment

 

 

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.

Link to comment

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.

 

Link to comment

 

 

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.

Link to comment

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.

Link to comment

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.