Page 1 of 1

RD Glossary

Posted: Mon Feb 06, 2006 10:15 am
by rdeutz
To share information’s about the necessary changes I aim to write down my experiences here. I hope this is ok and prevents other developers from some research work.


First install

I have installed my 1.0.7 version and the first impression was good. No errors!

Custom Toolbar Buttons (artf3368)

In the Backend my custom Toolbar-Button isn’t displayed. The cause is a bug in mosAdminMenus see artf3368 for more information’s.

Usage of mosConfig global variables

Example for a change:

form

Code: Select all

global $mosConfig_live_site;
echo $mosConfig_live_site;
to

Code: Select all

global $mainframe;
$live_site = $mainframe(‘live_site’);
echo $live_site;

Use an Editor in your extension.


The procedure has changed.

Old style (Backend and Frontend)

Code: Select all

getEditorContents( 'editor1', 'text' ) ;

…
// parameters : areaname, content, hidden field, width, height, rows, cols
editorArea( 'editor1', $row->text , 'text', 400, 200, '50', '10' ) ;

New style (Backend and Frontend)

Code: Select all

$editor =& JEditor::getInstance();
echo $editor->getEditorContents( 'editor1', 'text' ) ;

….

// parameters : areaname, content, hidden field, width, height, rows, cols
$editor =& JEditor::getInstance();
echo $editor->getEditor( 'editor1',  $row->definition , 'definition', '100%;', '200', '75', '20' ) ;

Language file


Language files are located in the language directory and there are subdirectories for specific languages eng_GB, ger_DE, ….. Your language file must stored in one subdirectory and named for example. eng_GB.com_rd_glossary.ini or {lang_tag}.com_{componentname}.ini

If you do it in that way, the language file is loaded automatic, if you component is loaded. You don’t must do something similar that.

Code: Select all

// Get the right language if it exists
if (file_exists($mosConfig_absolute_path.'/administrator/components/'._COMP_NAME.'/languages/'.$mosConfig_lang.'_admin.php')) {
  include_once($mosConfig_absolute_path.'/administrator/components/'._COMP_NAME.'/languages/'.$mosConfig_lang.'_admin.php');
} else {
  include_once($mosConfig_absolute_path.'/administrator/components/'._COMP_NAME.'/languages/english_admin.php');
}
Many developers have stored strings as defines in {language}.php files and used this constants to create the output. Now you have to save your strings in ini-files.

Old style:

Code: Select all

define('_RD_ERROR1','Term must be uniq');
define('_RD_GLOSSARY_ADDNEW','Add an new entry');

New style:

Code: Select all

RD ERROR1=Term must be uniq 
RD GLOSSARY ADDNEW=Add an new entry 
The last step to make your application multi language ready, is to remove the constants from your files and replace them with the Jtext::_() function

You have to change this:

Code: Select all

$addnew = "<a title=\""._RD_GLOSSARY_ADDNEW."\" href=\"". sefRelToAbs( "index.php?option=com_rd_glossary&task=new" . $Itemid ) . "\">". _RD_GLOSSARY_ADDNEW."</a>";

into this

Code: Select all

$addnew = "<a title=\"". JText::_('RD GLOSSARY ADDNEW') ."\" href=\"" . sefRelToAbs( "index.php?option=com_rd_glossary&task=new" . $Itemid ) . "\">". JText::_('RD GLOSSARY ADDNEW') ."##</a>";
Keep in mind the installers language file copy function is broken so you have to copy the files by hand


no direct access

Code: Select all

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
change to

Code: Select all

defined( '_JEXEC' ) or die( 'Restricted access' );
This isn't actual necessary but as we have opened a file we could do this now


Toolbar and admin screen

The new class for the toolbar is JMenuBar and there is a new function title.

Example:

Code: Select all

JMenuBar::title( JText::_( 'RD GLOSSARY ITEMLISTTITLE' ), 'addedit.png' );
With this function you can move the title in the toolbar area.

I have changed.

this (old 1.0.x style)

Code: Select all

