HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   Tips/Tricks/Mods (http://www.howtoforge.com/forums/forumdisplay.php?f=29)
-   -   ISPC3 Theme/Template (http://www.howtoforge.com/forums/showthread.php?t=44460)

djtremors 30th March 2010 10:31

ISPC3 Theme/Template
 
1 Attachment(s)
Hey all,

I'm working on a new theme for ISPConfig3 and was working on using css classes for the left menu and got a bit of a problem with it.

I can't find unique var name I can use to define each menu item individually.
I tried cheating and using <tmpl_var name='title'> and got some success until I noticed the Monitor menu and the left side bar shows Server to Monitor with some screwed up text in the class name breaking html.

/usr/local/ispconfig/interface/web/themes/{template}/templates/sidenav.tpl.htm
.
.
.
<li class="<tmpl_var name='title'>">
<tmpl_if name="link">
<a href="#" onClick="loadContent('<tmpl_var name='link'>')">
</tmpl_if>
<tmpl_var name="title">
<tmpl_if name="link">
</a>
</tmpl_if>
</li>

Is there a var name that contains unique names that can be used for css. ie ones without spaces etc.
Or is there a way to know what template vars are available. so far it appears the language text is possible but not sure what else, especially one for the combo server select box I have a problem with.

Tremors.

djtremors 30th March 2010 10:51

I've noticed another issue.
Most if not all buttons to add are using the same class name which is fair enough if you want the same icon but not if you want to change it.
Since this is a template and not part of a theme, makes it hard to change it but not lose the changes over an upgrade as I believe these files would be overriden right?

root@anuke: /usr/local/ispconfig/interface/web# find . -exec grep -H "iconstxt icoAdd" {} \;
./client/templates/client_template_list.htm: <button class="iconstxt icoAdd" type="button" onClick="loadContent('client/client_template_edit.php');">
./client/templates/client_edit_limits.htm: <button class="positive iconstxt icoAdd" type="button" value="Add additional template" onClick="addAdditionalTemplate();"><span>Add additional template</span></button>
./client/templates/resellers_list.htm: <button class="iconstxt icoAdd" type="button" onClick="loadContent('client/reseller_edit.php');">
./client/templates/clients_list.htm: <button class="iconstxt icoAdd" type="button" onClick="loadContent('client/client_edit.php');">
./sites/templates/ftp_user_list.htm: <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/ftp_user_edit.php');">
./sites/templates/database_list.htm: <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/database_edit.php');">
./sites/templates/shell_user_list.htm: <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/shell_user_edit.php');">
./sites/templates/web_subdomain_list.htm: <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/web_subdomain_edit.php');">
./sites/templates/web_domain_list.htm: <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/web_domain_edit.php');">
./sites/templates/web_aliasdomain_list.htm: <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/web_aliasdomain_edit.php');">
./sites/templates/cron_list.htm: <button class="iconstxt icoAdd" type="button" onClick="loadContent('sites/cron_edit.php');">

till 30th March 2010 20:04

All files that are in a template folder will get replaced on updates.

djtremors 1st April 2010 11:12

yeah well i figured that would be the case.
what about naming convensions used as Add website, Add new FTP user, Add blah blah.. all use the same class name, can we in future have a different class for each?

Also, you didn't answer my questions about unique var names since atm, I have to use <tmpl_var name='link'> which means in the css i have to use :
#submenu li.sites\/web_subdomain_list\.php a { background-image: url("../../images/domain-sub-icon.png");background-repeat:no-repeat; padding-top: 0px;}

etc. reaaally ugly and bad.

mike_p 3rd April 2010 11:15

You could use the class attribute after all.

Remember that HTML allows space-seperated mutiple classes for a single entity.

The css rules allow mutiple class selection.

so if your class = ''Subdomain for website"
that is equivalent to three seperate classes

your css could specify a rule for all three classes being together:
#submenu .Subdomain.for.website {...}

djtremors 3rd April 2010 11:32

Yep, I used the var 'title' which i used the Subdomain.for.website method in the css, but this fails badly when rendering menus which have the pulldown combo like the server selection in the Monitor section. So ended up using the link instead.

mike_p 29th May 2010 13:29

I've come back to this becuase I'd like a cleaner solution to styling these pages.

So I've edited each of the module.conf.php pages and added to each of the $items array a new field called "html_id"
eg within monitor/lib/module.conf.php for the raid_state menu item
Code:

$items[] = array( 'title'        => "Show RAID state",
        'target'        => 'content',
        'link'        => 'monitor/show_data.php?type=raid_state',
        'html_id' => 'raid_state');

then in my sidenav.tpl.htm I've changed the items loop to
Code:

<tmpl_loop name="items">
    <li <tmpl_if name="html_id"> id='<tmpl_var name="html_id">' </tmpl_if>>
      <tmpl_if name="link">
        <a href="#" onClick="loadContent('<tmpl_var name='link'>')">
      </tmpl_if>
      <tmpl_var name="title">
      <tmpl_if name="link">
        </a>
      </tmpl_if>
    </li>
  </tmpl_loop>

In my css I can now assign an icon using (eg) #raid_state to select the item.

If anyone's interested (and Till and/or Falko agree!) I'd be happy to include these changes in svn.

djtremors 29th May 2010 14:55

Yeah that would be ideal method really but since the ispconfig3 upgrades are a little brutal and overwrite almost everything you changed, you have to keep backup copies and diff them in case they've added something to the page which a backup&restoring of your modified file would restore back to the old copy.
So i did it my way only for easy upgrade reasons only.
Would be nice if the ispc team styled everything a little better.

What you did was good work Mike, could try chattr +i on your files during upgrade to prevent overwriting and see how it goes. I know it doesn't work on custom postfix main.cf as complains before continuing, i know coz i tried it.
For some reason ispc3 upgrade screws my postfix configs so i have to always back it up.

it truely needs questionable sections for upgrades like templates, each service and so on..

till 29th May 2010 15:33

Quote:

Yeah that would be ideal method really but since the ispconfig3 upgrades are a little brutal and overwrite almost everything you changed, you have to keep backup copies and diff them in case they've added something to the page which a backup&restoring of your modified file would restore back to the old copy.
That depends on how you work with a open source project. mike_p for example works actively with the ispconfig project and commits his changes and fixes back to the source tree. You decided to work only on your own without contributing to the ispconfig project, so your chnages does not go into the ispconfig sources and thats why you have ptoblems with overwritten files.

till 29th May 2010 15:34

Quote:

Originally Posted by mike_p (Post 229587)
If anyone's interested (and Till and/or Falko agree!) I'd be happy to include these changes in svn.

Sure. If they do not break the exsting themes, then please commit them to svn trunk.


All times are GMT +2. The time now is 04:34.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.