echo "<table class=\"adminheading\">";
echo "<tr><th class=\"addedit\" rowspan=\"2\">"._RD_GLOSSARY_ITEMLISTTITLE."</th>";
echo "<td colspan=\"2\" align=\"right\">$lists</td></tr>";
echo "<tr><td>Filter:</td><td> <input type=\"text\" name=\"search\" value=\"" . $search . "\" class=\"text_area\" onChange=\"document.adminForm.submit();\" />";
echo "</td></tr></table>";
into this (new 1.1 style)

Code: Select all

echo "<table class=\"adminform\">";
echo "<tr><td align=\"left\" width=\"100%\">Filter: <input type=\"text\" name=\"search\" value=\"" . $search . "\" class=\"text_area\" onChange=\"document.adminForm.submit();\" />";
echo "<input type=\"button\" value=\"".JText::_('RD GO')."\" class=\"button\" onclick=\"this.form.submit();\" />";
echo "<input type=\"button\" value=\"".JText::_('RD RESET')."\" class=\"button\" onclick=\"getElementById('search').value='';this.form.submit();\" />";
echo "</td><td nowrap=\"nowrap\">$lists</td></tr></table>";
The table for the items must embedded in a “div”:

Code: Select all

echo "<div id=\"tablecell\">";

TABLE

echo “</div>”;

Some small changes

I have changed this it isn’t necessary at all but usefully.

Code: Select all

$mosConfig_absolute_path -> JPATH_SITE

$mosConfig_absolute_path . ‘/administrator/components/’ -> JPATH_ADMINISTRATOR.'/components/'

Re: Experiences making rd glossary compatible to J1.1!

Posted: Tue Feb 21, 2006 10:04 am
by Apollo
Very usefull.

Thanx

Re: Experiences making rd glossary compatible to J1.1!

Posted: Tue Feb 21, 2006 2:37 pm
by Jinx
Hi Robert,

Could u pass this information on to the standards & guidelines working group. They will probably use it to improve the information on the wiki. Thanks.

Re: Experiences making rd glossary compatible to J1.1!

Posted: Wed Feb 22, 2006 3:25 pm
by Beat
Jinx wrote: Hi Robert,

Could u pass this information on to the standards & guidelines working group. They will probably use it to improve the information on the wiki. Thanks.
Got it :)

I lost that post and kept looking for it to add to wiki !

Now that's a sticky, will be easier.

Will add the BC problems which are kept unsolved in 1.1 dev to wiki later this week.

Thanks for the clear feed-backs.

Re: RD Glossary

Posted: Wed Feb 22, 2006 3:46 pm
by Jinx
Thanks Beat, wiki is looking great so far. If u need any feedback u know where to find me ;)

Re: RD Glossary

Posted: Thu May 04, 2006 8:43 am
by jwr
just a small remark on the first entry of this thread, as i am working on a comp myself.

Usage of mosconfig global variables :

To obtain the live-site string,  I code it as follows :

global $mainframe
$live_site= $mainframe->getCfg( 'live_site' )
echo $live_site

which works for me.
JW

Re: RD Glossary

Posted: Mon Nov 13, 2006 4:00 pm
by wilded1
I have made a change in rd_glossary.html.php to repeat index at bottom of the glossary page.

Find:

Code: Select all

// Output definitionlist
		if (count($rows)) {
			$dl = HtmlRdGlossary::buildTermList($rows, $saveItemid,$params);
			echo $dl;
		} else {
			echo _RD_GLOSSARY_NO_ITEMS;	
		}		
Add below:

Code: Select all

// Output index
		$HtmlIndex = HtmlRdGlossary::buildIndex($index, $saveItemid, $acat);
		if ($HtmlIndex) {
			echo $HtmlIndex;
		}
PS does anyone know if
RD Glossary can be made to see terms within itself?
i.e

Act Of Parliament
    Parliamentary legislation giving legal criteria, constraints and parameters.


Amendment
    A proposed change in a draft Bill or an Act of Parliament.  Sometimes legislation amends earlier Acts.


The above text "Act of Parliament" to cross reference to the term Act Of Parliament


Regards Dave

Re: RD Glossary

Posted: Wed Sep 26, 2007 11:50 am
by rdeutz
wilded1 wrote:
PS does anyone know if
RD Glossary can be made to see terms within itself?
Yes I know that ;), atm not possible but planned for the 1.5 version.