https://wiki.openoffice.org/w/api.php?action=feedcontributions&user=Ptoye&feedformat=atomApache OpenOffice Wiki - User contributions [en]2024-03-19T12:45:33ZUser contributionsMediaWiki 1.23.13https://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Strings_(Runtime_Library)Documentation/BASIC Guide/Strings (Runtime Library)2018-04-09T17:14:14Z<p>Ptoye: /* Case conversion */</p>
<hr />
<div>{{Documentation/BASICGuideTOC/v2<br />
|ShowPrevNext=block<br />
|ShowPrevPage=block<br />
|PrevPage=Documentation/BASIC Guide/Conversion Functions (Runtime Library)<br />
|NextPage=Documentation/BASIC Guide/Date and Time (Runtime Library)<br />
|runtime=block<br />
}}<br />
{{DISPLAYTITLE:Strings ({{OOo}} BASIC Runtime Library)}}<br />
__NOTOC__ <br />
== Working with Sets of Characters ==<br />
<br />
When administering strings, {{OOo}} Basic uses the set of Unicode characters. The <tt>Asc</tt> and <tt>Chr</tt> functions allow the Unicode value belonging to a character to be established and/or the corresponding character to be found for a Unicode value. The following expressions assign the various Unicode values to the code variable:<br />
<br />
<source lang="oobas"><br />
Code = Asc("A") ' Latin letter A (Unicode-value 65)<br />
Code = Asc("€") ' Euro character (Unicode-value 8364)<br />
Code = Asc("Л") ' Cyrillic letter Л (Unicode-value 1083)<br />
</source><br />
<br />
Conversely, the expression <br />
<br />
<source lang="oobas"><br />
MyString = Chr(13)<br />
</source><br />
<br />
ensures that the <tt>MyString</tt> string is initialized with the value of the number <tt>13</tt>, which stands for a hard line break.<br />
<br />
The <tt>Chr</tt> command is often used in Basic languages to insert control characters in a string. The assignment<br />
<br />
<source lang="oobas"><br />
MyString = Chr(9) + "This is a test" + Chr(13)<br />
</source><br />
<br />
therefore ensures that the text is preceded by a tab character (Unicode-value 9) and that a hard line break (Unicode-value 13) is added after the text. <br />
<br />
== Case conversion ==<br />
<br />
{{OOo}} Basic provides two functions to convert lowercase characters in a string to uppercase and vice-versa.<br />
<br />
;<tt>LCase(MyString)</tt>: converts all letters in <tt>MyString</tt> to lowercase. Only uppercase letters within the string are converted. All lowercase letters and nonletter characters remain unchanged.<br />
;<tt>UCase(MyString)</tt>: converts all letters in <tt>MyString</tt> to uppercase. Only lowercase letters within the string are converted. All uppercase letters and nonletter characters remain unchanged.<br />
<br />
== Accessing Parts of a String ==<br />
<br />
{{OOo}} Basic provides four functions that return partial strings, plus a length function: <br />
<br />
;<tt>Left(MyString, Length)</tt>:returns the first <tt>Length</tt> characters of <tt>MyString</tt>.<br />
;<tt>Right(MyString, Length)</tt>:returns the last <tt>Length</tt> characters of <tt>MyString</tt>.<br />
;<tt>Mid(MyString, Start, Length)</tt>:returns first <tt>Length</tt> characters of <tt>MyString</tt> as of the <tt>Start</tt> position.<br />
;<tt>Trim(MyString)</tt>:removes all leading and trailing spaces from <tt>MyString</tt>.<br />
;<tt>Len(MyString)</tt>:returns the number of characters in <tt>MyString</tt>.<br />
<br />
Unlike array subscripts, character positions in a string start with <tt>1</tt>. Here are a few example calls for the named functions: <br />
<br />
<source lang="oobas"><br />
Dim MyString As String<br />
Dim MyResult As String<br />
Dim MyLen As Integer<br />
<br />
MyString = "This is a small test"<br />
MyResult = Left(MyString,5) ' Provides the string "This "<br />
MyResult = Right(MyString, 5) ' Provides the string " test"<br />
MyResult = Mid(MyString, 8, 5) ' Provides the string " a sm"<br />
MyResult = Trim(" String with spaces ") ' Provides the string "String with spaces"<br />
MyLen = Len(MyString) ' Provides the value 20<br />
</source><br />
<br />
== Search and Replace ==<br />
<br />
{{OOo}} Basic provides the <tt>InStr</tt> function for searching for a partial string within another string:<br />
<br />
<source lang="oobas"><br />
PositionOfMatch = InStr(MyString, StringToFind)<br />
</source><br />
<br />
The <tt>StringToFind</tt> parameter specifies the string to be searched for within <tt>MyString</tt>. The function returns a number that contains the position at which the <tt>StringToFind</tt> first appears within <tt>MyString</tt>; a return value of zero indicates no match. If you want to find other matches for the string, the function also provides the opportunity to specify an optional start position from which {{OOo}} Basic begins the search. In this case, the syntax of the function is:<br />
<br />
<source lang="oobas"><br />
PositionOfMatch = InStr(StartPosition, MyString, StringToFind)<br />
</source><br />
<br />
In the previous examples, <tt>InStr</tt> ignores uppercase and lowercase characters. To change the search so that <tt>InStr</tt> is case sensitive, add the parameter <tt>0</tt>, as shown in the following example:<br />
<br />
<source lang="oobas"><br />
PositionOfMatch = InStr(MyString, StringToFind, 0)<br />
</source><br />
<br />
Using the previous functions for editing strings, programmers can search for and replace one string in another string: <br />
<br />
<source lang="oobas"><br />
Function Replace(Source As String, Search As String, NewPart As String)<br />
Dim Result As String<br />
Dim StartPos As Long<br />
Dim CurrentPos As Long<br />
<br />
Result = ""<br />
StartPos = 1<br />
CurrentPos = 1<br />
<br />
If Search = "" Then<br />
Result = Source<br />
Else <br />
Do While CurrentPos <> 0<br />
CurrentPos = InStr(StartPos, Source, Search)<br />
If CurrentPos <> 0 Then<br />
Result = Result + Mid(Source, StartPos, _<br />
CurrentPos - StartPos)<br />
Result = Result + NewPart<br />
StartPos = CurrentPos + Len(Search)<br />
Else<br />
Result = Result + Mid(Source, StartPos, Len(Source))<br />
End If ' Position <> 0<br />
Loop <br />
End If <br />
<br />
Replace = Result<br />
End Function<br />
</source><br />
<br />
The function searches through the transferred <tt>Search</tt> string in a loop by means of <tt>InStr</tt> in the original term <tt>Source</tt>. If it finds the search term, it takes the part before the expression and writes it to the <tt>Result</tt> return buffer. It adds the <tt>NewPart</tt> section at the point of the search term <tt>Search</tt>. If no more matches are found for the search term, the function establishes the part of the string still remaining and adds this to the return buffer. It returns the string produced in this way as the result of the replacement process.<br />
<br />
Since replacing parts of character sequences is one of the most frequently used functions, the <tt>Mid</tt> function in {{OOo}} Basic has been extended so that this task is performed automatically. The following example replaces three characters with the string <tt>is</tt> from the sixth position of the <tt>MyString</tt> string.<br />
<br />
<source lang="oobas"><br />
Dim MyString As String<br />
<br />
MyString = "This was my text"<br />
Mid(MyString, 6, 3, "is")<br />
</source><br />
<br />
Or this much simpler function can be used. First it splits "Source" dividing it at all "Search", and joins the parts back with "NewPart". So Replace("This is a test", " ", "_") yields "This_is_a_test" :D<br />
<br />
<source lang="oobas"><br />
Function Replace(Source As String, Search As String, NewPart As String)<br />
Dim Result As String <br />
Result = join(split(Source, Search), NewPart)<br />
Replace = Result<br />
End Function<br />
</source><br />
<br />
<br />
{{Documentation/Caution|When it is used with 4 arguments, to replace a sub-string in a string, <tt>Mid</tt> is an '''instruction''', not a function : it does not return any value !}}<br />
<br />
== Formatting Strings ==<br />
<br />
The <tt>Format</tt> function formats numbers as a string. To do this, the function expects a <tt>Format</tt> expression to be specified, which is then used as the template for formatting the numbers. Each place holder within the template ensures that this item is formatted correspondingly in the output value. The five most important place holders within a template are the zero (<tt>0</tt>), pound sign (<tt>#</tt>), period (<tt>.</tt>), comma (<tt>,</tt>) and dollar sign (<tt>$</tt>) characters. <br />
<br />
The <tt>0</tt> character within the template ensures that a number is always placed at the corresponding point. If a number is not provided, 0 is displayed in its place. <br />
<br />
A <tt>.</tt> stands for the decimal point symbol defined by the operating system in the country-specific settings.<br />
<br />
The example below shows how the <tt>0</tt> and <tt>.</tt> characters can define the digits after the decimal point in an expression:<br />
<br />
<source lang="oobas"><br />
MyFormat = "0.00"<br />
MyString = Format(-1579.8, MyFormat) ' Provides "-1579,80"<br />
MyString = Format(1579.8, MyFormat) ' Provides "1579,80"<br />
MyString = Format(0.4, MyFormat) ' Provides "0,40"<br />
MyString = Format(0.434, MyFormat) ' Provides "0,43"<br />
</source><br />
<br />
In the same way, zeros can be added in front of a number to achieve the desired length:<br />
<br />
<source lang="oobas"><br />
MyFormat = "0000.00"<br />
MyString = Format(-1579.8, MyFormat) ' Provides "-1579,80"<br />
MyString = Format(1579.8, MyFormat) ' Provides "1579,80"<br />
MyString = Format(0.4, MyFormat) ' Provides "0000,40"<br />
MyString = Format(0.434, MyFormat) ' Provides "0000,43"<br />
</source><br />
<br />
A <tt>,</tt> represents the character that the operating system uses for a thousands separator, and the <tt>#</tt> stands for a digit or place that is only displayed if it is required by the input string.<br />
<br />
<source lang="oobas"><br />
MyFormat = "#,##0.00"<br />
MyString = Format(-1579.8, MyFormat) ' Provides "-1.579,80"<br />
MyString = Format(1579.8, MyFormat) ' Provides "1.579,80"<br />
MyString = Format(0.4, MyFormat) ' Provides "0,40"<br />
MyString = Format(0.434, MyFormat) ' Provides "0,43"<br />
</source><br />
<br />
In place of the <tt>$</tt> place holder, the <tt>Format</tt> function displays the relevant currency symbol defined by the system (this example assumes a European locale has been defined):<br />
<br />
<source lang="oobas"><br />
MyFormat = "#,##0.00 $" <br />
MyString = Format(-1579.8, MyFormat) ' Provides "-1.579,80 €" <br />
MyString = Format(1579.8, MyFormat) ' Provides "1.579,80 €" <br />
MyString = Format(0.4, MyFormat) ' Provides "0,40 €" <br />
MyString = Format(0.434, MyFormat) ' Provides "0,43 €" <br />
</source><br />
<br />
The format instructions used in VBA for formatting date and time details can also be used:<br />
<br />
<source lang="oobas"><br />
sub main<br />
dim myDate as date<br />
myDate = "01/06/98"<br />
TestStr = Format(myDate, "mm-dd-yyyy") ' 01-06-1998<br />
MsgBox TestStr<br />
end sub <br />
</source><br />
<br />
<br />
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Strings (Runtime Library)}}<br />
{{PDL1}}</div>Ptoyehttps://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Strings_(Runtime_Library)Documentation/BASIC Guide/Strings (Runtime Library)2018-04-09T17:13:47Z<p>Ptoye: Added new section "Case conversion"</p>
<hr />
<div>{{Documentation/BASICGuideTOC/v2<br />
|ShowPrevNext=block<br />
|ShowPrevPage=block<br />
|PrevPage=Documentation/BASIC Guide/Conversion Functions (Runtime Library)<br />
|NextPage=Documentation/BASIC Guide/Date and Time (Runtime Library)<br />
|runtime=block<br />
}}<br />
{{DISPLAYTITLE:Strings ({{OOo}} BASIC Runtime Library)}}<br />
__NOTOC__ <br />
== Working with Sets of Characters ==<br />
<br />
When administering strings, {{OOo}} Basic uses the set of Unicode characters. The <tt>Asc</tt> and <tt>Chr</tt> functions allow the Unicode value belonging to a character to be established and/or the corresponding character to be found for a Unicode value. The following expressions assign the various Unicode values to the code variable:<br />
<br />
<source lang="oobas"><br />
Code = Asc("A") ' Latin letter A (Unicode-value 65)<br />
Code = Asc("€") ' Euro character (Unicode-value 8364)<br />
Code = Asc("Л") ' Cyrillic letter Л (Unicode-value 1083)<br />
</source><br />
<br />
Conversely, the expression <br />
<br />
<source lang="oobas"><br />
MyString = Chr(13)<br />
</source><br />
<br />
ensures that the <tt>MyString</tt> string is initialized with the value of the number <tt>13</tt>, which stands for a hard line break.<br />
<br />
The <tt>Chr</tt> command is often used in Basic languages to insert control characters in a string. The assignment<br />
<br />
<source lang="oobas"><br />
MyString = Chr(9) + "This is a test" + Chr(13)<br />
</source><br />
<br />
therefore ensures that the text is preceded by a tab character (Unicode-value 9) and that a hard line break (Unicode-value 13) is added after the text. <br />
<br />
== Case conversion ==<br />
<br />
{{OOo}} Basic provide two functions to convert lowercase characters in a string to uppercase and vice-versa.<br />
<br />
;<tt>LCase(MyString)</tt>: converts all letters in <tt>MyString</tt> to lowercase. Only uppercase letters within the string are converted. All lowercase letters and nonletter characters remain unchanged.<br />
;<tt>UCase(MyString)</tt>: converts all letters in <tt>MyString</tt> to uppercase. Only lowercase letters within the string are converted. All uppercase letters and nonletter characters remain unchanged.<br />
<br />
== Accessing Parts of a String ==<br />
<br />
{{OOo}} Basic provides four functions that return partial strings, plus a length function: <br />
<br />
;<tt>Left(MyString, Length)</tt>:returns the first <tt>Length</tt> characters of <tt>MyString</tt>.<br />
;<tt>Right(MyString, Length)</tt>:returns the last <tt>Length</tt> characters of <tt>MyString</tt>.<br />
;<tt>Mid(MyString, Start, Length)</tt>:returns first <tt>Length</tt> characters of <tt>MyString</tt> as of the <tt>Start</tt> position.<br />
;<tt>Trim(MyString)</tt>:removes all leading and trailing spaces from <tt>MyString</tt>.<br />
;<tt>Len(MyString)</tt>:returns the number of characters in <tt>MyString</tt>.<br />
<br />
Unlike array subscripts, character positions in a string start with <tt>1</tt>. Here are a few example calls for the named functions: <br />
<br />
<source lang="oobas"><br />
Dim MyString As String<br />
Dim MyResult As String<br />
Dim MyLen As Integer<br />
<br />
MyString = "This is a small test"<br />
MyResult = Left(MyString,5) ' Provides the string "This "<br />
MyResult = Right(MyString, 5) ' Provides the string " test"<br />
MyResult = Mid(MyString, 8, 5) ' Provides the string " a sm"<br />
MyResult = Trim(" String with spaces ") ' Provides the string "String with spaces"<br />
MyLen = Len(MyString) ' Provides the value 20<br />
</source><br />
<br />
== Search and Replace ==<br />
<br />
{{OOo}} Basic provides the <tt>InStr</tt> function for searching for a partial string within another string:<br />
<br />
<source lang="oobas"><br />
PositionOfMatch = InStr(MyString, StringToFind)<br />
</source><br />
<br />
The <tt>StringToFind</tt> parameter specifies the string to be searched for within <tt>MyString</tt>. The function returns a number that contains the position at which the <tt>StringToFind</tt> first appears within <tt>MyString</tt>; a return value of zero indicates no match. If you want to find other matches for the string, the function also provides the opportunity to specify an optional start position from which {{OOo}} Basic begins the search. In this case, the syntax of the function is:<br />
<br />
<source lang="oobas"><br />
PositionOfMatch = InStr(StartPosition, MyString, StringToFind)<br />
</source><br />
<br />
In the previous examples, <tt>InStr</tt> ignores uppercase and lowercase characters. To change the search so that <tt>InStr</tt> is case sensitive, add the parameter <tt>0</tt>, as shown in the following example:<br />
<br />
<source lang="oobas"><br />
PositionOfMatch = InStr(MyString, StringToFind, 0)<br />
</source><br />
<br />
Using the previous functions for editing strings, programmers can search for and replace one string in another string: <br />
<br />
<source lang="oobas"><br />
Function Replace(Source As String, Search As String, NewPart As String)<br />
Dim Result As String<br />
Dim StartPos As Long<br />
Dim CurrentPos As Long<br />
<br />
Result = ""<br />
StartPos = 1<br />
CurrentPos = 1<br />
<br />
If Search = "" Then<br />
Result = Source<br />
Else <br />
Do While CurrentPos <> 0<br />
CurrentPos = InStr(StartPos, Source, Search)<br />
If CurrentPos <> 0 Then<br />
Result = Result + Mid(Source, StartPos, _<br />
CurrentPos - StartPos)<br />
Result = Result + NewPart<br />
StartPos = CurrentPos + Len(Search)<br />
Else<br />
Result = Result + Mid(Source, StartPos, Len(Source))<br />
End If ' Position <> 0<br />
Loop <br />
End If <br />
<br />
Replace = Result<br />
End Function<br />
</source><br />
<br />
The function searches through the transferred <tt>Search</tt> string in a loop by means of <tt>InStr</tt> in the original term <tt>Source</tt>. If it finds the search term, it takes the part before the expression and writes it to the <tt>Result</tt> return buffer. It adds the <tt>NewPart</tt> section at the point of the search term <tt>Search</tt>. If no more matches are found for the search term, the function establishes the part of the string still remaining and adds this to the return buffer. It returns the string produced in this way as the result of the replacement process.<br />
<br />
Since replacing parts of character sequences is one of the most frequently used functions, the <tt>Mid</tt> function in {{OOo}} Basic has been extended so that this task is performed automatically. The following example replaces three characters with the string <tt>is</tt> from the sixth position of the <tt>MyString</tt> string.<br />
<br />
<source lang="oobas"><br />
Dim MyString As String<br />
<br />
MyString = "This was my text"<br />
Mid(MyString, 6, 3, "is")<br />
</source><br />
<br />
Or this much simpler function can be used. First it splits "Source" dividing it at all "Search", and joins the parts back with "NewPart". So Replace("This is a test", " ", "_") yields "This_is_a_test" :D<br />
<br />
<source lang="oobas"><br />
Function Replace(Source As String, Search As String, NewPart As String)<br />
Dim Result As String <br />
Result = join(split(Source, Search), NewPart)<br />
Replace = Result<br />
End Function<br />
</source><br />
<br />
<br />
{{Documentation/Caution|When it is used with 4 arguments, to replace a sub-string in a string, <tt>Mid</tt> is an '''instruction''', not a function : it does not return any value !}}<br />
<br />
== Formatting Strings ==<br />
<br />
The <tt>Format</tt> function formats numbers as a string. To do this, the function expects a <tt>Format</tt> expression to be specified, which is then used as the template for formatting the numbers. Each place holder within the template ensures that this item is formatted correspondingly in the output value. The five most important place holders within a template are the zero (<tt>0</tt>), pound sign (<tt>#</tt>), period (<tt>.</tt>), comma (<tt>,</tt>) and dollar sign (<tt>$</tt>) characters. <br />
<br />
The <tt>0</tt> character within the template ensures that a number is always placed at the corresponding point. If a number is not provided, 0 is displayed in its place. <br />
<br />
A <tt>.</tt> stands for the decimal point symbol defined by the operating system in the country-specific settings.<br />
<br />
The example below shows how the <tt>0</tt> and <tt>.</tt> characters can define the digits after the decimal point in an expression:<br />
<br />
<source lang="oobas"><br />
MyFormat = "0.00"<br />
MyString = Format(-1579.8, MyFormat) ' Provides "-1579,80"<br />
MyString = Format(1579.8, MyFormat) ' Provides "1579,80"<br />
MyString = Format(0.4, MyFormat) ' Provides "0,40"<br />
MyString = Format(0.434, MyFormat) ' Provides "0,43"<br />
</source><br />
<br />
In the same way, zeros can be added in front of a number to achieve the desired length:<br />
<br />
<source lang="oobas"><br />
MyFormat = "0000.00"<br />
MyString = Format(-1579.8, MyFormat) ' Provides "-1579,80"<br />
MyString = Format(1579.8, MyFormat) ' Provides "1579,80"<br />
MyString = Format(0.4, MyFormat) ' Provides "0000,40"<br />
MyString = Format(0.434, MyFormat) ' Provides "0000,43"<br />
</source><br />
<br />
A <tt>,</tt> represents the character that the operating system uses for a thousands separator, and the <tt>#</tt> stands for a digit or place that is only displayed if it is required by the input string.<br />
<br />
<source lang="oobas"><br />
MyFormat = "#,##0.00"<br />
MyString = Format(-1579.8, MyFormat) ' Provides "-1.579,80"<br />
MyString = Format(1579.8, MyFormat) ' Provides "1.579,80"<br />
MyString = Format(0.4, MyFormat) ' Provides "0,40"<br />
MyString = Format(0.434, MyFormat) ' Provides "0,43"<br />
</source><br />
<br />
In place of the <tt>$</tt> place holder, the <tt>Format</tt> function displays the relevant currency symbol defined by the system (this example assumes a European locale has been defined):<br />
<br />
<source lang="oobas"><br />
MyFormat = "#,##0.00 $" <br />
MyString = Format(-1579.8, MyFormat) ' Provides "-1.579,80 €" <br />
MyString = Format(1579.8, MyFormat) ' Provides "1.579,80 €" <br />
MyString = Format(0.4, MyFormat) ' Provides "0,40 €" <br />
MyString = Format(0.434, MyFormat) ' Provides "0,43 €" <br />
</source><br />
<br />
The format instructions used in VBA for formatting date and time details can also be used:<br />
<br />
<source lang="oobas"><br />
sub main<br />
dim myDate as date<br />
myDate = "01/06/98"<br />
TestStr = Format(myDate, "mm-dd-yyyy") ' 01-06-1998<br />
MsgBox TestStr<br />
end sub <br />
</source><br />
<br />
<br />
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Strings (Runtime Library)}}<br />
{{PDL1}}</div>Ptoyehttps://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Strings_(Runtime_Library)Documentation/BASIC Guide/Strings (Runtime Library)2018-04-09T17:06:17Z<p>Ptoye: /* Accessing Parts of a String */ Added the Trim function</p>
<hr />
<div>{{Documentation/BASICGuideTOC/v2<br />
|ShowPrevNext=block<br />
|ShowPrevPage=block<br />
|PrevPage=Documentation/BASIC Guide/Conversion Functions (Runtime Library)<br />
|NextPage=Documentation/BASIC Guide/Date and Time (Runtime Library)<br />
|runtime=block<br />
}}<br />
{{DISPLAYTITLE:Strings ({{OOo}} BASIC Runtime Library)}}<br />
__NOTOC__ <br />
== Working with Sets of Characters ==<br />
<br />
When administering strings, {{OOo}} Basic uses the set of Unicode characters. The <tt>Asc</tt> and <tt>Chr</tt> functions allow the Unicode value belonging to a character to be established and/or the corresponding character to be found for a Unicode value. The following expressions assign the various Unicode values to the code variable:<br />
<br />
<source lang="oobas"><br />
Code = Asc("A") ' Latin letter A (Unicode-value 65)<br />
Code = Asc("€") ' Euro character (Unicode-value 8364)<br />
Code = Asc("Л") ' Cyrillic letter Л (Unicode-value 1083)<br />
</source><br />
<br />
Conversely, the expression <br />
<br />
<source lang="oobas"><br />
MyString = Chr(13)<br />
</source><br />
<br />
ensures that the <tt>MyString</tt> string is initialized with the value of the number <tt>13</tt>, which stands for a hard line break.<br />
<br />
The <tt>Chr</tt> command is often used in Basic languages to insert control characters in a string. The assignment<br />
<br />
<source lang="oobas"><br />
MyString = Chr(9) + "This is a test" + Chr(13)<br />
</source><br />
<br />
therefore ensures that the text is preceded by a tab character (Unicode-value 9) and that a hard line break (Unicode-value 13) is added after the text. <br />
<br />
== Accessing Parts of a String ==<br />
<br />
{{OOo}} Basic provides four functions that return partial strings, plus a length function: <br />
<br />
;<tt>Left(MyString, Length)</tt>:returns the first <tt>Length</tt> characters of <tt>MyString</tt>.<br />
;<tt>Right(MyString, Length)</tt>:returns the last <tt>Length</tt> characters of <tt>MyString</tt>.<br />
;<tt>Mid(MyString, Start, Length)</tt>:returns first <tt>Length</tt> characters of <tt>MyString</tt> as of the <tt>Start</tt> position.<br />
;<tt>Trim(MyString)</tt>:removes all leading and trailing spaces from <tt>MyString</tt>.<br />
;<tt>Len(MyString)</tt>:returns the number of characters in <tt>MyString</tt>.<br />
<br />
Unlike array subscripts, character positions in a string start with <tt>1</tt>. Here are a few example calls for the named functions: <br />
<br />
<source lang="oobas"><br />
Dim MyString As String<br />
Dim MyResult As String<br />
Dim MyLen As Integer<br />
<br />
MyString = "This is a small test"<br />
MyResult = Left(MyString,5) ' Provides the string "This "<br />
MyResult = Right(MyString, 5) ' Provides the string " test"<br />
MyResult = Mid(MyString, 8, 5) ' Provides the string " a sm"<br />
MyResult = Trim(" String with spaces ") ' Provides the string "String with spaces"<br />
MyLen = Len(MyString) ' Provides the value 20<br />
</source><br />
<br />
== Search and Replace ==<br />
<br />
{{OOo}} Basic provides the <tt>InStr</tt> function for searching for a partial string within another string:<br />
<br />
<source lang="oobas"><br />
PositionOfMatch = InStr(MyString, StringToFind)<br />
</source><br />
<br />
The <tt>StringToFind</tt> parameter specifies the string to be searched for within <tt>MyString</tt>. The function returns a number that contains the position at which the <tt>StringToFind</tt> first appears within <tt>MyString</tt>; a return value of zero indicates no match. If you want to find other matches for the string, the function also provides the opportunity to specify an optional start position from which {{OOo}} Basic begins the search. In this case, the syntax of the function is:<br />
<br />
<source lang="oobas"><br />
PositionOfMatch = InStr(StartPosition, MyString, StringToFind)<br />
</source><br />
<br />
In the previous examples, <tt>InStr</tt> ignores uppercase and lowercase characters. To change the search so that <tt>InStr</tt> is case sensitive, add the parameter <tt>0</tt>, as shown in the following example:<br />
<br />
<source lang="oobas"><br />
PositionOfMatch = InStr(MyString, StringToFind, 0)<br />
</source><br />
<br />
Using the previous functions for editing strings, programmers can search for and replace one string in another string: <br />
<br />
<source lang="oobas"><br />
Function Replace(Source As String, Search As String, NewPart As String)<br />
Dim Result As String<br />
Dim StartPos As Long<br />
Dim CurrentPos As Long<br />
<br />
Result = ""<br />
StartPos = 1<br />
CurrentPos = 1<br />
<br />
If Search = "" Then<br />
Result = Source<br />
Else <br />
Do While CurrentPos <> 0<br />
CurrentPos = InStr(StartPos, Source, Search)<br />
If CurrentPos <> 0 Then<br />
Result = Result + Mid(Source, StartPos, _<br />
CurrentPos - StartPos)<br />
Result = Result + NewPart<br />
StartPos = CurrentPos + Len(Search)<br />
Else<br />
Result = Result + Mid(Source, StartPos, Len(Source))<br />
End If ' Position <> 0<br />
Loop <br />
End If <br />
<br />
Replace = Result<br />
End Function<br />
</source><br />
<br />
The function searches through the transferred <tt>Search</tt> string in a loop by means of <tt>InStr</tt> in the original term <tt>Source</tt>. If it finds the search term, it takes the part before the expression and writes it to the <tt>Result</tt> return buffer. It adds the <tt>NewPart</tt> section at the point of the search term <tt>Search</tt>. If no more matches are found for the search term, the function establishes the part of the string still remaining and adds this to the return buffer. It returns the string produced in this way as the result of the replacement process.<br />
<br />
Since replacing parts of character sequences is one of the most frequently used functions, the <tt>Mid</tt> function in {{OOo}} Basic has been extended so that this task is performed automatically. The following example replaces three characters with the string <tt>is</tt> from the sixth position of the <tt>MyString</tt> string.<br />
<br />
<source lang="oobas"><br />
Dim MyString As String<br />
<br />
MyString = "This was my text"<br />
Mid(MyString, 6, 3, "is")<br />
</source><br />
<br />
Or this much simpler function can be used. First it splits "Source" dividing it at all "Search", and joins the parts back with "NewPart". So Replace("This is a test", " ", "_") yields "This_is_a_test" :D<br />
<br />
<source lang="oobas"><br />
Function Replace(Source As String, Search As String, NewPart As String)<br />
Dim Result As String <br />
Result = join(split(Source, Search), NewPart)<br />
Replace = Result<br />
End Function<br />
</source><br />
<br />
<br />
{{Documentation/Caution|When it is used with 4 arguments, to replace a sub-string in a string, <tt>Mid</tt> is an '''instruction''', not a function : it does not return any value !}}<br />
<br />
== Formatting Strings ==<br />
<br />
The <tt>Format</tt> function formats numbers as a string. To do this, the function expects a <tt>Format</tt> expression to be specified, which is then used as the template for formatting the numbers. Each place holder within the template ensures that this item is formatted correspondingly in the output value. The five most important place holders within a template are the zero (<tt>0</tt>), pound sign (<tt>#</tt>), period (<tt>.</tt>), comma (<tt>,</tt>) and dollar sign (<tt>$</tt>) characters. <br />
<br />
The <tt>0</tt> character within the template ensures that a number is always placed at the corresponding point. If a number is not provided, 0 is displayed in its place. <br />
<br />
A <tt>.</tt> stands for the decimal point symbol defined by the operating system in the country-specific settings.<br />
<br />
The example below shows how the <tt>0</tt> and <tt>.</tt> characters can define the digits after the decimal point in an expression:<br />
<br />
<source lang="oobas"><br />
MyFormat = "0.00"<br />
MyString = Format(-1579.8, MyFormat) ' Provides "-1579,80"<br />
MyString = Format(1579.8, MyFormat) ' Provides "1579,80"<br />
MyString = Format(0.4, MyFormat) ' Provides "0,40"<br />
MyString = Format(0.434, MyFormat) ' Provides "0,43"<br />
</source><br />
<br />
In the same way, zeros can be added in front of a number to achieve the desired length:<br />
<br />
<source lang="oobas"><br />
MyFormat = "0000.00"<br />
MyString = Format(-1579.8, MyFormat) ' Provides "-1579,80"<br />
MyString = Format(1579.8, MyFormat) ' Provides "1579,80"<br />
MyString = Format(0.4, MyFormat) ' Provides "0000,40"<br />
MyString = Format(0.434, MyFormat) ' Provides "0000,43"<br />
</source><br />
<br />
A <tt>,</tt> represents the character that the operating system uses for a thousands separator, and the <tt>#</tt> stands for a digit or place that is only displayed if it is required by the input string.<br />
<br />
<source lang="oobas"><br />
MyFormat = "#,##0.00"<br />
MyString = Format(-1579.8, MyFormat) ' Provides "-1.579,80"<br />
MyString = Format(1579.8, MyFormat) ' Provides "1.579,80"<br />
MyString = Format(0.4, MyFormat) ' Provides "0,40"<br />
MyString = Format(0.434, MyFormat) ' Provides "0,43"<br />
</source><br />
<br />
In place of the <tt>$</tt> place holder, the <tt>Format</tt> function displays the relevant currency symbol defined by the system (this example assumes a European locale has been defined):<br />
<br />
<source lang="oobas"><br />
MyFormat = "#,##0.00 $" <br />
MyString = Format(-1579.8, MyFormat) ' Provides "-1.579,80 €" <br />
MyString = Format(1579.8, MyFormat) ' Provides "1.579,80 €" <br />
MyString = Format(0.4, MyFormat) ' Provides "0,40 €" <br />
MyString = Format(0.434, MyFormat) ' Provides "0,43 €" <br />
</source><br />
<br />
The format instructions used in VBA for formatting date and time details can also be used:<br />
<br />
<source lang="oobas"><br />
sub main<br />
dim myDate as date<br />
myDate = "01/06/98"<br />
TestStr = Format(myDate, "mm-dd-yyyy") ' 01-06-1998<br />
MsgBox TestStr<br />
end sub <br />
</source><br />
<br />
<br />
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Strings (Runtime Library)}}<br />
{{PDL1}}</div>Ptoyehttps://wiki.openoffice.org/wiki/Documentation/DevGuide/Basic/Option_ButtonDocumentation/DevGuide/Basic/Option Button2018-03-28T14:11:26Z<p>Ptoye: Corrected reference from GetState method to State property to conform with the code snippet</p>
<hr />
<div>{{Documentation/DevGuide/BasicTOC<br />
|Basic2d=block<br />
|BasicControls=block<br />
|ShowPrevNext=block<br />
|PrevPage=Documentation/DevGuide/Basic/Check Box<br />
|NextPage=Documentation/DevGuide/Basic/Label Field<br />
}}<br />
{{Documentation/DevGuideLanguages|Documentation/DevGuide/Basic/{{SUBPAGENAME}}}} <br />
{{DISPLAYTITLE:Option Button}}<br />
An option button control <idl>com.sun.star.awt.UnoControlRadioButton</idl> is a simple switch with two states, that is selected by the user. Usually option buttons are used in groups to display several options, that the user may select. While option buttons and check boxes seem to be similar, selecting one option button deselects all the other option buttons in the same group.<br />
<br />
{{Documentation/Note|Note, that option buttons that belong to the same group must have consecutive tab indices. Two groups of option buttons can be separated by any control with a tab index that is between the tab indices of the two groups.}}<br />
<br />
Usually a group box, or horizontal and vertical lines are used, because those controls visually group the option buttons together, but in principle this can be any control. There is no functional relationship between an option button and a group box. Option buttons are grouped through consecutive tab indices only.<br />
<br />
The state of an option button is accessed by the <code>State</code> property of its Model, where 0 is not checked and 1 is checked.<br />
<source lang="oobas"><br />
Function IsChecked( oOptionButtonModel As Object ) As Boolean<br />
Dim bChecked As Boolean<br />
If oOptionButtonModel.State = 1 Then<br />
bChecked = True<br />
Else<br />
bChecked = False<br />
End If<br />
IsChecked = bChecked<br />
End Function<br />
</source><br />
The state of an option button is also returned by the <code>State</code> property of the control, where False is not checked and True is checked. The code is greatly simplified: <br />
<source lang="oobas"><br />
If oOptionButton.State Then<br />
' The option is checked<br />
Else<br />
' The option is not checked<br />
End If<br />
</source><br />
<br />
{{PDL1}}<br />
<br />
[[Category:Documentation/Developer's Guide/Basic and Dialogs]]</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_GuideTalk:Documentation/BASIC Guide2018-03-02T10:22:55Z<p>Ptoye: Lack of definition of "Object"</p>
<hr />
<div>Templates used in this book:<br />
* [[Template:Documentation/BASICGuideTOC/v2]] - '''TRANSLATE''': Scripted translation, no action by translation team required.<br />
* [[Template:Documentation/MasterTOC]] - '''TRANSLATE''': Onetime translation<br />
* [[Template:Documentation/Note]] - No translation required<br />
* [[Template:Documentation/Tip]] - No translation required<br />
* [[Template:Documentation/Caution]] - No translation required<br />
* [[Template:Download Collection]] - '''TRANSLATE''': One time translation<br />
* [[Template:InterWiki Languages AdminGuide]] - No translation required<br />
* [[Template:OOo]] - No translation required<br />
* [[Template:PDL1]] - '''TRANSLATE''': One time translation.<br />
<br />
Items marked "One time translation" only need to be translated once per language.<br />
<br />
Items marked "Scripted translation, no action by translation team" can be automatically translated.<br />
<br />
<br />
== Оff-line version? ==<br />
<br />
Where i can download off-line version of "Programming Guide for OpenOffice's BASIC"? --[[User:Nashev|Nashev]] 19:08, 1 June 2008 (CEST)<br />
<br />
== Co-ask: I need the off-line version ==<br />
<br />
Hope anybody can help to create an Off-Line version, better in PDF format.<br />
<br />
:You can create your own PDF or ODT using the "Create a book" links in the Wiki menu on left and add each page to your personal Collection. There is also a master collection linked at the bottom of the first page of this book. Click the link, and then click the Download as PDF or ODT link in the left navigation box --[[User:Ccornell|ccornell]] 09:54, 12 December 2008 (CET)<br />
<br />
I am trying to get a single PDF as well. Using the page function it appears I have to go to every single page in the large document and add it to the collection. That is unusable. I can not find what is referred to as a master collection link. That would make sense if available.<br />
<br />
: There are a couple of choices if you do not want to create your own custom Collection: <br />
:# At the top of the first page in each "book" (applies to the Developer's Guide, The BASIC Guide, and the Amdinistration Guide) there is a link to the Master Collection for that book (this link used to be at the bottom of the first page, but was moved to the top to make it easier to find). That link is at the top of the page this Talk page belongs to. Click the link, and then click Load Collection on the left. This will take you to the Collection overview page. On the right of this page you will find the information and links you need to download a PDF or ODT.<br />
:# Go to the main [[Documentation]] Wiki page and in the second column under the heading "Developers/SysAdmin Guides" there is a link titled "Download these guides as PDF / ODT" that will take you to a page with prepared PDFs of the various Wiki books. These are static PDFs and ODTs based on the state of the Wiki documentation when the snapshot was made. They are not updated until the next major OOo release.<br />
: --[[User:Ccornell|ccornell]] 10:43, 8 June 2009 (UTC)<br />
<br />
----<br />
<br />
The link to the odt and pdf version of the document is not working it leads you to a<br />
HTML page with something like a table of contents. But if you click on any of the links<br />
it will just bring you back to the wiki HTML page of that chapter.<br />
In other words the odt/pdf version link below the heading is miss-leading and should<br />
better be removed.<br />
: --[[User:Rudolfo|Rudolfo]] 11:38, 3 August 2010 (UTC)<br />
<br />
:The link works as designed. It should not be removed.<br />
:You click the download link for ODF/ODT it takes you to a table of contents as you described. You then must click "Load this book as your current book" and from there you can chose how to download the book (as ODT, PDF, Docbook XML, or hard copy printed). This method guarantees you get a current snapshot of the docs as they are the moment you click the download link. If we link to static PDFs and ODTs they are always out of date. --[[User:Ccornell|ccornell]] 12:01, 3 August 2010 (UTC)<br />
<br />
:: Yes, you are right. I figured this out when I looked at the wiki documentation and learned that the "collection" concept is an extension. The root for this kind of missunderstandings is probably that users expect to directly download a file (see sourceforge and others) when they click on a link with a pdf icon.<br />
:: --[[User:Rudolfo|Rudolfo]] 12:34, 3 August 2010 (UTC)<br />
<br />
:: Is this broken right now? I see no link to "Load this book as your current book". I wondered if there was an extension I needed to activate for this, but the "Extensions" link is broken.<br />
:: [[User:Kfitzner|Kfitzner]] 20:39, 25 December 2011 (UTC)<br />
<br />
== Where are the objects? ==<br />
This guide seems to be missing one vital item of information - the Object data type. Nowhere can I find any information about how to create or use object variables, what the default value of such a variable is (presumably some sort of null object), whether it is possible to set an object variable to the "null" value, or how to test that an object variable is "null". The ISNULL function is referenced in some of the other documentation but never defined. If this is meant to be a language definition, it fails on this point. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:22, 2 March 2018 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/DevGuide/ProUNO/Basic/Instantiating_UNO_ServicesTalk:Documentation/DevGuide/ProUNO/Basic/Instantiating UNO Services2018-02-28T17:16:29Z<p>Ptoye: Note about singletons</p>
<hr />
<div>== Singletons ==<br />
This page gives no hint as to how to access singletons. I am not enough of an expert on the subject to provide accurate text, but will provide a draft version if someone here with enough knowledge is prepared to vet it for accuracy. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 17:16, 28 February 2018 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Extensions_development_basicExtensions development basic2018-02-27T15:34:05Z<p>Ptoye: /* Introducing the OpenOffice.org API */</p>
<hr />
<div>'''Getting started tutorial''' <br />
<br />
This page provides a getting started guide for writing macros in OpenOffice.org Basic. It assumes some prior programming knowledge. Please edit this page to make it more readable. I hope you will find it useful.<br />
<br />
If you already know the basics then you may want the [[CookBook]] for wrappers and examples.<br />
<br />
<br />
==Where do I write the code?==<br />
OpenOffice.org Basic code is stored in modules within libraries. A library can be: <br />
<br />
*Shared (for a network install - OOo Macros & Dialogs) <br />
*Just for the current user (My Macros & Dialogs) <br />
*Within a document or template, so that its code is only available when that document is open.<br />
<br />
Libraries stored in a document can easily be copied, transported and distributed with the document.<br />
<br />
Libraries not stored in a document or template (that is libraries that are shared or for the current user) are referred to as '''OpenOffice.org libraries'''. <br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br> '''Tools > Options… > OpenOffice.org > Paths > BASIC'''. <br />
<br />
{| border="1"<br />
|'''Note'''<br />
|Do not copy or move libraries using operating system commands. Use the macro organizer or package manager instead.<br />
|-<br />
|}<br />
<br />
<br />
Modules within libraries have a maximum size of 64kb. A library can contain up to 16,000 modules. <br />
<br />
For more information see online help for: Modules and Libraries.<br />
<br />
==Accessing the IDE==<br />
To access the IDE for the first time: <br />
<br />
OpenOffice.org 1.1.x: '''Tools > Macros > Macro… >''' <br />
<br />
OpenOffice.org 1.9.x and above: '''Tools > Macros > Organize macros > OpenOffice.org Basic… >''' <br />
<br />
To get started we will use Module1 in the Standard library which is stored for the current user only: <br />
<br />
Type a name for the new macro: '''HelloWorld''' <br />
<br />
In the macro from listbox select '''Standard''' <br />
<br />
Click '''New''' <br />
<br />
You should now see something like: <br />
<br />
<source lang="oobas"><br />
REM ***** BASIC *****<br />
<br />
Sub Main<br />
<br />
End Sub<br />
<br />
Sub HelloWorld<br />
<br />
End Sub<br />
</source><br />
The cursor will be positioned at the start of the <tt>Sub HelloWorld</tt> line. <br />
<br />
{| border="1"<br />
|'''Note'''<br />
|Now that while the IDE is running it can be accessed from the OpenOffice.org Window menu, or the task panel provided by the operating system.<br />
|-<br />
|}<br />
<br />
==Entering the code==<br />
Select and delete: <br />
<br />
<source lang="oobas"><br />
REM ***** BASIC *****<br />
<br />
Sub Main<br />
<br />
End Sub<br />
</source><br />
Below the line "Sub HelloWorld" type <tt>msgbox "Hello World!"</tt>, so that the editor looks like: <br />
<br />
<source lang="oobas"><br />
Sub HelloWorld<br />
msgbox "Hello World!"<br />
End Sub<br />
</source><br />
{| border="1"<br />
|'''Notes:'''<br />
|The IDE does not provide code completion or help with command syntax as you type, but to get help on a Basic command position the cursor in the command and press F1.<br> OpenOffice.org Basic commands are not case sensitive. Thus msgbox, MSGBOX and Msgbox will all work.<br> Strings are enclosed in double quotes.<br />
|-<br />
|}<br />
<br />
==Running the code==<br />
There are several ways of running the Basic code, these include: <br />
<br />
*Directly from the IDE. There is a run button on the macro bar (by default the third control on the second toolbar). This will run the first macro in the current module. <br />
<br />
*From the tools menu:<br />
<br />
**(Version 1.1.x) '''Tools > Macros > Macro…''';<br />
<br />
**(Version 1.9.x and above) '''Tools > Macro > Run Macro…''' <br />
<br />
*Assigning the macro to a [[ key press]]. <br />
<br />
*Assigning the macro to a [[ menu entry]]. <br />
<br />
*Assigning the macro to a toolbar button. <br />
<br />
*Creating a [[ control in a document]]. <br />
<br />
*Assigning the macro to an event. <br />
<br />
For now try running the "HelloWorld" subroutine by clicking the '''Run''' button. A small dialog titled "soffice" with the text "Hello World!" and an OK button should be displayed.<br />
<br />
==Saving the code==<br />
The code gets automatically saved whenever the container for the code gets saved. Thus, if the code is in an OpenOffice.org library (shared or users) then it gets automatically saved when OpenOffice.org exits. If the code is in a library which is part of a document it gets saved whenever the document is saved. <br />
<br />
On the Standard toolbar (by default the top toolbar) in the IDE there is a save button. If the code is in a document or template then clicking this button saves the entire document or template. If the code is in an OpenOffice.org library then just the current library gets saved. <br />
<br />
<br />
==Variables==<br />
It is possible to force variable declaration with <tt>Option Explicit</tt> at the top of the module. For a discussion on whether to declare variables or not, see: [[http://www.oooforum.org/forum/viewtopic.phtml?t=5845 this discussion]]. <br />
<br />
In that discussion the initial author of this wiki thought that variables should always be declared. Since then he has changed to not declaring them. In short it is generally a personal preference. In either case, it is the initial authors preference that variables be named according to the following convention, which is used in the examples in this Wiki: <br />
<br />
The first letter of the variable name indicates the type of value that the variable is going to hold, as per the following table (based on a table in Tutorial.pdf by Sun) <br />
<br />
{| border="1"<br />
|'''''Letter'''''<br />
|'''''Meaning'''''<br />
|-<br />
|a<br />
|Structure<br />
|-<br />
|b<br />
|Boolean (TRUE or FALSE)<br />
|-<br />
|e<br />
|Enumeration. This variable can only have one of a limited set of values.<br />
|-<br />
|f<br />
|Float (3.402823 x 1038 to 1.401298 x 10-45. A single variable can take up to four bytes)<br> Double (1.79769313486232 x 10308 to 4.94065645841247 x 10-324. A double variable can take up to eight bytes)<br> Currency (-922337203685477.5808 to +922337203685477.5807 and takes up to eight bytes of memory)<br />
|-<br />
|m<br />
|Array (aka sequence aka matrix)<br />
|-<br />
|n<br />
|Integer (-32768 to 32767.) or<br> Long (-2147483648 and 2147483647).<br />
|-<br />
|o<br />
|Object, service, or interface<br />
|-<br />
|s<br />
|String (A string variable can store up to 65535 Unicode characters).<br />
|-<br />
|x<br />
|Interface, to indicate that only operations of a particular interface of an object are used<br />
|-<br />
|v<br />
|Variant, Any<br />
|-<br />
|}<br />
<br />
<br />
Use long descriptive variable names making use of camel case: <tt>nMsgBoxReturn</tt><br />
<br />
{| border="1"<br />
|'''Note:'''<br />
|User-defined OpenOffice.org Basic variables are not case sensitive. But UNO-API constants ''are'' case sensitive.<br />
|}<br />
<br />
<br />
Convention exceptions to long descriptive names are for index variables where <tt>i, j,</tt> and <tt>k</tt> are commonly used, and for when a string is being built-up, where <tt>s</tt> is commonly used. <br />
<br />
Edit sub HelloWorld so that it looks like the following and run it: <br />
<br />
<source lang="oobas"><br />
sub HelloWorld<br />
dim i as integer 'This line is optional<br />
for i = 0 to 2<br />
'These lines are indented for ease of reading only.<br />
'All your code should be like this for long-term survival.<br />
msgbox "Hello World " & i<br />
next i<br />
end sub<br />
</source><br />
For more information on variables see the online help for "using variables".<br />
<br />
==Understanding the OpenOffice.org API==<br />
This section will start with an example. The remainder of this section aims to give information so that the example can be understood and expanded upon. <br />
<br />
Try running the following code with different types of documents being active. <br />
<br />
<source lang="oobas"><br />
sub main<br />
'BasicLibraries.loadLibrary("XrayTool")<br />
'xray thisComponent<br />
msgbox fnWhichComponent(thisComponent)<br />
end sub<br />
<br />
<br />
function fnWhichComponent(oDoc) as string<br />
if HasUnoInterfaces(oDoc, "com.sun.star.lang.XServiceInfo") then <br />
if oDoc.supportsService ("com.sun.star.text.GenericTextDocument") then<br />
fnWhichComponent = "Text"<br />
elseif oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument") then<br />
fnWhichComponent = "Spreadsheet"<br />
elseif oDoc.supportsService("com.sun.star.presentation.PresentationDocument") then<br />
fnWhichComponent = "Presentation"<br />
elseif oDoc.supportsService("com.sun.star.drawing.GenericDrawingDocument") then<br />
fnWhichComponent = "Drawing"<br />
else<br />
fnWhichComponent = "Oops current document something else"<br />
end if<br />
else<br />
fnWhichComponent = "Not a document"<br />
end if<br />
End function<br />
</source><br />
<br />
===Subroutine naming convention===<br />
In the above example the user defined function has a name that starts with the letters "fn". This is the initial author's convention so that people know that this is a user defined function. Similarly, the initial author uses the convention that user defined subroutines start with the letters "sub". When learning a language and an API it can be difficult to know what is built-in and what has been defined elsewhere. This document/wiki will use this convention for naming functions and subroutines.<br />
<br />
===Introducing the OpenOffice.org API===<br />
This section introduces the following terms: <br />
<br />
* Interface <br />
* Module <br />
* Service <br />
* Method <br />
* Property <br />
<br />
Understanding the difference between an interface and a service and what a module is, is not essential to being able to write extensions for OpenOffice.org, but it does help interpreting the documentation, and for introspection purposes. You may need to read this section at least twice. <br />
<br />
An '''interface''' is a ''definition'' of a set of methods (and their arguments) that a service which implements that interface must have. <br />
<br />
Interfaces are grouped together in '''modules''' for naming purposes. All interfaces (and services) start with the name "com.sun.star" then the name of the module then the name of the interface (or service). <br />
<br />
For example most services provide the com.sun.star.beans.XPropertySet interface. This interface is stored in the module "beans" and provides access to the properties of a service. A '''property''' is a value whereas a '''method''' is an action. <br />
<br />
An OpenOffice.org object can have many services. <br />
<br />
An OpenOffice.org object may have a service, which implements an interface, in which a method description says that another OpenOffice.org object is returned.<br />
<br />
Further clarification can be found in [https://wiki.openoffice.org/wiki/Documentation/DevGuide/FirstSteps/Objects,_Interfaces,_and_Services Objects, Interfaces and Services]<br />
<br />
===Introspection===<br />
<tt>HasUnoInterfaces</tt> is an OpenOffice.org Basic function for introspection. See this [[http://www.oooforum.org/forum/viewtopic.phtml?t=7068 link]] for information on introspection in other languages. <br />
<br />
<tt>HasUnoInterfaces</tt> returns true if all of the specified interfaces are available for the specified object. <br />
<br />
Most OpenOffice.org objects provide the method <tt>supportsService</tt> because they have the interface <idl>com.sun.star.lang.XServiceInfo</idl>. <br />
<br />
In the above example, the OpenOffice.org Basic command <tt>HasUnoInterfaces</tt> checks that the current document has the interface <idl>com.sun.star.lang.XServiceInfo</idl>, because if it doesn't have that interface then it doesn't have the method <tt>supportsService</tt>, and a run time error would occur if such an object tried to access its nonexistent method. <br />
<br />
<tt>SupportsService</tt> is a method which returns true if the specified service is available. The above examples checks for a service to determine the type of document that is currently active.<br />
<br />
<br />
===Xray tool===<br />
Using <tt>HasUnoInterfaces</tt> and <tt>supportsService</tt> gives information about an object at run time, but checking an object like this would be a nightmare for learning? Thankfully, Bernard Marcelly has come to our rescue with the Xray tool. The Xray tool is available from: [[http://berma.pagesperso-orange.fr/Files_en/XrayTool60_en.odt odt installer(en)]]. Download the odt file, open the document in OpenOffice.org, follow the instructions for installation and set-up. <br />
<br />
Part of the Xray tool set-up is to specify a local copy of the OpenOffice.org SDK. Download the [http://www.openoffice.org/download/other.html#tested-sdk Apache OpenOffice 3.4 SDK] and extract it. <br />
<br />
In the above example, at the start of the code, there are two commented lines (comments start with an apostrophe): <br />
<br />
<source lang="oobas"><br />
'BasicLibraries.loadLibrary("XrayTool")<br />
'xray thisComponent<br />
</source><br />
Now that you have the Xray tool installed, uncomment these lines (remove the apostrophes) and rerun the macro.<br />
<br />
[[image:Xray60en.png]]<br />
<br />
'''BasicLibraries''' is an OpenOffice.org Basic command that returns an object for accessing the OpenOffice.org libraries. The <tt>loadLibrary</tt> method ensures that the routines in that library are available for use. <br />
<br />
<tt>xray</tt> specifies the <tt>xray</tt> subroutine within the library <tt>XrayTool</tt>. <tt>thisComponent</tt> is the object that is being passed to <tt>xray</tt> for introspection. <br />
<br />
To find the object that you want to work with often requires finding or creating it starting from either <tt>StarDesktop</tt> or <tt>thisComponent</tt>.<br />
<br />
===Desktop, documents, and current selection===<br />
<tt>StarDesktop</tt> and <tt>thisComponent</tt> are OpenOffice.org Basic commands that refer to the application and currently active document respectively. <br />
<br />
Unlike Microsoft Office, OpenOffice.org is one application with different components. When running some code it maybe useful to check which component is currently active. The above code demonstrates how that checking process can be done. <br />
<br />
The Desktop that <tt>StarDesktop</tt> refers to is conceptual (historically it actually existed) and can be thought of as the OpenOffice.org application.<br />
<br />
==Creating new documents==<br />
To create a new text document: <br />
<br />
<source lang="oobas"><br />
oDoc = StarDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, Array())<br />
</source><br />
To create a new spreadsheet document: <br />
<br />
<source lang="oobas"><br />
oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())<br />
</source><br />
An easier approach would be to write a simple function: <br />
<source lang="oobas"><br />
function fnNewDoc(sDocType as string)<br />
fnNewDoc = StarDesktop.loadComponentFromURL("private:factory/" & sDocType , "_blank", 0, Array())<br />
end function<br />
</source><br />
Then creating new documents can be achieved with: <br />
<br />
<source lang="oobas"><br />
oDoc = fnNewDoc("swriter")<br />
oDoc = fnNewDoc("scalc")<br />
oDoc = fnNewDoc("simpress")<br />
oDoc = fnNewDoc("sdraw")<br />
oDoc = fnNewDoc("smath")<br />
</source><br />
See http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XComponentLoader.html .<br />
<br />
==To open a document==<br />
The following example shows how to open a file. For information on URLs in OpenOffice.org see [[ URL Basics]]. <br />
<br />
<source lang="oobas"><br />
sFile = "C:\Documents and Settings\danny\Desktop\MyCalc.sxc" ' Windows<br />
sFile = "/home/danny/Desktop/MyCalc.sxc" ' Linux<br />
sURL = ConvertToURL(sFile)<br />
oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())<br />
</source><br />
Again it may make sense to make this easier by writing a simple function: <br />
<br />
<source lang="oobas"><br />
function fnOpenDoc(sFile)<br />
sURL = ConvertToURL(sFile)<br />
fnOpenDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())<br />
end function<br />
</source><br />
Examples of calling the function: <br />
<br />
<source lang="oobas"><br />
oDoc = fnOpenDoc("C:\Documents and Settings\danny\Desktop\MyCalc.sxc") ' Windows<br />
oDoc = fnOpenDoc("/home/danny/Desktop/MyCalc.sxc") ' Linux<br />
</source><br />
<br />
==Opening a new file from a template==<br />
If you want to open a file using an existing template, use the template name instead of the file name. An untitled document will be opened from the template. <br />
<br />
Alternatively, set the "AsTemplate" property in the MediaDescriptor for the opened template to TRUE, and a new file will be opened based on the template, even if the template was stored by OO as an ordinary file, rather than a template. [[Opening a document]] has some examples.<br />
<br />
If the template location is known, simply use it. However, OpenOffice keeps at least two sets of templates: global templates available to all users and "My Templates" available to the current user, and the locations of the directories are not obviously available. They can be found by means of the [http://www.openoffice.org/api/docs/common/ref/com/sun/star/util/PathSettings.html PathSettings service] which allows the user to examine the various directory paths known to OpenOffice. The Template property of this service returns a string which is a semi-colon separated list of URLS, each of which represents a possible location for the desired template. It is necessary to search this string and the resulting directories to find the template. The following code finds a user template and opens a document based on it:<br />
<br />
<source lang="oobas"><br />
Dim PathService as Object<br />
Dim TemplatePath as String ' The path list<br />
Dim SCPos as Integer ' The position of the next semi-colon <br />
Dim MyTemplatePath as String ' The URL for the user template<br />
<br />
' substitute your template name here<br />
const TemplateName = "MyTemplate.ott"<br />
<br />
' This seems to be the place in which OO stores user templates<br />
const UserTemplateDirectory="/user/template"<br />
<br />
<br />
PathService=CreateUNOService("com.sun.star.util.PathSettings")<br />
TemplatePath=PathService.Template<br />
MyTemplatePath=""<br />
<br />
do while len(TemplatePath) >0<br />
SCPos=InStr (TemplatePath,";")<br />
if SCPos>0 then<br />
MyTemplatePath=Left(TemplatePath, SCPos-1)<br />
else<br />
MyTemplatePath=TemplatePath<br />
end if<br />
<br />
' NOTE: as well as file URLs there are some others which should be ignored<br />
if InStr(myTemplatePath,"file:///")=1 And _<br />
Right(myTemplatePath,14) = UserTemplateDirectory then<br />
exit do <br />
end if<br />
TemplatePath=mid(TemplatePath, SCPos+1, len(TemplatePath)-SCPos)<br />
MyTemplatePath="" <br />
loop<br />
<br />
if MyTemplatePath<>"" then<br />
TemplatePath=ConverttoURL(TemplateName)<br />
MyTemplatePath=MyTemplatePath & "/" & TemplateName<br />
InvoiceDoc=StarDesktop.LoadComponentfromURL(MytemplatePath, "_blank", 0, Array())<br />
else<br />
MsgBox "Cannot find the template directory"<br />
end if<br />
</source><br />
<br />
This code does not check that the desired template actually exists; if it doesn't, the LoadComponentfromURL call will fail.<br />
<br />
==Current Selection==<br />
It is common to want to run some code that affects the current selection. <tt>ThisComponent</tt> has the method <tt>getCurrentSelection</tt>. Since many different types of objects could possibly be selected it is common to check that the currently selected object has the service that contains the method that we want to apply to the object. <br />
<br />
Edit the main subroutine to the following and rerun it on a text document with different selections. (To select more than one block of text hold down the control key). <br />
<br />
<source lang="oobas"><br />
sub main<br />
BasicLibraries.loadLibrary("XrayTool")<br />
if fnWhichComponent(thisComponent) = "Text" then<br />
oCurSelection = thisComponent.getCurrentSelection()<br />
'xray oCurSelection<br />
if oCurSelection.supportsService("com.sun.star.text.TextRanges") then<br />
msgbox "There are " & oCurSelection.getCount() & _<br />
" selections in the current text document."<br />
end if<br />
end if<br />
end sub<br />
</source><br />
With nothing selected the number of selections is one - the insertion point, with one block of text selected the count is still one, but with two blocks of text the count is three - the insertion point and the two blocks of selected text. <br />
<br />
Exercise 1: Modify the above code so that it works on selected cell ranges in a spreadsheet. <br />
<br />
Question1: For two blocks of cells selected, what would be the count for the number of selections?<br />
<br />
==Properties==<br />
Uncomment <tt>'xray oCurSelection</tt> so that xray runs, to see that the object that <tt>oCurSelection</tt> points to has a "property" called <tt>Count</tt> with a description of "pseudo-prop, read only". It is possible in OpenOffice.org Basic to write <tt>oCurSelection.count</tt>, but as this is not possible in all other languages accessing the OpenOffice.org API, this Wiki will try to always use the method approach. (I say try because I have not been in the habit of doing this and sometimes I may forget). <br />
<br />
This next example demonstrates changing a property value for the current selections. <br />
<br />
<source lang="oobas"><br />
sub main<br />
BasicLibraries.loadLibrary("XrayTool")<br />
if fnWhichComponent(thisComponent) = "Text" then<br />
oCurSelection = thisComponent.getCurrentSelection()<br />
if oCurSelection.supportsService("com.sun.star.text.TextRanges") then<br />
nCount = oCurSelection.Count<br />
'xray oCurSelection.getByIndex(0)<br />
'Warning: The insertion point will have the same action applied twice<br />
'in this case it doesn't matter, but in others it might.<br />
for i = 0 to nCount - 1<br />
oCurSelection.getByIndex(i).setPropertyValue("CharStyleName", "Strong Emphasis")<br />
next<br />
end if<br />
end if<br />
end sub<br />
</source><br />
In OpenOffice.org Basic it is possible to shorten the assignment line to: <br />
<br />
<source lang="oobas"><br />
oCurSelection(i).CharStyleName = "Strong Emphasis"<br />
</source><br />
This wiki will try to use the full methods for both indexing and assigning properties. The rationale is that this makes converting the code to other languages easier and also helps the learner to understand what is happening (again I have not been in the habit of doing this so some examples may slip past me). <br />
<br />
Exercise 2: Rewrite the above code so that the warning can be removed. <br />
<br />
See [[ Current selection]].<br />
<br />
==Iterative Access to Subordinate Objects (Enumeration access)==<br />
Sometimes to access the desired object an enumeration is required. For example paragraphs, within a document or within a selection. <br />
<br />
When a Writer document is active and some text is selected, both <tt>thisDocument.getText()</tt> and <tt>thisComponent.getCurrentSelection().getByIndex(i)</tt> have the service: <idl>com.sun.star.text.TextRange</idl>, which has the interface: <idl>com.sun.star.container.XContentEnumerationAccess</idl>. It is possible to create an enumeration of the paragraphs for the current document or for a particular selection. <br />
<br />
<source lang="oobas"><br />
' Create enumeration object<br />
oTextElementEnum = thisComponent.getText().createEnumeration()<br />
'or thisComponent.getCurrentSelection().getByIndex(i).createEnumeration()<br />
<br />
' loop over all text elements<br />
while oTextElementEnum.hasMoreElements()<br />
oTextElement = oTextElementEnum.nextElement<br />
if oTextElement.supportsService("com.sun.star.text.TextTable") then<br />
MsgBox "The current block contains a table."<br />
end if<br />
if oTextElement.supportsService("com.sun.star.text.Paragraph") then<br />
MsgBox "The current block contains a paragraph."<br />
end if<br />
wend<br />
</source><br />
Exercise 3: Extend the above example to display in a message box all text portions that are bold.<br />
<br />
==Named access==<br />
Some objects provide named access to a particular type of subordinate object, some others indexed access, and some both named and indexed access. <br />
<br />
For example if the current document in OpenOffice.org is a spreadsheet then to access a particular sheet can be done by index access: <br />
<br />
<source lang="oobas"><br />
oSheet = thisComponent.getSheets.getByIndex(0)<br />
</source><br />
or named access: <br />
<br />
<source lang="oobas"><br />
oSheet = thisComponent.getSheets.getByName("Sheet1")<br />
</source><br />
To check if an object with a particular name already exists use <tt>hasByName</tt>, for example: <br />
<br />
<source lang="oobas"><br />
if thisComponent.getSheets.hasByName("Sheet1") then<br />
</source><br />
To loop through all the available object names can be done like: <br />
<br />
<source lang="oobas"><br />
mNames = thisComponent.getSheets.getElementnames<br />
for i = lbound(mNames) to ubound(mNames)<br />
msgbox mNames(i)<br />
next<br />
</source><br />
<br />
<br />
Some named subordinate objects also provide the interface: <idl>com.sun.star.container.XNameContainer</idl>. This interface defines that such objects should have the following methods: <tt>insertByName</tt>, <tt>insertNewByName</tt>, <tt>replaceByname</tt> and <tt>removeByName</tt>. <br />
<br />
E.g. <br />
<br />
<source lang="oobas"><br />
thisComponent.getSheets.insertNewByName("NewSheet", 0)<br />
</source><br />
<br />
==Create new objects==<br />
Some objects have services which implement interfaces to provide specific methods for creating a particular type of object. <br />
<br />
For example if the current document is a Writer document then <tt>thisComponent.getText</tt> is an object that provides the service <idl>com.sun.star.text.Text</idl>, which implements the interface <idl>com.sun.star.text.XSimpleText</idl>, which defines the methods <tt>createTextCursor</tt> and <tt>createTextCursorByRange</tt>. Both of these methods create a text cursor for accessing the text of the document. These cursors are quite independent of the view cursor. The view cursor is visible on the screen and is manipulated by the user (and can be manipulated by program control), whereas a text cursor is not visible on the screen and is solely used by program control. The following code snippet demonstrates creating a new text cursor, such that it starts at the same location as the view cursor and is then moved independent of the view cursor. <br />
<br />
<source lang="oobas"><br />
oVC = thisComponent.getCurrentController.getViewCursor<br />
oCursor = oVC.getText.createTextCursorByRange(oVC)<br />
oCursor.gotoStartOfSentence(false)<br />
oCursor.gotoEndOfSentence(true)<br />
msgbox oCursor.getString<br />
</source><br />
The string returned by the <tt>oCursor.getString</tt> method is the text of the sentence in which the view cursor currently resides.<br />
<br />
Some objects are context dependent and get created using the method <tt>createInstance</tt> which is defined in the interface <idl>com.sun.star.lang.XMultiServiceFactory</idl>. For example to add a rectangle to the first page of a drawing document: <br />
<br />
<source lang="oobas"><br />
dim aPoint as new com.sun.star.awt.Point<br />
dim aSize as new com.sun.star.awt.Size<br />
<br />
aPoint.x = 1000<br />
aPoint.y = 1000<br />
<br />
aSize.Width = 10000<br />
aSize.Height = 10000<br />
<br />
oRectangleShape = thisComponent.createInstance("com.sun.star.drawing.RectangleShape")<br />
oRectangleShape.Size = aSize<br />
oRectangleShape.Position = aPoint<br />
<br />
thisComponent.getDrawPages.getByIndex(0).add(oRectangleShape)<br />
</source><br />
<br />
This example also uses ''UNO structs''. See below for more information on UNO structs. <br />
<br />
Some objects are context independent; to create these objects, use the OpenOffice.org Basic command <tt>createUnoService</tt>. For example, to create the equivalent to <tt>StarDesktop</tt>: <br />
<br />
<source lang="oobas"><br />
oDesktop = createUnoService("com.sun.star.frame.Desktop")<br />
</source><br />
<br />
The process that I use to determine how to access or create an object is as follows: <br />
<br />
Does the object already exist, if so I should be able to access it from something like <tt>thisComponent</tt>. <br />
<br />
Will the new object belong to another object, if so does the owner have a specific method for creating the object, if so use it. <br />
<br />
The new object will belong to another object, but that object doesn't provide a specific method for creating it, but does provide <tt>createInstance</tt>. If the object doesn't provide <tt>createInstance</tt> are you sure you are using the correct object, or is it context independent. <br />
<br />
I have found working out how to create an object to be quite difficult with existing documentation so I hope that this document/wiki will eventually make this clear. <br />
<br />
<br />
===UNO structs===<br />
UNO structures can be declared using the OpenOffice.org Basic command <tt>dim as new</tt>: <br />
<br />
<source lang="oobas"><br />
dim aPoint as new com.sun.star.awt.Point<br />
</source><br />
Or by using the OpenOffice.org Basic command <tt>createUnoStruct</tt>: <br />
<br />
<source lang="oobas"><br />
aPoint = createUnoStruct("com.sun.star.awt.Point")<br />
</source><br />
<br />
{| border="1"<br />
|'''Note:'''<br />
|When declaring UNO structs, case is important. Note that everything up to the name of the struct is lowercase, and that the name of the struct is in TitleCase.<br />
|}<br />
<br />
<br />
<br />
<br />
===Creating Listeners and Handlers===<br />
Through the user interface it is possible to assign macros to some events: <br />
<br />
OpenOffice.org versions 1.1.x: '''Tools > Configure… > Events'''. <br />
<br />
OpenOffice.org versions 1.9.x and above: '''Tools > Customize… > Events'''. <br />
<br />
It is also possible to assign macros to a wider range of events using the OpenOffice.org Basic command <tt>CreateUnoListener</tt>. This same command is used for creating both listeners and handlers. A listener checks for an event and always allows other listeners to respond to the event as well. A handler listens for an event, and can optionally consume the event so that other listeners don't get to act on it. <br />
<br />
The following example creates a keyHandler: <br />
<br />
<source lang="oobas"><br />
global IannzExampleKeyHandler<br />
<br />
sub SetupKeyHandler<br />
oController = thisComponent.currentController<br />
IannzExampleKeyHandler = CreateUnoListener("KeyHandler_","com.sun.star.awt.XKeyHandler")<br />
oController.addKeyHandler(IannzExampleKeyHandler) ' Register the listener<br />
end sub<br />
<br />
sub RemoveKeyHandler<br />
thisComponent.currentController.removeKeyHandler(IannzExampleKeyHandler)<br />
end sub<br />
<br />
sub KeyHandler_disposing<br />
end sub<br />
<br />
function KeyHandler_keyReleased(oKeyEvent as new com.sun.star.awt.KeyHandler) as boolean<br />
KeyHandler_keyReleased = False <br />
end function<br />
<br />
function KeyHandler_keyPressed(oKeyEvent as new com.sun.star.awt.KeyHandler) as boolean<br />
KeyHandler_keyPressed = false 'Let other listeners handle the event<br />
if oKeyEvent.modifiers = com.sun.star.awt.KeyModifier.MOD2 then 'Control key was pressed<br />
if oKeyEvent.keyCode = com.sun.star.awt.Key.Q then<br />
msgbox "Alt + Q was pressed"<br />
KeyHandler_keyPressed = true 'Don't let other listeners process this event<br />
end if<br />
end if<br />
end function<br />
</source><br />
A variable declared as global keeps its value even after the macro exits. In this case we want to be able to use this variable later to remove the handler. As variables declared globally could be used in other libraries, to try and avoid conflict I start all my global variables with Iannz my registered name for the OpenOffice.org web site. <br />
<br />
<tt>sub SetupKeyHandler</tt> sets up the handler. The first parameter to <tt>CreateUnoListener</tt> is the starting name for the methods that will be called when that type of event occurs: in this example, <tt>"KeyHandler_"</tt>. <br />
<br />
The second parameter is the name of the interface for the listener or handler, "<idl>com.sun.star.awt.XKeyHandler</idl>". The name is case sensitive, everything up to and including the module name is always lowercase, the name of the interface always starts with "X" and the remainder is in TitleCase. <br />
<br />
Use the SDK to find out what methods the interface must supply. You must supply routines for all of these methods even if you don't intend to use them. You also need to supply a disposing method. The names of these routines start with the string given in the first parameter to <tt>CreateUnoListener</tt>, in this example <tt>"KeyHandler_"</tt>. <br />
<br />
Thus in the example there is <tt>KeyHandler_disposing</tt> and <tt>KeyHandler_keyReleased</tt> which don't actually do anything but are required, and <tt>KeyHandler_keyPressed</tt> which actually does the job. <br />
<br />
<tt>sub RemoveKeyHandler</tt> demonstrates how to remove the handler.<br />
<br />
==OpenOffice.org constants==<br />
The above example uses OpenOffice.org constants. <br />
<br />
E.g. <tt>com.sun.star.awt.KeyModifier.MOD2</tt><br />
<br />
OpenOffice.org constants are case sensitive. Everything up to and including the module name is always lowercase. The constant group is in TitleCase. The actual constant name is always UPPERCASE. <br />
<br />
Programmers not using OpenOffice.org Basic may not have access to these constants. <br />
<br />
<br />
==Using the recorder==<br />
See [[ The OpenOffice.org recorder and UNO dispatch calls]] section for a discussion on recording UNO Dispatch commands versus writing API calls.<br />
<br />
== See also==<br />
* [[CookBook|CookBook]]<br />
* [[Text_cursor|Text Cursor in OOoBasic]]<br />
* [[Framework/Article/Easy_To_Use_Message_Boxes|Easy To Use Message Boxes]]<br />
* [[Programming_OooWriter |Programming OOoWriter in C++]] where OOoBasic records are used in C++<br />
* A [[XIntrospection_Interface|XIntrospection Interface]] short description. XRay uses this interface.<br />
* Download Bernard Marcelly's [http://berma.pagesperso-orange.fr/Files_en/XrayTool60_en.odt XRay OOoBasic tool] <br />
* See [[Object Inspector|The New Object Inspector]] and [[BASIC/UNO_Object_Browser|The BASIC UNO Object Browser]]<br />
<br />
[[Category:Extensions]]<br />
[[Category:StarBasic]]<br />
[[Category:Documentation/Candidate]]</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Extensions_development_basicTalk:Extensions development basic2018-02-27T15:32:56Z<p>Ptoye: /* Definition of "Service" */ Note about added link</p>
<hr />
<div>== Name Change Proposal ==<br />
<br />
I think the name of this article should be changed to ''OpenOffice.org Basic''. I know that the ''OpenOffice.org'' part sounds redundant because the whole wiki is about OpenOffice.org. However, the title ''Basic'' would be too generic. Check out Wikipedia where there is already an article called ''StarOffice Basic''. Not much there though.<br />
<br />
Only reason I bring this up is that I had trouble finding out the basics of writing Basic code in OOo. I googled into the [[custom functions]] article and I scanned through Category:Basic:Tutorials and did not see anything. [[User:Jebix|Jebix]] 04:48, 6 July 2006 (CEST)<br />
<br />
May I suggest, as a compromise, "OO Basic"? It's not in Wikipedia.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:43, 22 January 2013 (UTC)<br />
<br />
== Path for the Makros ==<br />
<br />
this I found in the article:<br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br />
Tools > Options… > OpenOffice.org > Paths > BASIC<br />
<br />
but I can't find it there in 2.0.4<br />
<br />
Please Explain<br />
<br />
I'm interested to know where there diffenrent makros are saved and maybe change it<br />
<br />
<br />
Mechtilde<br />
<br />
== More help on opening and saving documents needed ==<br />
<br />
I'm trying to work out two things: how to open a document using an existing template, and how to save the resulting document. When I've worked it out, I'll try to edit this page, but some input from people who know more about it than myself would be useful.... [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:46, 22 January 2013 (UTC)<br />
<br />
There's also a minor typo in the examples: the "_blank" parameter is on one occasion typed as "&nbsp;blank". Interestingly, it still works, so it looks as if the API documentation is a bit wrong there. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:59, 22 January 2013 (UTC)<br />
<br />
A correction to the previous comment: in the Wikitext the underline is there. But on my browser (Firefox) it sometimes shows as a space. Can't think why, unless there are two different codes for the underline character which are mapped differently by Firefox.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:23, 1 February 2013 (UTC)<br />
<br />
== Paths for OO Basic code ==<br />
<br />
The text in Section 1 about the path for OO Basic macros seems to be out of date. Certainly in my OO3.4.1 there isn't an entry.<br />
<br />
This raises the question - how on earth does a user find the macro code?<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 14:22, 20 June 2013 (UTC)<br />
<br />
== Definition of "Service" ==<br />
<br />
The text says ''Understanding the difference between an interface and a service and what a module is, is not essential to being able to write extensions for OpenOffice.org, but it does help interpreting the documentation, and for introspection purposes.'' but then goes on to use the term "Service" without anywhere defining it. A paragraph defining "service" is desperately needed. I'd do it myself if I know what it was! [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:50, 26 February 2018 (UTC)<br />
<br />
I've now added a link to another wiki page, but for some reason couldn't get the internal wiki link to work - the "title". Can someone who knows how to do it please get it right for me? I'm not an experienced wiki editor. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:32, 27 February 2018 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Extensions_development_basicExtensions development basic2018-02-27T15:27:15Z<p>Ptoye: /* Introducing the OpenOffice.org API */ Added a paragraph linking to developer's guide defining interfaces and services.</p>
<hr />
<div>'''Getting started tutorial''' <br />
<br />
This page provides a getting started guide for writing macros in OpenOffice.org Basic. It assumes some prior programming knowledge. Please edit this page to make it more readable. I hope you will find it useful.<br />
<br />
If you already know the basics then you may want the [[CookBook]] for wrappers and examples.<br />
<br />
<br />
==Where do I write the code?==<br />
OpenOffice.org Basic code is stored in modules within libraries. A library can be: <br />
<br />
*Shared (for a network install - OOo Macros & Dialogs) <br />
*Just for the current user (My Macros & Dialogs) <br />
*Within a document or template, so that its code is only available when that document is open.<br />
<br />
Libraries stored in a document can easily be copied, transported and distributed with the document.<br />
<br />
Libraries not stored in a document or template (that is libraries that are shared or for the current user) are referred to as '''OpenOffice.org libraries'''. <br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br> '''Tools > Options… > OpenOffice.org > Paths > BASIC'''. <br />
<br />
{| border="1"<br />
|'''Note'''<br />
|Do not copy or move libraries using operating system commands. Use the macro organizer or package manager instead.<br />
|-<br />
|}<br />
<br />
<br />
Modules within libraries have a maximum size of 64kb. A library can contain up to 16,000 modules. <br />
<br />
For more information see online help for: Modules and Libraries.<br />
<br />
==Accessing the IDE==<br />
To access the IDE for the first time: <br />
<br />
OpenOffice.org 1.1.x: '''Tools > Macros > Macro… >''' <br />
<br />
OpenOffice.org 1.9.x and above: '''Tools > Macros > Organize macros > OpenOffice.org Basic… >''' <br />
<br />
To get started we will use Module1 in the Standard library which is stored for the current user only: <br />
<br />
Type a name for the new macro: '''HelloWorld''' <br />
<br />
In the macro from listbox select '''Standard''' <br />
<br />
Click '''New''' <br />
<br />
You should now see something like: <br />
<br />
<source lang="oobas"><br />
REM ***** BASIC *****<br />
<br />
Sub Main<br />
<br />
End Sub<br />
<br />
Sub HelloWorld<br />
<br />
End Sub<br />
</source><br />
The cursor will be positioned at the start of the <tt>Sub HelloWorld</tt> line. <br />
<br />
{| border="1"<br />
|'''Note'''<br />
|Now that while the IDE is running it can be accessed from the OpenOffice.org Window menu, or the task panel provided by the operating system.<br />
|-<br />
|}<br />
<br />
==Entering the code==<br />
Select and delete: <br />
<br />
<source lang="oobas"><br />
REM ***** BASIC *****<br />
<br />
Sub Main<br />
<br />
End Sub<br />
</source><br />
Below the line "Sub HelloWorld" type <tt>msgbox "Hello World!"</tt>, so that the editor looks like: <br />
<br />
<source lang="oobas"><br />
Sub HelloWorld<br />
msgbox "Hello World!"<br />
End Sub<br />
</source><br />
{| border="1"<br />
|'''Notes:'''<br />
|The IDE does not provide code completion or help with command syntax as you type, but to get help on a Basic command position the cursor in the command and press F1.<br> OpenOffice.org Basic commands are not case sensitive. Thus msgbox, MSGBOX and Msgbox will all work.<br> Strings are enclosed in double quotes.<br />
|-<br />
|}<br />
<br />
==Running the code==<br />
There are several ways of running the Basic code, these include: <br />
<br />
*Directly from the IDE. There is a run button on the macro bar (by default the third control on the second toolbar). This will run the first macro in the current module. <br />
<br />
*From the tools menu:<br />
<br />
**(Version 1.1.x) '''Tools > Macros > Macro…''';<br />
<br />
**(Version 1.9.x and above) '''Tools > Macro > Run Macro…''' <br />
<br />
*Assigning the macro to a [[ key press]]. <br />
<br />
*Assigning the macro to a [[ menu entry]]. <br />
<br />
*Assigning the macro to a toolbar button. <br />
<br />
*Creating a [[ control in a document]]. <br />
<br />
*Assigning the macro to an event. <br />
<br />
For now try running the "HelloWorld" subroutine by clicking the '''Run''' button. A small dialog titled "soffice" with the text "Hello World!" and an OK button should be displayed.<br />
<br />
==Saving the code==<br />
The code gets automatically saved whenever the container for the code gets saved. Thus, if the code is in an OpenOffice.org library (shared or users) then it gets automatically saved when OpenOffice.org exits. If the code is in a library which is part of a document it gets saved whenever the document is saved. <br />
<br />
On the Standard toolbar (by default the top toolbar) in the IDE there is a save button. If the code is in a document or template then clicking this button saves the entire document or template. If the code is in an OpenOffice.org library then just the current library gets saved. <br />
<br />
<br />
==Variables==<br />
It is possible to force variable declaration with <tt>Option Explicit</tt> at the top of the module. For a discussion on whether to declare variables or not, see: [[http://www.oooforum.org/forum/viewtopic.phtml?t=5845 this discussion]]. <br />
<br />
In that discussion the initial author of this wiki thought that variables should always be declared. Since then he has changed to not declaring them. In short it is generally a personal preference. In either case, it is the initial authors preference that variables be named according to the following convention, which is used in the examples in this Wiki: <br />
<br />
The first letter of the variable name indicates the type of value that the variable is going to hold, as per the following table (based on a table in Tutorial.pdf by Sun) <br />
<br />
{| border="1"<br />
|'''''Letter'''''<br />
|'''''Meaning'''''<br />
|-<br />
|a<br />
|Structure<br />
|-<br />
|b<br />
|Boolean (TRUE or FALSE)<br />
|-<br />
|e<br />
|Enumeration. This variable can only have one of a limited set of values.<br />
|-<br />
|f<br />
|Float (3.402823 x 1038 to 1.401298 x 10-45. A single variable can take up to four bytes)<br> Double (1.79769313486232 x 10308 to 4.94065645841247 x 10-324. A double variable can take up to eight bytes)<br> Currency (-922337203685477.5808 to +922337203685477.5807 and takes up to eight bytes of memory)<br />
|-<br />
|m<br />
|Array (aka sequence aka matrix)<br />
|-<br />
|n<br />
|Integer (-32768 to 32767.) or<br> Long (-2147483648 and 2147483647).<br />
|-<br />
|o<br />
|Object, service, or interface<br />
|-<br />
|s<br />
|String (A string variable can store up to 65535 Unicode characters).<br />
|-<br />
|x<br />
|Interface, to indicate that only operations of a particular interface of an object are used<br />
|-<br />
|v<br />
|Variant, Any<br />
|-<br />
|}<br />
<br />
<br />
Use long descriptive variable names making use of camel case: <tt>nMsgBoxReturn</tt><br />
<br />
{| border="1"<br />
|'''Note:'''<br />
|User-defined OpenOffice.org Basic variables are not case sensitive. But UNO-API constants ''are'' case sensitive.<br />
|}<br />
<br />
<br />
Convention exceptions to long descriptive names are for index variables where <tt>i, j,</tt> and <tt>k</tt> are commonly used, and for when a string is being built-up, where <tt>s</tt> is commonly used. <br />
<br />
Edit sub HelloWorld so that it looks like the following and run it: <br />
<br />
<source lang="oobas"><br />
sub HelloWorld<br />
dim i as integer 'This line is optional<br />
for i = 0 to 2<br />
'These lines are indented for ease of reading only.<br />
'All your code should be like this for long-term survival.<br />
msgbox "Hello World " & i<br />
next i<br />
end sub<br />
</source><br />
For more information on variables see the online help for "using variables".<br />
<br />
==Understanding the OpenOffice.org API==<br />
This section will start with an example. The remainder of this section aims to give information so that the example can be understood and expanded upon. <br />
<br />
Try running the following code with different types of documents being active. <br />
<br />
<source lang="oobas"><br />
sub main<br />
'BasicLibraries.loadLibrary("XrayTool")<br />
'xray thisComponent<br />
msgbox fnWhichComponent(thisComponent)<br />
end sub<br />
<br />
<br />
function fnWhichComponent(oDoc) as string<br />
if HasUnoInterfaces(oDoc, "com.sun.star.lang.XServiceInfo") then <br />
if oDoc.supportsService ("com.sun.star.text.GenericTextDocument") then<br />
fnWhichComponent = "Text"<br />
elseif oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument") then<br />
fnWhichComponent = "Spreadsheet"<br />
elseif oDoc.supportsService("com.sun.star.presentation.PresentationDocument") then<br />
fnWhichComponent = "Presentation"<br />
elseif oDoc.supportsService("com.sun.star.drawing.GenericDrawingDocument") then<br />
fnWhichComponent = "Drawing"<br />
else<br />
fnWhichComponent = "Oops current document something else"<br />
end if<br />
else<br />
fnWhichComponent = "Not a document"<br />
end if<br />
End function<br />
</source><br />
<br />
===Subroutine naming convention===<br />
In the above example the user defined function has a name that starts with the letters "fn". This is the initial author's convention so that people know that this is a user defined function. Similarly, the initial author uses the convention that user defined subroutines start with the letters "sub". When learning a language and an API it can be difficult to know what is built-in and what has been defined elsewhere. This document/wiki will use this convention for naming functions and subroutines.<br />
<br />
===Introducing the OpenOffice.org API===<br />
This section introduces the following terms: <br />
<br />
* Interface <br />
* Module <br />
* Service <br />
* Method <br />
* Property <br />
<br />
Understanding the difference between an interface and a service and what a module is, is not essential to being able to write extensions for OpenOffice.org, but it does help interpreting the documentation, and for introspection purposes. You may need to read this section at least twice. <br />
<br />
An '''interface''' is a ''definition'' of a set of methods (and their arguments) that a service which implements that interface must have. <br />
<br />
Interfaces are grouped together in '''modules''' for naming purposes. All interfaces (and services) start with the name "com.sun.star" then the name of the module then the name of the interface (or service). <br />
<br />
For example most services provide the com.sun.star.beans.XPropertySet interface. This interface is stored in the module "beans" and provides access to the properties of a service. A '''property''' is a value whereas a '''method''' is an action. <br />
<br />
An OpenOffice.org object can have many services. <br />
<br />
An OpenOffice.org object may have a service, which implements an interface, in which a method description says that another OpenOffice.org object is returned.<br />
<br />
Further clarification can be found in [https://wiki.openoffice.org/wiki/Documentation/DevGuide/FirstSteps/Objects,_Interfaces,_and_Services]<br />
<br />
===Introspection===<br />
<tt>HasUnoInterfaces</tt> is an OpenOffice.org Basic function for introspection. See this [[http://www.oooforum.org/forum/viewtopic.phtml?t=7068 link]] for information on introspection in other languages. <br />
<br />
<tt>HasUnoInterfaces</tt> returns true if all of the specified interfaces are available for the specified object. <br />
<br />
Most OpenOffice.org objects provide the method <tt>supportsService</tt> because they have the interface <idl>com.sun.star.lang.XServiceInfo</idl>. <br />
<br />
In the above example, the OpenOffice.org Basic command <tt>HasUnoInterfaces</tt> checks that the current document has the interface <idl>com.sun.star.lang.XServiceInfo</idl>, because if it doesn't have that interface then it doesn't have the method <tt>supportsService</tt>, and a run time error would occur if such an object tried to access its nonexistent method. <br />
<br />
<tt>SupportsService</tt> is a method which returns true if the specified service is available. The above examples checks for a service to determine the type of document that is currently active.<br />
<br />
<br />
===Xray tool===<br />
Using <tt>HasUnoInterfaces</tt> and <tt>supportsService</tt> gives information about an object at run time, but checking an object like this would be a nightmare for learning? Thankfully, Bernard Marcelly has come to our rescue with the Xray tool. The Xray tool is available from: [[http://berma.pagesperso-orange.fr/Files_en/XrayTool60_en.odt odt installer(en)]]. Download the odt file, open the document in OpenOffice.org, follow the instructions for installation and set-up. <br />
<br />
Part of the Xray tool set-up is to specify a local copy of the OpenOffice.org SDK. Download the [http://www.openoffice.org/download/other.html#tested-sdk Apache OpenOffice 3.4 SDK] and extract it. <br />
<br />
In the above example, at the start of the code, there are two commented lines (comments start with an apostrophe): <br />
<br />
<source lang="oobas"><br />
'BasicLibraries.loadLibrary("XrayTool")<br />
'xray thisComponent<br />
</source><br />
Now that you have the Xray tool installed, uncomment these lines (remove the apostrophes) and rerun the macro.<br />
<br />
[[image:Xray60en.png]]<br />
<br />
'''BasicLibraries''' is an OpenOffice.org Basic command that returns an object for accessing the OpenOffice.org libraries. The <tt>loadLibrary</tt> method ensures that the routines in that library are available for use. <br />
<br />
<tt>xray</tt> specifies the <tt>xray</tt> subroutine within the library <tt>XrayTool</tt>. <tt>thisComponent</tt> is the object that is being passed to <tt>xray</tt> for introspection. <br />
<br />
To find the object that you want to work with often requires finding or creating it starting from either <tt>StarDesktop</tt> or <tt>thisComponent</tt>.<br />
<br />
===Desktop, documents, and current selection===<br />
<tt>StarDesktop</tt> and <tt>thisComponent</tt> are OpenOffice.org Basic commands that refer to the application and currently active document respectively. <br />
<br />
Unlike Microsoft Office, OpenOffice.org is one application with different components. When running some code it maybe useful to check which component is currently active. The above code demonstrates how that checking process can be done. <br />
<br />
The Desktop that <tt>StarDesktop</tt> refers to is conceptual (historically it actually existed) and can be thought of as the OpenOffice.org application.<br />
<br />
==Creating new documents==<br />
To create a new text document: <br />
<br />
<source lang="oobas"><br />
oDoc = StarDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, Array())<br />
</source><br />
To create a new spreadsheet document: <br />
<br />
<source lang="oobas"><br />
oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())<br />
</source><br />
An easier approach would be to write a simple function: <br />
<source lang="oobas"><br />
function fnNewDoc(sDocType as string)<br />
fnNewDoc = StarDesktop.loadComponentFromURL("private:factory/" & sDocType , "_blank", 0, Array())<br />
end function<br />
</source><br />
Then creating new documents can be achieved with: <br />
<br />
<source lang="oobas"><br />
oDoc = fnNewDoc("swriter")<br />
oDoc = fnNewDoc("scalc")<br />
oDoc = fnNewDoc("simpress")<br />
oDoc = fnNewDoc("sdraw")<br />
oDoc = fnNewDoc("smath")<br />
</source><br />
See http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XComponentLoader.html .<br />
<br />
==To open a document==<br />
The following example shows how to open a file. For information on URLs in OpenOffice.org see [[ URL Basics]]. <br />
<br />
<source lang="oobas"><br />
sFile = "C:\Documents and Settings\danny\Desktop\MyCalc.sxc" ' Windows<br />
sFile = "/home/danny/Desktop/MyCalc.sxc" ' Linux<br />
sURL = ConvertToURL(sFile)<br />
oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())<br />
</source><br />
Again it may make sense to make this easier by writing a simple function: <br />
<br />
<source lang="oobas"><br />
function fnOpenDoc(sFile)<br />
sURL = ConvertToURL(sFile)<br />
fnOpenDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())<br />
end function<br />
</source><br />
Examples of calling the function: <br />
<br />
<source lang="oobas"><br />
oDoc = fnOpenDoc("C:\Documents and Settings\danny\Desktop\MyCalc.sxc") ' Windows<br />
oDoc = fnOpenDoc("/home/danny/Desktop/MyCalc.sxc") ' Linux<br />
</source><br />
<br />
==Opening a new file from a template==<br />
If you want to open a file using an existing template, use the template name instead of the file name. An untitled document will be opened from the template. <br />
<br />
Alternatively, set the "AsTemplate" property in the MediaDescriptor for the opened template to TRUE, and a new file will be opened based on the template, even if the template was stored by OO as an ordinary file, rather than a template. [[Opening a document]] has some examples.<br />
<br />
If the template location is known, simply use it. However, OpenOffice keeps at least two sets of templates: global templates available to all users and "My Templates" available to the current user, and the locations of the directories are not obviously available. They can be found by means of the [http://www.openoffice.org/api/docs/common/ref/com/sun/star/util/PathSettings.html PathSettings service] which allows the user to examine the various directory paths known to OpenOffice. The Template property of this service returns a string which is a semi-colon separated list of URLS, each of which represents a possible location for the desired template. It is necessary to search this string and the resulting directories to find the template. The following code finds a user template and opens a document based on it:<br />
<br />
<source lang="oobas"><br />
Dim PathService as Object<br />
Dim TemplatePath as String ' The path list<br />
Dim SCPos as Integer ' The position of the next semi-colon <br />
Dim MyTemplatePath as String ' The URL for the user template<br />
<br />
' substitute your template name here<br />
const TemplateName = "MyTemplate.ott"<br />
<br />
' This seems to be the place in which OO stores user templates<br />
const UserTemplateDirectory="/user/template"<br />
<br />
<br />
PathService=CreateUNOService("com.sun.star.util.PathSettings")<br />
TemplatePath=PathService.Template<br />
MyTemplatePath=""<br />
<br />
do while len(TemplatePath) >0<br />
SCPos=InStr (TemplatePath,";")<br />
if SCPos>0 then<br />
MyTemplatePath=Left(TemplatePath, SCPos-1)<br />
else<br />
MyTemplatePath=TemplatePath<br />
end if<br />
<br />
' NOTE: as well as file URLs there are some others which should be ignored<br />
if InStr(myTemplatePath,"file:///")=1 And _<br />
Right(myTemplatePath,14) = UserTemplateDirectory then<br />
exit do <br />
end if<br />
TemplatePath=mid(TemplatePath, SCPos+1, len(TemplatePath)-SCPos)<br />
MyTemplatePath="" <br />
loop<br />
<br />
if MyTemplatePath<>"" then<br />
TemplatePath=ConverttoURL(TemplateName)<br />
MyTemplatePath=MyTemplatePath & "/" & TemplateName<br />
InvoiceDoc=StarDesktop.LoadComponentfromURL(MytemplatePath, "_blank", 0, Array())<br />
else<br />
MsgBox "Cannot find the template directory"<br />
end if<br />
</source><br />
<br />
This code does not check that the desired template actually exists; if it doesn't, the LoadComponentfromURL call will fail.<br />
<br />
==Current Selection==<br />
It is common to want to run some code that affects the current selection. <tt>ThisComponent</tt> has the method <tt>getCurrentSelection</tt>. Since many different types of objects could possibly be selected it is common to check that the currently selected object has the service that contains the method that we want to apply to the object. <br />
<br />
Edit the main subroutine to the following and rerun it on a text document with different selections. (To select more than one block of text hold down the control key). <br />
<br />
<source lang="oobas"><br />
sub main<br />
BasicLibraries.loadLibrary("XrayTool")<br />
if fnWhichComponent(thisComponent) = "Text" then<br />
oCurSelection = thisComponent.getCurrentSelection()<br />
'xray oCurSelection<br />
if oCurSelection.supportsService("com.sun.star.text.TextRanges") then<br />
msgbox "There are " & oCurSelection.getCount() & _<br />
" selections in the current text document."<br />
end if<br />
end if<br />
end sub<br />
</source><br />
With nothing selected the number of selections is one - the insertion point, with one block of text selected the count is still one, but with two blocks of text the count is three - the insertion point and the two blocks of selected text. <br />
<br />
Exercise 1: Modify the above code so that it works on selected cell ranges in a spreadsheet. <br />
<br />
Question1: For two blocks of cells selected, what would be the count for the number of selections?<br />
<br />
==Properties==<br />
Uncomment <tt>'xray oCurSelection</tt> so that xray runs, to see that the object that <tt>oCurSelection</tt> points to has a "property" called <tt>Count</tt> with a description of "pseudo-prop, read only". It is possible in OpenOffice.org Basic to write <tt>oCurSelection.count</tt>, but as this is not possible in all other languages accessing the OpenOffice.org API, this Wiki will try to always use the method approach. (I say try because I have not been in the habit of doing this and sometimes I may forget). <br />
<br />
This next example demonstrates changing a property value for the current selections. <br />
<br />
<source lang="oobas"><br />
sub main<br />
BasicLibraries.loadLibrary("XrayTool")<br />
if fnWhichComponent(thisComponent) = "Text" then<br />
oCurSelection = thisComponent.getCurrentSelection()<br />
if oCurSelection.supportsService("com.sun.star.text.TextRanges") then<br />
nCount = oCurSelection.Count<br />
'xray oCurSelection.getByIndex(0)<br />
'Warning: The insertion point will have the same action applied twice<br />
'in this case it doesn't matter, but in others it might.<br />
for i = 0 to nCount - 1<br />
oCurSelection.getByIndex(i).setPropertyValue("CharStyleName", "Strong Emphasis")<br />
next<br />
end if<br />
end if<br />
end sub<br />
</source><br />
In OpenOffice.org Basic it is possible to shorten the assignment line to: <br />
<br />
<source lang="oobas"><br />
oCurSelection(i).CharStyleName = "Strong Emphasis"<br />
</source><br />
This wiki will try to use the full methods for both indexing and assigning properties. The rationale is that this makes converting the code to other languages easier and also helps the learner to understand what is happening (again I have not been in the habit of doing this so some examples may slip past me). <br />
<br />
Exercise 2: Rewrite the above code so that the warning can be removed. <br />
<br />
See [[ Current selection]].<br />
<br />
==Iterative Access to Subordinate Objects (Enumeration access)==<br />
Sometimes to access the desired object an enumeration is required. For example paragraphs, within a document or within a selection. <br />
<br />
When a Writer document is active and some text is selected, both <tt>thisDocument.getText()</tt> and <tt>thisComponent.getCurrentSelection().getByIndex(i)</tt> have the service: <idl>com.sun.star.text.TextRange</idl>, which has the interface: <idl>com.sun.star.container.XContentEnumerationAccess</idl>. It is possible to create an enumeration of the paragraphs for the current document or for a particular selection. <br />
<br />
<source lang="oobas"><br />
' Create enumeration object<br />
oTextElementEnum = thisComponent.getText().createEnumeration()<br />
'or thisComponent.getCurrentSelection().getByIndex(i).createEnumeration()<br />
<br />
' loop over all text elements<br />
while oTextElementEnum.hasMoreElements()<br />
oTextElement = oTextElementEnum.nextElement<br />
if oTextElement.supportsService("com.sun.star.text.TextTable") then<br />
MsgBox "The current block contains a table."<br />
end if<br />
if oTextElement.supportsService("com.sun.star.text.Paragraph") then<br />
MsgBox "The current block contains a paragraph."<br />
end if<br />
wend<br />
</source><br />
Exercise 3: Extend the above example to display in a message box all text portions that are bold.<br />
<br />
==Named access==<br />
Some objects provide named access to a particular type of subordinate object, some others indexed access, and some both named and indexed access. <br />
<br />
For example if the current document in OpenOffice.org is a spreadsheet then to access a particular sheet can be done by index access: <br />
<br />
<source lang="oobas"><br />
oSheet = thisComponent.getSheets.getByIndex(0)<br />
</source><br />
or named access: <br />
<br />
<source lang="oobas"><br />
oSheet = thisComponent.getSheets.getByName("Sheet1")<br />
</source><br />
To check if an object with a particular name already exists use <tt>hasByName</tt>, for example: <br />
<br />
<source lang="oobas"><br />
if thisComponent.getSheets.hasByName("Sheet1") then<br />
</source><br />
To loop through all the available object names can be done like: <br />
<br />
<source lang="oobas"><br />
mNames = thisComponent.getSheets.getElementnames<br />
for i = lbound(mNames) to ubound(mNames)<br />
msgbox mNames(i)<br />
next<br />
</source><br />
<br />
<br />
Some named subordinate objects also provide the interface: <idl>com.sun.star.container.XNameContainer</idl>. This interface defines that such objects should have the following methods: <tt>insertByName</tt>, <tt>insertNewByName</tt>, <tt>replaceByname</tt> and <tt>removeByName</tt>. <br />
<br />
E.g. <br />
<br />
<source lang="oobas"><br />
thisComponent.getSheets.insertNewByName("NewSheet", 0)<br />
</source><br />
<br />
==Create new objects==<br />
Some objects have services which implement interfaces to provide specific methods for creating a particular type of object. <br />
<br />
For example if the current document is a Writer document then <tt>thisComponent.getText</tt> is an object that provides the service <idl>com.sun.star.text.Text</idl>, which implements the interface <idl>com.sun.star.text.XSimpleText</idl>, which defines the methods <tt>createTextCursor</tt> and <tt>createTextCursorByRange</tt>. Both of these methods create a text cursor for accessing the text of the document. These cursors are quite independent of the view cursor. The view cursor is visible on the screen and is manipulated by the user (and can be manipulated by program control), whereas a text cursor is not visible on the screen and is solely used by program control. The following code snippet demonstrates creating a new text cursor, such that it starts at the same location as the view cursor and is then moved independent of the view cursor. <br />
<br />
<source lang="oobas"><br />
oVC = thisComponent.getCurrentController.getViewCursor<br />
oCursor = oVC.getText.createTextCursorByRange(oVC)<br />
oCursor.gotoStartOfSentence(false)<br />
oCursor.gotoEndOfSentence(true)<br />
msgbox oCursor.getString<br />
</source><br />
The string returned by the <tt>oCursor.getString</tt> method is the text of the sentence in which the view cursor currently resides.<br />
<br />
Some objects are context dependent and get created using the method <tt>createInstance</tt> which is defined in the interface <idl>com.sun.star.lang.XMultiServiceFactory</idl>. For example to add a rectangle to the first page of a drawing document: <br />
<br />
<source lang="oobas"><br />
dim aPoint as new com.sun.star.awt.Point<br />
dim aSize as new com.sun.star.awt.Size<br />
<br />
aPoint.x = 1000<br />
aPoint.y = 1000<br />
<br />
aSize.Width = 10000<br />
aSize.Height = 10000<br />
<br />
oRectangleShape = thisComponent.createInstance("com.sun.star.drawing.RectangleShape")<br />
oRectangleShape.Size = aSize<br />
oRectangleShape.Position = aPoint<br />
<br />
thisComponent.getDrawPages.getByIndex(0).add(oRectangleShape)<br />
</source><br />
<br />
This example also uses ''UNO structs''. See below for more information on UNO structs. <br />
<br />
Some objects are context independent; to create these objects, use the OpenOffice.org Basic command <tt>createUnoService</tt>. For example, to create the equivalent to <tt>StarDesktop</tt>: <br />
<br />
<source lang="oobas"><br />
oDesktop = createUnoService("com.sun.star.frame.Desktop")<br />
</source><br />
<br />
The process that I use to determine how to access or create an object is as follows: <br />
<br />
Does the object already exist, if so I should be able to access it from something like <tt>thisComponent</tt>. <br />
<br />
Will the new object belong to another object, if so does the owner have a specific method for creating the object, if so use it. <br />
<br />
The new object will belong to another object, but that object doesn't provide a specific method for creating it, but does provide <tt>createInstance</tt>. If the object doesn't provide <tt>createInstance</tt> are you sure you are using the correct object, or is it context independent. <br />
<br />
I have found working out how to create an object to be quite difficult with existing documentation so I hope that this document/wiki will eventually make this clear. <br />
<br />
<br />
===UNO structs===<br />
UNO structures can be declared using the OpenOffice.org Basic command <tt>dim as new</tt>: <br />
<br />
<source lang="oobas"><br />
dim aPoint as new com.sun.star.awt.Point<br />
</source><br />
Or by using the OpenOffice.org Basic command <tt>createUnoStruct</tt>: <br />
<br />
<source lang="oobas"><br />
aPoint = createUnoStruct("com.sun.star.awt.Point")<br />
</source><br />
<br />
{| border="1"<br />
|'''Note:'''<br />
|When declaring UNO structs, case is important. Note that everything up to the name of the struct is lowercase, and that the name of the struct is in TitleCase.<br />
|}<br />
<br />
<br />
<br />
<br />
===Creating Listeners and Handlers===<br />
Through the user interface it is possible to assign macros to some events: <br />
<br />
OpenOffice.org versions 1.1.x: '''Tools > Configure… > Events'''. <br />
<br />
OpenOffice.org versions 1.9.x and above: '''Tools > Customize… > Events'''. <br />
<br />
It is also possible to assign macros to a wider range of events using the OpenOffice.org Basic command <tt>CreateUnoListener</tt>. This same command is used for creating both listeners and handlers. A listener checks for an event and always allows other listeners to respond to the event as well. A handler listens for an event, and can optionally consume the event so that other listeners don't get to act on it. <br />
<br />
The following example creates a keyHandler: <br />
<br />
<source lang="oobas"><br />
global IannzExampleKeyHandler<br />
<br />
sub SetupKeyHandler<br />
oController = thisComponent.currentController<br />
IannzExampleKeyHandler = CreateUnoListener("KeyHandler_","com.sun.star.awt.XKeyHandler")<br />
oController.addKeyHandler(IannzExampleKeyHandler) ' Register the listener<br />
end sub<br />
<br />
sub RemoveKeyHandler<br />
thisComponent.currentController.removeKeyHandler(IannzExampleKeyHandler)<br />
end sub<br />
<br />
sub KeyHandler_disposing<br />
end sub<br />
<br />
function KeyHandler_keyReleased(oKeyEvent as new com.sun.star.awt.KeyHandler) as boolean<br />
KeyHandler_keyReleased = False <br />
end function<br />
<br />
function KeyHandler_keyPressed(oKeyEvent as new com.sun.star.awt.KeyHandler) as boolean<br />
KeyHandler_keyPressed = false 'Let other listeners handle the event<br />
if oKeyEvent.modifiers = com.sun.star.awt.KeyModifier.MOD2 then 'Control key was pressed<br />
if oKeyEvent.keyCode = com.sun.star.awt.Key.Q then<br />
msgbox "Alt + Q was pressed"<br />
KeyHandler_keyPressed = true 'Don't let other listeners process this event<br />
end if<br />
end if<br />
end function<br />
</source><br />
A variable declared as global keeps its value even after the macro exits. In this case we want to be able to use this variable later to remove the handler. As variables declared globally could be used in other libraries, to try and avoid conflict I start all my global variables with Iannz my registered name for the OpenOffice.org web site. <br />
<br />
<tt>sub SetupKeyHandler</tt> sets up the handler. The first parameter to <tt>CreateUnoListener</tt> is the starting name for the methods that will be called when that type of event occurs: in this example, <tt>"KeyHandler_"</tt>. <br />
<br />
The second parameter is the name of the interface for the listener or handler, "<idl>com.sun.star.awt.XKeyHandler</idl>". The name is case sensitive, everything up to and including the module name is always lowercase, the name of the interface always starts with "X" and the remainder is in TitleCase. <br />
<br />
Use the SDK to find out what methods the interface must supply. You must supply routines for all of these methods even if you don't intend to use them. You also need to supply a disposing method. The names of these routines start with the string given in the first parameter to <tt>CreateUnoListener</tt>, in this example <tt>"KeyHandler_"</tt>. <br />
<br />
Thus in the example there is <tt>KeyHandler_disposing</tt> and <tt>KeyHandler_keyReleased</tt> which don't actually do anything but are required, and <tt>KeyHandler_keyPressed</tt> which actually does the job. <br />
<br />
<tt>sub RemoveKeyHandler</tt> demonstrates how to remove the handler.<br />
<br />
==OpenOffice.org constants==<br />
The above example uses OpenOffice.org constants. <br />
<br />
E.g. <tt>com.sun.star.awt.KeyModifier.MOD2</tt><br />
<br />
OpenOffice.org constants are case sensitive. Everything up to and including the module name is always lowercase. The constant group is in TitleCase. The actual constant name is always UPPERCASE. <br />
<br />
Programmers not using OpenOffice.org Basic may not have access to these constants. <br />
<br />
<br />
==Using the recorder==<br />
See [[ The OpenOffice.org recorder and UNO dispatch calls]] section for a discussion on recording UNO Dispatch commands versus writing API calls.<br />
<br />
== See also==<br />
* [[CookBook|CookBook]]<br />
* [[Text_cursor|Text Cursor in OOoBasic]]<br />
* [[Framework/Article/Easy_To_Use_Message_Boxes|Easy To Use Message Boxes]]<br />
* [[Programming_OooWriter |Programming OOoWriter in C++]] where OOoBasic records are used in C++<br />
* A [[XIntrospection_Interface|XIntrospection Interface]] short description. XRay uses this interface.<br />
* Download Bernard Marcelly's [http://berma.pagesperso-orange.fr/Files_en/XrayTool60_en.odt XRay OOoBasic tool] <br />
* See [[Object Inspector|The New Object Inspector]] and [[BASIC/UNO_Object_Browser|The BASIC UNO Object Browser]]<br />
<br />
[[Category:Extensions]]<br />
[[Category:StarBasic]]<br />
[[Category:Documentation/Candidate]]</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Extensions_development_basicTalk:Extensions development basic2018-02-26T15:50:35Z<p>Ptoye: /* Definition of "Service" */</p>
<hr />
<div>== Name Change Proposal ==<br />
<br />
I think the name of this article should be changed to ''OpenOffice.org Basic''. I know that the ''OpenOffice.org'' part sounds redundant because the whole wiki is about OpenOffice.org. However, the title ''Basic'' would be too generic. Check out Wikipedia where there is already an article called ''StarOffice Basic''. Not much there though.<br />
<br />
Only reason I bring this up is that I had trouble finding out the basics of writing Basic code in OOo. I googled into the [[custom functions]] article and I scanned through Category:Basic:Tutorials and did not see anything. [[User:Jebix|Jebix]] 04:48, 6 July 2006 (CEST)<br />
<br />
May I suggest, as a compromise, "OO Basic"? It's not in Wikipedia.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:43, 22 January 2013 (UTC)<br />
<br />
== Path for the Makros ==<br />
<br />
this I found in the article:<br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br />
Tools > Options… > OpenOffice.org > Paths > BASIC<br />
<br />
but I can't find it there in 2.0.4<br />
<br />
Please Explain<br />
<br />
I'm interested to know where there diffenrent makros are saved and maybe change it<br />
<br />
<br />
Mechtilde<br />
<br />
== More help on opening and saving documents needed ==<br />
<br />
I'm trying to work out two things: how to open a document using an existing template, and how to save the resulting document. When I've worked it out, I'll try to edit this page, but some input from people who know more about it than myself would be useful.... [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:46, 22 January 2013 (UTC)<br />
<br />
There's also a minor typo in the examples: the "_blank" parameter is on one occasion typed as "&nbsp;blank". Interestingly, it still works, so it looks as if the API documentation is a bit wrong there. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:59, 22 January 2013 (UTC)<br />
<br />
A correction to the previous comment: in the Wikitext the underline is there. But on my browser (Firefox) it sometimes shows as a space. Can't think why, unless there are two different codes for the underline character which are mapped differently by Firefox.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:23, 1 February 2013 (UTC)<br />
<br />
== Paths for OO Basic code ==<br />
<br />
The text in Section 1 about the path for OO Basic macros seems to be out of date. Certainly in my OO3.4.1 there isn't an entry.<br />
<br />
This raises the question - how on earth does a user find the macro code?<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 14:22, 20 June 2013 (UTC)<br />
<br />
== Definition of "Service" ==<br />
<br />
The text says ''Understanding the difference between an interface and a service and what a module is, is not essential to being able to write extensions for OpenOffice.org, but it does help interpreting the documentation, and for introspection purposes.'' but then goes on to use the term "Service" without anywhere defining it. A paragraph defining "service" is desperately needed. I'd do it myself if I know what it was! [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:50, 26 February 2018 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Extensions_development_basicTalk:Extensions development basic2018-02-26T15:49:54Z<p>Ptoye: /* Definition of "Service" */ new section</p>
<hr />
<div>== Name Change Proposal ==<br />
<br />
I think the name of this article should be changed to ''OpenOffice.org Basic''. I know that the ''OpenOffice.org'' part sounds redundant because the whole wiki is about OpenOffice.org. However, the title ''Basic'' would be too generic. Check out Wikipedia where there is already an article called ''StarOffice Basic''. Not much there though.<br />
<br />
Only reason I bring this up is that I had trouble finding out the basics of writing Basic code in OOo. I googled into the [[custom functions]] article and I scanned through Category:Basic:Tutorials and did not see anything. [[User:Jebix|Jebix]] 04:48, 6 July 2006 (CEST)<br />
<br />
May I suggest, as a compromise, "OO Basic"? It's not in Wikipedia.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:43, 22 January 2013 (UTC)<br />
<br />
== Path for the Makros ==<br />
<br />
this I found in the article:<br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br />
Tools > Options… > OpenOffice.org > Paths > BASIC<br />
<br />
but I can't find it there in 2.0.4<br />
<br />
Please Explain<br />
<br />
I'm interested to know where there diffenrent makros are saved and maybe change it<br />
<br />
<br />
Mechtilde<br />
<br />
== More help on opening and saving documents needed ==<br />
<br />
I'm trying to work out two things: how to open a document using an existing template, and how to save the resulting document. When I've worked it out, I'll try to edit this page, but some input from people who know more about it than myself would be useful.... [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:46, 22 January 2013 (UTC)<br />
<br />
There's also a minor typo in the examples: the "_blank" parameter is on one occasion typed as "&nbsp;blank". Interestingly, it still works, so it looks as if the API documentation is a bit wrong there. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:59, 22 January 2013 (UTC)<br />
<br />
A correction to the previous comment: in the Wikitext the underline is there. But on my browser (Firefox) it sometimes shows as a space. Can't think why, unless there are two different codes for the underline character which are mapped differently by Firefox.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:23, 1 February 2013 (UTC)<br />
<br />
== Paths for OO Basic code ==<br />
<br />
The text in Section 1 about the path for OO Basic macros seems to be out of date. Certainly in my OO3.4.1 there isn't an entry.<br />
<br />
This raises the question - how on earth does a user find the macro code?<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 14:22, 20 June 2013 (UTC)<br />
<br />
== Definition of "Service" ==<br />
<br />
The text says ''Understanding the difference between an interface and a service and what a module is, is not essential to being able to write extensions for OpenOffice.org, but it does help interpreting the documentation, and for introspection purposes.'' but then goes on to use the term "Service" without anywhere defining it. A paragraph defining "service" is desperately needed. I'd do it myself if I know what it was!</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/Files_and_Directories_(Runtime_Library)Talk:Documentation/BASIC Guide/Files and Directories (Runtime Library)2018-02-07T11:59:53Z<p>Ptoye: </p>
<hr />
<div>The description of the FileDateTime function is ambiguous as to the type of the returned result. Is it s String or a Date type? The example appears to use implicit conversion - or does it? [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:02, 30 January 2018 (UTC)<br />
<br />
This page is missing some vital information: whether the file manipulation functions require full file paths and return path information. I've just had a real pain using Dir to get a file name, but not being able to put the result directly into FileDateTime without also adding a directory string. In addition, the format of the directory information is not specified. By experiment, it seems that both the Windows format "C:\Dir" and the URL Format "///file:c:/Dir" are accepted, but this should be documented properly. There may be other formats (*NIX?) as well. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:53, 7 February 2018 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/Files_and_Directories_(Runtime_Library)Talk:Documentation/BASIC Guide/Files and Directories (Runtime Library)2018-02-07T11:58:54Z<p>Ptoye: Inadequate documentation</p>
<hr />
<div>The description of the FileDateTime function is ambiguous as to the type of the returned result. Is it s String or a Date type? The example appears to use implicit conversion - or does it? [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:02, 30 January 2018 (UTC)<br />
<br />
This page is missing some vital information: whether the file manipulation functions require full file paths and return path information. I've just had a real pain using Dir to get a file name, but not being able to put the result directly into FileDateTime without also adding a directory string. In addition, the format of the directory information is not specified. By experiment, it seems that both the Windows format "C:\Dir" and the URL Format "///file:c:/Dir" are accepted, but this should be documented properly. There may be other formats as well. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:53, 7 February 2018 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/Files_and_Directories_(Runtime_Library)Talk:Documentation/BASIC Guide/Files and Directories (Runtime Library)2018-02-07T11:53:30Z<p>Ptoye: </p>
<hr />
<div>The description of the FileDateTime function is ambiguous as to the type of the returned result. Is it s String or a Date type? The example appears to use implicit conversion - or does it? [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:02, 30 January 2018 (UTC)<br />
<br />
This page is missing some vital information: whether the file manipulation functions require full file paths and return path information. I've just had a real pain using Dir to get a file name, but not being able to put the result directly into FileDateTime without also adding a directory string. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:53, 7 February 2018 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Documentation/BASIC_Guide/Files_and_Directories_(Runtime_Library)Documentation/BASIC Guide/Files and Directories (Runtime Library)2018-02-04T18:50:50Z<p>Ptoye: /* Searching Through Directories */ Further clarification of the second parameter.</p>
<hr />
<div>{{Documentation/BASICGuideTOC/v2<br />
|ShowPrevNext=block<br />
|ShowPrevPage=block<br />
|PrevPage=Documentation/BASIC Guide/Date and Time (Runtime Library)<br />
|NextPage=Documentation/BASIC Guide/Message and Input Boxes (Runtime Library)<br />
|runtime=block<br />
}}<br />
{{DISPLAYTITLE:Files and Directories ({{OOo}} Runtime Library)}}<br />
__NOTOC__<br />
Working with files is one of the basic tasks of an application. The {{OOo}} API provides you with a whole range of objects with which you can create, open and modify Office documents. These are presented in detail in the [[Documentation/BASIC Guide/API Intro|Introduction to the {{OOo}} API]]. Regardless of this, in some instances you will have to directly access the file system, search through directories or edit text files. The runtime library from {{OOo}} Basic provides several fundamental functions for these tasks.<br />
<br />
{{Documentation/Note|Some DOS-specific file and directory functions are no longer provided in {{OOo}}, or their function is only limited. For example, support for the <tt>ChDir</tt>, <tt>ChDrive</tt> and <tt>CurDir</tt> functions is not provided. Some DOS-specific properties are no longer used in functions that expect file properties as parameters (for example, to differentiate from concealed files and system files). This change became necessary to ensure the greatest possible level of platform independence for {{OOo}}.}}<br />
<br />
== Administering Files ==<br />
<br />
=== Compatibility Mode ===<br />
<br />
The <tt>CompatibilityMode</tt> statement and function provide greater compatibility with VBA, by changing the operation of certain functions. The effect on any particular function is described with that function, below.<br />
<br />
As a statement, <tt>CompatibilityMode( value )</tt> takes a Boolean value to set or clear the mode. As a function, <tt>CompatibilityMode()</tt> returns the Boolean value of the mode.<br />
<br />
<source lang="oobas"><br />
CompatibilityMode( True ) 'set mode<br />
CompatibilityMode( False) 'clear mode<br />
<br />
Dim bMode as Boolean<br />
bMode = CompatibilityMode()<br />
</source><br />
<br />
=== Searching Through Directories ===<br />
<br />
The <tt>Dir</tt> function in {{OOo}} Basic is responsible for searching through directories for files and sub-directories. When first requested, a string containing the path of the directories to be searched must be assigned to <tt>Dir</tt> as its first parameter. The second parameter of <tt>Dir</tt> specifies whether files or directories are to be searched for. {{OOo}} Basic returns the name of the first directory entry found. To retrieve the next entry, the <tt>Dir</tt> function should be requested without parameters. If the <tt>Dir</tt> function finds no more entries, it returns an empty string.<br />
<br />
The following example shows how the <tt>Dir</tt> function can be used to request all files located in one directory. The procedure saves the individual file names in the <tt>AllFiles</tt> variable and then displays this in a message box.<br />
<br />
<source lang="oobas"><br />
Sub ShowFiles<br />
Dim NextFile As String<br />
Dim AllFiles As String<br />
<br />
AllFiles = ""<br />
NextFile = Dir("C:\", 0)<br />
<br />
While NextFile <> ""<br />
AllFiles = AllFiles & Chr(13) & NextFile <br />
NextFile = Dir<br />
Wend<br />
<br />
MsgBox AllFiles<br />
End Sub<br />
</source><br />
<br />
The <tt>0</tt> (zero) used as the second parameter in the <tt>Dir</tt> function ensures that <tt>Dir</tt> only returns the names of files; directories are ignored. The following parameters can be specified here:<br />
<br />
* <tt>0</tt> : returns normal files<br />
* <tt>16</tt> : sub-directories<br />
<br />
The following example is virtually the same as the preceding example, but the <tt>Dir</tt> function transfers the value 16 as a parameter, which returns the sub-directories of a folder rather than the file names.<br />
<br />
<source lang="oobas"><br />
Sub ShowDirs<br />
Dim NextDir As String<br />
Dim AllDirs As String<br />
<br />
AllDirs = ""<br />
NextDir = Dir("C:\", 16)<br />
<br />
While NextDir <> ""<br />
AllDirs = AllDirs & Chr(13) & NextDir<br />
NextDir = Dir<br />
Wend<br />
<br />
MsgBox AllDirs<br />
End Sub<br />
</source><br />
<br />
{{Documentation/VBAnote|When requested in {{OOo}} Basic, the <tt>Dir</tt> function, using the parameter 16, only returns the sub-directories of a folder. In VBA, the function also returns the names of the standard files so that further checking is needed to retrieve the directories only. When using the <tt>CompatibilityMode ( true )</tt> function, {{OOo}} Basic behaves like VBA and the Dir function, using parameter 16, returns sub-directories and standard files.}}<br />
<br />
{{Documentation/VBAnote|The options provided in VBA for searching through directories specifically for files with the '''concealed''', '''system file''', '''archived''', and '''volume name''' properties does not exist in {{OOo}} Basic because the corresponding file system functions are not available on all operating systems.}}<br />
<br />
{{Documentation/VBAnote|The path specifications listed in <tt>Dir</tt> may use the * and ? place holders in both VBA and {{OOo}} Basic. In {{OOo}} Basic, the * place holder may however only be the last character of a file name and/or file extension, which is not the case in VBA. }}<br />
<br />
=== Creating and Deleting Directories ===<br />
<br />
{{OOo}} Basic provides the <tt>MkDir</tt> function for creating directories.<br />
<br />
<source lang="oobas"><br />
MkDir ("C:\SubDir1")<br />
</source><br />
<br />
This function creates directories and sub-directories. All directories needed within a hierarchy are also created, if required. For example, if only the <tt>C:\SubDir1</tt> directory exists, then a call <br />
<br />
<source lang="oobas"><br />
MkDir ("C:\SubDir1\SubDir2\SubDir3\")<br />
</source><br />
<br />
creates both the <tt>C:\SubDir1\SubDir2</tt> directory and the <tt>C:\SubDir1\SubDir2\SubDir3</tt> directory. <br />
<br />
The <tt>RmDir</tt> function deletes directories.<br />
<br />
<source lang="oobas"><br />
RmDir ("C:\SubDir1\SubDir2\SubDir3\")<br />
</source><br />
<br />
If the directory contains sub-directories or files, these are '''also deleted.''' You should therefore be careful when using <tt>RmDir</tt>.<br />
<br />
{{Documentation/VBAnote|In VBA, the <tt>MkDir</tt> and <tt>RmDir</tt> functions only relate to the current directory. In {{OOo}} Basic on the other hand, <tt>MkDir</tt> and <tt>RmDir</tt> can be used to create or delete levels of directories.}}<br />
<br />
{{Documentation/VBAnote|In VBA, <tt>RmDir</tt> produces an error message if a directory contains a file. In {{OOo}} Basic, the directory '''and all its files''' are deleted. If you use the <tt>CompatibilityMode ( true )</tt> function, {{OOo}} Basic will behave like VBA.}}<br />
<br />
=== Copying, Renaming, Deleting and Checking the Existence of Files ===<br />
<br />
The following call creates a copy of the <tt>Source</tt> file under the name of <tt>Destination</tt>:<br />
<br />
<source lang="oobas"><br />
FileCopy(Source, Destination)<br />
</source><br />
<br />
With the help of the following function you can rename the <tt>OldName</tt> file with <tt>NewName</tt>. The <tt>As</tt> keyword syntax, and the fact that a comma is not used, goes back to the roots of the Basic language.<br />
<br />
<source lang="oobas"><br />
Name OldName As NewName<br />
</source><br />
<br />
The following call deletes the <tt>Filename</tt> file. If you want to delete directory (including its files) use the <tt>RmDir</tt> function.<br />
<br />
<source lang="oobas"><br />
Kill(Filename)<br />
</source><br />
<br />
The <tt>FileExists</tt> function can be used to check whether a file exists: <br />
<br />
<source lang="oobas"><br />
If FileExists(Filename) Then <br />
MsgBox "file exists."<br />
End If<br />
</source><br />
<br />
=== Reading and Changing File Properties ===<br />
<br />
When working with files, it is sometimes important to be able to establish the file properties, the time the file was last changed and the length of the file. <br />
<br />
The following call returns some properties about a file.<br />
<br />
<source lang="oobas"><br />
Dim Attr As Integer<br />
Attr = GetAttr(Filename)<br />
</source><br />
<br />
The return value is provided as a bit mask in which the following values are possible: <br />
<br />
* 1 : read-only file<br />
* 16 : name of a directory<br />
<br />
The following example determines the bit mask of the <tt>test.txt</tt> file and checks whether this is read-only whether it is a directory. If neither of these apply, <tt>FileDescription</tt> is assigned the "normal" string.<br />
<br />
<source lang="oobas"><br />
Dim FileMask As Integer<br />
Dim FileDescription As String<br />
<br />
FileMask = GetAttr("test.txt")<br />
<br />
If (FileMask AND 1) > 0 Then<br />
FileDescription = FileDescription & " read-only "<br />
End IF<br />
<br />
If (FileMask AND 16) > 0 Then<br />
FileDescription = FileDescription & " directory "<br />
End IF<br />
<br />
If FileDescription = "" Then<br />
FileDescription = " normal "<br />
End IF<br />
<br />
MsgBox FileDescription<br />
</source><br />
<br />
{{Documentation/VBAnote|The flags used in VBA for querying the '''concealed''', '''system file,archived''' and '''volume name''' file properties are not supported in {{OOo}} Basic because these are Windows-specific and are not or are only partially available on other operating systems.}}<br />
<br />
The <tt>SetAttr</tt> function permits the properties of a file to be changed. The following call can therefore be used to provide a file with read-only status:<br />
<br />
<source lang="oobas"><br />
SetAttr("test.txt", 1)<br />
</source><br />
<br />
An existing read-only status can be deleted with the following call:<br />
<br />
<source lang="oobas"><br />
SetAttr("test.txt", 0)<br />
</source><br />
<br />
The date and time of the last amendment to a file are provided by the <tt>FileDateTime</tt> function. The date is formatted here in accordance with the country-specific settings used on the system.<br />
<br />
<source lang="oobas"><br />
FileDateTime("test.txt") ' Provides date and time of the last file amendment.<br />
</source><br />
<br />
The <tt>FileLen</tt> function determines the length of a file in bytes (as long integer value).<br />
<br />
<source lang="oobas"><br />
FileLen("test.txt") ' Provides the length of the file in bytes<br />
</source><br />
<br />
== Writing and Reading Text Files ==<br />
<br />
{{OOo}} Basic provides a whole range of methods for reading and writing files. The following explanations relate to working with text files ('''not''' text documents).<br />
<br />
=== Writing Text Files ===<br />
<br />
Before a text file is accessed, it must first be opened. To do this, a free '''file handle''' is needed, which clearly identifies the file for subsequent file access.<br />
<br />
The <tt>FreeFile</tt> function is used to create a free file handle:<br />
<br />
<source lang="oobas"><br />
FileNo = FreeFile<br />
</source><br />
<br />
<tt>FileNo</tt> is an integer variable that receives the file handle. The handle is then used as a parameter for the <tt>Open</tt> instruction, which opens the file. <br />
<br />
To open a file so that it can be written as a text file, the <tt>Open</tt> call is:<br />
<br />
<source lang="oobas"><br />
Open Filename For Output As #FileNo<br />
</source><br />
<br />
<tt>Filename</tt> is a string containing the name of the file. <tt>FileNo</tt> is the handle created by the <tt>FreeFile</tt> function.<br />
<br />
Once the file is opened, the <tt>Print</tt> instruction can create the file contents, line by line:<br />
<br />
<source lang="oobas"><br />
Print #FileNo, "This is a test line."<br />
</source><br />
<br />
<tt>FileNo</tt> also stands for the file handle here. The second parameter specifies the text that is to be saved as a line of the text file.<br />
<br />
Once the writing process has been completed, the file must be closed using a <tt>Close</tt> call:<br />
<br />
<source lang="oobas"><br />
Close #FileNo<br />
</source><br />
<br />
Again here, the file handle should be specified.<br />
<br />
The following example shows how a text file is opened, written, and closed:<br />
<br />
<source lang="oobas"><br />
Dim FileNo As Integer<br />
Dim CurrentLine As String<br />
Dim Filename As String<br />
<br />
Filename = "c:\data.txt" ' Define file name <br />
FileNo = FreeFile ' Establish free file handle<br />
<br />
Open Filename For Output As #FileNo ' Open file (writing mode)<br />
Print #FileNo, "This is a line of text" ' Save line <br />
Print #FileNo, "This is another line of text" ' Save line <br />
Close #FileNo ' Close file<br />
</source><br />
<br />
=== Reading Text Files ===<br />
<br />
Text files are read in the same way that they are written. The <tt>Open</tt> instruction used to open the file contains the <tt>For Input</tt> expression in place of the <tt>For Output</tt> expression and, rather than the Print command for writing data, the Line Input instruction should be used to read the data.<br />
<br />
Finally, when calling up a text file, the <tt>eof</tt> instruction is used to check whether the end of the file has been reached:<br />
<br />
<source lang="oobas"><br />
eof(FileNo)<br />
</source><br />
<br />
The following example shows how a text file can be read:<br />
<br />
<source lang="oobas"><br />
Dim FileNo As Integer<br />
Dim CurrentLine As String<br />
Dim File As String<br />
Dim Msg as String<br />
<br />
' Define filename <br />
Filename = "c:\data.txt"<br />
<br />
' Establish free file handle<br />
FileNo = Freefile<br />
<br />
' Open file (reading mode)<br />
Open Filename For Input As FileNo<br />
<br />
' Check whether file end has been reached<br />
Do While not eof(FileNo)<br />
' Read line <br />
Line Input #FileNo, CurrentLine <br />
If CurrentLine <>"" then<br />
Msg = Msg & CurrentLine & Chr(13)<br />
end if<br />
Loop<br />
<br />
<br />
' Close file <br />
<br />
Close #FileNo <br />
Msgbox Msg<br />
</source><br />
<br />
The individual lines are retrieved in a <tt>Do While</tt> loop, saved in the <tt>Msg</tt> variable, and displayed at the end in a message box.<br />
<br />
<br />
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Files and Directories (Runtime Library)}}<br />
{{PDL1}}</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/Files_and_Directories_(Runtime_Library)Talk:Documentation/BASIC Guide/Files and Directories (Runtime Library)2018-01-30T10:03:28Z<p>Ptoye: </p>
<hr />
<div>The description of the FileDateTime function is ambiguous as to the type of the returned result. Is it s String or a Date type? The example appears to use implicit conversion - or does it? [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:02, 30 January 2018 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/Files_and_Directories_(Runtime_Library)Talk:Documentation/BASIC Guide/Files and Directories (Runtime Library)2018-01-30T10:02:56Z<p>Ptoye: Created page with "The description of the FileDateTime function is ambiguous as to the type of the returned result. Is it s String or a Date type. The example appears to use implicit conversion..."</p>
<hr />
<div>The description of the FileDateTime function is ambiguous as to the type of the returned result. Is it s String or a Date type. The example appears to use implicit conversion - or does it? [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:02, 30 January 2018 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/DatabaseTalk:Documentation/Database2013-09-24T10:08:52Z<p>Ptoye: /* HSQL version */ new section</p>
<hr />
<div>; Wiki Markup considerations: Please note to use '''double <tt>==</tt>''' for the highest level heading on a page, as this will be transformed into a '''<tt>&lt;h2&gt;</tt>''' tag. Using '''single <tt>=</tt>''' will interfere with the page title (which is <tt>&lt;h1&gt;</tt>-tagged in the page view). <br>In contrast, in other wikis (e.g. MoinMoin) single <tt>=</tt> are allowed for top level headings.<br />
<br />
The article is linked from the main page of the OpenOffice.org Base application help<br />
<br />
== HSQL version ==<br />
<br />
I'm not sure that the assertion here that OOBase includes the full version of HSQLDB is entirely accurate.<br />
<br />
Conversations in the forum suggest that the version included in the download is an old version (1.8?), whereas the latest version of HSQLDB is 2.3.<br />
<br />
May I suggest that the text be amended by someone who knows the facts?[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:08, 24 September 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Extensions_development_basicTalk:Extensions development basic2013-06-20T14:22:09Z<p>Ptoye: /* Paths for OO Basic code */</p>
<hr />
<div>== Name Change Proposal ==<br />
<br />
I think the name of this article should be changed to ''OpenOffice.org Basic''. I know that the ''OpenOffice.org'' part sounds redundant because the whole wiki is about OpenOffice.org. However, the title ''Basic'' would be too generic. Check out Wikipedia where there is already an article called ''StarOffice Basic''. Not much there though.<br />
<br />
Only reason I bring this up is that I had trouble finding out the basics of writing Basic code in OOo. I googled into the [[custom functions]] article and I scanned through Category:Basic:Tutorials and did not see anything. [[User:Jebix|Jebix]] 04:48, 6 July 2006 (CEST)<br />
<br />
May I suggest, as a compromise, "OO Basic"? It's not in Wikipedia.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:43, 22 January 2013 (UTC)<br />
<br />
== Path for the Makros ==<br />
<br />
this I found in the article:<br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br />
Tools > Options… > OpenOffice.org > Paths > BASIC<br />
<br />
but I can't find it there in 2.0.4<br />
<br />
Please Explain<br />
<br />
I'm interested to know where there diffenrent makros are saved and maybe change it<br />
<br />
<br />
Mechtilde<br />
<br />
== More help on opening and saving documents needed ==<br />
<br />
I'm trying to work out two things: how to open a document using an existing template, and how to save the resulting document. When I've worked it out, I'll try to edit this page, but some input from people who know more about it than myself would be useful.... [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:46, 22 January 2013 (UTC)<br />
<br />
There's also a minor typo in the examples: the "_blank" parameter is on one occasion typed as "&nbsp;blank". Interestingly, it still works, so it looks as if the API documentation is a bit wrong there. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:59, 22 January 2013 (UTC)<br />
<br />
A correction to the previous comment: in the Wikitext the underline is there. But on my browser (Firefox) it sometimes shows as a space. Can't think why, unless there are two different codes for the underline character which are mapped differently by Firefox.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:23, 1 February 2013 (UTC)<br />
<br />
== Paths for OO Basic code ==<br />
<br />
The text in Section 1 about the path for OO Basic macros seems to be out of date. Certainly in my OO3.4.1 there isn't an entry.<br />
<br />
This raises the question - how on earth does a user find the macro code?<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 14:22, 20 June 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Extensions_development_basicTalk:Extensions development basic2013-06-20T14:20:05Z<p>Ptoye: /* Paths for OO Basic code */</p>
<hr />
<div>== Name Change Proposal ==<br />
<br />
I think the name of this article should be changed to ''OpenOffice.org Basic''. I know that the ''OpenOffice.org'' part sounds redundant because the whole wiki is about OpenOffice.org. However, the title ''Basic'' would be too generic. Check out Wikipedia where there is already an article called ''StarOffice Basic''. Not much there though.<br />
<br />
Only reason I bring this up is that I had trouble finding out the basics of writing Basic code in OOo. I googled into the [[custom functions]] article and I scanned through Category:Basic:Tutorials and did not see anything. [[User:Jebix|Jebix]] 04:48, 6 July 2006 (CEST)<br />
<br />
May I suggest, as a compromise, "OO Basic"? It's not in Wikipedia.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:43, 22 January 2013 (UTC)<br />
<br />
== Path for the Makros ==<br />
<br />
this I found in the article:<br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br />
Tools > Options… > OpenOffice.org > Paths > BASIC<br />
<br />
but I can't find it there in 2.0.4<br />
<br />
Please Explain<br />
<br />
I'm interested to know where there diffenrent makros are saved and maybe change it<br />
<br />
<br />
Mechtilde<br />
<br />
== More help on opening and saving documents needed ==<br />
<br />
I'm trying to work out two things: how to open a document using an existing template, and how to save the resulting document. When I've worked it out, I'll try to edit this page, but some input from people who know more about it than myself would be useful.... [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:46, 22 January 2013 (UTC)<br />
<br />
There's also a minor typo in the examples: the "_blank" parameter is on one occasion typed as "&nbsp;blank". Interestingly, it still works, so it looks as if the API documentation is a bit wrong there. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:59, 22 January 2013 (UTC)<br />
<br />
A correction to the previous comment: in the Wikitext the underline is there. But on my browser (Firefox) it sometimes shows as a space. Can't think why, unless there are two different codes for the underline character which are mapped differently by Firefox.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:23, 1 February 2013 (UTC)<br />
<br />
== Paths for OO Basic code ==<br />
<br />
The text in Section 1 about the path for OO Basic macros seems to be out of date. Certainly in my OO3.4.1 there isn't an entry.<br />
<br />
This raises the question - how on earth does a user find the macro code?<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]])</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Extensions_development_basicTalk:Extensions development basic2013-06-20T14:14:46Z<p>Ptoye: /* Paths for OO Basic code */ new section</p>
<hr />
<div>== Name Change Proposal ==<br />
<br />
I think the name of this article should be changed to ''OpenOffice.org Basic''. I know that the ''OpenOffice.org'' part sounds redundant because the whole wiki is about OpenOffice.org. However, the title ''Basic'' would be too generic. Check out Wikipedia where there is already an article called ''StarOffice Basic''. Not much there though.<br />
<br />
Only reason I bring this up is that I had trouble finding out the basics of writing Basic code in OOo. I googled into the [[custom functions]] article and I scanned through Category:Basic:Tutorials and did not see anything. [[User:Jebix|Jebix]] 04:48, 6 July 2006 (CEST)<br />
<br />
May I suggest, as a compromise, "OO Basic"? It's not in Wikipedia.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:43, 22 January 2013 (UTC)<br />
<br />
== Path for the Makros ==<br />
<br />
this I found in the article:<br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br />
Tools > Options… > OpenOffice.org > Paths > BASIC<br />
<br />
but I can't find it there in 2.0.4<br />
<br />
Please Explain<br />
<br />
I'm interested to know where there diffenrent makros are saved and maybe change it<br />
<br />
<br />
Mechtilde<br />
<br />
== More help on opening and saving documents needed ==<br />
<br />
I'm trying to work out two things: how to open a document using an existing template, and how to save the resulting document. When I've worked it out, I'll try to edit this page, but some input from people who know more about it than myself would be useful.... [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:46, 22 January 2013 (UTC)<br />
<br />
There's also a minor typo in the examples: the "_blank" parameter is on one occasion typed as "&nbsp;blank". Interestingly, it still works, so it looks as if the API documentation is a bit wrong there. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:59, 22 January 2013 (UTC)<br />
<br />
A correction to the previous comment: in the Wikitext the underline is there. But on my browser (Firefox) it sometimes shows as a space. Can't think why, unless there are two different codes for the underline character which are mapped differently by Firefox.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:23, 1 February 2013 (UTC)<br />
<br />
== Paths for OO Basic code ==<br />
<br />
The text in Section 1 about the path for OO Basic macros seems to be out of date. Certainly in my OO3.4.1 there isn't an entry - here's a screenshot.<br />
<br />
<br />
<br />
This raises the question - how on earth does a user find the macro code?</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/StarDesktopTalk:Documentation/BASIC Guide/StarDesktop2013-02-11T09:11:49Z<p>Ptoye: Added comment about missing underlines</p>
<hr />
<div>== OpenOffice.org 5 ==<br />
"The name of the StarDesktop object dates back to OpenOffice.org 5" ??<br />
--[[User:TJFrazier|TJ]] 04:24, 5 October 2007 (CEST)<br />
<br />
== "Compression of Files" bracket stuff ==<br />
<br />
Bracketed stuff in that section. --[[User:TJFrazier|TJ]] 04:28, 5 October 2007 (CEST)<br />
<br />
== Parameter for new frame ==<br />
<br />
In the text you say that the parameter for opening a document in a new frame is "_blank", but the example gives " blank". The API documentation agrees with the former, but I've found by experiment that both work OK (documentation bug??); "blank" works as well! Should the code be changed to match the description, or was it put in to highlight the discrepancy? In the latter case I'd suggest a note pointing this out.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:57, 23 January 2013 (UTC)<br />
<br />
:If you can find such an instance, of " blank" (I can't), by all means please fix it. Generally speaking, the information here, in the Basic Guide, is subordinate to the API and DevGuide documentation. The leading underscore is a common way of marking reserved words, which the user should not define, but should use exactly as given. If the code permissively allows "blank" and " blank" as well, these are implementation details. We don't document those, because someone might come along and change to a more rigorous requirement. We don't want our users to depend on things like that, which may go away without notice; we try to tell them how to do it right. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 17:51, 23 January 2013 (UTC)<br />
::I fully agree. But in your page, the first example has " blank" without the underline - I assume a typo, unless it was there to indicate that the underline is optional (which, as you say, isn't documented and really needs a comment).[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:14, 31 January 2013 (UTC)<br />
::I've now found that this is an artefact in my browser: the wikitext is fine but not all the underlines display. Weird but true. Sorry for the disturbance.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 09:11, 11 February 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/User_talk:TJFrazierUser talk:TJFrazier2013-02-02T12:06:36Z<p>Ptoye: /* Warning about "StoreAs" overwrite bug. */ new section</p>
<hr />
<div>This is a good place to leave me a note. :-) --[[User:TJFrazier|TJ]] 23:48, 8 May 2009 (UTC)<br />
<br />
<br />
(This is to remind myself to fix the cache description, WIGATI.)--[[User:TJFrazier|TJ]] 20:05, 26 September 2009 (UTC)<br />
<br />
{{CURRENTTIME}}<br />
<br />
==warring==<br />
http://wiki.services.openoffice.org/wiki/Talk:RU/rules_and_information_policy<br />
<br />
http://wiki.services.openoffice.org/w/index.php?title=RU/rules_and_information_policy&action=history<br />
<br />
User [[User:Sancho|Sancho]] doesn't discuss anything.<br />
In English, differences between pages:<br />
http://translate.google.ru/translate?hl=ru&ie=UTF-8&sl=ru&tl=en&u=http://wiki.services.openoffice.org/w/index.php%3Ftitle%3DRU%252Frules_and_information_policy%26diff%3D169023%26oldid%3D169013&prev=_t<br />
<br />
Sancho does not discuss anything, but writes the rules that always repeat "forbidden", "you must or else the page you create will be deleted", "do not", "never" and so on. We change it to "it is recommended", "it is better", "page is going to be edited" and so on.<br />
<br />
User [[User:Sancho|Sancho]] doesn't reply neither in its personal discussion page, nor in the the article's talk and ignores all messages.<br />
<br />
What shall we do in this case?<br />
<br />
:Just what you did do: bring the matter to the attention of a sysop (administrator). Edit warring is a serious offense, and may lead to blocks. I will be posting a lecture on Sancho's Talk page. Meanwhile, please follow one simple rule: do ''not'' undo anyone's edits but your own, without discussing the matter on the associated Talk page. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:01, 22 May 2010 (UTC)<br />
<br />
Here are more articles Sancho refusing to discuss (so far):<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/qa/run_ooo_versions_parallel<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/Documentation/FAQ/General --[[User:Fyva|Fyva]] 05:34, 23 May 2010 (UTC)<br />
<br />
== thanks from elcico ==<br />
<br />
Dear TJ thank you for your welcome and for your suggestion.<br />
I've changed my mail address, now it should be ok!<br />
Thanks again!<br />
elcico :)<br />
<br />
P.S. Hope this is the right place to reply... just delete after you read! :)<br />
: You're quite welcome. Why ever should I delete a nice thank-you note? --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:34, 2 June 2010 (UTC)<br />
<br />
== Keyboard shortcuts, special characters ==<br />
<br />
Hi TJ, While tripping through the FAQs in search of anyplace I can help, I have found your useful answer (FAQ-Writer-Formatting Text) about how to insert special characters using macros to create keyboard shortcuts. As an alternative, I thought of adding the Windows shortcuts such as I use in Word at work to create a pounds sterling sign (i.e. Alt+0163), but I can't get those combinations to work in Writer. I'm on my laptop at home and am not sure if the Alt-key alternative just does not work in OpenOffice, or if the phenomenon is due to my using a laptop keyboard without the extra number keypad. In the hopes that no question is a dumb question... I ask... do the Alt-key combinations for special characters work in OOo?<br />
:Hi, Lisa, Yes; with my keyboard (with full numeric keypad) they work fine. I use Alt+0151 for em-dash regularly. There may be a num-lock or Fn special key that you need to simulate the numeric keypad; check your laptop's documentation. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:34, 29 June 2010 (UTC)<br />
<br />
== Re: Editing templates ==<br />
<br />
Sorry about the inconvenience. I rarely edit templates on Wikis, being mindful that such edits can have far-reaching effects. FYI, I didn't notice any slowdown: This Wiki has far fewer articles and users than the English Wikipedia.&nbsp;&mdash;&nbsp;[[User:User8192|User8192]]<sup>[[User_talk:User8192|T]] [[Special:Emailuser/User8192|@]]</sup> 17:46, 1 September 2011 (UTC)<br />
<br />
== Category:MainIndex ==<br />
<br />
Hi TJ<br />
<br />
The [[:category:MainIndex]] is '''[[Special:UncategorizedCategories|uncategorized]]''' if ''not put cat into itself'' or [[Special:Categories|another category or subcategory]].<br />
<br />
Do you know another solution?<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:04, 11 January 2012 (UTC)<br />
:right, then it stay uncategorized. [[User:Adailton|Adailton]] 13:58, 12 January 2012 (UTC)<br />
<br />
== Broken Redirects ==<br />
<br />
[[Documentation/FAQ/General/What are the differences between StarOffice (old versions) and OpenOffice.org?]] deleted, ''obsolete FAQ - replaced by a newer version of same information''? should be a fusion of historical record of keeping the original creator of the page. what is the new version? and [[Documentation/FAQ/General/QA 0002]]? Thanks [[User:Adailton|Adailton]] 13:43, 15 January 2012 (UTC)<br />
<br />
:Nice catch. Found the replacement page and fixed the redirect accordingly. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:48, 15 January 2012 (UTC)<br />
<br />
== Category:Marketing ==<br />
Hi TJ<br />
<br />
User pages in [[:category:Marketing]]: [[User:Blibrestez55/Books/Database]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Allow import of only selected pagesn]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving char spaces]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving rotated text]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Introduction]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue105133]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue109708]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue90633]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue92919]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Misplaced paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Moving Proper paragraphs GlyphProcessor]], [[OpenOffice.org Internship/Tasks/Proper paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Testing proper paragraphs]], [[User:Khirano/Solutions]], [[User:RealGrouchy]], [[User:Wyrfel]].<br />
<br />
It seems '''inappropriate''' to have categorized '''users''' pages, so I ask whether they should be '''uncategorizaded''' or moved to the '''main domain'''? (I'm sorry but I do not quite understand the English Language, so I use a translator). [[User:Adailton|Adailton]] 13:43, 16 January 2012 (UTC)<br />
:English: "de-categorized" (= "have the category reference removed") is not a valid English word, either, but it is readily understandable.<br />
:Appropriateness: Since the users themselves added their pages to the category, I'm in favor of leaving them there. If somebody associated with marketing complains, we can make changes then. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 02:24, 17 January 2012 (UTC)<br />
<br />
== Candidates for speedy deletion ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[:Category:Candidates for speedy deletion]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 11:20, 27 January 2012 (UTC)<br />
<br />
:Removed most of the pure spam. Remaining candidates are mostly technical, and can be removed more slowly.<br />
:Thanks for the good work. If you are an Apache committer (or at least have an iCLA on file), I will enable you as a sysop ("Administrator group"). That would let you delete directly, and block spammers as well (very carefully!). --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 14:32, 27 January 2012 (UTC)<br />
<br />
==Speedy deletion==<br />
Hi TJ<br />
<br />
I made a change in {{tl|delete}} in order to include a justification for the deletion. Please see if it was good.<br />
<br />
I saw that there are 11,420 [[Special:UncategorizedFiles|files uncategorized]]. Are there any major [[Special:Categories|category]] for files? I just found [[:Category:Icons]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 14:38, 26 February 2012 (UTC)<br />
<br />
: '''Delete''': Looks good to me, if it works for you.<br />
<br />
: '''File Categories''': AFAIK, the files should be categorized according to the pages that link to them (plus descriptive categories, like "Icon"). This could be a non-trivial task; if a file is linked from pages in different categories, it may be desirable to climb the category tree to find the intersection, and categorize the file there. <br />
<br />
:Your help is much appreciated. I know much of templates, but only a little about categories. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:52, 26 February 2012 (UTC)<br />
::I think the categorization according to the pages that use is practical, but we can also categorize your files by grouping them by theme (icons, applications, screens, menu items, examples, etc.), without excluding one another. There are also PDF documents, which could be a category, but I will not create them if you think it should be done well. [[User:Adailton|Adailton]] 21:07, 26 February 2012 (UTC)<br />
<br />
:::pls, see: <br />
:::*[[Casino ohne download]]<br />
:::*[[User talk:Josebryan13]]<br />
:::*[[Deals - How can you make best deals on timeshare]]<br />
:::*[[Phentermine - How the phentermine works in your body.]] <br />
:::*[[Moving Company- How to make consequences favorable]]<br />
::: and related images. Tks [[User:Adailton|Adailton]] 22:21, 22 May 2012 (UTC)<br />
::::Gone! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 03:32, 23 May 2012 (UTC)<br />
:::::Please, see [[User:PressRTbox]]. [[User:Adailton|Adailton]] 22:04, 25 May 2012 (UTC)<br />
::::::Persistent pest, now blocked. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 23:26, 25 May 2012 (UTC)<br />
<br />
----<br />
Please, see [[User:Ulissi]] (and botton of user page) and history.<br />
:Left him a warning that the link farm may get deleted. My snap diagnosis is "enthusiastic amateur", rather than deliberate spammer, so I'm starting out gently.<br />
::Removed all external and red links. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:55, 18 September 2012 (UTC)<br />
<br />
I am looking at [http://wiki.services.openoffice.org/w/index.php?title=Special:LinkSearch&target=*.com Special:LinkSearch]. There are many abuses to be checked. tks [[User:Adailton|Adailton]] 11:08, 14 June 2012 (UTC)<br />
:Nice find of that page! The good news here is that almost all of those links seem legitimate. I only found one (the very last of the first 100) that was typical user-page spam (from 2009!), and deleted it. I'll run through the rest of the list, slowly.<br />
:Many thanks for all your help. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:59, 14 June 2012 (UTC)<br />
<br />
==New volunteer==<br />
Hello. I recently started to built some pages for brazilian community start to work and I'd like to contribute in the wiki maintenance also. I've created [[:Category:Outdated]] to mark all old content pages that need to be revised. I have a lot of suggestions to offer in order to make this wiki more affordable, but I am affraid to make changes without people's agreement. I do not wish to upset anyone so, please, if there is a wiki coordinator/administrator (or something like that), let me know. I don't wish to work '''against''' but '''with''' you. =) <br />. Thanks. <small>signed by sysop</small> 2012-05-17T09:12:32 [[User:PauloLima|PauloLima]]<br />
<br />
:Hi, Paolo!<br />
<br />
:I'm replying here, just to keep the whole conversation in one place. You can put a Watch on my Talk page if you like, or I'll put a note on yours. I see that you have met [[User:Adailton|Adailton]], who is a big help around here, chasing spammers. Whatever help you care to give is very welcome.<br />
<br />
::Hi TJ. This place is fine.<br />
<br />
:Like most everything at Apache, there is no "official" hierarchy on this wiki. The only sense in which I'm "it" is that I'm doing the work. I do have both sysop and bureaucrat privileges, and I will promote any committer to sysop who asks. My personal expertise runs to "expert user": knowledgeable on wiki markup, templates, ''etc.'' If you have plans to improve the user experience, go for it; I'll be glad to help you do it the easy way, if you like.<br />
<br />
:: Ok. I've been working with Mediawiki software intensively for the last 2 years. I've created/developed many of the pages in LibO PT_BR wiki, and I was responsible to develop the document translation workflow to PT-BR. That was a great learning. Now I wish to contribute here. These days, I am running a document management project for the company I work,using Mediawiki software, for for the last year, using its semantic features. And this was a great learning for me too. So, I proposed to use my experience in this area to help building an intelligent ontology that could ease the access tothe information in the wiki. But... In order to do that, it would be necessary to upgrade Mediawiki at least to 1.7.4 (1.9 would be better) and install some semantic extensions (maybe creating some new user's groups, if necessary). Can you help me on that? This should not impact the actual wiki's access/availbility, but can make available features for me to work on some sort of "snapshot". =)<br />
<br />
:Which reminds me: are you deliberately using the "preformatted text" option (starting your line with a space character), to create indentation? A colon (:) works better, because it wraps better. Use more colons for more levels of indentation (think, "tabs"). By convention, if you reply here, you would start your lines with two colons, I would reply with three, ...<br />
<br />
:: Yes. I'm using that. It's a matter of preferences. For me it looks better, but I have no objections in using identation =)<br />
<br />
:I look forward to your contributions. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 20:06, 17 May 2012 (UTC)<br />
<br />
:: I've created a category PT-BR for brazilian community begin to work. It was necessary, but, as Adailton pointed, maybe we could join PT-BR and PT sections, if it works better. I'm helping Kevin on UX team and looking for pages that must be updated/deleted. There are many outdated information here and it's necessary to classify them (that's why I've created a [[:Category:Outdated]]). In the next days I will navigate through the wiki to find and categorize those pages. After that, we will have a picture of what/where/who/when we need to do. If you and Adailton agree with that, of course. What do you think?<br />
<br />
:: [[User:PauloLima|PauloLima]] 22:17, 17 May 2012 (UTC)<br />
Preformatted text looks great — ''if'' you pre-format it!<br />
<br />
:::Otherwise, it has a nasty tendency to run right over the right-hand border, and just keep going. I find that both ugly and a nuisance, having to adjust the horizontal slider, and I had to do that a lot on your talk page. This may be browser- and skin-dependent. But, to more important matters.<br />
<br />
:::: Well, I have placed line breakers <nowiki>"<br />"</nowiki> in my replies, because I am aware of this issue. I don't know why you had this problem in you browser, maybe your screen resolution is too low. For me, my replies are been displayed with short lines and no horizontal slider both in Internet Explorer (Windows 98 in a virtual machine), Google Chrome and Mozilla Firefox (Ubuntu 11.10). But it doesn't matter, I can use identation. No problem.<br />
<br />
:::For upgrading MW and installing new extensions, you need a site-maintenance person, and that's not me. The only one I know of with the project is Raphael Bircher; otherwise, we depend on Infra. The problem is that none of those folks have any real expertise with MW or php, and neither do I. If you have command-line expertise, by all means volunteer on the Infra ML, and ask for access. Otherwise, I suppose we can try writing JIRA tickets. I am certainly in favor of an upgrade; there are problems with the <nowiki><math></nowiki> syntax that probably can only be fixed that way, and some other adjustments that should be made.<br />
<br />
:::: Yes, I know how to upgrade and install extensions to Mediawiki. But, I would had to get ssh access to the server and RWX rights to Mediawiki directory. A database backup would be necessary (and I should have access to it in this case, also). If you have admin rights to the wiki, so you can perform admin tasks for me, when it's necessary.<br />
:::::Yes, you know what you need, and you can get the access by asking on the Infra ML (infrastructure@apache.org). Send from your Apache address, with a subject like, "Request root access to ooo-Mwiki VM". I think they will be glad to hear from you, when you spell out your expertise as you have done here. I haven't asked for such access, because I don't have (yet) the knowledge to use it. I will add a new section on this page for a data dump of what I've learned about the physical setup.<br />
<br />
:::For your other plans, I suggest you pick out some segment for a pilot program, and work the bugs out; there are thousands of pages needing attention. But don't let this tired old man dampen your enthusiasm! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 01:35, 18 May 2012 (UTC)<br />
<br />
:::: Well TJ, I am not exactly a kid anymore for a long, long time. At least in my body. In my soul I feel like a kid yet =)<br />
:::::Some of us on the high side of 70 have merely lived a long time; others of us are ''old''. I must regretfully admit to which one I am.<br />
:::: I am planning to use PT-BR section for my tests. This will not affect any feature of actual wiki. Pages/Templates/Forms/Properties can be created transparently and released to production when ready. The only impact will be in the categories structure. I shall have to do some modifications, but I won't do that without notice. Before that, I will show you a new ontology (categories/properties structure), put it into discussion, so we can find the best way to improve the wiki, right?<br />
:::::Sounds great to me. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
:::P.s.: Do I assume correctly that you mean MW versions 1.17.x and 1.19.x ?<br />
<br />
:::: Yes, that's it. Thank you very much for your help.<br />
==The Physical Wiki==<br />
This wiki is housed on a VM, running a LAMP stack. "L" = some version of Ubuntu. In addition to the MW software, we run the Apache Traffic Server (ATS) as a front end. (Some adjustment is needed here: as of this writing, ATS sometimes serves up stale pages.)<br />
<br />
Exact information on extensions and versions should be available on the [[Special:Version|Version]] page. Known problems include:<br />
* The locally written IDL extension is not the latest version; this was an error during the move to Apache. The latest version needs to be found and installed, so that the <nowiki><idlml></nowiki> tags work.<br />
* MW was undergoing a change to the Math support, during MW v17. Math is showing errors on our installation (see example on [[User:TJFrazier|my user page]]), which have probably been fixed in a later MW release.<br />
:*Many thanks to Imacat, who installed the Textvc code, and fixed the math problem. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 19:47, 30 July 2012 (UTC)<br />
<br />
--[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
== Wanted Categories ==<br />
<br />
Hi TJ<br />
<br />
There is a [[Special:WantedCategories|Wanted Categories]], '''Category:RU/Авторы/А. Е. Харламенков''', that has been recently deleted. What do we do?<br />
<br />
Thanks [[User:Adailton|Adailton]] 15:16, 18 September 2012 (UTC)<br />
<br />
:Nothing. The category was marked for speedy delete, by the Russian fellow who created it. I deleted it. Why it's showing up on that special page is a mystery. I'll poke around some. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:55, 18 September 2012 (UTC)<br />
::That I understood. It is listed on the special page to have a page, [[RU/kb/common/programming]], the same author category. I think I must remove the category of the page, but it is a hidden category within a Template. [[User:Adailton|Adailton]] 16:07, 18 September 2012 (UTC)<br />
:::I must confess that I couldn't trace through the signature-related templates to find the Category call. So I commented out the signature (which is against policy anyway; sign with wiki signatures, if at all). Special page now empty. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:35, 18 September 2012 (UTC)<br />
::::Ok, unusual solution but ''problem'' solved. [[User:Adailton|Adailton]] 22:16, 18 September 2012 (UTC)<br />
<br />
== SimpleNonprofitAccountingTemplate ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[SimpleNonprofitAccountingTemplate]]<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:03, 27 September 2012 (UTC)<br />
<br />
:ROFL! Just adding that to the doc list when I got your message. I'll categorize it properly, too. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:08, 27 September 2012 (UTC)<br />
<br />
==Question on adding Justification to marking a page for Speedy Delete==<br />
Hi TJ;<br />
<br />
I wanted to mark a page for speedy delete and noticed in the in the preview that there was a section for adding a justification when you use the delete template. Was wondering what the proper syntax was for adding that. Appreciate your time and help.<br />
<br />
Regards<br />
Keith<br />
<br />
:Hi, Keith,<br />
<br />
:User Adailton's reply to you is authoritative: he added that field to the template. (He's a big help around here.)<br />
<br />
:Sorry for the slow reply, but Sandy did interrupt my power for several hours, and threatened to do worse. I didn't want to be in the middle of doing something here on the wiki, and have to quit. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:59, 27 October 2012 (UTC)<br />
<br />
== Hurricane Sandy ==<br />
<br />
Hi TJ<br />
<br />
Welcome back! I hope that Sandy has not given him much trouble.<br />
<br />
Spammers have given some work here, but everything under contrrole.<br />
<br />
Regards [[User:Adailton|Adailton]] 13:14, 27 October 2012 (UTC)<br />
<br />
<br />
:Sandy came and went, with no lasting problems. Now I'm catching up. Thanks for covering. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:19, 27 October 2012 (UTC)<br />
<br />
== File:FreedomFleetAttendance.xls ==<br />
<br />
Hi TJ<br />
<br />
[:File:FreedomFleetAttendance.xls] some use?<br />
<br />
[] [[User:Adailton|Adailton]] 10:18, 12 November 2012 (UTC)<br />
<br />
<br />
:Not that I could see, so I deleted it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:37, 12 November 2012 (UTC)<br />
<br />
== New pages ==<br />
Hi TJ<br />
<br />
[[Special:NewPages|some pages created November 12 were forgotten]]<br />
<br />
Regards [[User:Adailton|Adailton]] 10:47, 14 November 2012 (UTC)<br />
<br />
:I see only one new page, in User space, and you erased the spam on it. Do you see other new pages on some other list? <br />
:There was some kind of error about then, on the wiki; one of my operations timed out, so I just went away for a while. Maybe some logs (or pages) were lost. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:16, 14 November 2012 (UTC)<br />
<br />
== Sysop ==<br />
Hi TJ<br />
<br />
I worried that I am not fluent in the language. I read a little English, and generally use the google translator to long paragraphs.<br />
<br />
I will be more cautious, but stay tuned for elimination and blocks.<br />
<br />
Regards [[User:Adailton|Adailton]] 15:07, 17 November 2012 (UTC)<br />
:The more users doing good work, less work for each. [[User:Helen russian|Helen russian]] also did good job. Thanks [[User:Adailton|Adailton]] 23:03, 18 November 2012 (UTC)<br />
::What a busy day! I have deleted more than 130 pages today. TJ, Adailton, Andrew, I need a time-out. :-) I'll be back in 12 hours (at 4:00 UTC). Please don't lose me. --[[User:Helen russian|Helen]] 16:09, 19 November 2012 (UTC)<br />
<br />
::I see a new Russian sysop [[User:Yak|Yak]]. It's great! Yakov, thank you for joining us --[[User:Helen russian|Helen]] 03:44, 20 November 2012 (UTC)<br />
<br />
:::You folks have been doing a super job! Help is on the way: see the Mwiki threads on dev@, plus the new section on my user page. That info is not current yet, but it will be. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 13:01, 20 November 2012 (UTC)<br />
<br />
::Hi TJ, any news? --[[User:Helen russian|Helen]] 02:15, 21 November 2012 (UTC)<br />
<br />
== Excessive spamming ==<br />
<br />
Hi TJ<br />
<br />
I made a [[Special:Log/protect|protection]] to prevent re-creation. What do you think?<br />
<br />
Regards [[User:Adailton|Adailton]] 10:26, 22 November 2012 (UTC)<br />
<br />
:Good move! We can delete it when the spam attack is over. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 10:49, 22 November 2012 (UTC)<br />
<br />
== How long will the spam attack? ==<br />
Hi TJ<br />
<br />
How long will the spam attack? Can I search for additional volunteers from the Russian community? --[[User:Helen russian|Helen]] 02:23, 23 November 2012 (UTC)<br />
<br />
:Hi, Helen,<br />
<br />
:We have a new recruit for site maintainer: Jan Iversen (also new Bureaucrat and sysop). Hopefully his access will be finished tonight or tomorrow, and he will turn off the spam user creation and delete their accounts. You will know for sure when you see a banner announcement about it, explaining that new accounts are by invitation only.<br />
<br />
:I can't guarantee the timing. You are welcome to search for more volunteers, and I will appoint them as sysops on your say-so. I just hope they won't have anything to do! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 02:38, 23 November 2012 (UTC)<br />
<br />
::OK. I'll try to find some volunteers for the job today after 11:00 UTC. --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
<br />
:::P.S.: Adailton found a clever way to defeat the repeated spamming of a few pages. Protect them to the Administrator level, then delete. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:28, 23 November 2012 (UTC)<br />
:::: OK --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
:::::TJ, delete first, then protect the page. This prevents an editor to create again. [[User:Adailton|Adailton]] 05:33, 23 November 2012 (UTC)<br />
<br />
== Need Create New Pages permission ==<br />
<br />
Started the proect to merge the FAQ's from the web site into the wiki and find my account does not have Create New Pages Permissions. Can you add them please or should I send a formal request through the dev list. Thanks for the help<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 02:55, 11 December 2012 (UTC)<br />
<br />
== Request for advice from mWiki guru ==<br />
<br />
After a closer look at all the materials involved with consolidating the FAQ's from the web site into the Wiki it appears the most effiecient way todo it would be to create some new Documentation\FAQ catagories and restructure the toc to add them. Given what is currently going on would it be best to just fit them in to the current structure and wait until the update is completed and then make the changes and reassign the new FAQ's to them? The alternative would be to do it know and I would need a crash course (mostly on reading the help files) on the intricacies of doing it.<br />
<br />
Sorry to be a pain with questions, but the engineer in me says ask the questions first before you really muck something up!<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 20:53, 12 December 2012 (UTC)<br />
<br />
:Keith, your cautious approach is much appreciated.<br />
<br />
:First, go right ahead now. This work should not be affected by the upgrades and such.<br />
<br />
:Second, IIRC, the lowest-level listing is all done with DPL and categories. The relevant help files for the DPL extensions (we're using the older one) are on [http://www.mediawiki.org/wiki/MediaWiki MediaWiki], which can (surprisingly) be a little hard to reach from Wp. You can probably do just what I'd do: copy an existing page, changing only the particular data (category name). Then put the appropriate new category on each new page: <nowiki>[[Category:whatever]]</nowiki>.<br />
<br />
:The higher-level toc (purple box) is built by one template calling another. The Master TOC template positions and paints the box; the FAQTOC template supplies the data, so this is what you need to edit. Wp has scads of help on templates; it is a much more powerful feature than any reasonable person would ever need. Fortunately, again all you probably need to do is copy and adjust existing entries to show the new stuff. The Preview button is your friend. Please try to minimize the number of edits to templates: an edit change kicks off a chain of replacements for every calling page, which can bog down the wiki for minutes. Note that you can call templates from your own space. That makes experimenting cheap. <nowiki>{{User:KNetc/test}}</nowiki> or something similar should suffice, where page "test" is a copy of the real template.<br />
<br />
:I'm fairly ignorant about DPL, but I'm useful on templates. Ask if you have problems. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 01:55, 13 December 2012 (UTC)<br />
<br />
::TJ I spent the better part of 20 years in Manufacturing Engineering first as a tech and then as an engineer. Have seen to many screw-ups that could have been prevented by asking "stupid questions" first. Not fun having to explain to ops managers why they lost x number of man hours / days.<br />
<br />
::First, since there should be no conflicts with the upgrades et al, I will venture down the path of creating new catagories and updating the toc.<br />
<br />
::Second, I will spend a few days this weekend looking over the help sections that you point to and try some experimenting in my "sandbox". Is there a time frame that would be best to go "live" with the changes to the FAQtoc to have the least disruption to the rest of the community on the Wiki?<br />
<br />
::Believe me if I have questions believe me I will ask. Thank you for all the info and your willingness to help.<br />
<br />
::Regards [[User:KNMcKenna|Keith]] 22:11, 13 December 2012 (UTC)<br />
<br />
I suggest that you make a copy[1] of faqtoc, maybe "factoc2", in template space. Just click on a link like this one: [[Template:factoc2]]. You can edit that one all you want, because only the few pages you build will be affected. At the very end, copy it back — only one edit to the live template, so you needn't worry about the timing. Then change the links (the special page, "What links here" is your friend) and delete the copy.<br />
<br />
Feel free to put the links to the new subdivisions[2] where they belong, on the Documentation or Doc/FAQ pages, but please hang the "Under Construction" sign on anything incomplete, in case users blunder into it.<br />
<br />
Thank you very much for undertaking this task.<br />
<br />
<br />
Notes:<br /><br />
[1] "copy" means Edit | Select all | Copy | Cancel edit on the source page, then Edit | Paste on the new page.<br /><br />
[2] I used a different term, because you will be creating some wiki Category pages, too. Using the redlink method, just reference the new category as usual, at the bottom of the new faq page. That will show as a redlink; click on it, add a one-line description, and save the page. Nothing to it! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:32, 14 December 2012 (UTC)<br />
<br />
==Speedy Delete==<br />
Hi TJ<br />
<br />
I wish you a Merry Christmas :)<br />
<br />
I have been absent due to commitments, but I must return to work soon<br />
<br />
[[:Category:Candidates for speedy deletion]] is ''Outdated, not valid''? There is another to replace it?<br />
<br />
Even if only administrators are active, I think at times be necessary ''ask'' the opinion of others about certain deletions to prevent undue eliminations. In wikipedia the ''normal'' is always an editor (even an administrator) mark and an administrator check and then eliminate.<br />
<br />
There needs to alter {{tl|delete}}?<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 08:52, 25 December 2012 (UTC)<br />
<br />
:Agree that the category is needed, so I replaced it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 12:32, 25 December 2012 (UTC)<br />
==Category Names Problem==<br />
Hi TJ <br />
<br />
In [[Special:WantedCategories]] there in many categories, but all with ''problems'' in the title, probably due to a misconfiguration in for special characters needed for languages like Polish, Portuguese, French, Russian, etc. But I do not know exactly how to fix it.<br />
<br />
For exemples: [[:Category:Wdrożenia]] would be [[:Category:Wdrożenia]] ('''ż''')<br />
<br />
This may have occurred before December 25, the date of deletion. Possibly the time of spam attack, in november.<br />
<br />
I'll create the correct categories, with the hope that it would remove the entries in special page.<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 13:57, 7 January 2013 (UTC)<br />
<br />
:This looks to me to be a problem related to the UTF-8 settings and conversion, which was part of the upgrade on 12/25. The pages themselves seem to be properly categorized; why they are showing up in "Wanted" is a mystery. I'll ask Jan about it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 15:27, 7 January 2013 (UTC)<br />
<br />
== String character index base ==<br />
<br />
Thanks for adding the clarification. I'd found it out myself by experimentation, but it's good to have authoritative backing.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 09:55, 22 January 2013 (UTC)<br />
<br />
:Thank you for taking the trouble to point out the ambiguity. There are other places where only some experimentation will show how to do it, and they all should be fixed. Probably the worst has to do with the cursors (text and view); I'm working on that. Please feel free to point out any problems you find. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 12:13, 22 January 2013 (UTC)<br />
<br />
::I agree - a lot of the time it's not easy to work out how to do something. I've found out how to open documents from templates - would you like me to add a para to the wiki? Also how to save documents (still working out what to do with all those document properties, though).[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:03, 23 January 2013 (UTC)<br />
:::The Boolean "AsTemplate" parameter is documented in the <tt>loadComponentFromURL</tt> function call, but the text is not as helpful as it could be. If you want to make it clearer, please do. This is one big reason we keep the documentation on the wiki: any user who knows and cares about some point can help improve AOO, one small piece at a time. It is very worth doing: with tens of millions of downloads, we can expect tens of thousands of wannabe Basic programmers to have the same questions you do, and read your words. (Just remember, they will expect your words to be ''right!'') If additional details about various properties would be helpful, then add some text.<br />
:::See also my comment on the Talk page, about "_blank": what to fix, what not to fix, and why. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 18:29, 23 January 2013 (UTC)<br />
::::Don't quite understand this: this ''is'' the Talk page and I can't see any such reference here! I'll cook up some text on opening files from templates and put it in.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:00, 30 January 2013 (UTC)<br />
:::::Sorry, I meant the Talk page on the article where you left your comments, [[Talk:Documentation/BASIC_Guide/StarDesktop]]. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 18:26, 30 January 2013 (UTC)<br />
::::::OIC![[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:14, 31 January 2013 (UTC)<br />
::::I've added a new section on opening from a template. You'll probably want to edit the style. And maybe take out my signature. I'm not an experienced Wiki editor.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:14, 31 January 2013 (UTC)<br />
::::I may have to edit this further. The interaction between the "As Template" property on opening and whether the opened file was stored by OO as a template is not 100% clear. Certainly I've found that "AsTemplate" has no effect when storing a file: however it's opened it behaves as a normal file.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 13:02, 1 February 2013 (UTC)<br />
<br />
== Warning about "StoreAs" overwrite bug. ==<br />
<br />
I've added a para to the cookbook about a potentially dangerous bug in the "StoreAsURL" function. Fortunately I was working in a test environment when I came across it, but it can potentially result in an unwanted data overwrite. Hopefully it will be corrected and the para can be removed.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 12:06, 2 February 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Saving_a_documentSaving a document2013-02-02T12:03:36Z<p>Ptoye: Slight extension of warning</p>
<hr />
<div>'''To save an existing document: '''<br />
<br />
<source lang="oobas"><br />
thisComponent.store()<br />
</source><br />
But, this maybe a bit too simplistic. So a more generic approach might be: <br />
<br />
<source lang="oobas"><br />
function fnSave(oDoc)<br />
if oDoc.hasLocation AND Not oDoc.isReadOnly Then<br />
fnSave = true<br />
on local error goto notSaved<br />
oDoc.store()<br />
on error goto 0<br />
else<br />
fnSave = fnDispatch("SaveAs")<br />
end If<br />
exit function<br />
<br />
notSaved:<br />
fnSave = false<br />
end function<br />
</source><br />
<br />
fnDispatch is defined in [[ The OpenOffice.org recorder and UNO dispatch calls]]. <br />
<br />
To "save as": <br />
<br />
<source lang="oobas"><br />
sub subSaveAs(oDoc, sFile, optional sType)<br />
sURL = convertToURL(sFile)<br />
if isMissing(sType) then<br />
oDoc.storeAsURL(sURL, array())<br />
else<br />
dim mFileType(0)<br />
mFileType(0) = createUnoStruct("com.sun.star.beans.PropertyValue")<br />
mFileType(0).Name = "FilterName"<br />
mFileType(0).Value = sType<br />
oDoc.storeAsURL(sURL, mFileType())<br />
end if<br />
end sub<br />
</source><br />
'''WARNING''' There is a bug in either the API documentation or the OO code (see [https://issues.apache.org/ooo/show_bug.cgi?id=121665 Issue 121665] for the discussion). Unless the "Overwrite" property is set to FALSE in the MediaDescriptor, any existing file of the same name is overwritten without an error notification, which is probably not desired. This has only been tested with OO 3.4.1 under MS Windows - other versions and operating systems may vary.<br />
<br />
To "export as" (leave the URL of the current document alone but save a copy of the file in the specified format): <br />
<br />
<source lang="oobas"><br />
sub subExportAs(oDoc, sFile, optional sType)<br />
sURL = convertToURL(sFile)<br />
if isMissing(sType) then<br />
oDoc.storeToURL(sURL, array())<br />
else<br />
dim mFileType(0)<br />
mFileType(0) = createUnoStruct("com.sun.star.beans.PropertyValue")<br />
mFileType(0).Name = "FilterName"<br />
mFileType(0).Value = sType<br />
oDoc.storeToURL(sURL, mFileType())<br />
end if<br />
end sub<br />
</source><br />
<br />
Examples of calling these routines: <br />
<br />
<source lang="oobas"><br />
subSaveAs(thisComponent, "C:\tmp\NewName.sxw") 'Windows example<br />
subExportAs(thisComponent, "/home/ian/Example.txt", "Text") 'Linux example<br />
</source><br />
<br />
<br />
<br />
=File Types=<br />
The following routine, written by Danny Brewer (copied from [[http://www.oooforum.org/forum/viewtopic.phtml?t=3549 here]]) creates a new document and enters the current filters. <br />
<br />
<source lang="oobas"><br />
Sub Main<br />
oFF = createUnoService( "com.sun.star.document.FilterFactory" )<br />
oFilterNames = oFF.getElementNames()<br />
<br />
' Create a Writer doc and save the filter names to it.<br />
oDoc = StarDesktop.loadComponentFromURL( "private:factory/swriter", "_blank", 0, Array() )<br />
oText = oDoc.getText()<br />
oCursor = oText.createTextCursor()<br />
oCursor.gotoEnd( False )<br />
<br />
' Print the filter names into a Writer document.<br />
For i = LBound( oFilterNames ) To UBound( oFilterNames )<br />
oText.insertString( oCursor, oFilterNames(i), False )<br />
oText.insertControlCharacter( oCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False )<br />
Next<br />
End Sub<br />
</source><br />
<br />
[[Category:Basic:Tutorials]]</div>Ptoyehttps://wiki.openoffice.org/wiki/Saving_a_documentSaving a document2013-02-02T12:02:06Z<p>Ptoye: Warning about "StoreAs" overwrite bug.</p>
<hr />
<div>'''To save an existing document: '''<br />
<br />
<source lang="oobas"><br />
thisComponent.store()<br />
</source><br />
But, this maybe a bit too simplistic. So a more generic approach might be: <br />
<br />
<source lang="oobas"><br />
function fnSave(oDoc)<br />
if oDoc.hasLocation AND Not oDoc.isReadOnly Then<br />
fnSave = true<br />
on local error goto notSaved<br />
oDoc.store()<br />
on error goto 0<br />
else<br />
fnSave = fnDispatch("SaveAs")<br />
end If<br />
exit function<br />
<br />
notSaved:<br />
fnSave = false<br />
end function<br />
</source><br />
<br />
fnDispatch is defined in [[ The OpenOffice.org recorder and UNO dispatch calls]]. <br />
<br />
To "save as": <br />
<br />
<source lang="oobas"><br />
sub subSaveAs(oDoc, sFile, optional sType)<br />
sURL = convertToURL(sFile)<br />
if isMissing(sType) then<br />
oDoc.storeAsURL(sURL, array())<br />
else<br />
dim mFileType(0)<br />
mFileType(0) = createUnoStruct("com.sun.star.beans.PropertyValue")<br />
mFileType(0).Name = "FilterName"<br />
mFileType(0).Value = sType<br />
oDoc.storeAsURL(sURL, mFileType())<br />
end if<br />
end sub<br />
</source><br />
'''WARNING''' There is a bug in either the API documentation or the OO code (see [https://issues.apache.org/ooo/show_bug.cgi?id=121665 Issue 121665] for the discussion). Unless the "Overwrite" property is set to FALSE in the MediaDescriptor, any existing file of the same name is overwritten without an error notification, which is probably not desired. This has only been tested under MS Windows - other operating systems may vary.<br />
<br />
To "export as" (leave the URL of the current document alone but save a copy of the file in the specified format): <br />
<br />
<source lang="oobas"><br />
sub subExportAs(oDoc, sFile, optional sType)<br />
sURL = convertToURL(sFile)<br />
if isMissing(sType) then<br />
oDoc.storeToURL(sURL, array())<br />
else<br />
dim mFileType(0)<br />
mFileType(0) = createUnoStruct("com.sun.star.beans.PropertyValue")<br />
mFileType(0).Name = "FilterName"<br />
mFileType(0).Value = sType<br />
oDoc.storeToURL(sURL, mFileType())<br />
end if<br />
end sub<br />
</source><br />
<br />
Examples of calling these routines: <br />
<br />
<source lang="oobas"><br />
subSaveAs(thisComponent, "C:\tmp\NewName.sxw") 'Windows example<br />
subExportAs(thisComponent, "/home/ian/Example.txt", "Text") 'Linux example<br />
</source><br />
<br />
<br />
<br />
=File Types=<br />
The following routine, written by Danny Brewer (copied from [[http://www.oooforum.org/forum/viewtopic.phtml?t=3549 here]]) creates a new document and enters the current filters. <br />
<br />
<source lang="oobas"><br />
Sub Main<br />
oFF = createUnoService( "com.sun.star.document.FilterFactory" )<br />
oFilterNames = oFF.getElementNames()<br />
<br />
' Create a Writer doc and save the filter names to it.<br />
oDoc = StarDesktop.loadComponentFromURL( "private:factory/swriter", "_blank", 0, Array() )<br />
oText = oDoc.getText()<br />
oCursor = oText.createTextCursor()<br />
oCursor.gotoEnd( False )<br />
<br />
' Print the filter names into a Writer document.<br />
For i = LBound( oFilterNames ) To UBound( oFilterNames )<br />
oText.insertString( oCursor, oFilterNames(i), False )<br />
oText.insertControlCharacter( oCursor, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False )<br />
Next<br />
End Sub<br />
</source><br />
<br />
[[Category:Basic:Tutorials]]</div>Ptoyehttps://wiki.openoffice.org/wiki/Extensions_development_basicExtensions development basic2013-02-01T15:31:40Z<p>Ptoye: /* Opening a new file from a template */</p>
<hr />
<div>'''Getting started tutorial''' <br />
<br />
This page provides a getting started guide for writing macros in OpenOffice.org Basic. It assumes some prior programming knowledge. Please edit this page to make it more readable. I hope you will find it useful.<br />
<br />
If you already know the basics then you may want the [[CookBook]] for wrappers and examples.<br />
<br />
<br />
==Where do I write the code?==<br />
OpenOffice.org Basic code is stored in modules within libraries. A library can be: <br />
<br />
*Shared (for a network install - OOo Macros & Dialogs) <br />
*Just for the current user (My Macros & Dialogs) <br />
*Within a document or template, so that its code is only available when that document is open.<br />
<br />
Libraries stored in a document can easily be copied, transported and distributed with the document.<br />
<br />
Libraries not stored in a document or template (that is libraries that are shared or for the current user) are referred to as '''OpenOffice.org libraries'''. <br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br> '''Tools > Options… > OpenOffice.org > Paths > BASIC'''. <br />
<br />
{| border="1"<br />
|'''Note'''<br />
|Do not copy or move libraries using operating system commands. Use the macro organizer or package manager instead.<br />
|-<br />
|}<br />
<br />
<br />
Modules within libraries have a maximum size of 64kb. A library can contain up to 16,000 modules. <br />
<br />
For more information see online help for: Modules and Libraries.<br />
<br />
==Accessing the IDE==<br />
To access the IDE for the first time: <br />
<br />
OpenOffice.org 1.1.x: '''Tools > Macros > Macro… >''' <br />
<br />
OpenOffice.org 1.9.x and above: '''Tools > Macros > Organize macros > OpenOffice.org Basic… >''' <br />
<br />
To get started we will use Module1 in the Standard library which is stored for the current user only: <br />
<br />
Type a name for the new macro: '''HelloWorld''' <br />
<br />
In the macro from listbox select '''Standard''' <br />
<br />
Click '''New''' <br />
<br />
You should now see something like: <br />
<br />
<source lang="oobas"><br />
REM ***** BASIC *****<br />
<br />
Sub Main<br />
<br />
End Sub<br />
<br />
Sub HelloWorld<br />
<br />
End Sub<br />
</source><br />
The cursor will be positioned at the start of the <tt>Sub HelloWorld</tt> line. <br />
<br />
{| border="1"<br />
|'''Note'''<br />
|Now that while the IDE is running it can be accessed from the OpenOffice.org Window menu, or the task panel provided by the operating system.<br />
|-<br />
|}<br />
<br />
==Entering the code==<br />
Select and delete: <br />
<br />
<source lang="oobas"><br />
REM ***** BASIC *****<br />
<br />
Sub Main<br />
<br />
End Sub<br />
</source><br />
Below the line "Sub HelloWorld" type <tt>msgbox "Hello World!"</tt>, so that the editor looks like: <br />
<br />
<source lang="oobas"><br />
Sub HelloWorld<br />
msgbox "Hello World!"<br />
End Sub<br />
</source><br />
{| border="1"<br />
|'''Notes:'''<br />
|The IDE does not provide code completion or help with command syntax as you type, but to get help on a Basic command position the cursor in the command and press F1.<br> OpenOffice.org Basic commands are not case sensitive. Thus msgbox, MSGBOX and Msgbox will all work.<br> Strings are enclosed in double quotes.<br />
|-<br />
|}<br />
<br />
==Running the code==<br />
There are several ways of running the Basic code, these include: <br />
<br />
*Directly from the IDE. There is a run button on the macro bar (by default the third control on the second toolbar). This will run the first macro in the current module. <br />
<br />
*From the tools menu:<br />
<br />
**(Version 1.1.x) '''Tools > Macros > Macro…''';<br />
<br />
**(Version 1.9.x and above) '''Tools > Macro > Run Macro…''' <br />
<br />
*Assigning the macro to a [[ key press]]. <br />
<br />
*Assigning the macro to a [[ menu entry]]. <br />
<br />
*Assigning the macro to a toolbar button. <br />
<br />
*Creating a [[ control in a document]]. <br />
<br />
*Assigning the macro to an event. <br />
<br />
For now try running the "HelloWorld" subroutine by clicking the '''Run''' button. A small dialog titled "soffice" with the text "Hello World!" and an OK button should be displayed.<br />
<br />
==Saving the code==<br />
The code gets automatically saved whenever the container for the code gets saved. Thus, if the code is in an OpenOffice.org library (shared or users) then it gets automatically saved when OpenOffice.org exits. If the code is in a library which is part of a document it gets saved whenever the document is saved. <br />
<br />
On the Standard toolbar (by default the top toolbar) in the IDE there is a save button. If the code is in a document or template then clicking this button saves the entire document or template. If the code is in an OpenOffice.org library then just the current library gets saved. <br />
<br />
<br />
==Variables==<br />
It is possible to force variable declaration with <tt>Option Explicit</tt> at the top of the module. For a discussion on whether to declare variables or not, see: [[http://www.oooforum.org/forum/viewtopic.phtml?t=5845 this discussion]]. <br />
<br />
In that discussion the initial author of this wiki thought that variables should always be declared. Since then he has changed to not declaring them. In short it is generally a personal preference. In either case, it is the initial authors preference that variables be named according to the following convention, which is used in the examples in this Wiki: <br />
<br />
The first letter of the variable name indicates the type of value that the variable is going to hold, as per the following table (based on a table in Tutorial.pdf by Sun) <br />
<br />
{| border="1"<br />
|'''''Letter'''''<br />
|'''''Meaning'''''<br />
|-<br />
|a<br />
|Structure<br />
|-<br />
|b<br />
|Boolean (TRUE or FALSE)<br />
|-<br />
|e<br />
|Enumeration. This variable can only have one of a limited set of values.<br />
|-<br />
|f<br />
|Float (3.402823 x 1038 to 1.401298 x 10-45. A single variable can take up to four bytes)<br> Double (1.79769313486232 x 10308 to 4.94065645841247 x 10-324. A double variable can take up to eight bytes)<br> Currency (-922337203685477.5808 to +922337203685477.5807 and takes up to eight bytes of memory)<br />
|-<br />
|m<br />
|Array (aka sequence aka matrix)<br />
|-<br />
|n<br />
|Integer (-32768 to 32767.) or<br> Long (-2147483648 and 2147483647).<br />
|-<br />
|o<br />
|Object, service, or interface<br />
|-<br />
|s<br />
|String (A string variable can store up to 65535 Unicode characters).<br />
|-<br />
|x<br />
|Interface, to indicate that only operations of a particular interface of an object are used<br />
|-<br />
|v<br />
|Variant, Any<br />
|-<br />
|}<br />
<br />
<br />
Use long descriptive variable names making use of camel case: <tt>nMsgBoxReturn</tt><br />
<br />
{| border="1"<br />
|'''Note:'''<br />
|User-defined OpenOffice.org Basic variables are not case sensitive. But UNO-API constants ''are'' case sensitive.<br />
|}<br />
<br />
<br />
Convention exceptions to long descriptive names are for index variables where <tt>i, j,</tt> and <tt>k</tt> are commonly used, and for when a string is being built-up, where <tt>s</tt> is commonly used. <br />
<br />
Edit sub HelloWorld so that it looks like the following and run it: <br />
<br />
<source lang="oobas"><br />
sub HelloWorld<br />
dim i as integer 'This line is optional<br />
for i = 0 to 2<br />
'These lines are indented for ease of reading only.<br />
'All your code should be like this for long-term survival.<br />
msgbox "Hello World " & i<br />
next i<br />
end sub<br />
</source><br />
For more information on variables see the online help for "using variables".<br />
<br />
==Understanding the OpenOffice.org API==<br />
This section will start with an example. The remainder of this section aims to give information so that the example can be understood and expanded upon. <br />
<br />
Try running the following code with different types of documents being active. <br />
<br />
<source lang="oobas"><br />
sub main<br />
'BasicLibraries.loadLibrary("XrayTool")<br />
'xray thisComponent<br />
msgbox fnWhichComponent(thisComponent)<br />
end sub<br />
<br />
<br />
function fnWhichComponent(oDoc) as string<br />
if HasUnoInterfaces(oDoc, "com.sun.star.lang.XServiceInfo") then <br />
if oDoc.supportsService ("com.sun.star.text.GenericTextDocument") then<br />
fnWhichComponent = "Text"<br />
elseif oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument") then<br />
fnWhichComponent = "Spreadsheet"<br />
elseif oDoc.supportsService("com.sun.star.presentation.PresentationDocument") then<br />
fnWhichComponent = "Presentation"<br />
elseif oDoc.supportsService("com.sun.star.drawing.GenericDrawingDocument") then<br />
fnWhichComponent = "Drawing"<br />
else<br />
fnWhichComponent = "Oops current document something else"<br />
end if<br />
else<br />
fnWhichComponent = "Not a document"<br />
end if<br />
End function<br />
</source><br />
<br />
===Subroutine naming convention===<br />
In the above example the user defined function has a name that starts with the letters "fn". This is the initial author's convention so that people know that this is a user defined function. Similarly, the initial author uses the convention that user defined subroutines start with the letters "sub". When learning a language and an API it can be difficult to know what is built-in and what has been defined elsewhere. This document/wiki will use this convention for naming functions and subroutines.<br />
<br />
===Introducing the OpenOffice.org API===<br />
This section introduces the following terms: <br />
<br />
* Interface <br />
* Module <br />
* Service <br />
* Method <br />
* Property <br />
<br />
Understanding the difference between an interface and a service and what a module is, is not essential to being able to write extensions for OpenOffice.org, but it does help interpreting the documentation, and for introspection purposes. You may need to read this section at least twice. <br />
<br />
An '''interface''' is a ''definition'' of a set of methods (and their arguments) that a service which implements that interface must have. <br />
<br />
Interfaces are grouped together in '''modules''' for naming purposes. All interfaces (and services) start with the name "com.sun.star" then the name of the module then the name of the interface (or service). <br />
<br />
For example most services provide the com.sun.star.beans.XPropertySet interface. This interface is stored in the module "beans" and provides access to the properties of a service. A '''property''' is a value whereas a '''method''' is an action. <br />
<br />
An OpenOffice.org object can have many services. <br />
<br />
An OpenOffice.org object may have a service, which implements an interface, in which a method description says that another OpenOffice.org object is returned.<br />
<br />
===Introspection===<br />
<tt>HasUnoInterfaces</tt> is an OpenOffice.org Basic function for introspection. See this [[http://www.oooforum.org/forum/viewtopic.phtml?t=7068 link]] for information on introspection in other languages. <br />
<br />
<tt>HasUnoInterfaces</tt> returns true if all of the specified interfaces are available for the specified object. <br />
<br />
Most OpenOffice.org objects provide the method <tt>supportsService</tt> because they have the interface <idl>com.sun.star.lang.XServiceInfo</idl>. <br />
<br />
In the above example, the OpenOffice.org Basic command <tt>HasUnoInterfaces</tt> checks that the current document has the interface <idl>com.sun.star.lang.XServiceInfo</idl>, because if it doesn't have that interface then it doesn't have the method <tt>supportsService</tt>, and a run time error would occur if such an object tried to access its nonexistent method. <br />
<br />
<tt>SupportsService</tt> is a method which returns true if the specified service is available. The above examples checks for a service to determine the type of document that is currently active.<br />
<br />
<br />
===Xray tool===<br />
Using <tt>HasUnoInterfaces</tt> and <tt>supportsService</tt> gives information about an object at run time, but checking an object like this would be a nightmare for learning? Thankfully, Bernard Marcelly has come to our rescue with the Xray tool. The Xray tool is available from: [[http://bernard.marcelly.perso.sfr.fr/Files_en/XrayTool60_en.odt odt installer(en)]]. Download the odt file, open the document in OpenOffice.org, follow the instructions for installation and set-up. <br />
<br />
Part of the Xray tool set-up is to specify a local copy of the OpenOffice.org SDK. Download the [http://www.openoffice.org/download/other.html#tested-sdk Apache OpenOffice 3.4 SDK] and extract it. <br />
<br />
In the above example, at the start of the code, there are two commented lines (comments start with an apostrophe): <br />
<br />
<source lang="oobas"><br />
'BasicLibraries.loadLibrary("XrayTool")<br />
'xray thisComponent<br />
</source><br />
Now that you have the Xray tool installed, uncomment these lines (remove the apostrophes) and rerun the macro.<br />
<br />
[[image:Xray60en.png]]<br />
<br />
'''BasicLibraries''' is an OpenOffice.org Basic command that returns an object for accessing the OpenOffice.org libraries. The <tt>loadLibrary</tt> method ensures that the routines in that library are available for use. <br />
<br />
<tt>xray</tt> specifies the <tt>xray</tt> subroutine within the library <tt>XrayTool</tt>. <tt>thisComponent</tt> is the object that is being passed to <tt>xray</tt> for introspection. <br />
<br />
To find the object that you want to work with often requires finding or creating it starting from either <tt>StarDesktop</tt> or <tt>thisComponent</tt>.<br />
<br />
===Desktop, documents, and current selection===<br />
<tt>StarDesktop</tt> and <tt>thisComponent</tt> are OpenOffice.org Basic commands that refer to the application and currently active document respectively. <br />
<br />
Unlike Microsoft Office, OpenOffice.org is one application with different components. When running some code it maybe useful to check which component is currently active. The above code demonstrates how that checking process can be done. <br />
<br />
The Desktop that <tt>StarDesktop</tt> refers to is conceptual (historically it actually existed) and can be thought of as the OpenOffice.org application.<br />
<br />
==Creating new documents==<br />
To create a new text document: <br />
<br />
<source lang="oobas"><br />
oDoc = StarDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, Array())<br />
</source><br />
To create a new spreadsheet document: <br />
<br />
<source lang="oobas"><br />
oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())<br />
</source><br />
An easier approach would be to write a simple function: <br />
<source lang="oobas"><br />
function fnNewDoc(sDocType as string)<br />
fnNewDoc = StarDesktop.loadComponentFromURL("private:factory/" & sDocType , "_blank", 0, Array())<br />
end function<br />
</source><br />
Then creating new documents can be achieved with: <br />
<br />
<source lang="oobas"><br />
oDoc = fnNewDoc("swriter")<br />
oDoc = fnNewDoc("scalc")<br />
oDoc = fnNewDoc("simpress")<br />
oDoc = fnNewDoc("sdraw")<br />
oDoc = fnNewDoc("smath")<br />
</source><br />
See http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XComponentLoader.html .<br />
<br />
==To open a document==<br />
The following example shows how to open a file. For information on URLs in OpenOffice.org see [[ URL Basics]]. <br />
<br />
<source lang="oobas"><br />
sFile = "C:\Documents and Settings\danny\Desktop\MyCalc.sxc" ' Windows<br />
sFile = "/home/danny/Desktop/MyCalc.sxc" ' Linux<br />
sURL = ConvertToURL(sFile)<br />
oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())<br />
</source><br />
Again it may make sense to make this easier by writing a simple function: <br />
<br />
<source lang="oobas"><br />
function fnOpenDoc(sFile)<br />
sURL = ConvertToURL(sFile)<br />
fnOpenDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())<br />
end function<br />
</source><br />
Examples of calling the function: <br />
<br />
<source lang="oobas"><br />
oDoc = fnOpenDoc("C:\Documents and Settings\danny\Desktop\MyCalc.sxc") ' Windows<br />
oDoc = fnOpenDoc("/home/danny/Desktop/MyCalc.sxc") ' Linux<br />
</source><br />
<br />
==Opening a new file from a template==<br />
If you want to open a file using an existing template, use the template name instead of the file name. An untitled document will be opened from the template. <br />
<br />
Alternatively, set the "AsTemplate" property in the MediaDescriptor for the opened template to TRUE, and a new file will be opened based on the template, even if the template was stored by OO as an ordinary file, rather than a template. [[Opening a document]] has some examples.<br />
<br />
If the template location is known, simply use it. However, OpenOffice keeps at least two sets of templates: global templates available to all users and "My Templates" available to the current user, and the locations of the directories are not obviously available. They can be found by means of the [http://www.openoffice.org/api/docs/common/ref/com/sun/star/util/PathSettings.html PathSettings service] which allows the user to examine the various directory paths known to OpenOffice. The Template property of this service returns a string which is a semi-colon separated list of URLS, each of which represents a possible location for the desired template. It is necessary to search this string and the resulting directories to find the template. The following code finds a user template and opens a document based on it:<br />
<br />
<source lang="oobas"><br />
Dim PathService as Object<br />
Dim TemplatePath as String ' The path list<br />
Dim SCPos as Integer ' The position of the next semi-colon <br />
Dim MyTemplatePath as String ' The URL for the user template<br />
<br />
' substitute your template name here<br />
const TemplateName = "MyTemplate.ott"<br />
<br />
' This seems to be the place in which OO stores user templates<br />
const UserTemplateDirectory="/user/template"<br />
<br />
<br />
PathService=CreateUNOService("com.sun.star.util.PathSettings")<br />
TemplatePath=PathService.Template<br />
MyTemplatePath=""<br />
<br />
do while len(TemplatePath) >0<br />
SCPos=InStr (TemplatePath,";")<br />
if SCPos>0 then<br />
MyTemplatePath=Left(TemplatePath, SCPos-1)<br />
else<br />
MyTemplatePath=TemplatePath<br />
end if<br />
<br />
' NOTE: as well as file URLs there are some others which should be ignored<br />
if InStr(myTemplatePath,"file:///")=1 And _<br />
Right(myTemplatePath,14) = UserTemplateDirectory then<br />
exit do <br />
end if<br />
TemplatePath=mid(TemplatePath, SCPos+1, len(TemplatePath)-SCPos)<br />
MyTemplatePath="" <br />
loop<br />
<br />
if MyTemplatePath<>"" then<br />
TemplatePath=ConverttoURL(TemplateName)<br />
MyTemplatePath=MyTemplatePath & "/" & TemplateName<br />
InvoiceDoc=StarDesktop.LoadComponentfromURL(MytemplatePath, "_blank", 0, Array())<br />
else<br />
MsgBox "Cannot find the template directory"<br />
end if<br />
</source><br />
<br />
This code does not check that the desired template actually exists; if it doesn't, the LoadComponentfromURL call will fail.<br />
<br />
==Current Selection==<br />
It is common to want to run some code that affects the current selection. <tt>ThisComponent</tt> has the method <tt>getCurrentSelection</tt>. Since many different types of objects could possibly be selected it is common to check that the currently selected object has the service that contains the method that we want to apply to the object. <br />
<br />
Edit the main subroutine to the following and rerun it on a text document with different selections. (To select more than one block of text hold down the control key). <br />
<br />
<source lang="oobas"><br />
sub main<br />
BasicLibraries.loadLibrary("XrayTool")<br />
if fnWhichComponent(thisComponent) = "Text" then<br />
oCurSelection = thisComponent.getCurrentSelection()<br />
'xray oCurSelection<br />
if oCurSelection.supportsService("com.sun.star.text.TextRanges") then<br />
msgbox "There are " & oCurSelection.getCount() & _<br />
" selections in the current text document."<br />
end if<br />
end if<br />
end sub<br />
</source><br />
With nothing selected the number of selections is one - the insertion point, with one block of text selected the count is still one, but with two blocks of text the count is three - the insertion point and the two blocks of selected text. <br />
<br />
Exercise 1: Modify the above code so that it works on selected cell ranges in a spreadsheet. <br />
<br />
Question1: For two blocks of cells selected, what would be the count for the number of selections?<br />
<br />
==Properties==<br />
Uncomment <tt>'xray oCurSelection</tt> so that xray runs, to see that the object that <tt>oCurSelection</tt> points to has a "property" called <tt>Count</tt> with a description of "pseudo-prop, read only". It is possible in OpenOffice.org Basic to write <tt>oCurSelection.count</tt>, but as this is not possible in all other languages accessing the OpenOffice.org API, this Wiki will try to always use the method approach. (I say try because I have not been in the habit of doing this and sometimes I may forget). <br />
<br />
This next example demonstrates changing a property value for the current selections. <br />
<br />
<source lang="oobas"><br />
sub main<br />
BasicLibraries.loadLibrary("XrayTool")<br />
if fnWhichComponent(thisComponent) = "Text" then<br />
oCurSelection = thisComponent.getCurrentSelection()<br />
if oCurSelection.supportsService("com.sun.star.text.TextRanges") then<br />
nCount = oCurSelection.Count<br />
'xray oCurSelection.getByIndex(0)<br />
'Warning: The insertion point will have the same action applied twice<br />
'in this case it doesn't matter, but in others it might.<br />
for i = 0 to nCount - 1<br />
oCurSelection.getByIndex(i).setPropertyValue("CharStyleName", "Strong Emphasis")<br />
next<br />
end if<br />
end if<br />
end sub<br />
</source><br />
In OpenOffice.org Basic it is possible to shorten the assignment line to: <br />
<br />
<source lang="oobas"><br />
oCurSelection(i).CharStyleName = "Strong Emphasis"<br />
</source><br />
This wiki will try to use the full methods for both indexing and assigning properties. The rationale is that this makes converting the code to other languages easier and also helps the learner to understand what is happening (again I have not been in the habit of doing this so some examples may slip past me). <br />
<br />
Exercise 2: Rewrite the above code so that the warning can be removed. <br />
<br />
See [[ Current selection]].<br />
<br />
==Iterative Access to Subordinate Objects (Enumeration access)==<br />
Sometimes to access the desired object an enumeration is required. For example paragraphs, within a document or within a selection. <br />
<br />
When a Writer document is active and some text is selected, both <tt>thisDocument.getText()</tt> and <tt>thisComponent.getCurrentSelection().getByIndex(i)</tt> have the service: <idl>com.sun.star.text.TextRange</idl>, which has the interface: <idl>com.sun.star.container.XContentEnumerationAccess</idl>. It is possible to create an enumeration of the paragraphs for the current document or for a particular selection. <br />
<br />
<source lang="oobas"><br />
' Create enumeration object<br />
oTextElementEnum = thisComponent.getText().createEnumeration()<br />
'or thisComponent.getCurrentSelection().getByIndex(i).createEnumeration()<br />
<br />
' loop over all text elements<br />
while oTextElementEnum.hasMoreElements()<br />
oTextElement = oTextElementEnum.nextElement<br />
if oTextElement.supportsService("com.sun.star.text.TextTable") then<br />
MsgBox "The current block contains a table."<br />
end if<br />
if oTextElement.supportsService("com.sun.star.text.Paragraph") then<br />
MsgBox "The current block contains a paragraph."<br />
end if<br />
wend<br />
</source><br />
Exercise 3: Extend the above example to display in a message box all text portions that are bold.<br />
<br />
==Named access==<br />
Some objects provide named access to a particular type of subordinate object, some others indexed access, and some both named and indexed access. <br />
<br />
For example if the current document in OpenOffice.org is a spreadsheet then to access a particular sheet can be done by index access: <br />
<br />
<source lang="oobas"><br />
oSheet = thisComponent.getSheets.getByIndex(0)<br />
</source><br />
or named access: <br />
<br />
<source lang="oobas"><br />
oSheet = thisComponent.getSheets.getByName("Sheet1")<br />
</source><br />
To check if an object with a particular name already exists use <tt>hasByName</tt>, for example: <br />
<br />
<source lang="oobas"><br />
if thisComponent.getSheets.hasByName("Sheet1") then<br />
</source><br />
To loop through all the available object names can be done like: <br />
<br />
<source lang="oobas"><br />
mNames = thisComponent.getSheets.getElementnames<br />
for i = lbound(mNames) to ubound(mNames)<br />
msgbox mNames(i)<br />
next<br />
</source><br />
<br />
<br />
Some named subordinate objects also provide the interface: <idl>com.sun.star.container.XNameContainer</idl>. This interface defines that such objects should have the following methods: <tt>insertByName</tt>, <tt>insertNewByName</tt>, <tt>replaceByname</tt> and <tt>removeByName</tt>. <br />
<br />
E.g. <br />
<br />
<source lang="oobas"><br />
thisComponent.getSheets.insertNewByName("NewSheet", 0)<br />
</source><br />
<br />
==Create new objects==<br />
Some objects have services which implement interfaces to provide specific methods for creating a particular type of object. <br />
<br />
For example if the current document is a Writer document then <tt>thisComponent.getText</tt> is an object that provides the service <idl>com.sun.star.text.Text</idl>, which implements the interface <idl>com.sun.star.text.XSimpleText</idl>, which defines the methods <tt>createTextCursor</tt> and <tt>createTextCursorByRange</tt>. Both of these methods create a text cursor for accessing the text of the document. These cursors are quite independent of the view cursor. The view cursor is visible on the screen and is manipulated by the user (and can be manipulated by program control), whereas a text cursor is not visible on the screen and is solely used by program control. The following code snippet demonstrates creating a new text cursor, such that it starts at the same location as the view cursor and is then moved independent of the view cursor. <br />
<br />
<source lang="oobas"><br />
oVC = thisComponent.getCurrentController.getViewCursor<br />
oCursor = oVC.getText.createTextCursorByRange(oVC)<br />
oCursor.gotoStartOfSentence(false)<br />
oCursor.gotoEndOfSentence(true)<br />
msgbox oCursor.getString<br />
</source><br />
The string returned by the <tt>oCursor.getString</tt> method is the text of the sentence in which the view cursor currently resides.<br />
<br />
Some objects are context dependent and get created using the method <tt>createInstance</tt> which is defined in the interface <idl>com.sun.star.lang.XMultiServiceFactory</idl>. For example to add a rectangle to the first page of a drawing document: <br />
<br />
<source lang="oobas"><br />
dim aPoint as new com.sun.star.awt.Point<br />
dim aSize as new com.sun.star.awt.Size<br />
<br />
aPoint.x = 1000<br />
aPoint.y = 1000<br />
<br />
aSize.Width = 10000<br />
aSize.Height = 10000<br />
<br />
oRectangleShape = thisComponent.createInstance("com.sun.star.drawing.RectangleShape")<br />
oRectangleShape.Size = aSize<br />
oRectangleShape.Position = aPoint<br />
<br />
thisComponent.getDrawPages.getByIndex(0).add(oRectangleShape)<br />
</source><br />
<br />
This example also uses ''UNO structs''. See below for more information on UNO structs. <br />
<br />
Some objects are context independent; to create these objects, use the OpenOffice.org Basic command <tt>createUnoService</tt>. For example, to create the equivalent to <tt>StarDesktop</tt>: <br />
<br />
<source lang="oobas"><br />
oDesktop = createUnoService("com.sun.star.frame.Desktop")<br />
</source><br />
<br />
The process that I use to determine how to access or create an object is as follows: <br />
<br />
Does the object already exist, if so I should be able to access it from something like <tt>thisComponent</tt>. <br />
<br />
Will the new object belong to another object, if so does the owner have a specific method for creating the object, if so use it. <br />
<br />
The new object will belong to another object, but that object doesn't provide a specific method for creating it, but does provide <tt>createInstance</tt>. If the object doesn't provide <tt>createInstance</tt> are you sure you are using the correct object, or is it context independent. <br />
<br />
I have found working out how to create an object to be quite difficult with existing documentation so I hope that this document/wiki will eventually make this clear. <br />
<br />
<br />
===UNO structs===<br />
UNO structures can be declared using the OpenOffice.org Basic command <tt>dim as new</tt>: <br />
<br />
<source lang="oobas"><br />
dim aPoint as new com.sun.star.awt.Point<br />
</source><br />
Or by using the OpenOffice.org Basic command <tt>createUnoStruct</tt>: <br />
<br />
<source lang="oobas"><br />
aPoint = createUnoStruct("com.sun.star.awt.Point")<br />
</source><br />
<br />
{| border="1"<br />
|'''Note:'''<br />
|When declaring UNO structs, case is important. Note that everything up to the name of the struct is lowercase, and that the name of the struct is in TitleCase.<br />
|}<br />
<br />
<br />
<br />
<br />
===Creating Listeners and Handlers===<br />
Through the user interface it is possible to assign macros to some events: <br />
<br />
OpenOffice.org versions 1.1.x: '''Tools > Configure… > Events'''. <br />
<br />
OpenOffice.org versions 1.9.x and above: '''Tools > Customize… > Events'''. <br />
<br />
It is also possible to assign macros to a wider range of events using the OpenOffice.org Basic command <tt>CreateUnoListener</tt>. This same command is used for creating both listeners and handlers. A listener checks for an event and always allows other listeners to respond to the event as well. A handler listens for an event, and can optionally consume the event so that other listeners don't get to act on it. <br />
<br />
The following example creates a keyHandler: <br />
<br />
<source lang="oobas"><br />
global IannzExampleKeyHandler<br />
<br />
sub SetupKeyHandler<br />
oController = thisComponent.currentController<br />
IannzExampleKeyHandler = CreateUnoListener("KeyHandler_","com.sun.star.awt.XKeyHandler")<br />
oController.addKeyHandler(IannzExampleKeyHandler) ' Register the listener<br />
end sub<br />
<br />
sub RemoveKeyHandler<br />
thisComponent.currentController.removeKeyHandler(IannzExampleKeyHandler)<br />
end sub<br />
<br />
sub KeyHandler_disposing<br />
end sub<br />
<br />
function KeyHandler_keyReleased(oKeyEvent as new com.sun.star.awt.KeyHandler) as boolean<br />
KeyHandler_keyReleased = False <br />
end function<br />
<br />
function KeyHandler_keyPressed(oKeyEvent as new com.sun.star.awt.KeyHandler) as boolean<br />
KeyHandler_keyPressed = false 'Let other listeners handle the event<br />
if oKeyEvent.modifiers = com.sun.star.awt.KeyModifier.MOD2 then 'Control key was pressed<br />
if oKeyEvent.keyCode = com.sun.star.awt.Key.Q then<br />
msgbox "Alt + Q was pressed"<br />
KeyHandler_keyPressed = true 'Don't let other listeners process this event<br />
end if<br />
end if<br />
end function<br />
</source><br />
A variable declared as global keeps its value even after the macro exits. In this case we want to be able to use this variable later to remove the handler. As variables declared globally could be used in other libraries, to try and avoid conflict I start all my global variables with Iannz my registered name for the OpenOffice.org web site. <br />
<br />
<tt>sub SetupKeyHandler</tt> sets up the handler. The first parameter to <tt>CreateUnoListener</tt> is the starting name for the methods that will be called when that type of event occurs: in this example, <tt>"KeyHandler_"</tt>. <br />
<br />
The second parameter is the name of the interface for the listener or handler, "<idl>com.sun.star.awt.XKeyHandler</idl>". The name is case sensitive, everything up to and including the module name is always lowercase, the name of the interface always starts with "X" and the remainder is in TitleCase. <br />
<br />
Use the SDK to find out what methods the interface must supply. You must supply routines for all of these methods even if you don't intend to use them. You also need to supply a disposing method. The names of these routines start with the string given in the first parameter to <tt>CreateUnoListener</tt>, in this example <tt>"KeyHandler_"</tt>. <br />
<br />
Thus in the example there is <tt>KeyHandler_disposing</tt> and <tt>KeyHandler_keyReleased</tt> which don't actually do anything but are required, and <tt>KeyHandler_keyPressed</tt> which actually does the job. <br />
<br />
<tt>sub RemoveKeyHandler</tt> demonstrates how to remove the handler.<br />
<br />
==OpenOffice.org constants==<br />
The above example uses OpenOffice.org constants. <br />
<br />
E.g. <tt>com.sun.star.awt.KeyModifier.MOD2</tt><br />
<br />
OpenOffice.org constants are case sensitive. Everything up to and including the module name is always lowercase. The constant group is in TitleCase. The actual constant name is always UPPERCASE. <br />
<br />
Programmers not using OpenOffice.org Basic may not have access to these constants. <br />
<br />
<br />
==Using the recorder==<br />
See [[ The OpenOffice.org recorder and UNO dispatch calls]] section for a discussion on recording UNO Dispatch commands versus writing API calls.<br />
<br />
== See also==<br />
* [[CookBook|CookBook]]<br />
* [[Text_cursor|Text Cursor in OOoBasic]]<br />
* [[Framework/Article/Easy_To_Use_Message_Boxes|Easy To Use Message Boxes]]<br />
* [[Programming_OooWriter |Programming OOoWriter in C++]] where OOoBasic records are used in C++<br />
* A [[XIntrospection_Interface|XIntrospection Interface]] short description. XRay uses this interface.<br />
* Download Bernard Marcelly's [http://bernard.marcelly.perso.sfr.fr/Files_en/XrayTool60_en.odt XRay OOoBasic tool] <br />
* See [[Object Inspector|The New Object Inspector]] and [[BASIC/UNO_Object_Browser|The BASIC UNO Object Browser]]<br />
<br />
[[Category:Extensions]]<br />
[[Category:StarBasic]]<br />
[[Category:Documentation/Candidate]]</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Extensions_development_basicTalk:Extensions development basic2013-02-01T15:23:17Z<p>Ptoye: /* More help on opening and saving documents needed */</p>
<hr />
<div>== Name Change Proposal ==<br />
<br />
I think the name of this article should be changed to ''OpenOffice.org Basic''. I know that the ''OpenOffice.org'' part sounds redundant because the whole wiki is about OpenOffice.org. However, the title ''Basic'' would be too generic. Check out Wikipedia where there is already an article called ''StarOffice Basic''. Not much there though.<br />
<br />
Only reason I bring this up is that I had trouble finding out the basics of writing Basic code in OOo. I googled into the [[custom functions]] article and I scanned through Category:Basic:Tutorials and did not see anything. [[User:Jebix|Jebix]] 04:48, 6 July 2006 (CEST)<br />
<br />
May I suggest, as a compromise, "OO Basic"? It's not in Wikipedia.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:43, 22 January 2013 (UTC)<br />
<br />
== Path for the Makros ==<br />
<br />
this I found in the article:<br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br />
Tools > Options… > OpenOffice.org > Paths > BASIC<br />
<br />
but I can't find it there in 2.0.4<br />
<br />
Please Explain<br />
<br />
I'm interested to know where there diffenrent makros are saved and maybe change it<br />
<br />
<br />
Mechtilde<br />
<br />
== More help on opening and saving documents needed ==<br />
<br />
I'm trying to work out two things: how to open a document using an existing template, and how to save the resulting document. When I've worked it out, I'll try to edit this page, but some input from people who know more about it than myself would be useful.... [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:46, 22 January 2013 (UTC)<br />
<br />
There's also a minor typo in the examples: the "_blank" parameter is on one occasion typed as "&nbsp;blank". Interestingly, it still works, so it looks as if the API documentation is a bit wrong there. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:59, 22 January 2013 (UTC)<br />
<br />
A correction to the previous comment: in the Wikitext the underline is there. But on my browser (Firefox) it sometimes shows as a space. Can't think why, unless there are two different codes for the underline character which are mapped differently by Firefox.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:23, 1 February 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/User_talk:TJFrazierUser talk:TJFrazier2013-02-01T13:02:15Z<p>Ptoye: /* String character index base */</p>
<hr />
<div>This is a good place to leave me a note. :-) --[[User:TJFrazier|TJ]] 23:48, 8 May 2009 (UTC)<br />
<br />
<br />
(This is to remind myself to fix the cache description, WIGATI.)--[[User:TJFrazier|TJ]] 20:05, 26 September 2009 (UTC)<br />
<br />
{{CURRENTTIME}}<br />
<br />
==warring==<br />
http://wiki.services.openoffice.org/wiki/Talk:RU/rules_and_information_policy<br />
<br />
http://wiki.services.openoffice.org/w/index.php?title=RU/rules_and_information_policy&action=history<br />
<br />
User [[User:Sancho|Sancho]] doesn't discuss anything.<br />
In English, differences between pages:<br />
http://translate.google.ru/translate?hl=ru&ie=UTF-8&sl=ru&tl=en&u=http://wiki.services.openoffice.org/w/index.php%3Ftitle%3DRU%252Frules_and_information_policy%26diff%3D169023%26oldid%3D169013&prev=_t<br />
<br />
Sancho does not discuss anything, but writes the rules that always repeat "forbidden", "you must or else the page you create will be deleted", "do not", "never" and so on. We change it to "it is recommended", "it is better", "page is going to be edited" and so on.<br />
<br />
User [[User:Sancho|Sancho]] doesn't reply neither in its personal discussion page, nor in the the article's talk and ignores all messages.<br />
<br />
What shall we do in this case?<br />
<br />
:Just what you did do: bring the matter to the attention of a sysop (administrator). Edit warring is a serious offense, and may lead to blocks. I will be posting a lecture on Sancho's Talk page. Meanwhile, please follow one simple rule: do ''not'' undo anyone's edits but your own, without discussing the matter on the associated Talk page. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:01, 22 May 2010 (UTC)<br />
<br />
Here are more articles Sancho refusing to discuss (so far):<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/qa/run_ooo_versions_parallel<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/Documentation/FAQ/General --[[User:Fyva|Fyva]] 05:34, 23 May 2010 (UTC)<br />
<br />
== thanks from elcico ==<br />
<br />
Dear TJ thank you for your welcome and for your suggestion.<br />
I've changed my mail address, now it should be ok!<br />
Thanks again!<br />
elcico :)<br />
<br />
P.S. Hope this is the right place to reply... just delete after you read! :)<br />
: You're quite welcome. Why ever should I delete a nice thank-you note? --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:34, 2 June 2010 (UTC)<br />
<br />
== Keyboard shortcuts, special characters ==<br />
<br />
Hi TJ, While tripping through the FAQs in search of anyplace I can help, I have found your useful answer (FAQ-Writer-Formatting Text) about how to insert special characters using macros to create keyboard shortcuts. As an alternative, I thought of adding the Windows shortcuts such as I use in Word at work to create a pounds sterling sign (i.e. Alt+0163), but I can't get those combinations to work in Writer. I'm on my laptop at home and am not sure if the Alt-key alternative just does not work in OpenOffice, or if the phenomenon is due to my using a laptop keyboard without the extra number keypad. In the hopes that no question is a dumb question... I ask... do the Alt-key combinations for special characters work in OOo?<br />
:Hi, Lisa, Yes; with my keyboard (with full numeric keypad) they work fine. I use Alt+0151 for em-dash regularly. There may be a num-lock or Fn special key that you need to simulate the numeric keypad; check your laptop's documentation. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:34, 29 June 2010 (UTC)<br />
<br />
== Re: Editing templates ==<br />
<br />
Sorry about the inconvenience. I rarely edit templates on Wikis, being mindful that such edits can have far-reaching effects. FYI, I didn't notice any slowdown: This Wiki has far fewer articles and users than the English Wikipedia.&nbsp;&mdash;&nbsp;[[User:User8192|User8192]]<sup>[[User_talk:User8192|T]] [[Special:Emailuser/User8192|@]]</sup> 17:46, 1 September 2011 (UTC)<br />
<br />
== Category:MainIndex ==<br />
<br />
Hi TJ<br />
<br />
The [[:category:MainIndex]] is '''[[Special:UncategorizedCategories|uncategorized]]''' if ''not put cat into itself'' or [[Special:Categories|another category or subcategory]].<br />
<br />
Do you know another solution?<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:04, 11 January 2012 (UTC)<br />
:right, then it stay uncategorized. [[User:Adailton|Adailton]] 13:58, 12 January 2012 (UTC)<br />
<br />
== Broken Redirects ==<br />
<br />
[[Documentation/FAQ/General/What are the differences between StarOffice (old versions) and OpenOffice.org?]] deleted, ''obsolete FAQ - replaced by a newer version of same information''? should be a fusion of historical record of keeping the original creator of the page. what is the new version? and [[Documentation/FAQ/General/QA 0002]]? Thanks [[User:Adailton|Adailton]] 13:43, 15 January 2012 (UTC)<br />
<br />
:Nice catch. Found the replacement page and fixed the redirect accordingly. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:48, 15 January 2012 (UTC)<br />
<br />
== Category:Marketing ==<br />
Hi TJ<br />
<br />
User pages in [[:category:Marketing]]: [[User:Blibrestez55/Books/Database]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Allow import of only selected pagesn]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving char spaces]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving rotated text]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Introduction]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue105133]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue109708]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue90633]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue92919]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Misplaced paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Moving Proper paragraphs GlyphProcessor]], [[OpenOffice.org Internship/Tasks/Proper paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Testing proper paragraphs]], [[User:Khirano/Solutions]], [[User:RealGrouchy]], [[User:Wyrfel]].<br />
<br />
It seems '''inappropriate''' to have categorized '''users''' pages, so I ask whether they should be '''uncategorizaded''' or moved to the '''main domain'''? (I'm sorry but I do not quite understand the English Language, so I use a translator). [[User:Adailton|Adailton]] 13:43, 16 January 2012 (UTC)<br />
:English: "de-categorized" (= "have the category reference removed") is not a valid English word, either, but it is readily understandable.<br />
:Appropriateness: Since the users themselves added their pages to the category, I'm in favor of leaving them there. If somebody associated with marketing complains, we can make changes then. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 02:24, 17 January 2012 (UTC)<br />
<br />
== Candidates for speedy deletion ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[:Category:Candidates for speedy deletion]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 11:20, 27 January 2012 (UTC)<br />
<br />
:Removed most of the pure spam. Remaining candidates are mostly technical, and can be removed more slowly.<br />
:Thanks for the good work. If you are an Apache committer (or at least have an iCLA on file), I will enable you as a sysop ("Administrator group"). That would let you delete directly, and block spammers as well (very carefully!). --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 14:32, 27 January 2012 (UTC)<br />
<br />
==Speedy deletion==<br />
Hi TJ<br />
<br />
I made a change in {{tl|delete}} in order to include a justification for the deletion. Please see if it was good.<br />
<br />
I saw that there are 11,420 [[Special:UncategorizedFiles|files uncategorized]]. Are there any major [[Special:Categories|category]] for files? I just found [[:Category:Icons]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 14:38, 26 February 2012 (UTC)<br />
<br />
: '''Delete''': Looks good to me, if it works for you.<br />
<br />
: '''File Categories''': AFAIK, the files should be categorized according to the pages that link to them (plus descriptive categories, like "Icon"). This could be a non-trivial task; if a file is linked from pages in different categories, it may be desirable to climb the category tree to find the intersection, and categorize the file there. <br />
<br />
:Your help is much appreciated. I know much of templates, but only a little about categories. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:52, 26 February 2012 (UTC)<br />
::I think the categorization according to the pages that use is practical, but we can also categorize your files by grouping them by theme (icons, applications, screens, menu items, examples, etc.), without excluding one another. There are also PDF documents, which could be a category, but I will not create them if you think it should be done well. [[User:Adailton|Adailton]] 21:07, 26 February 2012 (UTC)<br />
<br />
:::pls, see: <br />
:::*[[Casino ohne download]]<br />
:::*[[User talk:Josebryan13]]<br />
:::*[[Deals - How can you make best deals on timeshare]]<br />
:::*[[Phentermine - How the phentermine works in your body.]] <br />
:::*[[Moving Company- How to make consequences favorable]]<br />
::: and related images. Tks [[User:Adailton|Adailton]] 22:21, 22 May 2012 (UTC)<br />
::::Gone! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 03:32, 23 May 2012 (UTC)<br />
:::::Please, see [[User:PressRTbox]]. [[User:Adailton|Adailton]] 22:04, 25 May 2012 (UTC)<br />
::::::Persistent pest, now blocked. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 23:26, 25 May 2012 (UTC)<br />
<br />
----<br />
Please, see [[User:Ulissi]] (and botton of user page) and history.<br />
:Left him a warning that the link farm may get deleted. My snap diagnosis is "enthusiastic amateur", rather than deliberate spammer, so I'm starting out gently.<br />
::Removed all external and red links. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:55, 18 September 2012 (UTC)<br />
<br />
I am looking at [http://wiki.services.openoffice.org/w/index.php?title=Special:LinkSearch&target=*.com Special:LinkSearch]. There are many abuses to be checked. tks [[User:Adailton|Adailton]] 11:08, 14 June 2012 (UTC)<br />
:Nice find of that page! The good news here is that almost all of those links seem legitimate. I only found one (the very last of the first 100) that was typical user-page spam (from 2009!), and deleted it. I'll run through the rest of the list, slowly.<br />
:Many thanks for all your help. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:59, 14 June 2012 (UTC)<br />
<br />
==New volunteer==<br />
Hello. I recently started to built some pages for brazilian community start to work and I'd like to contribute in the wiki maintenance also. I've created [[:Category:Outdated]] to mark all old content pages that need to be revised. I have a lot of suggestions to offer in order to make this wiki more affordable, but I am affraid to make changes without people's agreement. I do not wish to upset anyone so, please, if there is a wiki coordinator/administrator (or something like that), let me know. I don't wish to work '''against''' but '''with''' you. =) <br />. Thanks. <small>signed by sysop</small> 2012-05-17T09:12:32 [[User:PauloLima|PauloLima]]<br />
<br />
:Hi, Paolo!<br />
<br />
:I'm replying here, just to keep the whole conversation in one place. You can put a Watch on my Talk page if you like, or I'll put a note on yours. I see that you have met [[User:Adailton|Adailton]], who is a big help around here, chasing spammers. Whatever help you care to give is very welcome.<br />
<br />
::Hi TJ. This place is fine.<br />
<br />
:Like most everything at Apache, there is no "official" hierarchy on this wiki. The only sense in which I'm "it" is that I'm doing the work. I do have both sysop and bureaucrat privileges, and I will promote any committer to sysop who asks. My personal expertise runs to "expert user": knowledgeable on wiki markup, templates, ''etc.'' If you have plans to improve the user experience, go for it; I'll be glad to help you do it the easy way, if you like.<br />
<br />
:: Ok. I've been working with Mediawiki software intensively for the last 2 years. I've created/developed many of the pages in LibO PT_BR wiki, and I was responsible to develop the document translation workflow to PT-BR. That was a great learning. Now I wish to contribute here. These days, I am running a document management project for the company I work,using Mediawiki software, for for the last year, using its semantic features. And this was a great learning for me too. So, I proposed to use my experience in this area to help building an intelligent ontology that could ease the access tothe information in the wiki. But... In order to do that, it would be necessary to upgrade Mediawiki at least to 1.7.4 (1.9 would be better) and install some semantic extensions (maybe creating some new user's groups, if necessary). Can you help me on that? This should not impact the actual wiki's access/availbility, but can make available features for me to work on some sort of "snapshot". =)<br />
<br />
:Which reminds me: are you deliberately using the "preformatted text" option (starting your line with a space character), to create indentation? A colon (:) works better, because it wraps better. Use more colons for more levels of indentation (think, "tabs"). By convention, if you reply here, you would start your lines with two colons, I would reply with three, ...<br />
<br />
:: Yes. I'm using that. It's a matter of preferences. For me it looks better, but I have no objections in using identation =)<br />
<br />
:I look forward to your contributions. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 20:06, 17 May 2012 (UTC)<br />
<br />
:: I've created a category PT-BR for brazilian community begin to work. It was necessary, but, as Adailton pointed, maybe we could join PT-BR and PT sections, if it works better. I'm helping Kevin on UX team and looking for pages that must be updated/deleted. There are many outdated information here and it's necessary to classify them (that's why I've created a [[:Category:Outdated]]). In the next days I will navigate through the wiki to find and categorize those pages. After that, we will have a picture of what/where/who/when we need to do. If you and Adailton agree with that, of course. What do you think?<br />
<br />
:: [[User:PauloLima|PauloLima]] 22:17, 17 May 2012 (UTC)<br />
Preformatted text looks great — ''if'' you pre-format it!<br />
<br />
:::Otherwise, it has a nasty tendency to run right over the right-hand border, and just keep going. I find that both ugly and a nuisance, having to adjust the horizontal slider, and I had to do that a lot on your talk page. This may be browser- and skin-dependent. But, to more important matters.<br />
<br />
:::: Well, I have placed line breakers <nowiki>"<br />"</nowiki> in my replies, because I am aware of this issue. I don't know why you had this problem in you browser, maybe your screen resolution is too low. For me, my replies are been displayed with short lines and no horizontal slider both in Internet Explorer (Windows 98 in a virtual machine), Google Chrome and Mozilla Firefox (Ubuntu 11.10). But it doesn't matter, I can use identation. No problem.<br />
<br />
:::For upgrading MW and installing new extensions, you need a site-maintenance person, and that's not me. The only one I know of with the project is Raphael Bircher; otherwise, we depend on Infra. The problem is that none of those folks have any real expertise with MW or php, and neither do I. If you have command-line expertise, by all means volunteer on the Infra ML, and ask for access. Otherwise, I suppose we can try writing JIRA tickets. I am certainly in favor of an upgrade; there are problems with the <nowiki><math></nowiki> syntax that probably can only be fixed that way, and some other adjustments that should be made.<br />
<br />
:::: Yes, I know how to upgrade and install extensions to Mediawiki. But, I would had to get ssh access to the server and RWX rights to Mediawiki directory. A database backup would be necessary (and I should have access to it in this case, also). If you have admin rights to the wiki, so you can perform admin tasks for me, when it's necessary.<br />
:::::Yes, you know what you need, and you can get the access by asking on the Infra ML (infrastructure@apache.org). Send from your Apache address, with a subject like, "Request root access to ooo-Mwiki VM". I think they will be glad to hear from you, when you spell out your expertise as you have done here. I haven't asked for such access, because I don't have (yet) the knowledge to use it. I will add a new section on this page for a data dump of what I've learned about the physical setup.<br />
<br />
:::For your other plans, I suggest you pick out some segment for a pilot program, and work the bugs out; there are thousands of pages needing attention. But don't let this tired old man dampen your enthusiasm! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 01:35, 18 May 2012 (UTC)<br />
<br />
:::: Well TJ, I am not exactly a kid anymore for a long, long time. At least in my body. In my soul I feel like a kid yet =)<br />
:::::Some of us on the high side of 70 have merely lived a long time; others of us are ''old''. I must regretfully admit to which one I am.<br />
:::: I am planning to use PT-BR section for my tests. This will not affect any feature of actual wiki. Pages/Templates/Forms/Properties can be created transparently and released to production when ready. The only impact will be in the categories structure. I shall have to do some modifications, but I won't do that without notice. Before that, I will show you a new ontology (categories/properties structure), put it into discussion, so we can find the best way to improve the wiki, right?<br />
:::::Sounds great to me. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
:::P.s.: Do I assume correctly that you mean MW versions 1.17.x and 1.19.x ?<br />
<br />
:::: Yes, that's it. Thank you very much for your help.<br />
==The Physical Wiki==<br />
This wiki is housed on a VM, running a LAMP stack. "L" = some version of Ubuntu. In addition to the MW software, we run the Apache Traffic Server (ATS) as a front end. (Some adjustment is needed here: as of this writing, ATS sometimes serves up stale pages.)<br />
<br />
Exact information on extensions and versions should be available on the [[Special:Version|Version]] page. Known problems include:<br />
* The locally written IDL extension is not the latest version; this was an error during the move to Apache. The latest version needs to be found and installed, so that the <nowiki><idlml></nowiki> tags work.<br />
* MW was undergoing a change to the Math support, during MW v17. Math is showing errors on our installation (see example on [[User:TJFrazier|my user page]]), which have probably been fixed in a later MW release.<br />
:*Many thanks to Imacat, who installed the Textvc code, and fixed the math problem. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 19:47, 30 July 2012 (UTC)<br />
<br />
--[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
== Wanted Categories ==<br />
<br />
Hi TJ<br />
<br />
There is a [[Special:WantedCategories|Wanted Categories]], '''Category:RU/Авторы/А. Е. Харламенков''', that has been recently deleted. What do we do?<br />
<br />
Thanks [[User:Adailton|Adailton]] 15:16, 18 September 2012 (UTC)<br />
<br />
:Nothing. The category was marked for speedy delete, by the Russian fellow who created it. I deleted it. Why it's showing up on that special page is a mystery. I'll poke around some. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:55, 18 September 2012 (UTC)<br />
::That I understood. It is listed on the special page to have a page, [[RU/kb/common/programming]], the same author category. I think I must remove the category of the page, but it is a hidden category within a Template. [[User:Adailton|Adailton]] 16:07, 18 September 2012 (UTC)<br />
:::I must confess that I couldn't trace through the signature-related templates to find the Category call. So I commented out the signature (which is against policy anyway; sign with wiki signatures, if at all). Special page now empty. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:35, 18 September 2012 (UTC)<br />
::::Ok, unusual solution but ''problem'' solved. [[User:Adailton|Adailton]] 22:16, 18 September 2012 (UTC)<br />
<br />
== SimpleNonprofitAccountingTemplate ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[SimpleNonprofitAccountingTemplate]]<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:03, 27 September 2012 (UTC)<br />
<br />
:ROFL! Just adding that to the doc list when I got your message. I'll categorize it properly, too. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:08, 27 September 2012 (UTC)<br />
<br />
==Question on adding Justification to marking a page for Speedy Delete==<br />
Hi TJ;<br />
<br />
I wanted to mark a page for speedy delete and noticed in the in the preview that there was a section for adding a justification when you use the delete template. Was wondering what the proper syntax was for adding that. Appreciate your time and help.<br />
<br />
Regards<br />
Keith<br />
<br />
:Hi, Keith,<br />
<br />
:User Adailton's reply to you is authoritative: he added that field to the template. (He's a big help around here.)<br />
<br />
:Sorry for the slow reply, but Sandy did interrupt my power for several hours, and threatened to do worse. I didn't want to be in the middle of doing something here on the wiki, and have to quit. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:59, 27 October 2012 (UTC)<br />
<br />
== Hurricane Sandy ==<br />
<br />
Hi TJ<br />
<br />
Welcome back! I hope that Sandy has not given him much trouble.<br />
<br />
Spammers have given some work here, but everything under contrrole.<br />
<br />
Regards [[User:Adailton|Adailton]] 13:14, 27 October 2012 (UTC)<br />
<br />
<br />
:Sandy came and went, with no lasting problems. Now I'm catching up. Thanks for covering. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:19, 27 October 2012 (UTC)<br />
<br />
== File:FreedomFleetAttendance.xls ==<br />
<br />
Hi TJ<br />
<br />
[:File:FreedomFleetAttendance.xls] some use?<br />
<br />
[] [[User:Adailton|Adailton]] 10:18, 12 November 2012 (UTC)<br />
<br />
<br />
:Not that I could see, so I deleted it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:37, 12 November 2012 (UTC)<br />
<br />
== New pages ==<br />
Hi TJ<br />
<br />
[[Special:NewPages|some pages created November 12 were forgotten]]<br />
<br />
Regards [[User:Adailton|Adailton]] 10:47, 14 November 2012 (UTC)<br />
<br />
:I see only one new page, in User space, and you erased the spam on it. Do you see other new pages on some other list? <br />
:There was some kind of error about then, on the wiki; one of my operations timed out, so I just went away for a while. Maybe some logs (or pages) were lost. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:16, 14 November 2012 (UTC)<br />
<br />
== Sysop ==<br />
Hi TJ<br />
<br />
I worried that I am not fluent in the language. I read a little English, and generally use the google translator to long paragraphs.<br />
<br />
I will be more cautious, but stay tuned for elimination and blocks.<br />
<br />
Regards [[User:Adailton|Adailton]] 15:07, 17 November 2012 (UTC)<br />
:The more users doing good work, less work for each. [[User:Helen russian|Helen russian]] also did good job. Thanks [[User:Adailton|Adailton]] 23:03, 18 November 2012 (UTC)<br />
::What a busy day! I have deleted more than 130 pages today. TJ, Adailton, Andrew, I need a time-out. :-) I'll be back in 12 hours (at 4:00 UTC). Please don't lose me. --[[User:Helen russian|Helen]] 16:09, 19 November 2012 (UTC)<br />
<br />
::I see a new Russian sysop [[User:Yak|Yak]]. It's great! Yakov, thank you for joining us --[[User:Helen russian|Helen]] 03:44, 20 November 2012 (UTC)<br />
<br />
:::You folks have been doing a super job! Help is on the way: see the Mwiki threads on dev@, plus the new section on my user page. That info is not current yet, but it will be. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 13:01, 20 November 2012 (UTC)<br />
<br />
::Hi TJ, any news? --[[User:Helen russian|Helen]] 02:15, 21 November 2012 (UTC)<br />
<br />
== Excessive spamming ==<br />
<br />
Hi TJ<br />
<br />
I made a [[Special:Log/protect|protection]] to prevent re-creation. What do you think?<br />
<br />
Regards [[User:Adailton|Adailton]] 10:26, 22 November 2012 (UTC)<br />
<br />
:Good move! We can delete it when the spam attack is over. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 10:49, 22 November 2012 (UTC)<br />
<br />
== How long will the spam attack? ==<br />
Hi TJ<br />
<br />
How long will the spam attack? Can I search for additional volunteers from the Russian community? --[[User:Helen russian|Helen]] 02:23, 23 November 2012 (UTC)<br />
<br />
:Hi, Helen,<br />
<br />
:We have a new recruit for site maintainer: Jan Iversen (also new Bureaucrat and sysop). Hopefully his access will be finished tonight or tomorrow, and he will turn off the spam user creation and delete their accounts. You will know for sure when you see a banner announcement about it, explaining that new accounts are by invitation only.<br />
<br />
:I can't guarantee the timing. You are welcome to search for more volunteers, and I will appoint them as sysops on your say-so. I just hope they won't have anything to do! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 02:38, 23 November 2012 (UTC)<br />
<br />
::OK. I'll try to find some volunteers for the job today after 11:00 UTC. --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
<br />
:::P.S.: Adailton found a clever way to defeat the repeated spamming of a few pages. Protect them to the Administrator level, then delete. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:28, 23 November 2012 (UTC)<br />
:::: OK --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
:::::TJ, delete first, then protect the page. This prevents an editor to create again. [[User:Adailton|Adailton]] 05:33, 23 November 2012 (UTC)<br />
<br />
== Need Create New Pages permission ==<br />
<br />
Started the proect to merge the FAQ's from the web site into the wiki and find my account does not have Create New Pages Permissions. Can you add them please or should I send a formal request through the dev list. Thanks for the help<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 02:55, 11 December 2012 (UTC)<br />
<br />
== Request for advice from mWiki guru ==<br />
<br />
After a closer look at all the materials involved with consolidating the FAQ's from the web site into the Wiki it appears the most effiecient way todo it would be to create some new Documentation\FAQ catagories and restructure the toc to add them. Given what is currently going on would it be best to just fit them in to the current structure and wait until the update is completed and then make the changes and reassign the new FAQ's to them? The alternative would be to do it know and I would need a crash course (mostly on reading the help files) on the intricacies of doing it.<br />
<br />
Sorry to be a pain with questions, but the engineer in me says ask the questions first before you really muck something up!<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 20:53, 12 December 2012 (UTC)<br />
<br />
:Keith, your cautious approach is much appreciated.<br />
<br />
:First, go right ahead now. This work should not be affected by the upgrades and such.<br />
<br />
:Second, IIRC, the lowest-level listing is all done with DPL and categories. The relevant help files for the DPL extensions (we're using the older one) are on [http://www.mediawiki.org/wiki/MediaWiki MediaWiki], which can (surprisingly) be a little hard to reach from Wp. You can probably do just what I'd do: copy an existing page, changing only the particular data (category name). Then put the appropriate new category on each new page: <nowiki>[[Category:whatever]]</nowiki>.<br />
<br />
:The higher-level toc (purple box) is built by one template calling another. The Master TOC template positions and paints the box; the FAQTOC template supplies the data, so this is what you need to edit. Wp has scads of help on templates; it is a much more powerful feature than any reasonable person would ever need. Fortunately, again all you probably need to do is copy and adjust existing entries to show the new stuff. The Preview button is your friend. Please try to minimize the number of edits to templates: an edit change kicks off a chain of replacements for every calling page, which can bog down the wiki for minutes. Note that you can call templates from your own space. That makes experimenting cheap. <nowiki>{{User:KNetc/test}}</nowiki> or something similar should suffice, where page "test" is a copy of the real template.<br />
<br />
:I'm fairly ignorant about DPL, but I'm useful on templates. Ask if you have problems. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 01:55, 13 December 2012 (UTC)<br />
<br />
::TJ I spent the better part of 20 years in Manufacturing Engineering first as a tech and then as an engineer. Have seen to many screw-ups that could have been prevented by asking "stupid questions" first. Not fun having to explain to ops managers why they lost x number of man hours / days.<br />
<br />
::First, since there should be no conflicts with the upgrades et al, I will venture down the path of creating new catagories and updating the toc.<br />
<br />
::Second, I will spend a few days this weekend looking over the help sections that you point to and try some experimenting in my "sandbox". Is there a time frame that would be best to go "live" with the changes to the FAQtoc to have the least disruption to the rest of the community on the Wiki?<br />
<br />
::Believe me if I have questions believe me I will ask. Thank you for all the info and your willingness to help.<br />
<br />
::Regards [[User:KNMcKenna|Keith]] 22:11, 13 December 2012 (UTC)<br />
<br />
I suggest that you make a copy[1] of faqtoc, maybe "factoc2", in template space. Just click on a link like this one: [[Template:factoc2]]. You can edit that one all you want, because only the few pages you build will be affected. At the very end, copy it back — only one edit to the live template, so you needn't worry about the timing. Then change the links (the special page, "What links here" is your friend) and delete the copy.<br />
<br />
Feel free to put the links to the new subdivisions[2] where they belong, on the Documentation or Doc/FAQ pages, but please hang the "Under Construction" sign on anything incomplete, in case users blunder into it.<br />
<br />
Thank you very much for undertaking this task.<br />
<br />
<br />
Notes:<br /><br />
[1] "copy" means Edit | Select all | Copy | Cancel edit on the source page, then Edit | Paste on the new page.<br /><br />
[2] I used a different term, because you will be creating some wiki Category pages, too. Using the redlink method, just reference the new category as usual, at the bottom of the new faq page. That will show as a redlink; click on it, add a one-line description, and save the page. Nothing to it! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:32, 14 December 2012 (UTC)<br />
<br />
==Speedy Delete==<br />
Hi TJ<br />
<br />
I wish you a Merry Christmas :)<br />
<br />
I have been absent due to commitments, but I must return to work soon<br />
<br />
[[:Category:Candidates for speedy deletion]] is ''Outdated, not valid''? There is another to replace it?<br />
<br />
Even if only administrators are active, I think at times be necessary ''ask'' the opinion of others about certain deletions to prevent undue eliminations. In wikipedia the ''normal'' is always an editor (even an administrator) mark and an administrator check and then eliminate.<br />
<br />
There needs to alter {{tl|delete}}?<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 08:52, 25 December 2012 (UTC)<br />
<br />
:Agree that the category is needed, so I replaced it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 12:32, 25 December 2012 (UTC)<br />
==Category Names Problem==<br />
Hi TJ <br />
<br />
In [[Special:WantedCategories]] there in many categories, but all with ''problems'' in the title, probably due to a misconfiguration in for special characters needed for languages like Polish, Portuguese, French, Russian, etc. But I do not know exactly how to fix it.<br />
<br />
For exemples: [[:Category:Wdrożenia]] would be [[:Category:Wdrożenia]] ('''ż''')<br />
<br />
This may have occurred before December 25, the date of deletion. Possibly the time of spam attack, in november.<br />
<br />
I'll create the correct categories, with the hope that it would remove the entries in special page.<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 13:57, 7 January 2013 (UTC)<br />
<br />
:This looks to me to be a problem related to the UTF-8 settings and conversion, which was part of the upgrade on 12/25. The pages themselves seem to be properly categorized; why they are showing up in "Wanted" is a mystery. I'll ask Jan about it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 15:27, 7 January 2013 (UTC)<br />
<br />
== String character index base ==<br />
<br />
Thanks for adding the clarification. I'd found it out myself by experimentation, but it's good to have authoritative backing.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 09:55, 22 January 2013 (UTC)<br />
<br />
:Thank you for taking the trouble to point out the ambiguity. There are other places where only some experimentation will show how to do it, and they all should be fixed. Probably the worst has to do with the cursors (text and view); I'm working on that. Please feel free to point out any problems you find. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 12:13, 22 January 2013 (UTC)<br />
<br />
::I agree - a lot of the time it's not easy to work out how to do something. I've found out how to open documents from templates - would you like me to add a para to the wiki? Also how to save documents (still working out what to do with all those document properties, though).[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:03, 23 January 2013 (UTC)<br />
:::The Boolean "AsTemplate" parameter is documented in the <tt>loadComponentFromURL</tt> function call, but the text is not as helpful as it could be. If you want to make it clearer, please do. This is one big reason we keep the documentation on the wiki: any user who knows and cares about some point can help improve AOO, one small piece at a time. It is very worth doing: with tens of millions of downloads, we can expect tens of thousands of wannabe Basic programmers to have the same questions you do, and read your words. (Just remember, they will expect your words to be ''right!'') If additional details about various properties would be helpful, then add some text.<br />
:::See also my comment on the Talk page, about "_blank": what to fix, what not to fix, and why. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 18:29, 23 January 2013 (UTC)<br />
::::Don't quite understand this: this ''is'' the Talk page and I can't see any such reference here! I'll cook up some text on opening files from templates and put it in.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:00, 30 January 2013 (UTC)<br />
:::::Sorry, I meant the Talk page on the article where you left your comments, [[Talk:Documentation/BASIC_Guide/StarDesktop]]. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 18:26, 30 January 2013 (UTC)<br />
::::::OIC![[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:14, 31 January 2013 (UTC)<br />
::::I've added a new section on opening from a template. You'll probably want to edit the style. And maybe take out my signature. I'm not an experienced Wiki editor.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:14, 31 January 2013 (UTC)<br />
::::I may have to edit this further. The interaction between the "As Template" property on opening and whether the opened file was stored by OO as a template is not 100% clear. Certainly I've found that "AsTemplate" has no effect when storing a file: however it's opened it behaves as a normal file.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 13:02, 1 February 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/User:PtoyeUser:Ptoye2013-01-31T10:18:34Z<p>Ptoye: </p>
<hr />
<div>Biog: Ex-IT consultant in data communications. Programming background. Wishes that the OO API documentation wasn't so difficult to understand and navigate.<br />
<br />
Now a classical pianist.<br />
<br />
Lives in Reading, England.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:52, 21 January 2013 (UTC)<br />
<br />
Test area for new text</div>Ptoyehttps://wiki.openoffice.org/wiki/User_talk:TJFrazierUser talk:TJFrazier2013-01-31T10:14:45Z<p>Ptoye: /* String character index base */</p>
<hr />
<div>This is a good place to leave me a note. :-) --[[User:TJFrazier|TJ]] 23:48, 8 May 2009 (UTC)<br />
<br />
<br />
(This is to remind myself to fix the cache description, WIGATI.)--[[User:TJFrazier|TJ]] 20:05, 26 September 2009 (UTC)<br />
<br />
{{CURRENTTIME}}<br />
<br />
==warring==<br />
http://wiki.services.openoffice.org/wiki/Talk:RU/rules_and_information_policy<br />
<br />
http://wiki.services.openoffice.org/w/index.php?title=RU/rules_and_information_policy&action=history<br />
<br />
User [[User:Sancho|Sancho]] doesn't discuss anything.<br />
In English, differences between pages:<br />
http://translate.google.ru/translate?hl=ru&ie=UTF-8&sl=ru&tl=en&u=http://wiki.services.openoffice.org/w/index.php%3Ftitle%3DRU%252Frules_and_information_policy%26diff%3D169023%26oldid%3D169013&prev=_t<br />
<br />
Sancho does not discuss anything, but writes the rules that always repeat "forbidden", "you must or else the page you create will be deleted", "do not", "never" and so on. We change it to "it is recommended", "it is better", "page is going to be edited" and so on.<br />
<br />
User [[User:Sancho|Sancho]] doesn't reply neither in its personal discussion page, nor in the the article's talk and ignores all messages.<br />
<br />
What shall we do in this case?<br />
<br />
:Just what you did do: bring the matter to the attention of a sysop (administrator). Edit warring is a serious offense, and may lead to blocks. I will be posting a lecture on Sancho's Talk page. Meanwhile, please follow one simple rule: do ''not'' undo anyone's edits but your own, without discussing the matter on the associated Talk page. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:01, 22 May 2010 (UTC)<br />
<br />
Here are more articles Sancho refusing to discuss (so far):<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/qa/run_ooo_versions_parallel<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/Documentation/FAQ/General --[[User:Fyva|Fyva]] 05:34, 23 May 2010 (UTC)<br />
<br />
== thanks from elcico ==<br />
<br />
Dear TJ thank you for your welcome and for your suggestion.<br />
I've changed my mail address, now it should be ok!<br />
Thanks again!<br />
elcico :)<br />
<br />
P.S. Hope this is the right place to reply... just delete after you read! :)<br />
: You're quite welcome. Why ever should I delete a nice thank-you note? --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:34, 2 June 2010 (UTC)<br />
<br />
== Keyboard shortcuts, special characters ==<br />
<br />
Hi TJ, While tripping through the FAQs in search of anyplace I can help, I have found your useful answer (FAQ-Writer-Formatting Text) about how to insert special characters using macros to create keyboard shortcuts. As an alternative, I thought of adding the Windows shortcuts such as I use in Word at work to create a pounds sterling sign (i.e. Alt+0163), but I can't get those combinations to work in Writer. I'm on my laptop at home and am not sure if the Alt-key alternative just does not work in OpenOffice, or if the phenomenon is due to my using a laptop keyboard without the extra number keypad. In the hopes that no question is a dumb question... I ask... do the Alt-key combinations for special characters work in OOo?<br />
:Hi, Lisa, Yes; with my keyboard (with full numeric keypad) they work fine. I use Alt+0151 for em-dash regularly. There may be a num-lock or Fn special key that you need to simulate the numeric keypad; check your laptop's documentation. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:34, 29 June 2010 (UTC)<br />
<br />
== Re: Editing templates ==<br />
<br />
Sorry about the inconvenience. I rarely edit templates on Wikis, being mindful that such edits can have far-reaching effects. FYI, I didn't notice any slowdown: This Wiki has far fewer articles and users than the English Wikipedia.&nbsp;&mdash;&nbsp;[[User:User8192|User8192]]<sup>[[User_talk:User8192|T]] [[Special:Emailuser/User8192|@]]</sup> 17:46, 1 September 2011 (UTC)<br />
<br />
== Category:MainIndex ==<br />
<br />
Hi TJ<br />
<br />
The [[:category:MainIndex]] is '''[[Special:UncategorizedCategories|uncategorized]]''' if ''not put cat into itself'' or [[Special:Categories|another category or subcategory]].<br />
<br />
Do you know another solution?<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:04, 11 January 2012 (UTC)<br />
:right, then it stay uncategorized. [[User:Adailton|Adailton]] 13:58, 12 January 2012 (UTC)<br />
<br />
== Broken Redirects ==<br />
<br />
[[Documentation/FAQ/General/What are the differences between StarOffice (old versions) and OpenOffice.org?]] deleted, ''obsolete FAQ - replaced by a newer version of same information''? should be a fusion of historical record of keeping the original creator of the page. what is the new version? and [[Documentation/FAQ/General/QA 0002]]? Thanks [[User:Adailton|Adailton]] 13:43, 15 January 2012 (UTC)<br />
<br />
:Nice catch. Found the replacement page and fixed the redirect accordingly. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:48, 15 January 2012 (UTC)<br />
<br />
== Category:Marketing ==<br />
Hi TJ<br />
<br />
User pages in [[:category:Marketing]]: [[User:Blibrestez55/Books/Database]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Allow import of only selected pagesn]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving char spaces]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving rotated text]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Introduction]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue105133]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue109708]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue90633]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue92919]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Misplaced paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Moving Proper paragraphs GlyphProcessor]], [[OpenOffice.org Internship/Tasks/Proper paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Testing proper paragraphs]], [[User:Khirano/Solutions]], [[User:RealGrouchy]], [[User:Wyrfel]].<br />
<br />
It seems '''inappropriate''' to have categorized '''users''' pages, so I ask whether they should be '''uncategorizaded''' or moved to the '''main domain'''? (I'm sorry but I do not quite understand the English Language, so I use a translator). [[User:Adailton|Adailton]] 13:43, 16 January 2012 (UTC)<br />
:English: "de-categorized" (= "have the category reference removed") is not a valid English word, either, but it is readily understandable.<br />
:Appropriateness: Since the users themselves added their pages to the category, I'm in favor of leaving them there. If somebody associated with marketing complains, we can make changes then. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 02:24, 17 January 2012 (UTC)<br />
<br />
== Candidates for speedy deletion ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[:Category:Candidates for speedy deletion]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 11:20, 27 January 2012 (UTC)<br />
<br />
:Removed most of the pure spam. Remaining candidates are mostly technical, and can be removed more slowly.<br />
:Thanks for the good work. If you are an Apache committer (or at least have an iCLA on file), I will enable you as a sysop ("Administrator group"). That would let you delete directly, and block spammers as well (very carefully!). --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 14:32, 27 January 2012 (UTC)<br />
<br />
==Speedy deletion==<br />
Hi TJ<br />
<br />
I made a change in {{tl|delete}} in order to include a justification for the deletion. Please see if it was good.<br />
<br />
I saw that there are 11,420 [[Special:UncategorizedFiles|files uncategorized]]. Are there any major [[Special:Categories|category]] for files? I just found [[:Category:Icons]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 14:38, 26 February 2012 (UTC)<br />
<br />
: '''Delete''': Looks good to me, if it works for you.<br />
<br />
: '''File Categories''': AFAIK, the files should be categorized according to the pages that link to them (plus descriptive categories, like "Icon"). This could be a non-trivial task; if a file is linked from pages in different categories, it may be desirable to climb the category tree to find the intersection, and categorize the file there. <br />
<br />
:Your help is much appreciated. I know much of templates, but only a little about categories. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:52, 26 February 2012 (UTC)<br />
::I think the categorization according to the pages that use is practical, but we can also categorize your files by grouping them by theme (icons, applications, screens, menu items, examples, etc.), without excluding one another. There are also PDF documents, which could be a category, but I will not create them if you think it should be done well. [[User:Adailton|Adailton]] 21:07, 26 February 2012 (UTC)<br />
<br />
:::pls, see: <br />
:::*[[Casino ohne download]]<br />
:::*[[User talk:Josebryan13]]<br />
:::*[[Deals - How can you make best deals on timeshare]]<br />
:::*[[Phentermine - How the phentermine works in your body.]] <br />
:::*[[Moving Company- How to make consequences favorable]]<br />
::: and related images. Tks [[User:Adailton|Adailton]] 22:21, 22 May 2012 (UTC)<br />
::::Gone! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 03:32, 23 May 2012 (UTC)<br />
:::::Please, see [[User:PressRTbox]]. [[User:Adailton|Adailton]] 22:04, 25 May 2012 (UTC)<br />
::::::Persistent pest, now blocked. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 23:26, 25 May 2012 (UTC)<br />
<br />
----<br />
Please, see [[User:Ulissi]] (and botton of user page) and history.<br />
:Left him a warning that the link farm may get deleted. My snap diagnosis is "enthusiastic amateur", rather than deliberate spammer, so I'm starting out gently.<br />
::Removed all external and red links. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:55, 18 September 2012 (UTC)<br />
<br />
I am looking at [http://wiki.services.openoffice.org/w/index.php?title=Special:LinkSearch&target=*.com Special:LinkSearch]. There are many abuses to be checked. tks [[User:Adailton|Adailton]] 11:08, 14 June 2012 (UTC)<br />
:Nice find of that page! The good news here is that almost all of those links seem legitimate. I only found one (the very last of the first 100) that was typical user-page spam (from 2009!), and deleted it. I'll run through the rest of the list, slowly.<br />
:Many thanks for all your help. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:59, 14 June 2012 (UTC)<br />
<br />
==New volunteer==<br />
Hello. I recently started to built some pages for brazilian community start to work and I'd like to contribute in the wiki maintenance also. I've created [[:Category:Outdated]] to mark all old content pages that need to be revised. I have a lot of suggestions to offer in order to make this wiki more affordable, but I am affraid to make changes without people's agreement. I do not wish to upset anyone so, please, if there is a wiki coordinator/administrator (or something like that), let me know. I don't wish to work '''against''' but '''with''' you. =) <br />. Thanks. <small>signed by sysop</small> 2012-05-17T09:12:32 [[User:PauloLima|PauloLima]]<br />
<br />
:Hi, Paolo!<br />
<br />
:I'm replying here, just to keep the whole conversation in one place. You can put a Watch on my Talk page if you like, or I'll put a note on yours. I see that you have met [[User:Adailton|Adailton]], who is a big help around here, chasing spammers. Whatever help you care to give is very welcome.<br />
<br />
::Hi TJ. This place is fine.<br />
<br />
:Like most everything at Apache, there is no "official" hierarchy on this wiki. The only sense in which I'm "it" is that I'm doing the work. I do have both sysop and bureaucrat privileges, and I will promote any committer to sysop who asks. My personal expertise runs to "expert user": knowledgeable on wiki markup, templates, ''etc.'' If you have plans to improve the user experience, go for it; I'll be glad to help you do it the easy way, if you like.<br />
<br />
:: Ok. I've been working with Mediawiki software intensively for the last 2 years. I've created/developed many of the pages in LibO PT_BR wiki, and I was responsible to develop the document translation workflow to PT-BR. That was a great learning. Now I wish to contribute here. These days, I am running a document management project for the company I work,using Mediawiki software, for for the last year, using its semantic features. And this was a great learning for me too. So, I proposed to use my experience in this area to help building an intelligent ontology that could ease the access tothe information in the wiki. But... In order to do that, it would be necessary to upgrade Mediawiki at least to 1.7.4 (1.9 would be better) and install some semantic extensions (maybe creating some new user's groups, if necessary). Can you help me on that? This should not impact the actual wiki's access/availbility, but can make available features for me to work on some sort of "snapshot". =)<br />
<br />
:Which reminds me: are you deliberately using the "preformatted text" option (starting your line with a space character), to create indentation? A colon (:) works better, because it wraps better. Use more colons for more levels of indentation (think, "tabs"). By convention, if you reply here, you would start your lines with two colons, I would reply with three, ...<br />
<br />
:: Yes. I'm using that. It's a matter of preferences. For me it looks better, but I have no objections in using identation =)<br />
<br />
:I look forward to your contributions. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 20:06, 17 May 2012 (UTC)<br />
<br />
:: I've created a category PT-BR for brazilian community begin to work. It was necessary, but, as Adailton pointed, maybe we could join PT-BR and PT sections, if it works better. I'm helping Kevin on UX team and looking for pages that must be updated/deleted. There are many outdated information here and it's necessary to classify them (that's why I've created a [[:Category:Outdated]]). In the next days I will navigate through the wiki to find and categorize those pages. After that, we will have a picture of what/where/who/when we need to do. If you and Adailton agree with that, of course. What do you think?<br />
<br />
:: [[User:PauloLima|PauloLima]] 22:17, 17 May 2012 (UTC)<br />
Preformatted text looks great — ''if'' you pre-format it!<br />
<br />
:::Otherwise, it has a nasty tendency to run right over the right-hand border, and just keep going. I find that both ugly and a nuisance, having to adjust the horizontal slider, and I had to do that a lot on your talk page. This may be browser- and skin-dependent. But, to more important matters.<br />
<br />
:::: Well, I have placed line breakers <nowiki>"<br />"</nowiki> in my replies, because I am aware of this issue. I don't know why you had this problem in you browser, maybe your screen resolution is too low. For me, my replies are been displayed with short lines and no horizontal slider both in Internet Explorer (Windows 98 in a virtual machine), Google Chrome and Mozilla Firefox (Ubuntu 11.10). But it doesn't matter, I can use identation. No problem.<br />
<br />
:::For upgrading MW and installing new extensions, you need a site-maintenance person, and that's not me. The only one I know of with the project is Raphael Bircher; otherwise, we depend on Infra. The problem is that none of those folks have any real expertise with MW or php, and neither do I. If you have command-line expertise, by all means volunteer on the Infra ML, and ask for access. Otherwise, I suppose we can try writing JIRA tickets. I am certainly in favor of an upgrade; there are problems with the <nowiki><math></nowiki> syntax that probably can only be fixed that way, and some other adjustments that should be made.<br />
<br />
:::: Yes, I know how to upgrade and install extensions to Mediawiki. But, I would had to get ssh access to the server and RWX rights to Mediawiki directory. A database backup would be necessary (and I should have access to it in this case, also). If you have admin rights to the wiki, so you can perform admin tasks for me, when it's necessary.<br />
:::::Yes, you know what you need, and you can get the access by asking on the Infra ML (infrastructure@apache.org). Send from your Apache address, with a subject like, "Request root access to ooo-Mwiki VM". I think they will be glad to hear from you, when you spell out your expertise as you have done here. I haven't asked for such access, because I don't have (yet) the knowledge to use it. I will add a new section on this page for a data dump of what I've learned about the physical setup.<br />
<br />
:::For your other plans, I suggest you pick out some segment for a pilot program, and work the bugs out; there are thousands of pages needing attention. But don't let this tired old man dampen your enthusiasm! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 01:35, 18 May 2012 (UTC)<br />
<br />
:::: Well TJ, I am not exactly a kid anymore for a long, long time. At least in my body. In my soul I feel like a kid yet =)<br />
:::::Some of us on the high side of 70 have merely lived a long time; others of us are ''old''. I must regretfully admit to which one I am.<br />
:::: I am planning to use PT-BR section for my tests. This will not affect any feature of actual wiki. Pages/Templates/Forms/Properties can be created transparently and released to production when ready. The only impact will be in the categories structure. I shall have to do some modifications, but I won't do that without notice. Before that, I will show you a new ontology (categories/properties structure), put it into discussion, so we can find the best way to improve the wiki, right?<br />
:::::Sounds great to me. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
:::P.s.: Do I assume correctly that you mean MW versions 1.17.x and 1.19.x ?<br />
<br />
:::: Yes, that's it. Thank you very much for your help.<br />
==The Physical Wiki==<br />
This wiki is housed on a VM, running a LAMP stack. "L" = some version of Ubuntu. In addition to the MW software, we run the Apache Traffic Server (ATS) as a front end. (Some adjustment is needed here: as of this writing, ATS sometimes serves up stale pages.)<br />
<br />
Exact information on extensions and versions should be available on the [[Special:Version|Version]] page. Known problems include:<br />
* The locally written IDL extension is not the latest version; this was an error during the move to Apache. The latest version needs to be found and installed, so that the <nowiki><idlml></nowiki> tags work.<br />
* MW was undergoing a change to the Math support, during MW v17. Math is showing errors on our installation (see example on [[User:TJFrazier|my user page]]), which have probably been fixed in a later MW release.<br />
:*Many thanks to Imacat, who installed the Textvc code, and fixed the math problem. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 19:47, 30 July 2012 (UTC)<br />
<br />
--[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
== Wanted Categories ==<br />
<br />
Hi TJ<br />
<br />
There is a [[Special:WantedCategories|Wanted Categories]], '''Category:RU/Авторы/А. Е. Харламенков''', that has been recently deleted. What do we do?<br />
<br />
Thanks [[User:Adailton|Adailton]] 15:16, 18 September 2012 (UTC)<br />
<br />
:Nothing. The category was marked for speedy delete, by the Russian fellow who created it. I deleted it. Why it's showing up on that special page is a mystery. I'll poke around some. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:55, 18 September 2012 (UTC)<br />
::That I understood. It is listed on the special page to have a page, [[RU/kb/common/programming]], the same author category. I think I must remove the category of the page, but it is a hidden category within a Template. [[User:Adailton|Adailton]] 16:07, 18 September 2012 (UTC)<br />
:::I must confess that I couldn't trace through the signature-related templates to find the Category call. So I commented out the signature (which is against policy anyway; sign with wiki signatures, if at all). Special page now empty. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:35, 18 September 2012 (UTC)<br />
::::Ok, unusual solution but ''problem'' solved. [[User:Adailton|Adailton]] 22:16, 18 September 2012 (UTC)<br />
<br />
== SimpleNonprofitAccountingTemplate ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[SimpleNonprofitAccountingTemplate]]<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:03, 27 September 2012 (UTC)<br />
<br />
:ROFL! Just adding that to the doc list when I got your message. I'll categorize it properly, too. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:08, 27 September 2012 (UTC)<br />
<br />
==Question on adding Justification to marking a page for Speedy Delete==<br />
Hi TJ;<br />
<br />
I wanted to mark a page for speedy delete and noticed in the in the preview that there was a section for adding a justification when you use the delete template. Was wondering what the proper syntax was for adding that. Appreciate your time and help.<br />
<br />
Regards<br />
Keith<br />
<br />
:Hi, Keith,<br />
<br />
:User Adailton's reply to you is authoritative: he added that field to the template. (He's a big help around here.)<br />
<br />
:Sorry for the slow reply, but Sandy did interrupt my power for several hours, and threatened to do worse. I didn't want to be in the middle of doing something here on the wiki, and have to quit. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:59, 27 October 2012 (UTC)<br />
<br />
== Hurricane Sandy ==<br />
<br />
Hi TJ<br />
<br />
Welcome back! I hope that Sandy has not given him much trouble.<br />
<br />
Spammers have given some work here, but everything under contrrole.<br />
<br />
Regards [[User:Adailton|Adailton]] 13:14, 27 October 2012 (UTC)<br />
<br />
<br />
:Sandy came and went, with no lasting problems. Now I'm catching up. Thanks for covering. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:19, 27 October 2012 (UTC)<br />
<br />
== File:FreedomFleetAttendance.xls ==<br />
<br />
Hi TJ<br />
<br />
[:File:FreedomFleetAttendance.xls] some use?<br />
<br />
[] [[User:Adailton|Adailton]] 10:18, 12 November 2012 (UTC)<br />
<br />
<br />
:Not that I could see, so I deleted it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:37, 12 November 2012 (UTC)<br />
<br />
== New pages ==<br />
Hi TJ<br />
<br />
[[Special:NewPages|some pages created November 12 were forgotten]]<br />
<br />
Regards [[User:Adailton|Adailton]] 10:47, 14 November 2012 (UTC)<br />
<br />
:I see only one new page, in User space, and you erased the spam on it. Do you see other new pages on some other list? <br />
:There was some kind of error about then, on the wiki; one of my operations timed out, so I just went away for a while. Maybe some logs (or pages) were lost. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:16, 14 November 2012 (UTC)<br />
<br />
== Sysop ==<br />
Hi TJ<br />
<br />
I worried that I am not fluent in the language. I read a little English, and generally use the google translator to long paragraphs.<br />
<br />
I will be more cautious, but stay tuned for elimination and blocks.<br />
<br />
Regards [[User:Adailton|Adailton]] 15:07, 17 November 2012 (UTC)<br />
:The more users doing good work, less work for each. [[User:Helen russian|Helen russian]] also did good job. Thanks [[User:Adailton|Adailton]] 23:03, 18 November 2012 (UTC)<br />
::What a busy day! I have deleted more than 130 pages today. TJ, Adailton, Andrew, I need a time-out. :-) I'll be back in 12 hours (at 4:00 UTC). Please don't lose me. --[[User:Helen russian|Helen]] 16:09, 19 November 2012 (UTC)<br />
<br />
::I see a new Russian sysop [[User:Yak|Yak]]. It's great! Yakov, thank you for joining us --[[User:Helen russian|Helen]] 03:44, 20 November 2012 (UTC)<br />
<br />
:::You folks have been doing a super job! Help is on the way: see the Mwiki threads on dev@, plus the new section on my user page. That info is not current yet, but it will be. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 13:01, 20 November 2012 (UTC)<br />
<br />
::Hi TJ, any news? --[[User:Helen russian|Helen]] 02:15, 21 November 2012 (UTC)<br />
<br />
== Excessive spamming ==<br />
<br />
Hi TJ<br />
<br />
I made a [[Special:Log/protect|protection]] to prevent re-creation. What do you think?<br />
<br />
Regards [[User:Adailton|Adailton]] 10:26, 22 November 2012 (UTC)<br />
<br />
:Good move! We can delete it when the spam attack is over. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 10:49, 22 November 2012 (UTC)<br />
<br />
== How long will the spam attack? ==<br />
Hi TJ<br />
<br />
How long will the spam attack? Can I search for additional volunteers from the Russian community? --[[User:Helen russian|Helen]] 02:23, 23 November 2012 (UTC)<br />
<br />
:Hi, Helen,<br />
<br />
:We have a new recruit for site maintainer: Jan Iversen (also new Bureaucrat and sysop). Hopefully his access will be finished tonight or tomorrow, and he will turn off the spam user creation and delete their accounts. You will know for sure when you see a banner announcement about it, explaining that new accounts are by invitation only.<br />
<br />
:I can't guarantee the timing. You are welcome to search for more volunteers, and I will appoint them as sysops on your say-so. I just hope they won't have anything to do! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 02:38, 23 November 2012 (UTC)<br />
<br />
::OK. I'll try to find some volunteers for the job today after 11:00 UTC. --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
<br />
:::P.S.: Adailton found a clever way to defeat the repeated spamming of a few pages. Protect them to the Administrator level, then delete. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:28, 23 November 2012 (UTC)<br />
:::: OK --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
:::::TJ, delete first, then protect the page. This prevents an editor to create again. [[User:Adailton|Adailton]] 05:33, 23 November 2012 (UTC)<br />
<br />
== Need Create New Pages permission ==<br />
<br />
Started the proect to merge the FAQ's from the web site into the wiki and find my account does not have Create New Pages Permissions. Can you add them please or should I send a formal request through the dev list. Thanks for the help<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 02:55, 11 December 2012 (UTC)<br />
<br />
== Request for advice from mWiki guru ==<br />
<br />
After a closer look at all the materials involved with consolidating the FAQ's from the web site into the Wiki it appears the most effiecient way todo it would be to create some new Documentation\FAQ catagories and restructure the toc to add them. Given what is currently going on would it be best to just fit them in to the current structure and wait until the update is completed and then make the changes and reassign the new FAQ's to them? The alternative would be to do it know and I would need a crash course (mostly on reading the help files) on the intricacies of doing it.<br />
<br />
Sorry to be a pain with questions, but the engineer in me says ask the questions first before you really muck something up!<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 20:53, 12 December 2012 (UTC)<br />
<br />
:Keith, your cautious approach is much appreciated.<br />
<br />
:First, go right ahead now. This work should not be affected by the upgrades and such.<br />
<br />
:Second, IIRC, the lowest-level listing is all done with DPL and categories. The relevant help files for the DPL extensions (we're using the older one) are on [http://www.mediawiki.org/wiki/MediaWiki MediaWiki], which can (surprisingly) be a little hard to reach from Wp. You can probably do just what I'd do: copy an existing page, changing only the particular data (category name). Then put the appropriate new category on each new page: <nowiki>[[Category:whatever]]</nowiki>.<br />
<br />
:The higher-level toc (purple box) is built by one template calling another. The Master TOC template positions and paints the box; the FAQTOC template supplies the data, so this is what you need to edit. Wp has scads of help on templates; it is a much more powerful feature than any reasonable person would ever need. Fortunately, again all you probably need to do is copy and adjust existing entries to show the new stuff. The Preview button is your friend. Please try to minimize the number of edits to templates: an edit change kicks off a chain of replacements for every calling page, which can bog down the wiki for minutes. Note that you can call templates from your own space. That makes experimenting cheap. <nowiki>{{User:KNetc/test}}</nowiki> or something similar should suffice, where page "test" is a copy of the real template.<br />
<br />
:I'm fairly ignorant about DPL, but I'm useful on templates. Ask if you have problems. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 01:55, 13 December 2012 (UTC)<br />
<br />
::TJ I spent the better part of 20 years in Manufacturing Engineering first as a tech and then as an engineer. Have seen to many screw-ups that could have been prevented by asking "stupid questions" first. Not fun having to explain to ops managers why they lost x number of man hours / days.<br />
<br />
::First, since there should be no conflicts with the upgrades et al, I will venture down the path of creating new catagories and updating the toc.<br />
<br />
::Second, I will spend a few days this weekend looking over the help sections that you point to and try some experimenting in my "sandbox". Is there a time frame that would be best to go "live" with the changes to the FAQtoc to have the least disruption to the rest of the community on the Wiki?<br />
<br />
::Believe me if I have questions believe me I will ask. Thank you for all the info and your willingness to help.<br />
<br />
::Regards [[User:KNMcKenna|Keith]] 22:11, 13 December 2012 (UTC)<br />
<br />
I suggest that you make a copy[1] of faqtoc, maybe "factoc2", in template space. Just click on a link like this one: [[Template:factoc2]]. You can edit that one all you want, because only the few pages you build will be affected. At the very end, copy it back — only one edit to the live template, so you needn't worry about the timing. Then change the links (the special page, "What links here" is your friend) and delete the copy.<br />
<br />
Feel free to put the links to the new subdivisions[2] where they belong, on the Documentation or Doc/FAQ pages, but please hang the "Under Construction" sign on anything incomplete, in case users blunder into it.<br />
<br />
Thank you very much for undertaking this task.<br />
<br />
<br />
Notes:<br /><br />
[1] "copy" means Edit | Select all | Copy | Cancel edit on the source page, then Edit | Paste on the new page.<br /><br />
[2] I used a different term, because you will be creating some wiki Category pages, too. Using the redlink method, just reference the new category as usual, at the bottom of the new faq page. That will show as a redlink; click on it, add a one-line description, and save the page. Nothing to it! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:32, 14 December 2012 (UTC)<br />
<br />
==Speedy Delete==<br />
Hi TJ<br />
<br />
I wish you a Merry Christmas :)<br />
<br />
I have been absent due to commitments, but I must return to work soon<br />
<br />
[[:Category:Candidates for speedy deletion]] is ''Outdated, not valid''? There is another to replace it?<br />
<br />
Even if only administrators are active, I think at times be necessary ''ask'' the opinion of others about certain deletions to prevent undue eliminations. In wikipedia the ''normal'' is always an editor (even an administrator) mark and an administrator check and then eliminate.<br />
<br />
There needs to alter {{tl|delete}}?<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 08:52, 25 December 2012 (UTC)<br />
<br />
:Agree that the category is needed, so I replaced it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 12:32, 25 December 2012 (UTC)<br />
==Category Names Problem==<br />
Hi TJ <br />
<br />
In [[Special:WantedCategories]] there in many categories, but all with ''problems'' in the title, probably due to a misconfiguration in for special characters needed for languages like Polish, Portuguese, French, Russian, etc. But I do not know exactly how to fix it.<br />
<br />
For exemples: [[:Category:Wdrożenia]] would be [[:Category:Wdrożenia]] ('''ż''')<br />
<br />
This may have occurred before December 25, the date of deletion. Possibly the time of spam attack, in november.<br />
<br />
I'll create the correct categories, with the hope that it would remove the entries in special page.<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 13:57, 7 January 2013 (UTC)<br />
<br />
:This looks to me to be a problem related to the UTF-8 settings and conversion, which was part of the upgrade on 12/25. The pages themselves seem to be properly categorized; why they are showing up in "Wanted" is a mystery. I'll ask Jan about it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 15:27, 7 January 2013 (UTC)<br />
<br />
== String character index base ==<br />
<br />
Thanks for adding the clarification. I'd found it out myself by experimentation, but it's good to have authoritative backing.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 09:55, 22 January 2013 (UTC)<br />
<br />
:Thank you for taking the trouble to point out the ambiguity. There are other places where only some experimentation will show how to do it, and they all should be fixed. Probably the worst has to do with the cursors (text and view); I'm working on that. Please feel free to point out any problems you find. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 12:13, 22 January 2013 (UTC)<br />
<br />
::I agree - a lot of the time it's not easy to work out how to do something. I've found out how to open documents from templates - would you like me to add a para to the wiki? Also how to save documents (still working out what to do with all those document properties, though).[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:03, 23 January 2013 (UTC)<br />
:::The Boolean "AsTemplate" parameter is documented in the <tt>loadComponentFromURL</tt> function call, but the text is not as helpful as it could be. If you want to make it clearer, please do. This is one big reason we keep the documentation on the wiki: any user who knows and cares about some point can help improve AOO, one small piece at a time. It is very worth doing: with tens of millions of downloads, we can expect tens of thousands of wannabe Basic programmers to have the same questions you do, and read your words. (Just remember, they will expect your words to be ''right!'') If additional details about various properties would be helpful, then add some text.<br />
:::See also my comment on the Talk page, about "_blank": what to fix, what not to fix, and why. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 18:29, 23 January 2013 (UTC)<br />
::::Don't quite understand this: this ''is'' the Talk page and I can't see any such reference here! I'll cook up some text on opening files from templates and put it in.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:00, 30 January 2013 (UTC)<br />
:::::Sorry, I meant the Talk page on the article where you left your comments, [[Talk:Documentation/BASIC_Guide/StarDesktop]]. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 18:26, 30 January 2013 (UTC)<br />
::::::OIC![[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:14, 31 January 2013 (UTC)<br />
::::I've added a new section on opening from a template. You'll probably want to edit the style. And maybe take out my signature. I'm not an experienced Wiki editor.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:14, 31 January 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/StarDesktopTalk:Documentation/BASIC Guide/StarDesktop2013-01-31T10:14:09Z<p>Ptoye: /* Parameter for new frame */</p>
<hr />
<div>== OpenOffice.org 5 ==<br />
"The name of the StarDesktop object dates back to OpenOffice.org 5" ??<br />
--[[User:TJFrazier|TJ]] 04:24, 5 October 2007 (CEST)<br />
<br />
== "Compression of Files" bracket stuff ==<br />
<br />
Bracketed stuff in that section. --[[User:TJFrazier|TJ]] 04:28, 5 October 2007 (CEST)<br />
<br />
== Parameter for new frame ==<br />
<br />
In the text you say that the parameter for opening a document in a new frame is "_blank", but the example gives " blank". The API documentation agrees with the former, but I've found by experiment that both work OK (documentation bug??); "blank" works as well! Should the code be changed to match the description, or was it put in to highlight the discrepancy? In the latter case I'd suggest a note pointing this out.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:57, 23 January 2013 (UTC)<br />
<br />
:If you can find such an instance, of " blank" (I can't), by all means please fix it. Generally speaking, the information here, in the Basic Guide, is subordinate to the API and DevGuide documentation. The leading underscore is a common way of marking reserved words, which the user should not define, but should use exactly as given. If the code permissively allows "blank" and " blank" as well, these are implementation details. We don't document those, because someone might come along and change to a more rigorous requirement. We don't want our users to depend on things like that, which may go away without notice; we try to tell them how to do it right. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 17:51, 23 January 2013 (UTC)<br />
::I fully agree. But in your page, the first example has " blank" without the underline - I assume a typo, unless it was there to indicate that the underline is optional (which, as you say, isn't documented and really needs a comment).[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:14, 31 January 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Extensions_development_basicExtensions development basic2013-01-31T10:06:43Z<p>Ptoye: Added new section on opening a document from a template</p>
<hr />
<div>'''Getting started tutorial''' <br />
<br />
This page provides a getting started guide for writing macros in OpenOffice.org Basic. It assumes some prior programming knowledge. Please edit this page to make it more readable. I hope you will find it useful.<br />
<br />
If you already know the basics then you may want the [[CookBook]] for wrappers and examples.<br />
<br />
<br />
==Where do I write the code?==<br />
OpenOffice.org Basic code is stored in modules within libraries. A library can be: <br />
<br />
*Shared (for a network install - OOo Macros & Dialogs) <br />
*Just for the current user (My Macros & Dialogs) <br />
*Within a document or template, so that its code is only available when that document is open.<br />
<br />
Libraries stored in a document can easily be copied, transported and distributed with the document.<br />
<br />
Libraries not stored in a document or template (that is libraries that are shared or for the current user) are referred to as '''OpenOffice.org libraries'''. <br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br> '''Tools > Options… > OpenOffice.org > Paths > BASIC'''. <br />
<br />
{| border="1"<br />
|'''Note'''<br />
|Do not copy or move libraries using operating system commands. Use the macro organizer or package manager instead.<br />
|-<br />
|}<br />
<br />
<br />
Modules within libraries have a maximum size of 64kb. A library can contain up to 16,000 modules. <br />
<br />
For more information see online help for: Modules and Libraries.<br />
<br />
==Accessing the IDE==<br />
To access the IDE for the first time: <br />
<br />
OpenOffice.org 1.1.x: '''Tools > Macros > Macro… >''' <br />
<br />
OpenOffice.org 1.9.x and above: '''Tools > Macros > Organize macros > OpenOffice.org Basic… >''' <br />
<br />
To get started we will use Module1 in the Standard library which is stored for the current user only: <br />
<br />
Type a name for the new macro: '''HelloWorld''' <br />
<br />
In the macro from listbox select '''Standard''' <br />
<br />
Click '''New''' <br />
<br />
You should now see something like: <br />
<br />
<source lang="oobas"><br />
REM ***** BASIC *****<br />
<br />
Sub Main<br />
<br />
End Sub<br />
<br />
Sub HelloWorld<br />
<br />
End Sub<br />
</source><br />
The cursor will be positioned at the start of the <tt>Sub HelloWorld</tt> line. <br />
<br />
{| border="1"<br />
|'''Note'''<br />
|Now that while the IDE is running it can be accessed from the OpenOffice.org Window menu, or the task panel provided by the operating system.<br />
|-<br />
|}<br />
<br />
==Entering the code==<br />
Select and delete: <br />
<br />
<source lang="oobas"><br />
REM ***** BASIC *****<br />
<br />
Sub Main<br />
<br />
End Sub<br />
</source><br />
Below the line "Sub HelloWorld" type <tt>msgbox "Hello World!"</tt>, so that the editor looks like: <br />
<br />
<source lang="oobas"><br />
Sub HelloWorld<br />
msgbox "Hello World!"<br />
End Sub<br />
</source><br />
{| border="1"<br />
|'''Notes:'''<br />
|The IDE does not provide code completion or help with command syntax as you type, but to get help on a Basic command position the cursor in the command and press F1.<br> OpenOffice.org Basic commands are not case sensitive. Thus msgbox, MSGBOX and Msgbox will all work.<br> Strings are enclosed in double quotes.<br />
|-<br />
|}<br />
<br />
==Running the code==<br />
There are several ways of running the Basic code, these include: <br />
<br />
*Directly from the IDE. There is a run button on the macro bar (by default the third control on the second toolbar). This will run the first macro in the current module. <br />
<br />
*From the tools menu:<br />
<br />
**(Version 1.1.x) '''Tools > Macros > Macro…''';<br />
<br />
**(Version 1.9.x and above) '''Tools > Macro > Run Macro…''' <br />
<br />
*Assigning the macro to a [[ key press]]. <br />
<br />
*Assigning the macro to a [[ menu entry]]. <br />
<br />
*Assigning the macro to a toolbar button. <br />
<br />
*Creating a [[ control in a document]]. <br />
<br />
*Assigning the macro to an event. <br />
<br />
For now try running the "HelloWorld" subroutine by clicking the '''Run''' button. A small dialog titled "soffice" with the text "Hello World!" and an OK button should be displayed.<br />
<br />
==Saving the code==<br />
The code gets automatically saved whenever the container for the code gets saved. Thus, if the code is in an OpenOffice.org library (shared or users) then it gets automatically saved when OpenOffice.org exits. If the code is in a library which is part of a document it gets saved whenever the document is saved. <br />
<br />
On the Standard toolbar (by default the top toolbar) in the IDE there is a save button. If the code is in a document or template then clicking this button saves the entire document or template. If the code is in an OpenOffice.org library then just the current library gets saved. <br />
<br />
<br />
==Variables==<br />
It is possible to force variable declaration with <tt>Option Explicit</tt> at the top of the module. For a discussion on whether to declare variables or not, see: [[http://www.oooforum.org/forum/viewtopic.phtml?t=5845 this discussion]]. <br />
<br />
In that discussion the initial author of this wiki thought that variables should always be declared. Since then he has changed to not declaring them. In short it is generally a personal preference. In either case, it is the initial authors preference that variables be named according to the following convention, which is used in the examples in this Wiki: <br />
<br />
The first letter of the variable name indicates the type of value that the variable is going to hold, as per the following table (based on a table in Tutorial.pdf by Sun) <br />
<br />
{| border="1"<br />
|'''''Letter'''''<br />
|'''''Meaning'''''<br />
|-<br />
|a<br />
|Structure<br />
|-<br />
|b<br />
|Boolean (TRUE or FALSE)<br />
|-<br />
|e<br />
|Enumeration. This variable can only have one of a limited set of values.<br />
|-<br />
|f<br />
|Float (3.402823 x 1038 to 1.401298 x 10-45. A single variable can take up to four bytes)<br> Double (1.79769313486232 x 10308 to 4.94065645841247 x 10-324. A double variable can take up to eight bytes)<br> Currency (-922337203685477.5808 to +922337203685477.5807 and takes up to eight bytes of memory)<br />
|-<br />
|m<br />
|Array (aka sequence aka matrix)<br />
|-<br />
|n<br />
|Integer (-32768 to 32767.) or<br> Long (-2147483648 and 2147483647).<br />
|-<br />
|o<br />
|Object, service, or interface<br />
|-<br />
|s<br />
|String (A string variable can store up to 65535 Unicode characters).<br />
|-<br />
|x<br />
|Interface, to indicate that only operations of a particular interface of an object are used<br />
|-<br />
|v<br />
|Variant, Any<br />
|-<br />
|}<br />
<br />
<br />
Use long descriptive variable names making use of camel case: <tt>nMsgBoxReturn</tt><br />
<br />
{| border="1"<br />
|'''Note:'''<br />
|User-defined OpenOffice.org Basic variables are not case sensitive. But UNO-API constants ''are'' case sensitive.<br />
|}<br />
<br />
<br />
Convention exceptions to long descriptive names are for index variables where <tt>i, j,</tt> and <tt>k</tt> are commonly used, and for when a string is being built-up, where <tt>s</tt> is commonly used. <br />
<br />
Edit sub HelloWorld so that it looks like the following and run it: <br />
<br />
<source lang="oobas"><br />
sub HelloWorld<br />
dim i as integer 'This line is optional<br />
for i = 0 to 2<br />
'These lines are indented for ease of reading only.<br />
'All your code should be like this for long-term survival.<br />
msgbox "Hello World " & i<br />
next i<br />
end sub<br />
</source><br />
For more information on variables see the online help for "using variables".<br />
<br />
==Understanding the OpenOffice.org API==<br />
This section will start with an example. The remainder of this section aims to give information so that the example can be understood and expanded upon. <br />
<br />
Try running the following code with different types of documents being active. <br />
<br />
<source lang="oobas"><br />
sub main<br />
'BasicLibraries.loadLibrary("XrayTool")<br />
'xray thisComponent<br />
msgbox fnWhichComponent(thisComponent)<br />
end sub<br />
<br />
<br />
function fnWhichComponent(oDoc) as string<br />
if HasUnoInterfaces(oDoc, "com.sun.star.lang.XServiceInfo") then <br />
if oDoc.supportsService ("com.sun.star.text.GenericTextDocument") then<br />
fnWhichComponent = "Text"<br />
elseif oDoc.supportsService("com.sun.star.sheet.SpreadsheetDocument") then<br />
fnWhichComponent = "Spreadsheet"<br />
elseif oDoc.supportsService("com.sun.star.presentation.PresentationDocument") then<br />
fnWhichComponent = "Presentation"<br />
elseif oDoc.supportsService("com.sun.star.drawing.GenericDrawingDocument") then<br />
fnWhichComponent = "Drawing"<br />
else<br />
fnWhichComponent = "Oops current document something else"<br />
end if<br />
else<br />
fnWhichComponent = "Not a document"<br />
end if<br />
End function<br />
</source><br />
<br />
===Subroutine naming convention===<br />
In the above example the user defined function has a name that starts with the letters "fn". This is the initial author's convention so that people know that this is a user defined function. Similarly, the initial author uses the convention that user defined subroutines start with the letters "sub". When learning a language and an API it can be difficult to know what is built-in and what has been defined elsewhere. This document/wiki will use this convention for naming functions and subroutines.<br />
<br />
===Introducing the OpenOffice.org API===<br />
This section introduces the following terms: <br />
<br />
* Interface <br />
* Module <br />
* Service <br />
* Method <br />
* Property <br />
<br />
Understanding the difference between an interface and a service and what a module is, is not essential to being able to write extensions for OpenOffice.org, but it does help interpreting the documentation, and for introspection purposes. You may need to read this section at least twice. <br />
<br />
An '''interface''' is a ''definition'' of a set of methods (and their arguments) that a service which implements that interface must have. <br />
<br />
Interfaces are grouped together in '''modules''' for naming purposes. All interfaces (and services) start with the name "com.sun.star" then the name of the module then the name of the interface (or service). <br />
<br />
For example most services provide the com.sun.star.beans.XPropertySet interface. This interface is stored in the module "beans" and provides access to the properties of a service. A '''property''' is a value whereas a '''method''' is an action. <br />
<br />
An OpenOffice.org object can have many services. <br />
<br />
An OpenOffice.org object may have a service, which implements an interface, in which a method description says that another OpenOffice.org object is returned.<br />
<br />
===Introspection===<br />
<tt>HasUnoInterfaces</tt> is an OpenOffice.org Basic function for introspection. See this [[http://www.oooforum.org/forum/viewtopic.phtml?t=7068 link]] for information on introspection in other languages. <br />
<br />
<tt>HasUnoInterfaces</tt> returns true if all of the specified interfaces are available for the specified object. <br />
<br />
Most OpenOffice.org objects provide the method <tt>supportsService</tt> because they have the interface <idl>com.sun.star.lang.XServiceInfo</idl>. <br />
<br />
In the above example, the OpenOffice.org Basic command <tt>HasUnoInterfaces</tt> checks that the current document has the interface <idl>com.sun.star.lang.XServiceInfo</idl>, because if it doesn't have that interface then it doesn't have the method <tt>supportsService</tt>, and a run time error would occur if such an object tried to access its nonexistent method. <br />
<br />
<tt>SupportsService</tt> is a method which returns true if the specified service is available. The above examples checks for a service to determine the type of document that is currently active.<br />
<br />
<br />
===Xray tool===<br />
Using <tt>HasUnoInterfaces</tt> and <tt>supportsService</tt> gives information about an object at run time, but checking an object like this would be a nightmare for learning? Thankfully, Bernard Marcelly has come to our rescue with the Xray tool. The Xray tool is available from: [[http://bernard.marcelly.perso.sfr.fr/Files_en/XrayTool60_en.odt odt installer(en)]]. Download the odt file, open the document in OpenOffice.org, follow the instructions for installation and set-up. <br />
<br />
Part of the Xray tool set-up is to specify a local copy of the OpenOffice.org SDK. Download the [http://www.openoffice.org/download/other.html#tested-sdk Apache OpenOffice 3.4 SDK] and extract it. <br />
<br />
In the above example, at the start of the code, there are two commented lines (comments start with an apostrophe): <br />
<br />
<source lang="oobas"><br />
'BasicLibraries.loadLibrary("XrayTool")<br />
'xray thisComponent<br />
</source><br />
Now that you have the Xray tool installed, uncomment these lines (remove the apostrophes) and rerun the macro.<br />
<br />
[[image:Xray60en.png]]<br />
<br />
'''BasicLibraries''' is an OpenOffice.org Basic command that returns an object for accessing the OpenOffice.org libraries. The <tt>loadLibrary</tt> method ensures that the routines in that library are available for use. <br />
<br />
<tt>xray</tt> specifies the <tt>xray</tt> subroutine within the library <tt>XrayTool</tt>. <tt>thisComponent</tt> is the object that is being passed to <tt>xray</tt> for introspection. <br />
<br />
To find the object that you want to work with often requires finding or creating it starting from either <tt>StarDesktop</tt> or <tt>thisComponent</tt>.<br />
<br />
===Desktop, documents, and current selection===<br />
<tt>StarDesktop</tt> and <tt>thisComponent</tt> are OpenOffice.org Basic commands that refer to the application and currently active document respectively. <br />
<br />
Unlike Microsoft Office, OpenOffice.org is one application with different components. When running some code it maybe useful to check which component is currently active. The above code demonstrates how that checking process can be done. <br />
<br />
The Desktop that <tt>StarDesktop</tt> refers to is conceptual (historically it actually existed) and can be thought of as the OpenOffice.org application.<br />
<br />
==Creating new documents==<br />
To create a new text document: <br />
<br />
<source lang="oobas"><br />
oDoc = StarDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, Array())<br />
</source><br />
To create a new spreadsheet document: <br />
<br />
<source lang="oobas"><br />
oDoc = StarDesktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, Array())<br />
</source><br />
An easier approach would be to write a simple function: <br />
<source lang="oobas"><br />
function fnNewDoc(sDocType as string)<br />
fnNewDoc = StarDesktop.loadComponentFromURL("private:factory/" & sDocType , "_blank", 0, Array())<br />
end function<br />
</source><br />
Then creating new documents can be achieved with: <br />
<br />
<source lang="oobas"><br />
oDoc = fnNewDoc("swriter")<br />
oDoc = fnNewDoc("scalc")<br />
oDoc = fnNewDoc("simpress")<br />
oDoc = fnNewDoc("sdraw")<br />
oDoc = fnNewDoc("smath")<br />
</source><br />
See http://api.openoffice.org/docs/common/ref/com/sun/star/frame/XComponentLoader.html .<br />
<br />
==To open a document==<br />
The following example shows how to open a file. For information on URLs in OpenOffice.org see [[ URL Basics]]. <br />
<br />
<source lang="oobas"><br />
sFile = "C:\Documents and Settings\danny\Desktop\MyCalc.sxc" ' Windows<br />
sFile = "/home/danny/Desktop/MyCalc.sxc" ' Linux<br />
sURL = ConvertToURL(sFile)<br />
oDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())<br />
</source><br />
Again it may make sense to make this easier by writing a simple function: <br />
<br />
<source lang="oobas"><br />
function fnOpenDoc(sFile)<br />
sURL = ConvertToURL(sFile)<br />
fnOpenDoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Array())<br />
end function<br />
</source><br />
Examples of calling the function: <br />
<br />
<source lang="oobas"><br />
oDoc = fnOpenDoc("C:\Documents and Settings\danny\Desktop\MyCalc.sxc") ' Windows<br />
oDoc = fnOpenDoc("/home/danny/Desktop/MyCalc.sxc") ' Linux<br />
</source><br />
<br />
==Opening a new file from a template==<br />
If you want to open a file using an existing template, use the template name instead of the file name. An untitled document will be opened from the template.<br />
<br />
If the template location is known, simply use it. However, OpenOffice keeps at least two sets of templates: global templates available to all users and "My Templates" available to the current user, and the locations of the directories are not obviously available. They can be found by means of the [http://www.openoffice.org/api/docs/common/ref/com/sun/star/util/PathSettings.html PathSettings service] which allows the user to examine the various directory paths known to OpenOffice. The Template property of this service returns a string which is a semi-colon separated list of URLS, each of which represents a possible location for the desired template. It is necessary to search this string and the resulting directories to find the template. The following code finds a user template and opens a document based on it:<br />
<br />
<source lang="oobas"><br />
Dim PathService as Object<br />
Dim TemplatePath as String ' The path list<br />
Dim SCPos as Integer ' The position of the next semi-colon <br />
Dim MyTemplatePath as String ' The URL for the user template<br />
<br />
' substitute your template name here<br />
const TemplateName = "MyTemplate.ott"<br />
<br />
' This seems to be the place in which OO stores user templates<br />
const UserTemplateDirectory="/user/template"<br />
<br />
<br />
PathService=CreateUNOService("com.sun.star.util.PathSettings")<br />
TemplatePath=PathService.Template<br />
MyTemplatePath=""<br />
<br />
do while len(TemplatePath) >0<br />
SCPos=InStr (TemplatePath,";")<br />
if SCPos>0 then<br />
MyTemplatePath=Left(TemplatePath, SCPos-1)<br />
else<br />
MyTemplatePath=TemplatePath<br />
end if<br />
<br />
' NOTE: as well as file URLs there are some others which should be ignored<br />
if InStr(myTemplatePath,"file:///")=1 And _<br />
Right(myTemplatePath,14) = UserTemplateDirectory then<br />
exit do <br />
end if<br />
TemplatePath=mid(TemplatePath, SCPos+1, len(TemplatePath)-SCPos)<br />
MyTemplatePath="" <br />
loop<br />
<br />
if MyTemplatePath<>"" then<br />
TemplatePath=ConverttoURL(TemplateName)<br />
MyTemplatePath=MyTemplatePath & "/" & TemplateName<br />
InvoiceDoc=StarDesktop.LoadComponentfromURL(MytemplatePath, "_blank", 0, Array())<br />
else<br />
MsgBox "Cannot find the template directory"<br />
end if<br />
</source><br />
<br />
This code does not check that the desired template actually exists; if it doesn't, the LoadComponentfromURL call will fail.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:06, 31 January 2013 (UTC)<br />
==Current Selection==<br />
It is common to want to run some code that affects the current selection. <tt>ThisComponent</tt> has the method <tt>getCurrentSelection</tt>. Since many different types of objects could possibly be selected it is common to check that the currently selected object has the service that contains the method that we want to apply to the object. <br />
<br />
Edit the main subroutine to the following and rerun it on a text document with different selections. (To select more than one block of text hold down the control key). <br />
<br />
<source lang="oobas"><br />
sub main<br />
BasicLibraries.loadLibrary("XrayTool")<br />
if fnWhichComponent(thisComponent) = "Text" then<br />
oCurSelection = thisComponent.getCurrentSelection()<br />
'xray oCurSelection<br />
if oCurSelection.supportsService("com.sun.star.text.TextRanges") then<br />
msgbox "There are " & oCurSelection.getCount() & _<br />
" selections in the current text document."<br />
end if<br />
end if<br />
end sub<br />
</source><br />
With nothing selected the number of selections is one - the insertion point, with one block of text selected the count is still one, but with two blocks of text the count is three - the insertion point and the two blocks of selected text. <br />
<br />
Exercise 1: Modify the above code so that it works on selected cell ranges in a spreadsheet. <br />
<br />
Question1: For two blocks of cells selected, what would be the count for the number of selections?<br />
<br />
==Properties==<br />
Uncomment <tt>'xray oCurSelection</tt> so that xray runs, to see that the object that <tt>oCurSelection</tt> points to has a "property" called <tt>Count</tt> with a description of "pseudo-prop, read only". It is possible in OpenOffice.org Basic to write <tt>oCurSelection.count</tt>, but as this is not possible in all other languages accessing the OpenOffice.org API, this Wiki will try to always use the method approach. (I say try because I have not been in the habit of doing this and sometimes I may forget). <br />
<br />
This next example demonstrates changing a property value for the current selections. <br />
<br />
<source lang="oobas"><br />
sub main<br />
BasicLibraries.loadLibrary("XrayTool")<br />
if fnWhichComponent(thisComponent) = "Text" then<br />
oCurSelection = thisComponent.getCurrentSelection()<br />
if oCurSelection.supportsService("com.sun.star.text.TextRanges") then<br />
nCount = oCurSelection.Count<br />
'xray oCurSelection.getByIndex(0)<br />
'Warning: The insertion point will have the same action applied twice<br />
'in this case it doesn't matter, but in others it might.<br />
for i = 0 to nCount - 1<br />
oCurSelection.getByIndex(i).setPropertyValue("CharStyleName", "Strong Emphasis")<br />
next<br />
end if<br />
end if<br />
end sub<br />
</source><br />
In OpenOffice.org Basic it is possible to shorten the assignment line to: <br />
<br />
<source lang="oobas"><br />
oCurSelection(i).CharStyleName = "Strong Emphasis"<br />
</source><br />
This wiki will try to use the full methods for both indexing and assigning properties. The rationale is that this makes converting the code to other languages easier and also helps the learner to understand what is happening (again I have not been in the habit of doing this so some examples may slip past me). <br />
<br />
Exercise 2: Rewrite the above code so that the warning can be removed. <br />
<br />
See [[ Current selection]].<br />
<br />
==Iterative Access to Subordinate Objects (Enumeration access)==<br />
Sometimes to access the desired object an enumeration is required. For example paragraphs, within a document or within a selection. <br />
<br />
When a Writer document is active and some text is selected, both <tt>thisDocument.getText()</tt> and <tt>thisComponent.getCurrentSelection().getByIndex(i)</tt> have the service: <idl>com.sun.star.text.TextRange</idl>, which has the interface: <idl>com.sun.star.container.XContentEnumerationAccess</idl>. It is possible to create an enumeration of the paragraphs for the current document or for a particular selection. <br />
<br />
<source lang="oobas"><br />
' Create enumeration object<br />
oTextElementEnum = thisComponent.getText().createEnumeration()<br />
'or thisComponent.getCurrentSelection().getByIndex(i).createEnumeration()<br />
<br />
' loop over all text elements<br />
while oTextElementEnum.hasMoreElements()<br />
oTextElement = oTextElementEnum.nextElement<br />
if oTextElement.supportsService("com.sun.star.text.TextTable") then<br />
MsgBox "The current block contains a table."<br />
end if<br />
if oTextElement.supportsService("com.sun.star.text.Paragraph") then<br />
MsgBox "The current block contains a paragraph."<br />
end if<br />
wend<br />
</source><br />
Exercise 3: Extend the above example to display in a message box all text portions that are bold.<br />
<br />
==Named access==<br />
Some objects provide named access to a particular type of subordinate object, some others indexed access, and some both named and indexed access. <br />
<br />
For example if the current document in OpenOffice.org is a spreadsheet then to access a particular sheet can be done by index access: <br />
<br />
<source lang="oobas"><br />
oSheet = thisComponent.getSheets.getByIndex(0)<br />
</source><br />
or named access: <br />
<br />
<source lang="oobas"><br />
oSheet = thisComponent.getSheets.getByName("Sheet1")<br />
</source><br />
To check if an object with a particular name already exists use <tt>hasByName</tt>, for example: <br />
<br />
<source lang="oobas"><br />
if thisComponent.getSheets.hasByName("Sheet1") then<br />
</source><br />
To loop through all the available object names can be done like: <br />
<br />
<source lang="oobas"><br />
mNames = thisComponent.getSheets.getElementnames<br />
for i = lbound(mNames) to ubound(mNames)<br />
msgbox mNames(i)<br />
next<br />
</source><br />
<br />
<br />
Some named subordinate objects also provide the interface: <idl>com.sun.star.container.XNameContainer</idl>. This interface defines that such objects should have the following methods: <tt>insertByName</tt>, <tt>insertNewByName</tt>, <tt>replaceByname</tt> and <tt>removeByName</tt>. <br />
<br />
E.g. <br />
<br />
<source lang="oobas"><br />
thisComponent.getSheets.insertNewByName("NewSheet", 0)<br />
</source><br />
<br />
==Create new objects==<br />
Some objects have services which implement interfaces to provide specific methods for creating a particular type of object. <br />
<br />
For example if the current document is a Writer document then <tt>thisComponent.getText</tt> is an object that provides the service <idl>com.sun.star.text.Text</idl>, which implements the interface <idl>com.sun.star.text.XSimpleText</idl>, which defines the methods <tt>createTextCursor</tt> and <tt>createTextCursorByRange</tt>. Both of these methods create a text cursor for accessing the text of the document. These cursors are quite independent of the view cursor. The view cursor is visible on the screen and is manipulated by the user (and can be manipulated by program control), whereas a text cursor is not visible on the screen and is solely used by program control. The following code snippet demonstrates creating a new text cursor, such that it starts at the same location as the view cursor and is then moved independent of the view cursor. <br />
<br />
<source lang="oobas"><br />
oVC = thisComponent.getCurrentController.getViewCursor<br />
oCursor = oVC.getText.createTextCursorByRange(oVC)<br />
oCursor.gotoStartOfSentence(false)<br />
oCursor.gotoEndOfSentence(true)<br />
msgbox oCursor.getString<br />
</source><br />
The string returned by the <tt>oCursor.getString</tt> method is the text of the sentence in which the view cursor currently resides.<br />
<br />
Some objects are context dependent and get created using the method <tt>createInstance</tt> which is defined in the interface <idl>com.sun.star.lang.XMultiServiceFactory</idl>. For example to add a rectangle to the first page of a drawing document: <br />
<br />
<source lang="oobas"><br />
dim aPoint as new com.sun.star.awt.Point<br />
dim aSize as new com.sun.star.awt.Size<br />
<br />
aPoint.x = 1000<br />
aPoint.y = 1000<br />
<br />
aSize.Width = 10000<br />
aSize.Height = 10000<br />
<br />
oRectangleShape = thisComponent.createInstance("com.sun.star.drawing.RectangleShape")<br />
oRectangleShape.Size = aSize<br />
oRectangleShape.Position = aPoint<br />
<br />
thisComponent.getDrawPages.getByIndex(0).add(oRectangleShape)<br />
</source><br />
<br />
This example also uses ''UNO structs''. See below for more information on UNO structs. <br />
<br />
Some objects are context independent; to create these objects, use the OpenOffice.org Basic command <tt>createUnoService</tt>. For example, to create the equivalent to <tt>StarDesktop</tt>: <br />
<br />
<source lang="oobas"><br />
oDesktop = createUnoService("com.sun.star.frame.Desktop")<br />
</source><br />
<br />
The process that I use to determine how to access or create an object is as follows: <br />
<br />
Does the object already exist, if so I should be able to access it from something like <tt>thisComponent</tt>. <br />
<br />
Will the new object belong to another object, if so does the owner have a specific method for creating the object, if so use it. <br />
<br />
The new object will belong to another object, but that object doesn't provide a specific method for creating it, but does provide <tt>createInstance</tt>. If the object doesn't provide <tt>createInstance</tt> are you sure you are using the correct object, or is it context independent. <br />
<br />
I have found working out how to create an object to be quite difficult with existing documentation so I hope that this document/wiki will eventually make this clear. <br />
<br />
<br />
===UNO structs===<br />
UNO structures can be declared using the OpenOffice.org Basic command <tt>dim as new</tt>: <br />
<br />
<source lang="oobas"><br />
dim aPoint as new com.sun.star.awt.Point<br />
</source><br />
Or by using the OpenOffice.org Basic command <tt>createUnoStruct</tt>: <br />
<br />
<source lang="oobas"><br />
aPoint = createUnoStruct("com.sun.star.awt.Point")<br />
</source><br />
<br />
{| border="1"<br />
|'''Note:'''<br />
|When declaring UNO structs, case is important. Note that everything up to the name of the struct is lowercase, and that the name of the struct is in TitleCase.<br />
|}<br />
<br />
<br />
<br />
<br />
===Creating Listeners and Handlers===<br />
Through the user interface it is possible to assign macros to some events: <br />
<br />
OpenOffice.org versions 1.1.x: '''Tools > Configure… > Events'''. <br />
<br />
OpenOffice.org versions 1.9.x and above: '''Tools > Customize… > Events'''. <br />
<br />
It is also possible to assign macros to a wider range of events using the OpenOffice.org Basic command <tt>CreateUnoListener</tt>. This same command is used for creating both listeners and handlers. A listener checks for an event and always allows other listeners to respond to the event as well. A handler listens for an event, and can optionally consume the event so that other listeners don't get to act on it. <br />
<br />
The following example creates a keyHandler: <br />
<br />
<source lang="oobas"><br />
global IannzExampleKeyHandler<br />
<br />
sub SetupKeyHandler<br />
oController = thisComponent.currentController<br />
IannzExampleKeyHandler = CreateUnoListener("KeyHandler_","com.sun.star.awt.XKeyHandler")<br />
oController.addKeyHandler(IannzExampleKeyHandler) ' Register the listener<br />
end sub<br />
<br />
sub RemoveKeyHandler<br />
thisComponent.currentController.removeKeyHandler(IannzExampleKeyHandler)<br />
end sub<br />
<br />
sub KeyHandler_disposing<br />
end sub<br />
<br />
function KeyHandler_keyReleased(oKeyEvent as new com.sun.star.awt.KeyHandler) as boolean<br />
KeyHandler_keyReleased = False <br />
end function<br />
<br />
function KeyHandler_keyPressed(oKeyEvent as new com.sun.star.awt.KeyHandler) as boolean<br />
KeyHandler_keyPressed = false 'Let other listeners handle the event<br />
if oKeyEvent.modifiers = com.sun.star.awt.KeyModifier.MOD2 then 'Control key was pressed<br />
if oKeyEvent.keyCode = com.sun.star.awt.Key.Q then<br />
msgbox "Alt + Q was pressed"<br />
KeyHandler_keyPressed = true 'Don't let other listeners process this event<br />
end if<br />
end if<br />
end function<br />
</source><br />
A variable declared as global keeps its value even after the macro exits. In this case we want to be able to use this variable later to remove the handler. As variables declared globally could be used in other libraries, to try and avoid conflict I start all my global variables with Iannz my registered name for the OpenOffice.org web site. <br />
<br />
<tt>sub SetupKeyHandler</tt> sets up the handler. The first parameter to <tt>CreateUnoListener</tt> is the starting name for the methods that will be called when that type of event occurs: in this example, <tt>"KeyHandler_"</tt>. <br />
<br />
The second parameter is the name of the interface for the listener or handler, "<idl>com.sun.star.awt.XKeyHandler</idl>". The name is case sensitive, everything up to and including the module name is always lowercase, the name of the interface always starts with "X" and the remainder is in TitleCase. <br />
<br />
Use the SDK to find out what methods the interface must supply. You must supply routines for all of these methods even if you don't intend to use them. You also need to supply a disposing method. The names of these routines start with the string given in the first parameter to <tt>CreateUnoListener</tt>, in this example <tt>"KeyHandler_"</tt>. <br />
<br />
Thus in the example there is <tt>KeyHandler_disposing</tt> and <tt>KeyHandler_keyReleased</tt> which don't actually do anything but are required, and <tt>KeyHandler_keyPressed</tt> which actually does the job. <br />
<br />
<tt>sub RemoveKeyHandler</tt> demonstrates how to remove the handler.<br />
<br />
==OpenOffice.org constants==<br />
The above example uses OpenOffice.org constants. <br />
<br />
E.g. <tt>com.sun.star.awt.KeyModifier.MOD2</tt><br />
<br />
OpenOffice.org constants are case sensitive. Everything up to and including the module name is always lowercase. The constant group is in TitleCase. The actual constant name is always UPPERCASE. <br />
<br />
Programmers not using OpenOffice.org Basic may not have access to these constants. <br />
<br />
<br />
==Using the recorder==<br />
See [[ The OpenOffice.org recorder and UNO dispatch calls]] section for a discussion on recording UNO Dispatch commands versus writing API calls.<br />
<br />
== See also==<br />
* [[CookBook|CookBook]]<br />
* [[Text_cursor|Text Cursor in OOoBasic]]<br />
* [[Framework/Article/Easy_To_Use_Message_Boxes|Easy To Use Message Boxes]]<br />
* [[Programming_OooWriter |Programming OOoWriter in C++]] where OOoBasic records are used in C++<br />
* A [[XIntrospection_Interface|XIntrospection Interface]] short description. XRay uses this interface.<br />
* Download Bernard Marcelly's [http://bernard.marcelly.perso.sfr.fr/Files_en/XrayTool60_en.odt XRay OOoBasic tool] <br />
* See [[Object Inspector|The New Object Inspector]] and [[BASIC/UNO_Object_Browser|The BASIC UNO Object Browser]]<br />
<br />
[[Category:Extensions]]<br />
[[Category:StarBasic]]<br />
[[Category:Documentation/Candidate]]</div>Ptoyehttps://wiki.openoffice.org/wiki/User:PtoyeUser:Ptoye2013-01-31T10:01:57Z<p>Ptoye: </p>
<hr />
<div>Biog: Ex-IT consultant in data communications. Programming background. Wishes that the OO API documentation wasn't so difficult to understand and navigate.<br />
<br />
Now a classical pianist.<br />
<br />
Lives in Reading, England.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:52, 21 January 2013 (UTC)<br />
<br />
Test area for new text<br />
<br />
==Opening a new file from a template==<br />
If you want to open a file using an existing template, use the template name instead of the file name. An untitled document will be opened from the template.<br />
<br />
If the template location is known, simply use it. However, OpenOffice keeps at least two sets of templates: global templates available to all users and "My Templates" available to the current user, and the locations of the directories are not obviously available. They can be found by means of the [http://www.openoffice.org/api/docs/common/ref/com/sun/star/util/PathSettings.html PathSettings service] which allows the user to examine the various directory paths known to OpenOffice. The Template property of this service returns a string which is a semi-colon separated list of URLS, each of which represents a possible location for the desired template. It is necessary to search this string and the resulting directories to find the template. The following code finds a user template and opens a document based on it:<br />
<br />
<source lang="oobas"><br />
Dim PathService as Object<br />
Dim TemplatePath as String ' The path list<br />
Dim SCPos as Integer ' The position of the next semi-colon <br />
Dim MyTemplatePath as String ' The URL for the user template<br />
<br />
' substitute your template name here<br />
const TemplateName = "MyTemplate.ott"<br />
<br />
' This seems to be the place in which OO stores user templates<br />
const UserTemplateDirectory="/user/template"<br />
<br />
<br />
PathService=CreateUNOService("com.sun.star.util.PathSettings")<br />
TemplatePath=PathService.Template<br />
MyTemplatePath=""<br />
<br />
do while len(TemplatePath) >0<br />
SCPos=InStr (TemplatePath,";")<br />
if SCPos>0 then<br />
MyTemplatePath=Left(TemplatePath, SCPos-1)<br />
else<br />
MyTemplatePath=TemplatePath<br />
end if<br />
<br />
' NOTE: as well as file URLs there are some others which should be ignored<br />
if InStr(myTemplatePath,"file:///")=1 And _<br />
Right(myTemplatePath,14) = UserTemplateDirectory then<br />
exit do <br />
end if<br />
TemplatePath=mid(TemplatePath, SCPos+1, len(TemplatePath)-SCPos)<br />
MyTemplatePath="" <br />
loop<br />
<br />
if MyTemplatePath<>"" then<br />
TemplatePath=ConverttoURL(TemplateName)<br />
MyTemplatePath=MyTemplatePath & "/" & TemplateName<br />
InvoiceDoc=StarDesktop.LoadComponentfromURL(MytemplatePath, "_blank", 0, Array())<br />
else<br />
MsgBox "Cannot find the template directory"<br />
end if<br />
</source><br />
<br />
This code does not check that the desired template actually exists; if it doesn't, the LoadComponentfromURL call will fail.</div>Ptoyehttps://wiki.openoffice.org/wiki/User_talk:TJFrazierUser talk:TJFrazier2013-01-30T10:00:06Z<p>Ptoye: /* String character index base */</p>
<hr />
<div>This is a good place to leave me a note. :-) --[[User:TJFrazier|TJ]] 23:48, 8 May 2009 (UTC)<br />
<br />
<br />
(This is to remind myself to fix the cache description, WIGATI.)--[[User:TJFrazier|TJ]] 20:05, 26 September 2009 (UTC)<br />
<br />
{{CURRENTTIME}}<br />
<br />
==warring==<br />
http://wiki.services.openoffice.org/wiki/Talk:RU/rules_and_information_policy<br />
<br />
http://wiki.services.openoffice.org/w/index.php?title=RU/rules_and_information_policy&action=history<br />
<br />
User [[User:Sancho|Sancho]] doesn't discuss anything.<br />
In English, differences between pages:<br />
http://translate.google.ru/translate?hl=ru&ie=UTF-8&sl=ru&tl=en&u=http://wiki.services.openoffice.org/w/index.php%3Ftitle%3DRU%252Frules_and_information_policy%26diff%3D169023%26oldid%3D169013&prev=_t<br />
<br />
Sancho does not discuss anything, but writes the rules that always repeat "forbidden", "you must or else the page you create will be deleted", "do not", "never" and so on. We change it to "it is recommended", "it is better", "page is going to be edited" and so on.<br />
<br />
User [[User:Sancho|Sancho]] doesn't reply neither in its personal discussion page, nor in the the article's talk and ignores all messages.<br />
<br />
What shall we do in this case?<br />
<br />
:Just what you did do: bring the matter to the attention of a sysop (administrator). Edit warring is a serious offense, and may lead to blocks. I will be posting a lecture on Sancho's Talk page. Meanwhile, please follow one simple rule: do ''not'' undo anyone's edits but your own, without discussing the matter on the associated Talk page. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:01, 22 May 2010 (UTC)<br />
<br />
Here are more articles Sancho refusing to discuss (so far):<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/qa/run_ooo_versions_parallel<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/Documentation/FAQ/General --[[User:Fyva|Fyva]] 05:34, 23 May 2010 (UTC)<br />
<br />
== thanks from elcico ==<br />
<br />
Dear TJ thank you for your welcome and for your suggestion.<br />
I've changed my mail address, now it should be ok!<br />
Thanks again!<br />
elcico :)<br />
<br />
P.S. Hope this is the right place to reply... just delete after you read! :)<br />
: You're quite welcome. Why ever should I delete a nice thank-you note? --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:34, 2 June 2010 (UTC)<br />
<br />
== Keyboard shortcuts, special characters ==<br />
<br />
Hi TJ, While tripping through the FAQs in search of anyplace I can help, I have found your useful answer (FAQ-Writer-Formatting Text) about how to insert special characters using macros to create keyboard shortcuts. As an alternative, I thought of adding the Windows shortcuts such as I use in Word at work to create a pounds sterling sign (i.e. Alt+0163), but I can't get those combinations to work in Writer. I'm on my laptop at home and am not sure if the Alt-key alternative just does not work in OpenOffice, or if the phenomenon is due to my using a laptop keyboard without the extra number keypad. In the hopes that no question is a dumb question... I ask... do the Alt-key combinations for special characters work in OOo?<br />
:Hi, Lisa, Yes; with my keyboard (with full numeric keypad) they work fine. I use Alt+0151 for em-dash regularly. There may be a num-lock or Fn special key that you need to simulate the numeric keypad; check your laptop's documentation. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:34, 29 June 2010 (UTC)<br />
<br />
== Re: Editing templates ==<br />
<br />
Sorry about the inconvenience. I rarely edit templates on Wikis, being mindful that such edits can have far-reaching effects. FYI, I didn't notice any slowdown: This Wiki has far fewer articles and users than the English Wikipedia.&nbsp;&mdash;&nbsp;[[User:User8192|User8192]]<sup>[[User_talk:User8192|T]] [[Special:Emailuser/User8192|@]]</sup> 17:46, 1 September 2011 (UTC)<br />
<br />
== Category:MainIndex ==<br />
<br />
Hi TJ<br />
<br />
The [[:category:MainIndex]] is '''[[Special:UncategorizedCategories|uncategorized]]''' if ''not put cat into itself'' or [[Special:Categories|another category or subcategory]].<br />
<br />
Do you know another solution?<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:04, 11 January 2012 (UTC)<br />
:right, then it stay uncategorized. [[User:Adailton|Adailton]] 13:58, 12 January 2012 (UTC)<br />
<br />
== Broken Redirects ==<br />
<br />
[[Documentation/FAQ/General/What are the differences between StarOffice (old versions) and OpenOffice.org?]] deleted, ''obsolete FAQ - replaced by a newer version of same information''? should be a fusion of historical record of keeping the original creator of the page. what is the new version? and [[Documentation/FAQ/General/QA 0002]]? Thanks [[User:Adailton|Adailton]] 13:43, 15 January 2012 (UTC)<br />
<br />
:Nice catch. Found the replacement page and fixed the redirect accordingly. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:48, 15 January 2012 (UTC)<br />
<br />
== Category:Marketing ==<br />
Hi TJ<br />
<br />
User pages in [[:category:Marketing]]: [[User:Blibrestez55/Books/Database]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Allow import of only selected pagesn]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving char spaces]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving rotated text]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Introduction]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue105133]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue109708]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue90633]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue92919]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Misplaced paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Moving Proper paragraphs GlyphProcessor]], [[OpenOffice.org Internship/Tasks/Proper paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Testing proper paragraphs]], [[User:Khirano/Solutions]], [[User:RealGrouchy]], [[User:Wyrfel]].<br />
<br />
It seems '''inappropriate''' to have categorized '''users''' pages, so I ask whether they should be '''uncategorizaded''' or moved to the '''main domain'''? (I'm sorry but I do not quite understand the English Language, so I use a translator). [[User:Adailton|Adailton]] 13:43, 16 January 2012 (UTC)<br />
:English: "de-categorized" (= "have the category reference removed") is not a valid English word, either, but it is readily understandable.<br />
:Appropriateness: Since the users themselves added their pages to the category, I'm in favor of leaving them there. If somebody associated with marketing complains, we can make changes then. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 02:24, 17 January 2012 (UTC)<br />
<br />
== Candidates for speedy deletion ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[:Category:Candidates for speedy deletion]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 11:20, 27 January 2012 (UTC)<br />
<br />
:Removed most of the pure spam. Remaining candidates are mostly technical, and can be removed more slowly.<br />
:Thanks for the good work. If you are an Apache committer (or at least have an iCLA on file), I will enable you as a sysop ("Administrator group"). That would let you delete directly, and block spammers as well (very carefully!). --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 14:32, 27 January 2012 (UTC)<br />
<br />
==Speedy deletion==<br />
Hi TJ<br />
<br />
I made a change in {{tl|delete}} in order to include a justification for the deletion. Please see if it was good.<br />
<br />
I saw that there are 11,420 [[Special:UncategorizedFiles|files uncategorized]]. Are there any major [[Special:Categories|category]] for files? I just found [[:Category:Icons]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 14:38, 26 February 2012 (UTC)<br />
<br />
: '''Delete''': Looks good to me, if it works for you.<br />
<br />
: '''File Categories''': AFAIK, the files should be categorized according to the pages that link to them (plus descriptive categories, like "Icon"). This could be a non-trivial task; if a file is linked from pages in different categories, it may be desirable to climb the category tree to find the intersection, and categorize the file there. <br />
<br />
:Your help is much appreciated. I know much of templates, but only a little about categories. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:52, 26 February 2012 (UTC)<br />
::I think the categorization according to the pages that use is practical, but we can also categorize your files by grouping them by theme (icons, applications, screens, menu items, examples, etc.), without excluding one another. There are also PDF documents, which could be a category, but I will not create them if you think it should be done well. [[User:Adailton|Adailton]] 21:07, 26 February 2012 (UTC)<br />
<br />
:::pls, see: <br />
:::*[[Casino ohne download]]<br />
:::*[[User talk:Josebryan13]]<br />
:::*[[Deals - How can you make best deals on timeshare]]<br />
:::*[[Phentermine - How the phentermine works in your body.]] <br />
:::*[[Moving Company- How to make consequences favorable]]<br />
::: and related images. Tks [[User:Adailton|Adailton]] 22:21, 22 May 2012 (UTC)<br />
::::Gone! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 03:32, 23 May 2012 (UTC)<br />
:::::Please, see [[User:PressRTbox]]. [[User:Adailton|Adailton]] 22:04, 25 May 2012 (UTC)<br />
::::::Persistent pest, now blocked. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 23:26, 25 May 2012 (UTC)<br />
<br />
----<br />
Please, see [[User:Ulissi]] (and botton of user page) and history.<br />
:Left him a warning that the link farm may get deleted. My snap diagnosis is "enthusiastic amateur", rather than deliberate spammer, so I'm starting out gently.<br />
::Removed all external and red links. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:55, 18 September 2012 (UTC)<br />
<br />
I am looking at [http://wiki.services.openoffice.org/w/index.php?title=Special:LinkSearch&target=*.com Special:LinkSearch]. There are many abuses to be checked. tks [[User:Adailton|Adailton]] 11:08, 14 June 2012 (UTC)<br />
:Nice find of that page! The good news here is that almost all of those links seem legitimate. I only found one (the very last of the first 100) that was typical user-page spam (from 2009!), and deleted it. I'll run through the rest of the list, slowly.<br />
:Many thanks for all your help. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:59, 14 June 2012 (UTC)<br />
<br />
==New volunteer==<br />
Hello. I recently started to built some pages for brazilian community start to work and I'd like to contribute in the wiki maintenance also. I've created [[:Category:Outdated]] to mark all old content pages that need to be revised. I have a lot of suggestions to offer in order to make this wiki more affordable, but I am affraid to make changes without people's agreement. I do not wish to upset anyone so, please, if there is a wiki coordinator/administrator (or something like that), let me know. I don't wish to work '''against''' but '''with''' you. =) <br />. Thanks. <small>signed by sysop</small> 2012-05-17T09:12:32 [[User:PauloLima|PauloLima]]<br />
<br />
:Hi, Paolo!<br />
<br />
:I'm replying here, just to keep the whole conversation in one place. You can put a Watch on my Talk page if you like, or I'll put a note on yours. I see that you have met [[User:Adailton|Adailton]], who is a big help around here, chasing spammers. Whatever help you care to give is very welcome.<br />
<br />
::Hi TJ. This place is fine.<br />
<br />
:Like most everything at Apache, there is no "official" hierarchy on this wiki. The only sense in which I'm "it" is that I'm doing the work. I do have both sysop and bureaucrat privileges, and I will promote any committer to sysop who asks. My personal expertise runs to "expert user": knowledgeable on wiki markup, templates, ''etc.'' If you have plans to improve the user experience, go for it; I'll be glad to help you do it the easy way, if you like.<br />
<br />
:: Ok. I've been working with Mediawiki software intensively for the last 2 years. I've created/developed many of the pages in LibO PT_BR wiki, and I was responsible to develop the document translation workflow to PT-BR. That was a great learning. Now I wish to contribute here. These days, I am running a document management project for the company I work,using Mediawiki software, for for the last year, using its semantic features. And this was a great learning for me too. So, I proposed to use my experience in this area to help building an intelligent ontology that could ease the access tothe information in the wiki. But... In order to do that, it would be necessary to upgrade Mediawiki at least to 1.7.4 (1.9 would be better) and install some semantic extensions (maybe creating some new user's groups, if necessary). Can you help me on that? This should not impact the actual wiki's access/availbility, but can make available features for me to work on some sort of "snapshot". =)<br />
<br />
:Which reminds me: are you deliberately using the "preformatted text" option (starting your line with a space character), to create indentation? A colon (:) works better, because it wraps better. Use more colons for more levels of indentation (think, "tabs"). By convention, if you reply here, you would start your lines with two colons, I would reply with three, ...<br />
<br />
:: Yes. I'm using that. It's a matter of preferences. For me it looks better, but I have no objections in using identation =)<br />
<br />
:I look forward to your contributions. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 20:06, 17 May 2012 (UTC)<br />
<br />
:: I've created a category PT-BR for brazilian community begin to work. It was necessary, but, as Adailton pointed, maybe we could join PT-BR and PT sections, if it works better. I'm helping Kevin on UX team and looking for pages that must be updated/deleted. There are many outdated information here and it's necessary to classify them (that's why I've created a [[:Category:Outdated]]). In the next days I will navigate through the wiki to find and categorize those pages. After that, we will have a picture of what/where/who/when we need to do. If you and Adailton agree with that, of course. What do you think?<br />
<br />
:: [[User:PauloLima|PauloLima]] 22:17, 17 May 2012 (UTC)<br />
Preformatted text looks great — ''if'' you pre-format it!<br />
<br />
:::Otherwise, it has a nasty tendency to run right over the right-hand border, and just keep going. I find that both ugly and a nuisance, having to adjust the horizontal slider, and I had to do that a lot on your talk page. This may be browser- and skin-dependent. But, to more important matters.<br />
<br />
:::: Well, I have placed line breakers <nowiki>"<br />"</nowiki> in my replies, because I am aware of this issue. I don't know why you had this problem in you browser, maybe your screen resolution is too low. For me, my replies are been displayed with short lines and no horizontal slider both in Internet Explorer (Windows 98 in a virtual machine), Google Chrome and Mozilla Firefox (Ubuntu 11.10). But it doesn't matter, I can use identation. No problem.<br />
<br />
:::For upgrading MW and installing new extensions, you need a site-maintenance person, and that's not me. The only one I know of with the project is Raphael Bircher; otherwise, we depend on Infra. The problem is that none of those folks have any real expertise with MW or php, and neither do I. If you have command-line expertise, by all means volunteer on the Infra ML, and ask for access. Otherwise, I suppose we can try writing JIRA tickets. I am certainly in favor of an upgrade; there are problems with the <nowiki><math></nowiki> syntax that probably can only be fixed that way, and some other adjustments that should be made.<br />
<br />
:::: Yes, I know how to upgrade and install extensions to Mediawiki. But, I would had to get ssh access to the server and RWX rights to Mediawiki directory. A database backup would be necessary (and I should have access to it in this case, also). If you have admin rights to the wiki, so you can perform admin tasks for me, when it's necessary.<br />
:::::Yes, you know what you need, and you can get the access by asking on the Infra ML (infrastructure@apache.org). Send from your Apache address, with a subject like, "Request root access to ooo-Mwiki VM". I think they will be glad to hear from you, when you spell out your expertise as you have done here. I haven't asked for such access, because I don't have (yet) the knowledge to use it. I will add a new section on this page for a data dump of what I've learned about the physical setup.<br />
<br />
:::For your other plans, I suggest you pick out some segment for a pilot program, and work the bugs out; there are thousands of pages needing attention. But don't let this tired old man dampen your enthusiasm! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 01:35, 18 May 2012 (UTC)<br />
<br />
:::: Well TJ, I am not exactly a kid anymore for a long, long time. At least in my body. In my soul I feel like a kid yet =)<br />
:::::Some of us on the high side of 70 have merely lived a long time; others of us are ''old''. I must regretfully admit to which one I am.<br />
:::: I am planning to use PT-BR section for my tests. This will not affect any feature of actual wiki. Pages/Templates/Forms/Properties can be created transparently and released to production when ready. The only impact will be in the categories structure. I shall have to do some modifications, but I won't do that without notice. Before that, I will show you a new ontology (categories/properties structure), put it into discussion, so we can find the best way to improve the wiki, right?<br />
:::::Sounds great to me. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
:::P.s.: Do I assume correctly that you mean MW versions 1.17.x and 1.19.x ?<br />
<br />
:::: Yes, that's it. Thank you very much for your help.<br />
==The Physical Wiki==<br />
This wiki is housed on a VM, running a LAMP stack. "L" = some version of Ubuntu. In addition to the MW software, we run the Apache Traffic Server (ATS) as a front end. (Some adjustment is needed here: as of this writing, ATS sometimes serves up stale pages.)<br />
<br />
Exact information on extensions and versions should be available on the [[Special:Version|Version]] page. Known problems include:<br />
* The locally written IDL extension is not the latest version; this was an error during the move to Apache. The latest version needs to be found and installed, so that the <nowiki><idlml></nowiki> tags work.<br />
* MW was undergoing a change to the Math support, during MW v17. Math is showing errors on our installation (see example on [[User:TJFrazier|my user page]]), which have probably been fixed in a later MW release.<br />
:*Many thanks to Imacat, who installed the Textvc code, and fixed the math problem. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 19:47, 30 July 2012 (UTC)<br />
<br />
--[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
== Wanted Categories ==<br />
<br />
Hi TJ<br />
<br />
There is a [[Special:WantedCategories|Wanted Categories]], '''Category:RU/Авторы/А. Е. Харламенков''', that has been recently deleted. What do we do?<br />
<br />
Thanks [[User:Adailton|Adailton]] 15:16, 18 September 2012 (UTC)<br />
<br />
:Nothing. The category was marked for speedy delete, by the Russian fellow who created it. I deleted it. Why it's showing up on that special page is a mystery. I'll poke around some. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:55, 18 September 2012 (UTC)<br />
::That I understood. It is listed on the special page to have a page, [[RU/kb/common/programming]], the same author category. I think I must remove the category of the page, but it is a hidden category within a Template. [[User:Adailton|Adailton]] 16:07, 18 September 2012 (UTC)<br />
:::I must confess that I couldn't trace through the signature-related templates to find the Category call. So I commented out the signature (which is against policy anyway; sign with wiki signatures, if at all). Special page now empty. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:35, 18 September 2012 (UTC)<br />
::::Ok, unusual solution but ''problem'' solved. [[User:Adailton|Adailton]] 22:16, 18 September 2012 (UTC)<br />
<br />
== SimpleNonprofitAccountingTemplate ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[SimpleNonprofitAccountingTemplate]]<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:03, 27 September 2012 (UTC)<br />
<br />
:ROFL! Just adding that to the doc list when I got your message. I'll categorize it properly, too. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:08, 27 September 2012 (UTC)<br />
<br />
==Question on adding Justification to marking a page for Speedy Delete==<br />
Hi TJ;<br />
<br />
I wanted to mark a page for speedy delete and noticed in the in the preview that there was a section for adding a justification when you use the delete template. Was wondering what the proper syntax was for adding that. Appreciate your time and help.<br />
<br />
Regards<br />
Keith<br />
<br />
:Hi, Keith,<br />
<br />
:User Adailton's reply to you is authoritative: he added that field to the template. (He's a big help around here.)<br />
<br />
:Sorry for the slow reply, but Sandy did interrupt my power for several hours, and threatened to do worse. I didn't want to be in the middle of doing something here on the wiki, and have to quit. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:59, 27 October 2012 (UTC)<br />
<br />
== Hurricane Sandy ==<br />
<br />
Hi TJ<br />
<br />
Welcome back! I hope that Sandy has not given him much trouble.<br />
<br />
Spammers have given some work here, but everything under contrrole.<br />
<br />
Regards [[User:Adailton|Adailton]] 13:14, 27 October 2012 (UTC)<br />
<br />
<br />
:Sandy came and went, with no lasting problems. Now I'm catching up. Thanks for covering. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:19, 27 October 2012 (UTC)<br />
<br />
== File:FreedomFleetAttendance.xls ==<br />
<br />
Hi TJ<br />
<br />
[:File:FreedomFleetAttendance.xls] some use?<br />
<br />
[] [[User:Adailton|Adailton]] 10:18, 12 November 2012 (UTC)<br />
<br />
<br />
:Not that I could see, so I deleted it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:37, 12 November 2012 (UTC)<br />
<br />
== New pages ==<br />
Hi TJ<br />
<br />
[[Special:NewPages|some pages created November 12 were forgotten]]<br />
<br />
Regards [[User:Adailton|Adailton]] 10:47, 14 November 2012 (UTC)<br />
<br />
:I see only one new page, in User space, and you erased the spam on it. Do you see other new pages on some other list? <br />
:There was some kind of error about then, on the wiki; one of my operations timed out, so I just went away for a while. Maybe some logs (or pages) were lost. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:16, 14 November 2012 (UTC)<br />
<br />
== Sysop ==<br />
Hi TJ<br />
<br />
I worried that I am not fluent in the language. I read a little English, and generally use the google translator to long paragraphs.<br />
<br />
I will be more cautious, but stay tuned for elimination and blocks.<br />
<br />
Regards [[User:Adailton|Adailton]] 15:07, 17 November 2012 (UTC)<br />
:The more users doing good work, less work for each. [[User:Helen russian|Helen russian]] also did good job. Thanks [[User:Adailton|Adailton]] 23:03, 18 November 2012 (UTC)<br />
::What a busy day! I have deleted more than 130 pages today. TJ, Adailton, Andrew, I need a time-out. :-) I'll be back in 12 hours (at 4:00 UTC). Please don't lose me. --[[User:Helen russian|Helen]] 16:09, 19 November 2012 (UTC)<br />
<br />
::I see a new Russian sysop [[User:Yak|Yak]]. It's great! Yakov, thank you for joining us --[[User:Helen russian|Helen]] 03:44, 20 November 2012 (UTC)<br />
<br />
:::You folks have been doing a super job! Help is on the way: see the Mwiki threads on dev@, plus the new section on my user page. That info is not current yet, but it will be. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 13:01, 20 November 2012 (UTC)<br />
<br />
::Hi TJ, any news? --[[User:Helen russian|Helen]] 02:15, 21 November 2012 (UTC)<br />
<br />
== Excessive spamming ==<br />
<br />
Hi TJ<br />
<br />
I made a [[Special:Log/protect|protection]] to prevent re-creation. What do you think?<br />
<br />
Regards [[User:Adailton|Adailton]] 10:26, 22 November 2012 (UTC)<br />
<br />
:Good move! We can delete it when the spam attack is over. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 10:49, 22 November 2012 (UTC)<br />
<br />
== How long will the spam attack? ==<br />
Hi TJ<br />
<br />
How long will the spam attack? Can I search for additional volunteers from the Russian community? --[[User:Helen russian|Helen]] 02:23, 23 November 2012 (UTC)<br />
<br />
:Hi, Helen,<br />
<br />
:We have a new recruit for site maintainer: Jan Iversen (also new Bureaucrat and sysop). Hopefully his access will be finished tonight or tomorrow, and he will turn off the spam user creation and delete their accounts. You will know for sure when you see a banner announcement about it, explaining that new accounts are by invitation only.<br />
<br />
:I can't guarantee the timing. You are welcome to search for more volunteers, and I will appoint them as sysops on your say-so. I just hope they won't have anything to do! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 02:38, 23 November 2012 (UTC)<br />
<br />
::OK. I'll try to find some volunteers for the job today after 11:00 UTC. --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
<br />
:::P.S.: Adailton found a clever way to defeat the repeated spamming of a few pages. Protect them to the Administrator level, then delete. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:28, 23 November 2012 (UTC)<br />
:::: OK --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
:::::TJ, delete first, then protect the page. This prevents an editor to create again. [[User:Adailton|Adailton]] 05:33, 23 November 2012 (UTC)<br />
<br />
== Need Create New Pages permission ==<br />
<br />
Started the proect to merge the FAQ's from the web site into the wiki and find my account does not have Create New Pages Permissions. Can you add them please or should I send a formal request through the dev list. Thanks for the help<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 02:55, 11 December 2012 (UTC)<br />
<br />
== Request for advice from mWiki guru ==<br />
<br />
After a closer look at all the materials involved with consolidating the FAQ's from the web site into the Wiki it appears the most effiecient way todo it would be to create some new Documentation\FAQ catagories and restructure the toc to add them. Given what is currently going on would it be best to just fit them in to the current structure and wait until the update is completed and then make the changes and reassign the new FAQ's to them? The alternative would be to do it know and I would need a crash course (mostly on reading the help files) on the intricacies of doing it.<br />
<br />
Sorry to be a pain with questions, but the engineer in me says ask the questions first before you really muck something up!<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 20:53, 12 December 2012 (UTC)<br />
<br />
:Keith, your cautious approach is much appreciated.<br />
<br />
:First, go right ahead now. This work should not be affected by the upgrades and such.<br />
<br />
:Second, IIRC, the lowest-level listing is all done with DPL and categories. The relevant help files for the DPL extensions (we're using the older one) are on [http://www.mediawiki.org/wiki/MediaWiki MediaWiki], which can (surprisingly) be a little hard to reach from Wp. You can probably do just what I'd do: copy an existing page, changing only the particular data (category name). Then put the appropriate new category on each new page: <nowiki>[[Category:whatever]]</nowiki>.<br />
<br />
:The higher-level toc (purple box) is built by one template calling another. The Master TOC template positions and paints the box; the FAQTOC template supplies the data, so this is what you need to edit. Wp has scads of help on templates; it is a much more powerful feature than any reasonable person would ever need. Fortunately, again all you probably need to do is copy and adjust existing entries to show the new stuff. The Preview button is your friend. Please try to minimize the number of edits to templates: an edit change kicks off a chain of replacements for every calling page, which can bog down the wiki for minutes. Note that you can call templates from your own space. That makes experimenting cheap. <nowiki>{{User:KNetc/test}}</nowiki> or something similar should suffice, where page "test" is a copy of the real template.<br />
<br />
:I'm fairly ignorant about DPL, but I'm useful on templates. Ask if you have problems. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 01:55, 13 December 2012 (UTC)<br />
<br />
::TJ I spent the better part of 20 years in Manufacturing Engineering first as a tech and then as an engineer. Have seen to many screw-ups that could have been prevented by asking "stupid questions" first. Not fun having to explain to ops managers why they lost x number of man hours / days.<br />
<br />
::First, since there should be no conflicts with the upgrades et al, I will venture down the path of creating new catagories and updating the toc.<br />
<br />
::Second, I will spend a few days this weekend looking over the help sections that you point to and try some experimenting in my "sandbox". Is there a time frame that would be best to go "live" with the changes to the FAQtoc to have the least disruption to the rest of the community on the Wiki?<br />
<br />
::Believe me if I have questions believe me I will ask. Thank you for all the info and your willingness to help.<br />
<br />
::Regards [[User:KNMcKenna|Keith]] 22:11, 13 December 2012 (UTC)<br />
<br />
I suggest that you make a copy[1] of faqtoc, maybe "factoc2", in template space. Just click on a link like this one: [[Template:factoc2]]. You can edit that one all you want, because only the few pages you build will be affected. At the very end, copy it back — only one edit to the live template, so you needn't worry about the timing. Then change the links (the special page, "What links here" is your friend) and delete the copy.<br />
<br />
Feel free to put the links to the new subdivisions[2] where they belong, on the Documentation or Doc/FAQ pages, but please hang the "Under Construction" sign on anything incomplete, in case users blunder into it.<br />
<br />
Thank you very much for undertaking this task.<br />
<br />
<br />
Notes:<br /><br />
[1] "copy" means Edit | Select all | Copy | Cancel edit on the source page, then Edit | Paste on the new page.<br /><br />
[2] I used a different term, because you will be creating some wiki Category pages, too. Using the redlink method, just reference the new category as usual, at the bottom of the new faq page. That will show as a redlink; click on it, add a one-line description, and save the page. Nothing to it! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:32, 14 December 2012 (UTC)<br />
<br />
==Speedy Delete==<br />
Hi TJ<br />
<br />
I wish you a Merry Christmas :)<br />
<br />
I have been absent due to commitments, but I must return to work soon<br />
<br />
[[:Category:Candidates for speedy deletion]] is ''Outdated, not valid''? There is another to replace it?<br />
<br />
Even if only administrators are active, I think at times be necessary ''ask'' the opinion of others about certain deletions to prevent undue eliminations. In wikipedia the ''normal'' is always an editor (even an administrator) mark and an administrator check and then eliminate.<br />
<br />
There needs to alter {{tl|delete}}?<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 08:52, 25 December 2012 (UTC)<br />
<br />
:Agree that the category is needed, so I replaced it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 12:32, 25 December 2012 (UTC)<br />
==Category Names Problem==<br />
Hi TJ <br />
<br />
In [[Special:WantedCategories]] there in many categories, but all with ''problems'' in the title, probably due to a misconfiguration in for special characters needed for languages like Polish, Portuguese, French, Russian, etc. But I do not know exactly how to fix it.<br />
<br />
For exemples: [[:Category:Wdrożenia]] would be [[:Category:Wdrożenia]] ('''ż''')<br />
<br />
This may have occurred before December 25, the date of deletion. Possibly the time of spam attack, in november.<br />
<br />
I'll create the correct categories, with the hope that it would remove the entries in special page.<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 13:57, 7 January 2013 (UTC)<br />
<br />
:This looks to me to be a problem related to the UTF-8 settings and conversion, which was part of the upgrade on 12/25. The pages themselves seem to be properly categorized; why they are showing up in "Wanted" is a mystery. I'll ask Jan about it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 15:27, 7 January 2013 (UTC)<br />
<br />
== String character index base ==<br />
<br />
Thanks for adding the clarification. I'd found it out myself by experimentation, but it's good to have authoritative backing.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 09:55, 22 January 2013 (UTC)<br />
<br />
:Thank you for taking the trouble to point out the ambiguity. There are other places where only some experimentation will show how to do it, and they all should be fixed. Probably the worst has to do with the cursors (text and view); I'm working on that. Please feel free to point out any problems you find. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 12:13, 22 January 2013 (UTC)<br />
<br />
::I agree - a lot of the time it's not easy to work out how to do something. I've found out how to open documents from templates - would you like me to add a para to the wiki? Also how to save documents (still working out what to do with all those document properties, though).[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:03, 23 January 2013 (UTC)<br />
:::The Boolean "AsTemplate" parameter is documented in the <tt>loadComponentFromURL</tt> function call, but the text is not as helpful as it could be. If you want to make it clearer, please do. This is one big reason we keep the documentation on the wiki: any user who knows and cares about some point can help improve AOO, one small piece at a time. It is very worth doing: with tens of millions of downloads, we can expect tens of thousands of wannabe Basic programmers to have the same questions you do, and read your words. (Just remember, they will expect your words to be ''right!'') If additional details about various properties would be helpful, then add some text.<br />
:::See also my comment on the Talk page, about "_blank": what to fix, what not to fix, and why. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 18:29, 23 January 2013 (UTC)<br />
::::Don't quite understand this: this ''is'' the Talk page and I can't see any such reference here! I'll cook up some text on opening files from templates and put it in.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:00, 30 January 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/StarDesktopTalk:Documentation/BASIC Guide/StarDesktop2013-01-23T15:57:16Z<p>Ptoye: /* Parameter for new frame */ new section</p>
<hr />
<div>== OpenOffice.org 5 ==<br />
"The name of the StarDesktop object dates back to OpenOffice.org 5" ??<br />
--[[User:TJFrazier|TJ]] 04:24, 5 October 2007 (CEST)<br />
<br />
== "Compression of Files" bracket stuff ==<br />
<br />
Bracketed stuff in that section. --[[User:TJFrazier|TJ]] 04:28, 5 October 2007 (CEST)<br />
<br />
== Parameter for new frame ==<br />
<br />
In the text you say that the parameter for opening a document in a new frame is "_blank", but the example gives " blank". The API documentation agrees with the former, but I've found by experiment that both work OK (documentation bug??); "blank" works as well! Should the code be changed to match the description, or was it put in to highlight the discrepancy? In the latter case I'd suggest a note pointing this out.[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:57, 23 January 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Main_PageTalk:Main Page2013-01-23T15:18:13Z<p>Ptoye: /* Database optimization */ new section</p>
<hr />
<div>11:02, 7 August 2012 (UTC): Due to excessive vandalism, I have protected the main page for a while. Feel free to leave comments here, or contact me directly. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 11:02, 7 August 2012 (UTC)<br />
<br />
==Thanks==<br />
Hi,<br />
<br />
I just wanted to thank Jean Hollis Weber and whoever else created this wiki site. It's a great job, and I have linked to it from the Digital Tipping Point links page. 2005/12/20 Christian Einfeldt<br />
<br />
<br />
Christian, I had nothing to do with setting up this wiki, though I'm flattered that you think I did. :-) When I have time, I'll be contributing to it. --Jean Hollis Weber<br />
<br />
== Syntax Highlighting change ==<br />
<br />
The tag "code" doesn't function anymore !!! see below :<br />
<code>[cpp]<br />
#include <iostream.h><br />
main() {<br />
return 0;<br />
}<br />
</code><br />
<br />
[[User:SergeMoutou|SergeMoutou]] 10:26, 21 February 2008 (CET)<br />
:That is correct. The extension that the OOoWiki was using for Syntax Highlighting is unsupported and obsolete (last version released has very limited language support, and requires custom coding to add back the language support for all the language highlighting in use on the OOoWiki). When the Wiki was updated to the most recent version of MediaWiki (on 14 Feb 2008), the old extension was not installed. This will be documented at [[Wiki maintenance]].<br />
:There is a new extension available with this syntax <nowiki><source lang="language"> ... </source></nowiki> We will be passing a WikiBot over the Wiki to change the old syntax to the new as soon as possible. Using your example with the new syntax, the code looks like this:<br />
<br />
<source lang="cpp"><br />
#include <iostream.h><br />
main() {<br />
return 0;<br />
}<br />
</source><br />
: --[[User:Ccornell|Ccornell]] 11:59, 21 February 2008 (CET)<br />
<br />
== Suggestion for some re-organization ==<br />
Dudes. We -so- need a main page/everything else cleanup .. :) Looking at the Scribus wiki and the [http://developer.mozilla.org Mozilla Developer Center] just makes me salivate. Currently the main page is more or less a link farm without much structure. How about adding some layout and thinking a bit more about entry points to different regions of the wiki/main site? We could probably initially borrow the MDC style sheet to get us started? (or design our own?) --[[User:KaiB|KaiB]] 19:09, 26 March 2006 (CEST)<br />
<br />
Just a little suggestion, do you guys think the current Wiki need a bit of cleanup and re-organization? I also contributed to the [http://wiki.scribus.net/index.php/Main_Page Scribus Wiki] and I think the Scribus wiki-doc authors are doing a nice job of placing content in a well organized manner. -- [[User:Zero0w|Wily Yuen]], Feb 13, 2006<br />
<br />
: Reply to myself: if this is a good idea, give me a nod. I'll try to move things around a little and hope that I won't mess things up ;) ---- [[User:Zero0w|Wily Yuen]], Feb 13, 2006<br />
<br />
: Yes, it does. The Marketing section wants all of its pages named <nowiki>[[Marketing--pagename]], although they would interact better with the wiki software if they were [[Marketing/pagename]]</nowiki>. I've made a suggestion to switch this. Further organization should be done through the use of categories. Categories are very easy to use, just add the tag <nowiki>[[Category:XXXX]]</nowiki> to the page. I have done this for all of the marketing pages that I could find. Actually, if you view [[Marketing]], you will see the template I created for marketing pages. The development section has a lot of miscellaneous pages. View [[Special:Uncategorized pages]]. Also, there are a number of pages that look like they are simply Wikipedia entries. I don't think they belong here. If we do have a glossary, it should be in a page like [[Glossary]] or [[List of OpenOffice.org-related terms]]. Contact me if you need help with creating templates, etc. --[[User:RealGrouchy|RealGrouchy]] 07:15, 21 February 2006 (CET)<br />
<br />
::I'm admittedly coming in late on this, but then I only found the site earlier this week. I actually think that Marketing has sort of the right idea, except that is should be Marketing:pagename. That would, in effect, be claiming their own [[Help:Namespace|Namespace]]. Mediawiki does come with its own predefined namespaces, however custom namespaces can be defined as well. And I think both Marketing and Development would benefit from such. Possible benefits of having their own name space:<br />
<br />
#Pages can be searched for and organised independently<br />
#Feature separation is possible<br />
#Background colors and other special formatting can be restricted to a specific project group.<br />
:Example.<br />
{|Border=1 align="center"<br />
|----<br />
|Bgcolor="Ivory"|<BR>Main Page Space<BR> <br />
|Bgcolor="Cyan"|<BR>Development Page Space<BR> <br />
|Bgcolor="Red"|<BR>Marketing Page Space<BR> <br />
|}<br />
<br />
:Yet even as each project maintained its separate page formatting, the main body format would still be the same so as to maintain a common overall identity, even though we would now know which project we were looking at.<br />
:--[[User:Kirk|Kirk]] 00:46, 1 June 2006 (CEST)<br />
<br />
::Kirk, thanks for your proposal for a [[User:Kirk/test|revised main page]]. I fully agree with you and others that some re-organisation would be good. I earlier thought of a [[User:St/Main Page|page with some graphical elements]]. --[[User:St|stx12]] 14:36, 3 June 2006 (CEST)<br />
<br />
:This point has also been discussed with Clayton Cornell in oooforum futures discussion, but probably the largest community, but we seem to forget that the largest untapped community who would benefit from this Wiki is not Developers or Marketing but the '''''end users'''''. Surely we should be integrating a lot more end-user orientated material and should restructure the Main_Page into more developer/user neutral into with subgroup main pages Main_Developer_Page, Main_User_Page, etc. [[User:TerryE|TerryE]] 12:29, 22 August 2007 (CEST)<br />
<br />
************************<br />
Suppose In MS Word document have "Table of Contents". Thorugh this contents user user can go directilt with a particular page with control. for some document is working fine and for some document it's not woking.<br />
<br />
One more if contents have value like : 1, 2, 3, 3.1, 3.2, 4, ... than sub menu's (Mean: 3.1, 3.2, ..)<br />
it's not displaying... with your writer.<br />
<br />
Using S/W : OpenOffice.org 3.0<br />
<br />
Email id : parmar.manvendra@gmail.com<br />
<br />
== Spamming ==<br />
<br />
There are repeated attempts by the same poster to spam the [[Main Page]] with links to advertising sites. Should the Wiki admin do something about it? --[[User:Zero0w|Zero0w]] 16:37, 25 March 2006 (CET)<br />
<br />
The user has been blocked. Thanks for the heads-up.<br />
--[[User:St|stx12]] 16:55, 25 March 2006 (CET)<br />
<br />
== Let us add XML and other file formats for upload<->download only ==<br />
<br />
Hi! I have made a web page in my NLC project that uses data from a XML file. Now I have tried to put it on some open for user-editing page, like Wiki, so they could download it, edit it and upload without accessing CVS, using the Wiki and the effects would be seen in my NLC project page. But I am getting some "xml is a wrong file type for Wiki" message :( I think it is a very useless limitation that user can not upload any file type. I have tried some other wikis, like wikosource, wikimedia, wikibooks, and everywhere the same strange problem with uploading other various types. Let's be the first to get rid of unnatural limitations. Software that uses XML for writing files should allow users to edit XML pages through Wiki or in some other way. --[[User:Konradst|Konrad]] 14:45, 2 April 2006 (CEST)<br />
: Well I have found the needed functionality in "documents&files" section of the project, but still it would be great if uploading xml files would be available in Wiki --[[User:Konradst|Konrad]] 15:00, 2 April 2006 (CEST)<br />
<br />
== Unable to upload files ==<br />
<br />
Hello,<br />
Why are we not allowed to upload files on this wiki?<br />
I would like to upload 2 images.<br />
Thanks,<br />
[[User:Val1984|Val1984]] 10:07, 28 April 2006 (CEST)<br />
<br />
: uploads have been unintentionally disabled during the last upgrade. Give it a try now. --[[User:St|stx12]] 21:49, 2 May 2006 (CEST)<br />
<br />
What an interesting way to get people interested in reading! Book trailers are like movie trailers, but for books! You can find them all over the internet now, but here is a site that's featuring them on YouTube. http://www.youtube.com/booktrailers<br />
<br />
== Category Indexing ==<br />
<br />
Hello, I'm trying to get the Category Index setup and have run into a question. For the moment I am inclined to subcategorize '''Writer''', '''Calc''', and '''Database''' under '''Documentation'''. I currently got '''Writer Issues''' placed under '''Writer''' in '''Documentation'''. But now I'm thinking the Issue Categories should be under '''Development''' instead. Any thoughts, guidance?--[[User:Kirk|Kirk]] 20:27, 1 June 2006 (CEST)<br />
<br />
: I agree that the "xxx issues" categories are related to Development. --[[User:St|stx12]] 14:28, 3 June 2006 (CEST)<br />
<br />
<br />
== Example Base File ==<br />
<br />
There has recently been a discussion under way on the users@dba.openoffice.org mailing list regarding the production of an [[example Base database]] for contribution. It has been suggested to use this wikipedia as a resource for defining and developing this project. --[[User:DrewJensen|DrewJensen]] 15:41, 9 June 2006 (CEST)<br />
<br />
== language template / box ==<br />
Please add Bangla (bn) in the laguage template (or box) in the main page, since we've created our page [[bn.openoffice.org]] and almost localized 80% of the main page. '''Bangla''' in ''Bangla'' script '''বাংলা''' --[[User:Mak|mak]] 22:36, 12 September 2006 (CEST)<br />
<br />
== Copyrights ==<br />
Hi, what is the [http://en.wikipedia.org/wiki/Wikipedia:Copyrights copyright] of this wiki ? I suggest [http://en.wikipedia.org/wiki/Wikipedia:Text_of_the_GNU_Free_Documentation_License GNU Free Documentation License] like Wikipedia, the free encyclopedia, allowing me to share this wiki. ;-)<br />
<br />
== Incorrect translations in the Welcome box ==<br />
<br />
Kudos for the great MediaWiki site. It might really be a good idea to talk with some native speakers about the welcome text in the Welcome box on the Main Page that includes the date and a welcome message in several languages. Spanish and German are both wrong. Spanish should be "'''Bienvenidos''' a OpenOffice.org" and German should be "Willkommen '''bei''' OpenOffice.org". I'm guessing the translations are from some template that is being pulled in since I can't figure out how/where to fix the problem.<br />
<br />
== Dynamic Page List ==<br />
<br />
Your website is using a rather outdated version of a mediwiki extension named DynamicPageList. There is a new version with plenty of improved functionality available. Perhaps you may want to have [http://semeb.com/dpldemo a look?] --[[User:Algorithmix|Algorithmix]] 17:12, 20 February 2007 (CET)<br />
<br />
== Spamer? ==<br />
<br />
Is Vilmis Spamer? Main_pege Changed by Vilmis. I restored Main_pege. However, a history was lost. There is the history on the following pages.<BR>http://wiki.services.openoffice.org/mwiki/index.php?title=Http://www.google.com/accounts/RP%3Fc%3DCK-a_v2ivt_nkwEQuJ7l3OOzlpVu%26hl%3Dlt&action=history<br>--[[User:Kamataki|M.Kamataki]] 09:08, 14 November 2007 (CET)<br />
<br />
== Adding Greek Thesaurus ==<br />
<br />
Hi,<br />
<br />
I've successfully added Greek dictionary using Dicooo wizard, but the Thesaurus does not appear in the list, but the file is in fact <br />
available. How do I add the Thesaurus? <br />
<br />
Thank you.<br />
<br />
== Crazy variations in Permissions to Spreadsheets ==<br />
<br />
Does anyone else have problems with Crazy variations in Permissions to Spreadsheets?<br />
I make speadsheet, save it in a sub folder in my Documents (Mac OS X [10.4.11]) and when I come to open it again (NOT accessed by any other user) it won't allow me as it's closed for editing. So open Copy, add my changes, bin the old version and save as original name; this works some of the time but not tonight even after erasing the old S/Sheet.<br />
Any hints appreciated, folks.<br />
<br />
== Count of Property For A Selected Cell ==<br />
<br />
How do i get count of property and name & Default value of the property for a selected cell.<br />
<br />
== Eclipseintegration ==<br />
<br />
Who knows how to contact Cedric Bosdonnat and tell him that his site (http://cedric.bosdonnat.free.fr/ooeclipseintegration) has been cracked by some tunisian?<br />
<br />
I would like to use his plugin but since I don't know any other location where I can download the plugin and his site has been cracked, i<br />
can't continue with my work.<br />
: I've sent him an email. --[[User:Ccornell|ccornell]] 13:47, 7 June 2009 (UTC)<br />
<br />
:: I'm just back from week-end and saw that my website was hacked and closed by my ISP. I've asked them to reopen it to let me fix it, but I don't know how much time it'll take. --[[User:Cedricbosdo|cedricbosdo]] 11:53, 8 June 2009 (CEST)<br />
<br />
::: And now I guess that it has been hacked by yet another one since I still can't downlodad the plugin :-(<br />
<br />
Ben<br />
<br />
==Confused by the Programming/Development/Tutorial section ==<br />
<br />
Hi... I'm completely to new OOo programming, and I'm mildly confused by the Programming/Development/Tutorial sections, as I'm trying to download the source code for Windows Vista, before just generally tinkering with it, and trying to build/run it. I found the source code OK, but I'm now a little bit stuck.<br />
<br />
Would it be possible for there to be a really simple, step-by-step guide talking people through what software they need, the exact order in which things should be done, and what updates need to be made, in order to obtain?<br />
<br />
When I first used Texmaker, I found the following guide to be useful: [http://adamcoster.com/2008/02/28/latex-part-1-setting-it-up/], so I guess that would be a good example of what I mean.<br />
<br />
Any light that anyone could shed would be really appreciated.<br />
<br />
Many thanks,<br />
<br />
[[User:Anthonysammael|Anthonysammael]] 19:40, 8 August 2009 (UTC)<br />
: You can start with the [[Documentation/Building Guide|Building Guide]]. The Windows section in that doc includes a list of the software prerequisites. --[[User:Ccornell|ccornell]] 05:47, 9 August 2009 (UTC)<br />
<br />
== Playstation 3 support? ==<br />
<br />
I don't know if this would be possible... I really enjoy my PS3 and I would use it more often for everything... way shorter login time than my PC and it claims it "only does everything" so I think that it would be fair for the designers/coders to maybe get into contact with Sony and develop a Playstation compatibility update or download. If this could be available for the Playstation I think more people would use open office.org as a software suite as well as come up with new ideas and valuable feedback.<br />
<br />
I personally do not have the resources, technical knowledge or time to work on this and that is why it is merely a suggestion. This is the best office suite I have ever personally used and between work and family it is hard to really find time as well as keep myself sane with entertainment, my PC is slow and my PS3 is an impressive machine I use for pictures, music, movies, games (when I do have time), Folding@Home, and video conferencing with friends/business acquaintances. I believe this would be important to people in high school and college with the need for a system with word processing capabilities.<br />
<br />
Well thank you for your time,<br />
-cybrim<br />
<br />
== working with .calc sheets!!! ==<br />
<br />
I need information on deleting rows in one sheet based on information from cells in another. I have a dataset of about 2300 water gage sites from the USGS and need to narrow my field of view to a few less. I have found some that I would like to eliminate and saved the codes for the sites to be deleted in another sheet. How can I take those codes and delete them from the original dataset of 2300 code numbers without doing them one by one? Thanks!<br />
<br />
:This question belongs in a [http://user.services.openoffice.org/en/forum User Forum], where you have a much better chance to get a good answer. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 19:34, 26 October 2010 (UTC)<br />
<br />
== Xforms Table ==<br />
<br />
Hi,<br />
<br />
I am new in open office.<br />
<br />
I want to create xforms table where user can input repetative value.<br />
<br />
Can any one please help me?<br />
<br />
:As with the previous section, this question belongs in a [http://user.services.openoffice.org/en/forum User Forum], where you have a much better chance to get a good answer. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 02:43, 15 February 2012 (UTC)<br />
<br />
== email attachments and prints from internet ==<br />
<br />
I have recently started using OOo 3.3, however if I try to print or save a document or voucher from the internet, the page displays some sort of code and lots of different symbols rather than the script I am expecting. This is also true of attachments for emails. I have referred to the export of documents sections and canfind no answer for my issue.<br />
<br />
It would be appreciated if someone can direct me to the appropriate section of the FAQs in order to rectify the problem.<br />
<br />
Many thanks <small>''signature added by sysop''</small> [[User:Thommo1972|Thommo1972]]<br />
<br />
:Sorry, I don't think we have a canned answer for you.<br />
<br />
:As with the previous section, this question belongs in a [http://user.services.openoffice.org/en/forum User Forum], where you have a much better chance to get a good answer. If you will come back and tell us what you found (right here is fine), then maybe you, or I, or someone will write a FAQ for the next users. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:09, 6 April 2012 (UTC)<br />
<br />
== The connection was reset error in Firefox ==<br />
<br />
You get the error “The connection was reset” when loading in Firefox but the ping openoffice.org command works. [[User:TaeWong|TaeWong]] 18:38, 1 October 2012 (UTC)<br />
<br />
== Updating Mainpage ==<br />
<br />
I sumbited a change notifying outdated projects for evaluation on the wiki last week, I am taking the project off this week and will replace with AOO ones. <br />
<br />
Some of the projects include:<br />
*Marketing<br />
*Performance<br />
*NLC<br />
*Release Meeting Minutes<br />
etc..<br />
<br />
If you think a project was wrongfully taken off, please feel free to re-insert it. --[[User:JZA|JZA]] 19:27, 9 October 2012 (UTC)<br />
<br />
== NOTE to new users ==<br />
<br />
How can you close this attention? [[User:TaeWong|TaeWong]] 22:00, 23 November 2012 (UTC)<br />
: You don't. It's a temporary site-banner in place to let people know why some functionality of the wiki is unavailable. It will be removed by an admin soon. --[[User:Ccornell|ccornell]] 10:46, 24 November 2012 (UTC)<br />
<br />
== Translate extension ==<br />
<br />
Hello, I see that this is a multilingual wiki.<br />
Have you considered using the [[MetaWikipedia:mw:Extension:Translate|Translate extension]], which allows to easily make your MediaWiki multilingual, allowing to save enormous amounts of time previously wasted on templates usage, manual synchronisation of pages and so on?<br />
Now it's also available in handy [[MetaWikipedia:mw:MediaWiki Language Extension Bundle|tarball bundles]].<br />
The page explains how to get help and more information, and there is extensive documentation; asking on #mediawiki-i18n @ freenode is probably your best chance for immediate assistance if needed.<br />
Thanks, [[MetaWikipedia:User:Nemo_bis|Nemo]] 23:03, 13 January 2013 (UTC)<br />
<br />
== Database optimization ==<br />
<br />
Don't quite understand the header - it says Sunday 25 Jan. Do you mean Sunday 27 or Friday 25?<br />
Or even Sunday 25 Jan 2015 (we hope not!).[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:18, 23 January 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/User_talk:TJFrazierUser talk:TJFrazier2013-01-23T15:03:14Z<p>Ptoye: /* String character index base */</p>
<hr />
<div>This is a good place to leave me a note. :-) --[[User:TJFrazier|TJ]] 23:48, 8 May 2009 (UTC)<br />
<br />
<br />
(This is to remind myself to fix the cache description, WIGATI.)--[[User:TJFrazier|TJ]] 20:05, 26 September 2009 (UTC)<br />
<br />
{{CURRENTTIME}}<br />
<br />
==warring==<br />
http://wiki.services.openoffice.org/wiki/Talk:RU/rules_and_information_policy<br />
<br />
http://wiki.services.openoffice.org/w/index.php?title=RU/rules_and_information_policy&action=history<br />
<br />
User [[User:Sancho|Sancho]] doesn't discuss anything.<br />
In English, differences between pages:<br />
http://translate.google.ru/translate?hl=ru&ie=UTF-8&sl=ru&tl=en&u=http://wiki.services.openoffice.org/w/index.php%3Ftitle%3DRU%252Frules_and_information_policy%26diff%3D169023%26oldid%3D169013&prev=_t<br />
<br />
Sancho does not discuss anything, but writes the rules that always repeat "forbidden", "you must or else the page you create will be deleted", "do not", "never" and so on. We change it to "it is recommended", "it is better", "page is going to be edited" and so on.<br />
<br />
User [[User:Sancho|Sancho]] doesn't reply neither in its personal discussion page, nor in the the article's talk and ignores all messages.<br />
<br />
What shall we do in this case?<br />
<br />
:Just what you did do: bring the matter to the attention of a sysop (administrator). Edit warring is a serious offense, and may lead to blocks. I will be posting a lecture on Sancho's Talk page. Meanwhile, please follow one simple rule: do ''not'' undo anyone's edits but your own, without discussing the matter on the associated Talk page. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:01, 22 May 2010 (UTC)<br />
<br />
Here are more articles Sancho refusing to discuss (so far):<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/qa/run_ooo_versions_parallel<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/Documentation/FAQ/General --[[User:Fyva|Fyva]] 05:34, 23 May 2010 (UTC)<br />
<br />
== thanks from elcico ==<br />
<br />
Dear TJ thank you for your welcome and for your suggestion.<br />
I've changed my mail address, now it should be ok!<br />
Thanks again!<br />
elcico :)<br />
<br />
P.S. Hope this is the right place to reply... just delete after you read! :)<br />
: You're quite welcome. Why ever should I delete a nice thank-you note? --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:34, 2 June 2010 (UTC)<br />
<br />
== Keyboard shortcuts, special characters ==<br />
<br />
Hi TJ, While tripping through the FAQs in search of anyplace I can help, I have found your useful answer (FAQ-Writer-Formatting Text) about how to insert special characters using macros to create keyboard shortcuts. As an alternative, I thought of adding the Windows shortcuts such as I use in Word at work to create a pounds sterling sign (i.e. Alt+0163), but I can't get those combinations to work in Writer. I'm on my laptop at home and am not sure if the Alt-key alternative just does not work in OpenOffice, or if the phenomenon is due to my using a laptop keyboard without the extra number keypad. In the hopes that no question is a dumb question... I ask... do the Alt-key combinations for special characters work in OOo?<br />
:Hi, Lisa, Yes; with my keyboard (with full numeric keypad) they work fine. I use Alt+0151 for em-dash regularly. There may be a num-lock or Fn special key that you need to simulate the numeric keypad; check your laptop's documentation. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:34, 29 June 2010 (UTC)<br />
<br />
== Re: Editing templates ==<br />
<br />
Sorry about the inconvenience. I rarely edit templates on Wikis, being mindful that such edits can have far-reaching effects. FYI, I didn't notice any slowdown: This Wiki has far fewer articles and users than the English Wikipedia.&nbsp;&mdash;&nbsp;[[User:User8192|User8192]]<sup>[[User_talk:User8192|T]] [[Special:Emailuser/User8192|@]]</sup> 17:46, 1 September 2011 (UTC)<br />
<br />
== Category:MainIndex ==<br />
<br />
Hi TJ<br />
<br />
The [[:category:MainIndex]] is '''[[Special:UncategorizedCategories|uncategorized]]''' if ''not put cat into itself'' or [[Special:Categories|another category or subcategory]].<br />
<br />
Do you know another solution?<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:04, 11 January 2012 (UTC)<br />
:right, then it stay uncategorized. [[User:Adailton|Adailton]] 13:58, 12 January 2012 (UTC)<br />
<br />
== Broken Redirects ==<br />
<br />
[[Documentation/FAQ/General/What are the differences between StarOffice (old versions) and OpenOffice.org?]] deleted, ''obsolete FAQ - replaced by a newer version of same information''? should be a fusion of historical record of keeping the original creator of the page. what is the new version? and [[Documentation/FAQ/General/QA 0002]]? Thanks [[User:Adailton|Adailton]] 13:43, 15 January 2012 (UTC)<br />
<br />
:Nice catch. Found the replacement page and fixed the redirect accordingly. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:48, 15 January 2012 (UTC)<br />
<br />
== Category:Marketing ==<br />
Hi TJ<br />
<br />
User pages in [[:category:Marketing]]: [[User:Blibrestez55/Books/Database]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Allow import of only selected pagesn]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving char spaces]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving rotated text]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Introduction]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue105133]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue109708]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue90633]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue92919]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Misplaced paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Moving Proper paragraphs GlyphProcessor]], [[OpenOffice.org Internship/Tasks/Proper paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Testing proper paragraphs]], [[User:Khirano/Solutions]], [[User:RealGrouchy]], [[User:Wyrfel]].<br />
<br />
It seems '''inappropriate''' to have categorized '''users''' pages, so I ask whether they should be '''uncategorizaded''' or moved to the '''main domain'''? (I'm sorry but I do not quite understand the English Language, so I use a translator). [[User:Adailton|Adailton]] 13:43, 16 January 2012 (UTC)<br />
:English: "de-categorized" (= "have the category reference removed") is not a valid English word, either, but it is readily understandable.<br />
:Appropriateness: Since the users themselves added their pages to the category, I'm in favor of leaving them there. If somebody associated with marketing complains, we can make changes then. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 02:24, 17 January 2012 (UTC)<br />
<br />
== Candidates for speedy deletion ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[:Category:Candidates for speedy deletion]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 11:20, 27 January 2012 (UTC)<br />
<br />
:Removed most of the pure spam. Remaining candidates are mostly technical, and can be removed more slowly.<br />
:Thanks for the good work. If you are an Apache committer (or at least have an iCLA on file), I will enable you as a sysop ("Administrator group"). That would let you delete directly, and block spammers as well (very carefully!). --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 14:32, 27 January 2012 (UTC)<br />
<br />
==Speedy deletion==<br />
Hi TJ<br />
<br />
I made a change in {{tl|delete}} in order to include a justification for the deletion. Please see if it was good.<br />
<br />
I saw that there are 11,420 [[Special:UncategorizedFiles|files uncategorized]]. Are there any major [[Special:Categories|category]] for files? I just found [[:Category:Icons]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 14:38, 26 February 2012 (UTC)<br />
<br />
: '''Delete''': Looks good to me, if it works for you.<br />
<br />
: '''File Categories''': AFAIK, the files should be categorized according to the pages that link to them (plus descriptive categories, like "Icon"). This could be a non-trivial task; if a file is linked from pages in different categories, it may be desirable to climb the category tree to find the intersection, and categorize the file there. <br />
<br />
:Your help is much appreciated. I know much of templates, but only a little about categories. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:52, 26 February 2012 (UTC)<br />
::I think the categorization according to the pages that use is practical, but we can also categorize your files by grouping them by theme (icons, applications, screens, menu items, examples, etc.), without excluding one another. There are also PDF documents, which could be a category, but I will not create them if you think it should be done well. [[User:Adailton|Adailton]] 21:07, 26 February 2012 (UTC)<br />
<br />
:::pls, see: <br />
:::*[[Casino ohne download]]<br />
:::*[[User talk:Josebryan13]]<br />
:::*[[Deals - How can you make best deals on timeshare]]<br />
:::*[[Phentermine - How the phentermine works in your body.]] <br />
:::*[[Moving Company- How to make consequences favorable]]<br />
::: and related images. Tks [[User:Adailton|Adailton]] 22:21, 22 May 2012 (UTC)<br />
::::Gone! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 03:32, 23 May 2012 (UTC)<br />
:::::Please, see [[User:PressRTbox]]. [[User:Adailton|Adailton]] 22:04, 25 May 2012 (UTC)<br />
::::::Persistent pest, now blocked. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 23:26, 25 May 2012 (UTC)<br />
<br />
----<br />
Please, see [[User:Ulissi]] (and botton of user page) and history.<br />
:Left him a warning that the link farm may get deleted. My snap diagnosis is "enthusiastic amateur", rather than deliberate spammer, so I'm starting out gently.<br />
::Removed all external and red links. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:55, 18 September 2012 (UTC)<br />
<br />
I am looking at [http://wiki.services.openoffice.org/w/index.php?title=Special:LinkSearch&target=*.com Special:LinkSearch]. There are many abuses to be checked. tks [[User:Adailton|Adailton]] 11:08, 14 June 2012 (UTC)<br />
:Nice find of that page! The good news here is that almost all of those links seem legitimate. I only found one (the very last of the first 100) that was typical user-page spam (from 2009!), and deleted it. I'll run through the rest of the list, slowly.<br />
:Many thanks for all your help. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:59, 14 June 2012 (UTC)<br />
<br />
==New volunteer==<br />
Hello. I recently started to built some pages for brazilian community start to work and I'd like to contribute in the wiki maintenance also. I've created [[:Category:Outdated]] to mark all old content pages that need to be revised. I have a lot of suggestions to offer in order to make this wiki more affordable, but I am affraid to make changes without people's agreement. I do not wish to upset anyone so, please, if there is a wiki coordinator/administrator (or something like that), let me know. I don't wish to work '''against''' but '''with''' you. =) <br />. Thanks. <small>signed by sysop</small> 2012-05-17T09:12:32 [[User:PauloLima|PauloLima]]<br />
<br />
:Hi, Paolo!<br />
<br />
:I'm replying here, just to keep the whole conversation in one place. You can put a Watch on my Talk page if you like, or I'll put a note on yours. I see that you have met [[User:Adailton|Adailton]], who is a big help around here, chasing spammers. Whatever help you care to give is very welcome.<br />
<br />
::Hi TJ. This place is fine.<br />
<br />
:Like most everything at Apache, there is no "official" hierarchy on this wiki. The only sense in which I'm "it" is that I'm doing the work. I do have both sysop and bureaucrat privileges, and I will promote any committer to sysop who asks. My personal expertise runs to "expert user": knowledgeable on wiki markup, templates, ''etc.'' If you have plans to improve the user experience, go for it; I'll be glad to help you do it the easy way, if you like.<br />
<br />
:: Ok. I've been working with Mediawiki software intensively for the last 2 years. I've created/developed many of the pages in LibO PT_BR wiki, and I was responsible to develop the document translation workflow to PT-BR. That was a great learning. Now I wish to contribute here. These days, I am running a document management project for the company I work,using Mediawiki software, for for the last year, using its semantic features. And this was a great learning for me too. So, I proposed to use my experience in this area to help building an intelligent ontology that could ease the access tothe information in the wiki. But... In order to do that, it would be necessary to upgrade Mediawiki at least to 1.7.4 (1.9 would be better) and install some semantic extensions (maybe creating some new user's groups, if necessary). Can you help me on that? This should not impact the actual wiki's access/availbility, but can make available features for me to work on some sort of "snapshot". =)<br />
<br />
:Which reminds me: are you deliberately using the "preformatted text" option (starting your line with a space character), to create indentation? A colon (:) works better, because it wraps better. Use more colons for more levels of indentation (think, "tabs"). By convention, if you reply here, you would start your lines with two colons, I would reply with three, ...<br />
<br />
:: Yes. I'm using that. It's a matter of preferences. For me it looks better, but I have no objections in using identation =)<br />
<br />
:I look forward to your contributions. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 20:06, 17 May 2012 (UTC)<br />
<br />
:: I've created a category PT-BR for brazilian community begin to work. It was necessary, but, as Adailton pointed, maybe we could join PT-BR and PT sections, if it works better. I'm helping Kevin on UX team and looking for pages that must be updated/deleted. There are many outdated information here and it's necessary to classify them (that's why I've created a [[:Category:Outdated]]). In the next days I will navigate through the wiki to find and categorize those pages. After that, we will have a picture of what/where/who/when we need to do. If you and Adailton agree with that, of course. What do you think?<br />
<br />
:: [[User:PauloLima|PauloLima]] 22:17, 17 May 2012 (UTC)<br />
Preformatted text looks great — ''if'' you pre-format it!<br />
<br />
:::Otherwise, it has a nasty tendency to run right over the right-hand border, and just keep going. I find that both ugly and a nuisance, having to adjust the horizontal slider, and I had to do that a lot on your talk page. This may be browser- and skin-dependent. But, to more important matters.<br />
<br />
:::: Well, I have placed line breakers <nowiki>"<br />"</nowiki> in my replies, because I am aware of this issue. I don't know why you had this problem in you browser, maybe your screen resolution is too low. For me, my replies are been displayed with short lines and no horizontal slider both in Internet Explorer (Windows 98 in a virtual machine), Google Chrome and Mozilla Firefox (Ubuntu 11.10). But it doesn't matter, I can use identation. No problem.<br />
<br />
:::For upgrading MW and installing new extensions, you need a site-maintenance person, and that's not me. The only one I know of with the project is Raphael Bircher; otherwise, we depend on Infra. The problem is that none of those folks have any real expertise with MW or php, and neither do I. If you have command-line expertise, by all means volunteer on the Infra ML, and ask for access. Otherwise, I suppose we can try writing JIRA tickets. I am certainly in favor of an upgrade; there are problems with the <nowiki><math></nowiki> syntax that probably can only be fixed that way, and some other adjustments that should be made.<br />
<br />
:::: Yes, I know how to upgrade and install extensions to Mediawiki. But, I would had to get ssh access to the server and RWX rights to Mediawiki directory. A database backup would be necessary (and I should have access to it in this case, also). If you have admin rights to the wiki, so you can perform admin tasks for me, when it's necessary.<br />
:::::Yes, you know what you need, and you can get the access by asking on the Infra ML (infrastructure@apache.org). Send from your Apache address, with a subject like, "Request root access to ooo-Mwiki VM". I think they will be glad to hear from you, when you spell out your expertise as you have done here. I haven't asked for such access, because I don't have (yet) the knowledge to use it. I will add a new section on this page for a data dump of what I've learned about the physical setup.<br />
<br />
:::For your other plans, I suggest you pick out some segment for a pilot program, and work the bugs out; there are thousands of pages needing attention. But don't let this tired old man dampen your enthusiasm! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 01:35, 18 May 2012 (UTC)<br />
<br />
:::: Well TJ, I am not exactly a kid anymore for a long, long time. At least in my body. In my soul I feel like a kid yet =)<br />
:::::Some of us on the high side of 70 have merely lived a long time; others of us are ''old''. I must regretfully admit to which one I am.<br />
:::: I am planning to use PT-BR section for my tests. This will not affect any feature of actual wiki. Pages/Templates/Forms/Properties can be created transparently and released to production when ready. The only impact will be in the categories structure. I shall have to do some modifications, but I won't do that without notice. Before that, I will show you a new ontology (categories/properties structure), put it into discussion, so we can find the best way to improve the wiki, right?<br />
:::::Sounds great to me. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
:::P.s.: Do I assume correctly that you mean MW versions 1.17.x and 1.19.x ?<br />
<br />
:::: Yes, that's it. Thank you very much for your help.<br />
==The Physical Wiki==<br />
This wiki is housed on a VM, running a LAMP stack. "L" = some version of Ubuntu. In addition to the MW software, we run the Apache Traffic Server (ATS) as a front end. (Some adjustment is needed here: as of this writing, ATS sometimes serves up stale pages.)<br />
<br />
Exact information on extensions and versions should be available on the [[Special:Version|Version]] page. Known problems include:<br />
* The locally written IDL extension is not the latest version; this was an error during the move to Apache. The latest version needs to be found and installed, so that the <nowiki><idlml></nowiki> tags work.<br />
* MW was undergoing a change to the Math support, during MW v17. Math is showing errors on our installation (see example on [[User:TJFrazier|my user page]]), which have probably been fixed in a later MW release.<br />
:*Many thanks to Imacat, who installed the Textvc code, and fixed the math problem. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 19:47, 30 July 2012 (UTC)<br />
<br />
--[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
== Wanted Categories ==<br />
<br />
Hi TJ<br />
<br />
There is a [[Special:WantedCategories|Wanted Categories]], '''Category:RU/Авторы/А. Е. Харламенков''', that has been recently deleted. What do we do?<br />
<br />
Thanks [[User:Adailton|Adailton]] 15:16, 18 September 2012 (UTC)<br />
<br />
:Nothing. The category was marked for speedy delete, by the Russian fellow who created it. I deleted it. Why it's showing up on that special page is a mystery. I'll poke around some. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:55, 18 September 2012 (UTC)<br />
::That I understood. It is listed on the special page to have a page, [[RU/kb/common/programming]], the same author category. I think I must remove the category of the page, but it is a hidden category within a Template. [[User:Adailton|Adailton]] 16:07, 18 September 2012 (UTC)<br />
:::I must confess that I couldn't trace through the signature-related templates to find the Category call. So I commented out the signature (which is against policy anyway; sign with wiki signatures, if at all). Special page now empty. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:35, 18 September 2012 (UTC)<br />
::::Ok, unusual solution but ''problem'' solved. [[User:Adailton|Adailton]] 22:16, 18 September 2012 (UTC)<br />
<br />
== SimpleNonprofitAccountingTemplate ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[SimpleNonprofitAccountingTemplate]]<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:03, 27 September 2012 (UTC)<br />
<br />
:ROFL! Just adding that to the doc list when I got your message. I'll categorize it properly, too. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:08, 27 September 2012 (UTC)<br />
<br />
==Question on adding Justification to marking a page for Speedy Delete==<br />
Hi TJ;<br />
<br />
I wanted to mark a page for speedy delete and noticed in the in the preview that there was a section for adding a justification when you use the delete template. Was wondering what the proper syntax was for adding that. Appreciate your time and help.<br />
<br />
Regards<br />
Keith<br />
<br />
:Hi, Keith,<br />
<br />
:User Adailton's reply to you is authoritative: he added that field to the template. (He's a big help around here.)<br />
<br />
:Sorry for the slow reply, but Sandy did interrupt my power for several hours, and threatened to do worse. I didn't want to be in the middle of doing something here on the wiki, and have to quit. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:59, 27 October 2012 (UTC)<br />
<br />
== Hurricane Sandy ==<br />
<br />
Hi TJ<br />
<br />
Welcome back! I hope that Sandy has not given him much trouble.<br />
<br />
Spammers have given some work here, but everything under contrrole.<br />
<br />
Regards [[User:Adailton|Adailton]] 13:14, 27 October 2012 (UTC)<br />
<br />
<br />
:Sandy came and went, with no lasting problems. Now I'm catching up. Thanks for covering. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:19, 27 October 2012 (UTC)<br />
<br />
== File:FreedomFleetAttendance.xls ==<br />
<br />
Hi TJ<br />
<br />
[:File:FreedomFleetAttendance.xls] some use?<br />
<br />
[] [[User:Adailton|Adailton]] 10:18, 12 November 2012 (UTC)<br />
<br />
<br />
:Not that I could see, so I deleted it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:37, 12 November 2012 (UTC)<br />
<br />
== New pages ==<br />
Hi TJ<br />
<br />
[[Special:NewPages|some pages created November 12 were forgotten]]<br />
<br />
Regards [[User:Adailton|Adailton]] 10:47, 14 November 2012 (UTC)<br />
<br />
:I see only one new page, in User space, and you erased the spam on it. Do you see other new pages on some other list? <br />
:There was some kind of error about then, on the wiki; one of my operations timed out, so I just went away for a while. Maybe some logs (or pages) were lost. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:16, 14 November 2012 (UTC)<br />
<br />
== Sysop ==<br />
Hi TJ<br />
<br />
I worried that I am not fluent in the language. I read a little English, and generally use the google translator to long paragraphs.<br />
<br />
I will be more cautious, but stay tuned for elimination and blocks.<br />
<br />
Regards [[User:Adailton|Adailton]] 15:07, 17 November 2012 (UTC)<br />
:The more users doing good work, less work for each. [[User:Helen russian|Helen russian]] also did good job. Thanks [[User:Adailton|Adailton]] 23:03, 18 November 2012 (UTC)<br />
::What a busy day! I have deleted more than 130 pages today. TJ, Adailton, Andrew, I need a time-out. :-) I'll be back in 12 hours (at 4:00 UTC). Please don't lose me. --[[User:Helen russian|Helen]] 16:09, 19 November 2012 (UTC)<br />
<br />
::I see a new Russian sysop [[User:Yak|Yak]]. It's great! Yakov, thank you for joining us --[[User:Helen russian|Helen]] 03:44, 20 November 2012 (UTC)<br />
<br />
:::You folks have been doing a super job! Help is on the way: see the Mwiki threads on dev@, plus the new section on my user page. That info is not current yet, but it will be. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 13:01, 20 November 2012 (UTC)<br />
<br />
::Hi TJ, any news? --[[User:Helen russian|Helen]] 02:15, 21 November 2012 (UTC)<br />
<br />
== Excessive spamming ==<br />
<br />
Hi TJ<br />
<br />
I made a [[Special:Log/protect|protection]] to prevent re-creation. What do you think?<br />
<br />
Regards [[User:Adailton|Adailton]] 10:26, 22 November 2012 (UTC)<br />
<br />
:Good move! We can delete it when the spam attack is over. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 10:49, 22 November 2012 (UTC)<br />
<br />
== How long will the spam attack? ==<br />
Hi TJ<br />
<br />
How long will the spam attack? Can I search for additional volunteers from the Russian community? --[[User:Helen russian|Helen]] 02:23, 23 November 2012 (UTC)<br />
<br />
:Hi, Helen,<br />
<br />
:We have a new recruit for site maintainer: Jan Iversen (also new Bureaucrat and sysop). Hopefully his access will be finished tonight or tomorrow, and he will turn off the spam user creation and delete their accounts. You will know for sure when you see a banner announcement about it, explaining that new accounts are by invitation only.<br />
<br />
:I can't guarantee the timing. You are welcome to search for more volunteers, and I will appoint them as sysops on your say-so. I just hope they won't have anything to do! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 02:38, 23 November 2012 (UTC)<br />
<br />
::OK. I'll try to find some volunteers for the job today after 11:00 UTC. --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
<br />
:::P.S.: Adailton found a clever way to defeat the repeated spamming of a few pages. Protect them to the Administrator level, then delete. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:28, 23 November 2012 (UTC)<br />
:::: OK --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
:::::TJ, delete first, then protect the page. This prevents an editor to create again. [[User:Adailton|Adailton]] 05:33, 23 November 2012 (UTC)<br />
<br />
== Need Create New Pages permission ==<br />
<br />
Started the proect to merge the FAQ's from the web site into the wiki and find my account does not have Create New Pages Permissions. Can you add them please or should I send a formal request through the dev list. Thanks for the help<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 02:55, 11 December 2012 (UTC)<br />
<br />
== Request for advice from mWiki guru ==<br />
<br />
After a closer look at all the materials involved with consolidating the FAQ's from the web site into the Wiki it appears the most effiecient way todo it would be to create some new Documentation\FAQ catagories and restructure the toc to add them. Given what is currently going on would it be best to just fit them in to the current structure and wait until the update is completed and then make the changes and reassign the new FAQ's to them? The alternative would be to do it know and I would need a crash course (mostly on reading the help files) on the intricacies of doing it.<br />
<br />
Sorry to be a pain with questions, but the engineer in me says ask the questions first before you really muck something up!<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 20:53, 12 December 2012 (UTC)<br />
<br />
:Keith, your cautious approach is much appreciated.<br />
<br />
:First, go right ahead now. This work should not be affected by the upgrades and such.<br />
<br />
:Second, IIRC, the lowest-level listing is all done with DPL and categories. The relevant help files for the DPL extensions (we're using the older one) are on [http://www.mediawiki.org/wiki/MediaWiki MediaWiki], which can (surprisingly) be a little hard to reach from Wp. You can probably do just what I'd do: copy an existing page, changing only the particular data (category name). Then put the appropriate new category on each new page: <nowiki>[[Category:whatever]]</nowiki>.<br />
<br />
:The higher-level toc (purple box) is built by one template calling another. The Master TOC template positions and paints the box; the FAQTOC template supplies the data, so this is what you need to edit. Wp has scads of help on templates; it is a much more powerful feature than any reasonable person would ever need. Fortunately, again all you probably need to do is copy and adjust existing entries to show the new stuff. The Preview button is your friend. Please try to minimize the number of edits to templates: an edit change kicks off a chain of replacements for every calling page, which can bog down the wiki for minutes. Note that you can call templates from your own space. That makes experimenting cheap. <nowiki>{{User:KNetc/test}}</nowiki> or something similar should suffice, where page "test" is a copy of the real template.<br />
<br />
:I'm fairly ignorant about DPL, but I'm useful on templates. Ask if you have problems. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 01:55, 13 December 2012 (UTC)<br />
<br />
::TJ I spent the better part of 20 years in Manufacturing Engineering first as a tech and then as an engineer. Have seen to many screw-ups that could have been prevented by asking "stupid questions" first. Not fun having to explain to ops managers why they lost x number of man hours / days.<br />
<br />
::First, since there should be no conflicts with the upgrades et al, I will venture down the path of creating new catagories and updating the toc.<br />
<br />
::Second, I will spend a few days this weekend looking over the help sections that you point to and try some experimenting in my "sandbox". Is there a time frame that would be best to go "live" with the changes to the FAQtoc to have the least disruption to the rest of the community on the Wiki?<br />
<br />
::Believe me if I have questions believe me I will ask. Thank you for all the info and your willingness to help.<br />
<br />
::Regards [[User:KNMcKenna|Keith]] 22:11, 13 December 2012 (UTC)<br />
<br />
I suggest that you make a copy[1] of faqtoc, maybe "factoc2", in template space. Just click on a link like this one: [[Template:factoc2]]. You can edit that one all you want, because only the few pages you build will be affected. At the very end, copy it back — only one edit to the live template, so you needn't worry about the timing. Then change the links (the special page, "What links here" is your friend) and delete the copy.<br />
<br />
Feel free to put the links to the new subdivisions[2] where they belong, on the Documentation or Doc/FAQ pages, but please hang the "Under Construction" sign on anything incomplete, in case users blunder into it.<br />
<br />
Thank you very much for undertaking this task.<br />
<br />
<br />
Notes:<br /><br />
[1] "copy" means Edit | Select all | Copy | Cancel edit on the source page, then Edit | Paste on the new page.<br /><br />
[2] I used a different term, because you will be creating some wiki Category pages, too. Using the redlink method, just reference the new category as usual, at the bottom of the new faq page. That will show as a redlink; click on it, add a one-line description, and save the page. Nothing to it! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:32, 14 December 2012 (UTC)<br />
<br />
==Speedy Delete==<br />
Hi TJ<br />
<br />
I wish you a Merry Christmas :)<br />
<br />
I have been absent due to commitments, but I must return to work soon<br />
<br />
[[:Category:Candidates for speedy deletion]] is ''Outdated, not valid''? There is another to replace it?<br />
<br />
Even if only administrators are active, I think at times be necessary ''ask'' the opinion of others about certain deletions to prevent undue eliminations. In wikipedia the ''normal'' is always an editor (even an administrator) mark and an administrator check and then eliminate.<br />
<br />
There needs to alter {{tl|delete}}?<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 08:52, 25 December 2012 (UTC)<br />
<br />
:Agree that the category is needed, so I replaced it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 12:32, 25 December 2012 (UTC)<br />
==Category Names Problem==<br />
Hi TJ <br />
<br />
In [[Special:WantedCategories]] there in many categories, but all with ''problems'' in the title, probably due to a misconfiguration in for special characters needed for languages like Polish, Portuguese, French, Russian, etc. But I do not know exactly how to fix it.<br />
<br />
For exemples: [[:Category:Wdrożenia]] would be [[:Category:Wdrożenia]] ('''ż''')<br />
<br />
This may have occurred before December 25, the date of deletion. Possibly the time of spam attack, in november.<br />
<br />
I'll create the correct categories, with the hope that it would remove the entries in special page.<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 13:57, 7 January 2013 (UTC)<br />
<br />
:This looks to me to be a problem related to the UTF-8 settings and conversion, which was part of the upgrade on 12/25. The pages themselves seem to be properly categorized; why they are showing up in "Wanted" is a mystery. I'll ask Jan about it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 15:27, 7 January 2013 (UTC)<br />
<br />
== String character index base ==<br />
<br />
Thanks for adding the clarification. I'd found it out myself by experimentation, but it's good to have authoritative backing.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 09:55, 22 January 2013 (UTC)<br />
<br />
:Thank you for taking the trouble to point out the ambiguity. There are other places where only some experimentation will show how to do it, and they all should be fixed. Probably the worst has to do with the cursors (text and view); I'm working on that. Please feel free to point out any problems you find. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 12:13, 22 January 2013 (UTC)<br />
<br />
::I agree - a lot of the time it's not easy to work out how to do something. I've found out how to open documents from templates - would you like me to add a para to the wiki? Also how to save documents (still working out what to do with all those document properties, though).[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 15:03, 23 January 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Extensions_development_basicTalk:Extensions development basic2013-01-22T11:59:49Z<p>Ptoye: </p>
<hr />
<div>== Name Change Proposal ==<br />
<br />
I think the name of this article should be changed to ''OpenOffice.org Basic''. I know that the ''OpenOffice.org'' part sounds redundant because the whole wiki is about OpenOffice.org. However, the title ''Basic'' would be too generic. Check out Wikipedia where there is already an article called ''StarOffice Basic''. Not much there though.<br />
<br />
Only reason I bring this up is that I had trouble finding out the basics of writing Basic code in OOo. I googled into the [[custom functions]] article and I scanned through Category:Basic:Tutorials and did not see anything. [[User:Jebix|Jebix]] 04:48, 6 July 2006 (CEST)<br />
<br />
May I suggest, as a compromise, "OO Basic"? It's not in Wikipedia.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:43, 22 January 2013 (UTC)<br />
<br />
== Path for the Makros ==<br />
<br />
this I found in the article:<br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br />
Tools > Options… > OpenOffice.org > Paths > BASIC<br />
<br />
but I can't find it there in 2.0.4<br />
<br />
Please Explain<br />
<br />
I'm interested to know where there diffenrent makros are saved and maybe change it<br />
<br />
<br />
Mechtilde<br />
<br />
== More help on opening and saving documents needed ==<br />
<br />
I'm trying to work out two things: how to open a document using an existing template, and how to save the resulting document. When I've worked it out, I'll try to edit this page, but some input from people who know more about it than myself would be useful.... [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:46, 22 January 2013 (UTC)<br />
<br />
There's also a minor typo in the examples: the "_blank" parameter is on one occasion typed as "&nbsp;blank". Interestingly, it still works, so it looks as if the API documentation is a bit wrong there. [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:59, 22 January 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Extensions_development_basicTalk:Extensions development basic2013-01-22T11:46:06Z<p>Ptoye: /* More help on opening and saving documents needed */ new section</p>
<hr />
<div>== Name Change Proposal ==<br />
<br />
I think the name of this article should be changed to ''OpenOffice.org Basic''. I know that the ''OpenOffice.org'' part sounds redundant because the whole wiki is about OpenOffice.org. However, the title ''Basic'' would be too generic. Check out Wikipedia where there is already an article called ''StarOffice Basic''. Not much there though.<br />
<br />
Only reason I bring this up is that I had trouble finding out the basics of writing Basic code in OOo. I googled into the [[custom functions]] article and I scanned through Category:Basic:Tutorials and did not see anything. [[User:Jebix|Jebix]] 04:48, 6 July 2006 (CEST)<br />
<br />
May I suggest, as a compromise, "OO Basic"? It's not in Wikipedia.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:43, 22 January 2013 (UTC)<br />
<br />
== Path for the Makros ==<br />
<br />
this I found in the article:<br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br />
Tools > Options… > OpenOffice.org > Paths > BASIC<br />
<br />
but I can't find it there in 2.0.4<br />
<br />
Please Explain<br />
<br />
I'm interested to know where there diffenrent makros are saved and maybe change it<br />
<br />
<br />
Mechtilde<br />
<br />
== More help on opening and saving documents needed ==<br />
<br />
I'm trying to work out two things: how to open a document using an existing template, and how to save the resulting document. When I've worked it out, I'll try to edit this page, but some input from people who know more about it than myself would be useful.... [[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:46, 22 January 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Extensions_development_basicTalk:Extensions development basic2013-01-22T11:43:00Z<p>Ptoye: /* Name Change Proposal */</p>
<hr />
<div>== Name Change Proposal ==<br />
<br />
I think the name of this article should be changed to ''OpenOffice.org Basic''. I know that the ''OpenOffice.org'' part sounds redundant because the whole wiki is about OpenOffice.org. However, the title ''Basic'' would be too generic. Check out Wikipedia where there is already an article called ''StarOffice Basic''. Not much there though.<br />
<br />
Only reason I bring this up is that I had trouble finding out the basics of writing Basic code in OOo. I googled into the [[custom functions]] article and I scanned through Category:Basic:Tutorials and did not see anything. [[User:Jebix|Jebix]] 04:48, 6 July 2006 (CEST)<br />
<br />
May I suggest, as a compromise, "OO Basic"? It's not in Wikipedia.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 11:43, 22 January 2013 (UTC)<br />
<br />
== Path for the Makros ==<br />
<br />
this I found in the article:<br />
<br />
To determine the actual folders that contain the OpenOffice.org libraries see:<br />
Tools > Options… > OpenOffice.org > Paths > BASIC<br />
<br />
but I can't find it there in 2.0.4<br />
<br />
Please Explain<br />
<br />
I'm interested to know where there diffenrent makros are saved and maybe change it<br />
<br />
<br />
Mechtilde</div>Ptoyehttps://wiki.openoffice.org/wiki/User_talk:TJFrazierUser talk:TJFrazier2013-01-22T09:55:58Z<p>Ptoye: </p>
<hr />
<div>This is a good place to leave me a note. :-) --[[User:TJFrazier|TJ]] 23:48, 8 May 2009 (UTC)<br />
<br />
<br />
(This is to remind myself to fix the cache description, WIGATI.)--[[User:TJFrazier|TJ]] 20:05, 26 September 2009 (UTC)<br />
<br />
{{CURRENTTIME}}<br />
<br />
==warring==<br />
http://wiki.services.openoffice.org/wiki/Talk:RU/rules_and_information_policy<br />
<br />
http://wiki.services.openoffice.org/w/index.php?title=RU/rules_and_information_policy&action=history<br />
<br />
User [[User:Sancho|Sancho]] doesn't discuss anything.<br />
In English, differences between pages:<br />
http://translate.google.ru/translate?hl=ru&ie=UTF-8&sl=ru&tl=en&u=http://wiki.services.openoffice.org/w/index.php%3Ftitle%3DRU%252Frules_and_information_policy%26diff%3D169023%26oldid%3D169013&prev=_t<br />
<br />
Sancho does not discuss anything, but writes the rules that always repeat "forbidden", "you must or else the page you create will be deleted", "do not", "never" and so on. We change it to "it is recommended", "it is better", "page is going to be edited" and so on.<br />
<br />
User [[User:Sancho|Sancho]] doesn't reply neither in its personal discussion page, nor in the the article's talk and ignores all messages.<br />
<br />
What shall we do in this case?<br />
<br />
:Just what you did do: bring the matter to the attention of a sysop (administrator). Edit warring is a serious offense, and may lead to blocks. I will be posting a lecture on Sancho's Talk page. Meanwhile, please follow one simple rule: do ''not'' undo anyone's edits but your own, without discussing the matter on the associated Talk page. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:01, 22 May 2010 (UTC)<br />
<br />
Here are more articles Sancho refusing to discuss (so far):<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/qa/run_ooo_versions_parallel<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/Documentation/FAQ/General --[[User:Fyva|Fyva]] 05:34, 23 May 2010 (UTC)<br />
<br />
== thanks from elcico ==<br />
<br />
Dear TJ thank you for your welcome and for your suggestion.<br />
I've changed my mail address, now it should be ok!<br />
Thanks again!<br />
elcico :)<br />
<br />
P.S. Hope this is the right place to reply... just delete after you read! :)<br />
: You're quite welcome. Why ever should I delete a nice thank-you note? --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:34, 2 June 2010 (UTC)<br />
<br />
== Keyboard shortcuts, special characters ==<br />
<br />
Hi TJ, While tripping through the FAQs in search of anyplace I can help, I have found your useful answer (FAQ-Writer-Formatting Text) about how to insert special characters using macros to create keyboard shortcuts. As an alternative, I thought of adding the Windows shortcuts such as I use in Word at work to create a pounds sterling sign (i.e. Alt+0163), but I can't get those combinations to work in Writer. I'm on my laptop at home and am not sure if the Alt-key alternative just does not work in OpenOffice, or if the phenomenon is due to my using a laptop keyboard without the extra number keypad. In the hopes that no question is a dumb question... I ask... do the Alt-key combinations for special characters work in OOo?<br />
:Hi, Lisa, Yes; with my keyboard (with full numeric keypad) they work fine. I use Alt+0151 for em-dash regularly. There may be a num-lock or Fn special key that you need to simulate the numeric keypad; check your laptop's documentation. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:34, 29 June 2010 (UTC)<br />
<br />
== Re: Editing templates ==<br />
<br />
Sorry about the inconvenience. I rarely edit templates on Wikis, being mindful that such edits can have far-reaching effects. FYI, I didn't notice any slowdown: This Wiki has far fewer articles and users than the English Wikipedia.&nbsp;&mdash;&nbsp;[[User:User8192|User8192]]<sup>[[User_talk:User8192|T]] [[Special:Emailuser/User8192|@]]</sup> 17:46, 1 September 2011 (UTC)<br />
<br />
== Category:MainIndex ==<br />
<br />
Hi TJ<br />
<br />
The [[:category:MainIndex]] is '''[[Special:UncategorizedCategories|uncategorized]]''' if ''not put cat into itself'' or [[Special:Categories|another category or subcategory]].<br />
<br />
Do you know another solution?<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:04, 11 January 2012 (UTC)<br />
:right, then it stay uncategorized. [[User:Adailton|Adailton]] 13:58, 12 January 2012 (UTC)<br />
<br />
== Broken Redirects ==<br />
<br />
[[Documentation/FAQ/General/What are the differences between StarOffice (old versions) and OpenOffice.org?]] deleted, ''obsolete FAQ - replaced by a newer version of same information''? should be a fusion of historical record of keeping the original creator of the page. what is the new version? and [[Documentation/FAQ/General/QA 0002]]? Thanks [[User:Adailton|Adailton]] 13:43, 15 January 2012 (UTC)<br />
<br />
:Nice catch. Found the replacement page and fixed the redirect accordingly. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:48, 15 January 2012 (UTC)<br />
<br />
== Category:Marketing ==<br />
Hi TJ<br />
<br />
User pages in [[:category:Marketing]]: [[User:Blibrestez55/Books/Database]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Allow import of only selected pagesn]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving char spaces]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving rotated text]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Introduction]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue105133]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue109708]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue90633]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue92919]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Misplaced paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Moving Proper paragraphs GlyphProcessor]], [[OpenOffice.org Internship/Tasks/Proper paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Testing proper paragraphs]], [[User:Khirano/Solutions]], [[User:RealGrouchy]], [[User:Wyrfel]].<br />
<br />
It seems '''inappropriate''' to have categorized '''users''' pages, so I ask whether they should be '''uncategorizaded''' or moved to the '''main domain'''? (I'm sorry but I do not quite understand the English Language, so I use a translator). [[User:Adailton|Adailton]] 13:43, 16 January 2012 (UTC)<br />
:English: "de-categorized" (= "have the category reference removed") is not a valid English word, either, but it is readily understandable.<br />
:Appropriateness: Since the users themselves added their pages to the category, I'm in favor of leaving them there. If somebody associated with marketing complains, we can make changes then. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 02:24, 17 January 2012 (UTC)<br />
<br />
== Candidates for speedy deletion ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[:Category:Candidates for speedy deletion]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 11:20, 27 January 2012 (UTC)<br />
<br />
:Removed most of the pure spam. Remaining candidates are mostly technical, and can be removed more slowly.<br />
:Thanks for the good work. If you are an Apache committer (or at least have an iCLA on file), I will enable you as a sysop ("Administrator group"). That would let you delete directly, and block spammers as well (very carefully!). --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 14:32, 27 January 2012 (UTC)<br />
<br />
==Speedy deletion==<br />
Hi TJ<br />
<br />
I made a change in {{tl|delete}} in order to include a justification for the deletion. Please see if it was good.<br />
<br />
I saw that there are 11,420 [[Special:UncategorizedFiles|files uncategorized]]. Are there any major [[Special:Categories|category]] for files? I just found [[:Category:Icons]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 14:38, 26 February 2012 (UTC)<br />
<br />
: '''Delete''': Looks good to me, if it works for you.<br />
<br />
: '''File Categories''': AFAIK, the files should be categorized according to the pages that link to them (plus descriptive categories, like "Icon"). This could be a non-trivial task; if a file is linked from pages in different categories, it may be desirable to climb the category tree to find the intersection, and categorize the file there. <br />
<br />
:Your help is much appreciated. I know much of templates, but only a little about categories. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:52, 26 February 2012 (UTC)<br />
::I think the categorization according to the pages that use is practical, but we can also categorize your files by grouping them by theme (icons, applications, screens, menu items, examples, etc.), without excluding one another. There are also PDF documents, which could be a category, but I will not create them if you think it should be done well. [[User:Adailton|Adailton]] 21:07, 26 February 2012 (UTC)<br />
<br />
:::pls, see: <br />
:::*[[Casino ohne download]]<br />
:::*[[User talk:Josebryan13]]<br />
:::*[[Deals - How can you make best deals on timeshare]]<br />
:::*[[Phentermine - How the phentermine works in your body.]] <br />
:::*[[Moving Company- How to make consequences favorable]]<br />
::: and related images. Tks [[User:Adailton|Adailton]] 22:21, 22 May 2012 (UTC)<br />
::::Gone! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 03:32, 23 May 2012 (UTC)<br />
:::::Please, see [[User:PressRTbox]]. [[User:Adailton|Adailton]] 22:04, 25 May 2012 (UTC)<br />
::::::Persistent pest, now blocked. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 23:26, 25 May 2012 (UTC)<br />
<br />
----<br />
Please, see [[User:Ulissi]] (and botton of user page) and history.<br />
:Left him a warning that the link farm may get deleted. My snap diagnosis is "enthusiastic amateur", rather than deliberate spammer, so I'm starting out gently.<br />
::Removed all external and red links. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:55, 18 September 2012 (UTC)<br />
<br />
I am looking at [http://wiki.services.openoffice.org/w/index.php?title=Special:LinkSearch&target=*.com Special:LinkSearch]. There are many abuses to be checked. tks [[User:Adailton|Adailton]] 11:08, 14 June 2012 (UTC)<br />
:Nice find of that page! The good news here is that almost all of those links seem legitimate. I only found one (the very last of the first 100) that was typical user-page spam (from 2009!), and deleted it. I'll run through the rest of the list, slowly.<br />
:Many thanks for all your help. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:59, 14 June 2012 (UTC)<br />
<br />
==New volunteer==<br />
Hello. I recently started to built some pages for brazilian community start to work and I'd like to contribute in the wiki maintenance also. I've created [[:Category:Outdated]] to mark all old content pages that need to be revised. I have a lot of suggestions to offer in order to make this wiki more affordable, but I am affraid to make changes without people's agreement. I do not wish to upset anyone so, please, if there is a wiki coordinator/administrator (or something like that), let me know. I don't wish to work '''against''' but '''with''' you. =) <br />. Thanks. <small>signed by sysop</small> 2012-05-17T09:12:32 [[User:PauloLima|PauloLima]]<br />
<br />
:Hi, Paolo!<br />
<br />
:I'm replying here, just to keep the whole conversation in one place. You can put a Watch on my Talk page if you like, or I'll put a note on yours. I see that you have met [[User:Adailton|Adailton]], who is a big help around here, chasing spammers. Whatever help you care to give is very welcome.<br />
<br />
::Hi TJ. This place is fine.<br />
<br />
:Like most everything at Apache, there is no "official" hierarchy on this wiki. The only sense in which I'm "it" is that I'm doing the work. I do have both sysop and bureaucrat privileges, and I will promote any committer to sysop who asks. My personal expertise runs to "expert user": knowledgeable on wiki markup, templates, ''etc.'' If you have plans to improve the user experience, go for it; I'll be glad to help you do it the easy way, if you like.<br />
<br />
:: Ok. I've been working with Mediawiki software intensively for the last 2 years. I've created/developed many of the pages in LibO PT_BR wiki, and I was responsible to develop the document translation workflow to PT-BR. That was a great learning. Now I wish to contribute here. These days, I am running a document management project for the company I work,using Mediawiki software, for for the last year, using its semantic features. And this was a great learning for me too. So, I proposed to use my experience in this area to help building an intelligent ontology that could ease the access tothe information in the wiki. But... In order to do that, it would be necessary to upgrade Mediawiki at least to 1.7.4 (1.9 would be better) and install some semantic extensions (maybe creating some new user's groups, if necessary). Can you help me on that? This should not impact the actual wiki's access/availbility, but can make available features for me to work on some sort of "snapshot". =)<br />
<br />
:Which reminds me: are you deliberately using the "preformatted text" option (starting your line with a space character), to create indentation? A colon (:) works better, because it wraps better. Use more colons for more levels of indentation (think, "tabs"). By convention, if you reply here, you would start your lines with two colons, I would reply with three, ...<br />
<br />
:: Yes. I'm using that. It's a matter of preferences. For me it looks better, but I have no objections in using identation =)<br />
<br />
:I look forward to your contributions. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 20:06, 17 May 2012 (UTC)<br />
<br />
:: I've created a category PT-BR for brazilian community begin to work. It was necessary, but, as Adailton pointed, maybe we could join PT-BR and PT sections, if it works better. I'm helping Kevin on UX team and looking for pages that must be updated/deleted. There are many outdated information here and it's necessary to classify them (that's why I've created a [[:Category:Outdated]]). In the next days I will navigate through the wiki to find and categorize those pages. After that, we will have a picture of what/where/who/when we need to do. If you and Adailton agree with that, of course. What do you think?<br />
<br />
:: [[User:PauloLima|PauloLima]] 22:17, 17 May 2012 (UTC)<br />
Preformatted text looks great — ''if'' you pre-format it!<br />
<br />
:::Otherwise, it has a nasty tendency to run right over the right-hand border, and just keep going. I find that both ugly and a nuisance, having to adjust the horizontal slider, and I had to do that a lot on your talk page. This may be browser- and skin-dependent. But, to more important matters.<br />
<br />
:::: Well, I have placed line breakers <nowiki>"<br />"</nowiki> in my replies, because I am aware of this issue. I don't know why you had this problem in you browser, maybe your screen resolution is too low. For me, my replies are been displayed with short lines and no horizontal slider both in Internet Explorer (Windows 98 in a virtual machine), Google Chrome and Mozilla Firefox (Ubuntu 11.10). But it doesn't matter, I can use identation. No problem.<br />
<br />
:::For upgrading MW and installing new extensions, you need a site-maintenance person, and that's not me. The only one I know of with the project is Raphael Bircher; otherwise, we depend on Infra. The problem is that none of those folks have any real expertise with MW or php, and neither do I. If you have command-line expertise, by all means volunteer on the Infra ML, and ask for access. Otherwise, I suppose we can try writing JIRA tickets. I am certainly in favor of an upgrade; there are problems with the <nowiki><math></nowiki> syntax that probably can only be fixed that way, and some other adjustments that should be made.<br />
<br />
:::: Yes, I know how to upgrade and install extensions to Mediawiki. But, I would had to get ssh access to the server and RWX rights to Mediawiki directory. A database backup would be necessary (and I should have access to it in this case, also). If you have admin rights to the wiki, so you can perform admin tasks for me, when it's necessary.<br />
:::::Yes, you know what you need, and you can get the access by asking on the Infra ML (infrastructure@apache.org). Send from your Apache address, with a subject like, "Request root access to ooo-Mwiki VM". I think they will be glad to hear from you, when you spell out your expertise as you have done here. I haven't asked for such access, because I don't have (yet) the knowledge to use it. I will add a new section on this page for a data dump of what I've learned about the physical setup.<br />
<br />
:::For your other plans, I suggest you pick out some segment for a pilot program, and work the bugs out; there are thousands of pages needing attention. But don't let this tired old man dampen your enthusiasm! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 01:35, 18 May 2012 (UTC)<br />
<br />
:::: Well TJ, I am not exactly a kid anymore for a long, long time. At least in my body. In my soul I feel like a kid yet =)<br />
:::::Some of us on the high side of 70 have merely lived a long time; others of us are ''old''. I must regretfully admit to which one I am.<br />
:::: I am planning to use PT-BR section for my tests. This will not affect any feature of actual wiki. Pages/Templates/Forms/Properties can be created transparently and released to production when ready. The only impact will be in the categories structure. I shall have to do some modifications, but I won't do that without notice. Before that, I will show you a new ontology (categories/properties structure), put it into discussion, so we can find the best way to improve the wiki, right?<br />
:::::Sounds great to me. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
:::P.s.: Do I assume correctly that you mean MW versions 1.17.x and 1.19.x ?<br />
<br />
:::: Yes, that's it. Thank you very much for your help.<br />
==The Physical Wiki==<br />
This wiki is housed on a VM, running a LAMP stack. "L" = some version of Ubuntu. In addition to the MW software, we run the Apache Traffic Server (ATS) as a front end. (Some adjustment is needed here: as of this writing, ATS sometimes serves up stale pages.)<br />
<br />
Exact information on extensions and versions should be available on the [[Special:Version|Version]] page. Known problems include:<br />
* The locally written IDL extension is not the latest version; this was an error during the move to Apache. The latest version needs to be found and installed, so that the <nowiki><idlml></nowiki> tags work.<br />
* MW was undergoing a change to the Math support, during MW v17. Math is showing errors on our installation (see example on [[User:TJFrazier|my user page]]), which have probably been fixed in a later MW release.<br />
:*Many thanks to Imacat, who installed the Textvc code, and fixed the math problem. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 19:47, 30 July 2012 (UTC)<br />
<br />
--[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
== Wanted Categories ==<br />
<br />
Hi TJ<br />
<br />
There is a [[Special:WantedCategories|Wanted Categories]], '''Category:RU/Авторы/А. Е. Харламенков''', that has been recently deleted. What do we do?<br />
<br />
Thanks [[User:Adailton|Adailton]] 15:16, 18 September 2012 (UTC)<br />
<br />
:Nothing. The category was marked for speedy delete, by the Russian fellow who created it. I deleted it. Why it's showing up on that special page is a mystery. I'll poke around some. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:55, 18 September 2012 (UTC)<br />
::That I understood. It is listed on the special page to have a page, [[RU/kb/common/programming]], the same author category. I think I must remove the category of the page, but it is a hidden category within a Template. [[User:Adailton|Adailton]] 16:07, 18 September 2012 (UTC)<br />
:::I must confess that I couldn't trace through the signature-related templates to find the Category call. So I commented out the signature (which is against policy anyway; sign with wiki signatures, if at all). Special page now empty. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:35, 18 September 2012 (UTC)<br />
::::Ok, unusual solution but ''problem'' solved. [[User:Adailton|Adailton]] 22:16, 18 September 2012 (UTC)<br />
<br />
== SimpleNonprofitAccountingTemplate ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[SimpleNonprofitAccountingTemplate]]<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:03, 27 September 2012 (UTC)<br />
<br />
:ROFL! Just adding that to the doc list when I got your message. I'll categorize it properly, too. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:08, 27 September 2012 (UTC)<br />
<br />
==Question on adding Justification to marking a page for Speedy Delete==<br />
Hi TJ;<br />
<br />
I wanted to mark a page for speedy delete and noticed in the in the preview that there was a section for adding a justification when you use the delete template. Was wondering what the proper syntax was for adding that. Appreciate your time and help.<br />
<br />
Regards<br />
Keith<br />
<br />
:Hi, Keith,<br />
<br />
:User Adailton's reply to you is authoritative: he added that field to the template. (He's a big help around here.)<br />
<br />
:Sorry for the slow reply, but Sandy did interrupt my power for several hours, and threatened to do worse. I didn't want to be in the middle of doing something here on the wiki, and have to quit. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:59, 27 October 2012 (UTC)<br />
<br />
== Hurricane Sandy ==<br />
<br />
Hi TJ<br />
<br />
Welcome back! I hope that Sandy has not given him much trouble.<br />
<br />
Spammers have given some work here, but everything under contrrole.<br />
<br />
Regards [[User:Adailton|Adailton]] 13:14, 27 October 2012 (UTC)<br />
<br />
<br />
:Sandy came and went, with no lasting problems. Now I'm catching up. Thanks for covering. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:19, 27 October 2012 (UTC)<br />
<br />
== File:FreedomFleetAttendance.xls ==<br />
<br />
Hi TJ<br />
<br />
[:File:FreedomFleetAttendance.xls] some use?<br />
<br />
[] [[User:Adailton|Adailton]] 10:18, 12 November 2012 (UTC)<br />
<br />
<br />
:Not that I could see, so I deleted it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:37, 12 November 2012 (UTC)<br />
<br />
== New pages ==<br />
Hi TJ<br />
<br />
[[Special:NewPages|some pages created November 12 were forgotten]]<br />
<br />
Regards [[User:Adailton|Adailton]] 10:47, 14 November 2012 (UTC)<br />
<br />
:I see only one new page, in User space, and you erased the spam on it. Do you see other new pages on some other list? <br />
:There was some kind of error about then, on the wiki; one of my operations timed out, so I just went away for a while. Maybe some logs (or pages) were lost. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:16, 14 November 2012 (UTC)<br />
<br />
== Sysop ==<br />
Hi TJ<br />
<br />
I worried that I am not fluent in the language. I read a little English, and generally use the google translator to long paragraphs.<br />
<br />
I will be more cautious, but stay tuned for elimination and blocks.<br />
<br />
Regards [[User:Adailton|Adailton]] 15:07, 17 November 2012 (UTC)<br />
:The more users doing good work, less work for each. [[User:Helen russian|Helen russian]] also did good job. Thanks [[User:Adailton|Adailton]] 23:03, 18 November 2012 (UTC)<br />
::What a busy day! I have deleted more than 130 pages today. TJ, Adailton, Andrew, I need a time-out. :-) I'll be back in 12 hours (at 4:00 UTC). Please don't lose me. --[[User:Helen russian|Helen]] 16:09, 19 November 2012 (UTC)<br />
<br />
::I see a new Russian sysop [[User:Yak|Yak]]. It's great! Yakov, thank you for joining us --[[User:Helen russian|Helen]] 03:44, 20 November 2012 (UTC)<br />
<br />
:::You folks have been doing a super job! Help is on the way: see the Mwiki threads on dev@, plus the new section on my user page. That info is not current yet, but it will be. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 13:01, 20 November 2012 (UTC)<br />
<br />
::Hi TJ, any news? --[[User:Helen russian|Helen]] 02:15, 21 November 2012 (UTC)<br />
<br />
== Excessive spamming ==<br />
<br />
Hi TJ<br />
<br />
I made a [[Special:Log/protect|protection]] to prevent re-creation. What do you think?<br />
<br />
Regards [[User:Adailton|Adailton]] 10:26, 22 November 2012 (UTC)<br />
<br />
:Good move! We can delete it when the spam attack is over. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 10:49, 22 November 2012 (UTC)<br />
<br />
== How long will the spam attack? ==<br />
Hi TJ<br />
<br />
How long will the spam attack? Can I search for additional volunteers from the Russian community? --[[User:Helen russian|Helen]] 02:23, 23 November 2012 (UTC)<br />
<br />
:Hi, Helen,<br />
<br />
:We have a new recruit for site maintainer: Jan Iversen (also new Bureaucrat and sysop). Hopefully his access will be finished tonight or tomorrow, and he will turn off the spam user creation and delete their accounts. You will know for sure when you see a banner announcement about it, explaining that new accounts are by invitation only.<br />
<br />
:I can't guarantee the timing. You are welcome to search for more volunteers, and I will appoint them as sysops on your say-so. I just hope they won't have anything to do! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 02:38, 23 November 2012 (UTC)<br />
<br />
::OK. I'll try to find some volunteers for the job today after 11:00 UTC. --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
<br />
:::P.S.: Adailton found a clever way to defeat the repeated spamming of a few pages. Protect them to the Administrator level, then delete. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:28, 23 November 2012 (UTC)<br />
:::: OK --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
:::::TJ, delete first, then protect the page. This prevents an editor to create again. [[User:Adailton|Adailton]] 05:33, 23 November 2012 (UTC)<br />
<br />
== Need Create New Pages permission ==<br />
<br />
Started the proect to merge the FAQ's from the web site into the wiki and find my account does not have Create New Pages Permissions. Can you add them please or should I send a formal request through the dev list. Thanks for the help<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 02:55, 11 December 2012 (UTC)<br />
<br />
== Request for advice from mWiki guru ==<br />
<br />
After a closer look at all the materials involved with consolidating the FAQ's from the web site into the Wiki it appears the most effiecient way todo it would be to create some new Documentation\FAQ catagories and restructure the toc to add them. Given what is currently going on would it be best to just fit them in to the current structure and wait until the update is completed and then make the changes and reassign the new FAQ's to them? The alternative would be to do it know and I would need a crash course (mostly on reading the help files) on the intricacies of doing it.<br />
<br />
Sorry to be a pain with questions, but the engineer in me says ask the questions first before you really muck something up!<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 20:53, 12 December 2012 (UTC)<br />
<br />
:Keith, your cautious approach is much appreciated.<br />
<br />
:First, go right ahead now. This work should not be affected by the upgrades and such.<br />
<br />
:Second, IIRC, the lowest-level listing is all done with DPL and categories. The relevant help files for the DPL extensions (we're using the older one) are on [http://www.mediawiki.org/wiki/MediaWiki MediaWiki], which can (surprisingly) be a little hard to reach from Wp. You can probably do just what I'd do: copy an existing page, changing only the particular data (category name). Then put the appropriate new category on each new page: <nowiki>[[Category:whatever]]</nowiki>.<br />
<br />
:The higher-level toc (purple box) is built by one template calling another. The Master TOC template positions and paints the box; the FAQTOC template supplies the data, so this is what you need to edit. Wp has scads of help on templates; it is a much more powerful feature than any reasonable person would ever need. Fortunately, again all you probably need to do is copy and adjust existing entries to show the new stuff. The Preview button is your friend. Please try to minimize the number of edits to templates: an edit change kicks off a chain of replacements for every calling page, which can bog down the wiki for minutes. Note that you can call templates from your own space. That makes experimenting cheap. <nowiki>{{User:KNetc/test}}</nowiki> or something similar should suffice, where page "test" is a copy of the real template.<br />
<br />
:I'm fairly ignorant about DPL, but I'm useful on templates. Ask if you have problems. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 01:55, 13 December 2012 (UTC)<br />
<br />
::TJ I spent the better part of 20 years in Manufacturing Engineering first as a tech and then as an engineer. Have seen to many screw-ups that could have been prevented by asking "stupid questions" first. Not fun having to explain to ops managers why they lost x number of man hours / days.<br />
<br />
::First, since there should be no conflicts with the upgrades et al, I will venture down the path of creating new catagories and updating the toc.<br />
<br />
::Second, I will spend a few days this weekend looking over the help sections that you point to and try some experimenting in my "sandbox". Is there a time frame that would be best to go "live" with the changes to the FAQtoc to have the least disruption to the rest of the community on the Wiki?<br />
<br />
::Believe me if I have questions believe me I will ask. Thank you for all the info and your willingness to help.<br />
<br />
::Regards [[User:KNMcKenna|Keith]] 22:11, 13 December 2012 (UTC)<br />
<br />
I suggest that you make a copy[1] of faqtoc, maybe "factoc2", in template space. Just click on a link like this one: [[Template:factoc2]]. You can edit that one all you want, because only the few pages you build will be affected. At the very end, copy it back — only one edit to the live template, so you needn't worry about the timing. Then change the links (the special page, "What links here" is your friend) and delete the copy.<br />
<br />
Feel free to put the links to the new subdivisions[2] where they belong, on the Documentation or Doc/FAQ pages, but please hang the "Under Construction" sign on anything incomplete, in case users blunder into it.<br />
<br />
Thank you very much for undertaking this task.<br />
<br />
<br />
Notes:<br /><br />
[1] "copy" means Edit | Select all | Copy | Cancel edit on the source page, then Edit | Paste on the new page.<br /><br />
[2] I used a different term, because you will be creating some wiki Category pages, too. Using the redlink method, just reference the new category as usual, at the bottom of the new faq page. That will show as a redlink; click on it, add a one-line description, and save the page. Nothing to it! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:32, 14 December 2012 (UTC)<br />
<br />
==Speedy Delete==<br />
Hi TJ<br />
<br />
I wish you a Merry Christmas :)<br />
<br />
I have been absent due to commitments, but I must return to work soon<br />
<br />
[[:Category:Candidates for speedy deletion]] is ''Outdated, not valid''? There is another to replace it?<br />
<br />
Even if only administrators are active, I think at times be necessary ''ask'' the opinion of others about certain deletions to prevent undue eliminations. In wikipedia the ''normal'' is always an editor (even an administrator) mark and an administrator check and then eliminate.<br />
<br />
There needs to alter {{tl|delete}}?<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 08:52, 25 December 2012 (UTC)<br />
<br />
:Agree that the category is needed, so I replaced it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 12:32, 25 December 2012 (UTC)<br />
==Category Names Problem==<br />
Hi TJ <br />
<br />
In [[Special:WantedCategories]] there in many categories, but all with ''problems'' in the title, probably due to a misconfiguration in for special characters needed for languages like Polish, Portuguese, French, Russian, etc. But I do not know exactly how to fix it.<br />
<br />
For exemples: [[:Category:Wdrożenia]] would be [[:Category:Wdrożenia]] ('''ż''')<br />
<br />
This may have occurred before December 25, the date of deletion. Possibly the time of spam attack, in november.<br />
<br />
I'll create the correct categories, with the hope that it would remove the entries in special page.<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 13:57, 7 January 2013 (UTC)<br />
<br />
:This looks to me to be a problem related to the UTF-8 settings and conversion, which was part of the upgrade on 12/25. The pages themselves seem to be properly categorized; why they are showing up in "Wanted" is a mystery. I'll ask Jan about it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 15:27, 7 January 2013 (UTC)<br />
<br />
== String character index base ==<br />
<br />
Thanks for adding the clarification. I'd found it out myself by experimentation, but it's good to have authoritative backing.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 09:55, 22 January 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/User_talk:TJFrazierUser talk:TJFrazier2013-01-22T09:54:27Z<p>Ptoye: /* String character index base */ new section</p>
<hr />
<div>This is a good place to leave me a note. :-) --[[User:TJFrazier|TJ]] 23:48, 8 May 2009 (UTC)<br />
<br />
<br />
(This is to remind myself to fix the cache description, WIGATI.)--[[User:TJFrazier|TJ]] 20:05, 26 September 2009 (UTC)<br />
<br />
{{CURRENTTIME}}<br />
<br />
==warring==<br />
http://wiki.services.openoffice.org/wiki/Talk:RU/rules_and_information_policy<br />
<br />
http://wiki.services.openoffice.org/w/index.php?title=RU/rules_and_information_policy&action=history<br />
<br />
User [[User:Sancho|Sancho]] doesn't discuss anything.<br />
In English, differences between pages:<br />
http://translate.google.ru/translate?hl=ru&ie=UTF-8&sl=ru&tl=en&u=http://wiki.services.openoffice.org/w/index.php%3Ftitle%3DRU%252Frules_and_information_policy%26diff%3D169023%26oldid%3D169013&prev=_t<br />
<br />
Sancho does not discuss anything, but writes the rules that always repeat "forbidden", "you must or else the page you create will be deleted", "do not", "never" and so on. We change it to "it is recommended", "it is better", "page is going to be edited" and so on.<br />
<br />
User [[User:Sancho|Sancho]] doesn't reply neither in its personal discussion page, nor in the the article's talk and ignores all messages.<br />
<br />
What shall we do in this case?<br />
<br />
:Just what you did do: bring the matter to the attention of a sysop (administrator). Edit warring is a serious offense, and may lead to blocks. I will be posting a lecture on Sancho's Talk page. Meanwhile, please follow one simple rule: do ''not'' undo anyone's edits but your own, without discussing the matter on the associated Talk page. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:01, 22 May 2010 (UTC)<br />
<br />
Here are more articles Sancho refusing to discuss (so far):<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/qa/run_ooo_versions_parallel<br />
*http://wiki.services.openoffice.org/wiki/Talk:RU/Documentation/FAQ/General --[[User:Fyva|Fyva]] 05:34, 23 May 2010 (UTC)<br />
<br />
== thanks from elcico ==<br />
<br />
Dear TJ thank you for your welcome and for your suggestion.<br />
I've changed my mail address, now it should be ok!<br />
Thanks again!<br />
elcico :)<br />
<br />
P.S. Hope this is the right place to reply... just delete after you read! :)<br />
: You're quite welcome. Why ever should I delete a nice thank-you note? --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 22:34, 2 June 2010 (UTC)<br />
<br />
== Keyboard shortcuts, special characters ==<br />
<br />
Hi TJ, While tripping through the FAQs in search of anyplace I can help, I have found your useful answer (FAQ-Writer-Formatting Text) about how to insert special characters using macros to create keyboard shortcuts. As an alternative, I thought of adding the Windows shortcuts such as I use in Word at work to create a pounds sterling sign (i.e. Alt+0163), but I can't get those combinations to work in Writer. I'm on my laptop at home and am not sure if the Alt-key alternative just does not work in OpenOffice, or if the phenomenon is due to my using a laptop keyboard without the extra number keypad. In the hopes that no question is a dumb question... I ask... do the Alt-key combinations for special characters work in OOo?<br />
:Hi, Lisa, Yes; with my keyboard (with full numeric keypad) they work fine. I use Alt+0151 for em-dash regularly. There may be a num-lock or Fn special key that you need to simulate the numeric keypad; check your laptop's documentation. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:34, 29 June 2010 (UTC)<br />
<br />
== Re: Editing templates ==<br />
<br />
Sorry about the inconvenience. I rarely edit templates on Wikis, being mindful that such edits can have far-reaching effects. FYI, I didn't notice any slowdown: This Wiki has far fewer articles and users than the English Wikipedia.&nbsp;&mdash;&nbsp;[[User:User8192|User8192]]<sup>[[User_talk:User8192|T]] [[Special:Emailuser/User8192|@]]</sup> 17:46, 1 September 2011 (UTC)<br />
<br />
== Category:MainIndex ==<br />
<br />
Hi TJ<br />
<br />
The [[:category:MainIndex]] is '''[[Special:UncategorizedCategories|uncategorized]]''' if ''not put cat into itself'' or [[Special:Categories|another category or subcategory]].<br />
<br />
Do you know another solution?<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:04, 11 January 2012 (UTC)<br />
:right, then it stay uncategorized. [[User:Adailton|Adailton]] 13:58, 12 January 2012 (UTC)<br />
<br />
== Broken Redirects ==<br />
<br />
[[Documentation/FAQ/General/What are the differences between StarOffice (old versions) and OpenOffice.org?]] deleted, ''obsolete FAQ - replaced by a newer version of same information''? should be a fusion of historical record of keeping the original creator of the page. what is the new version? and [[Documentation/FAQ/General/QA 0002]]? Thanks [[User:Adailton|Adailton]] 13:43, 15 January 2012 (UTC)<br />
<br />
:Nice catch. Found the replacement page and fixed the redirect accordingly. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:48, 15 January 2012 (UTC)<br />
<br />
== Category:Marketing ==<br />
Hi TJ<br />
<br />
User pages in [[:category:Marketing]]: [[User:Blibrestez55/Books/Database]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Allow import of only selected pagesn]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving char spaces]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Improving rotated text]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Introduction]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue105133]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue109708]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue90633]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Issue92919]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Misplaced paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Moving Proper paragraphs GlyphProcessor]], [[OpenOffice.org Internship/Tasks/Proper paragraphs]], [[User:Joekidd/OpenOffice.org/Internship/PDFImport/Tasks/Testing proper paragraphs]], [[User:Khirano/Solutions]], [[User:RealGrouchy]], [[User:Wyrfel]].<br />
<br />
It seems '''inappropriate''' to have categorized '''users''' pages, so I ask whether they should be '''uncategorizaded''' or moved to the '''main domain'''? (I'm sorry but I do not quite understand the English Language, so I use a translator). [[User:Adailton|Adailton]] 13:43, 16 January 2012 (UTC)<br />
:English: "de-categorized" (= "have the category reference removed") is not a valid English word, either, but it is readily understandable.<br />
:Appropriateness: Since the users themselves added their pages to the category, I'm in favor of leaving them there. If somebody associated with marketing complains, we can make changes then. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 02:24, 17 January 2012 (UTC)<br />
<br />
== Candidates for speedy deletion ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[:Category:Candidates for speedy deletion]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 11:20, 27 January 2012 (UTC)<br />
<br />
:Removed most of the pure spam. Remaining candidates are mostly technical, and can be removed more slowly.<br />
:Thanks for the good work. If you are an Apache committer (or at least have an iCLA on file), I will enable you as a sysop ("Administrator group"). That would let you delete directly, and block spammers as well (very carefully!). --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 14:32, 27 January 2012 (UTC)<br />
<br />
==Speedy deletion==<br />
Hi TJ<br />
<br />
I made a change in {{tl|delete}} in order to include a justification for the deletion. Please see if it was good.<br />
<br />
I saw that there are 11,420 [[Special:UncategorizedFiles|files uncategorized]]. Are there any major [[Special:Categories|category]] for files? I just found [[:Category:Icons]].<br />
<br />
Thanks [[User:Adailton|Adailton]] 14:38, 26 February 2012 (UTC)<br />
<br />
: '''Delete''': Looks good to me, if it works for you.<br />
<br />
: '''File Categories''': AFAIK, the files should be categorized according to the pages that link to them (plus descriptive categories, like "Icon"). This could be a non-trivial task; if a file is linked from pages in different categories, it may be desirable to climb the category tree to find the intersection, and categorize the file there. <br />
<br />
:Your help is much appreciated. I know much of templates, but only a little about categories. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:52, 26 February 2012 (UTC)<br />
::I think the categorization according to the pages that use is practical, but we can also categorize your files by grouping them by theme (icons, applications, screens, menu items, examples, etc.), without excluding one another. There are also PDF documents, which could be a category, but I will not create them if you think it should be done well. [[User:Adailton|Adailton]] 21:07, 26 February 2012 (UTC)<br />
<br />
:::pls, see: <br />
:::*[[Casino ohne download]]<br />
:::*[[User talk:Josebryan13]]<br />
:::*[[Deals - How can you make best deals on timeshare]]<br />
:::*[[Phentermine - How the phentermine works in your body.]] <br />
:::*[[Moving Company- How to make consequences favorable]]<br />
::: and related images. Tks [[User:Adailton|Adailton]] 22:21, 22 May 2012 (UTC)<br />
::::Gone! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 03:32, 23 May 2012 (UTC)<br />
:::::Please, see [[User:PressRTbox]]. [[User:Adailton|Adailton]] 22:04, 25 May 2012 (UTC)<br />
::::::Persistent pest, now blocked. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 23:26, 25 May 2012 (UTC)<br />
<br />
----<br />
Please, see [[User:Ulissi]] (and botton of user page) and history.<br />
:Left him a warning that the link farm may get deleted. My snap diagnosis is "enthusiastic amateur", rather than deliberate spammer, so I'm starting out gently.<br />
::Removed all external and red links. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:55, 18 September 2012 (UTC)<br />
<br />
I am looking at [http://wiki.services.openoffice.org/w/index.php?title=Special:LinkSearch&target=*.com Special:LinkSearch]. There are many abuses to be checked. tks [[User:Adailton|Adailton]] 11:08, 14 June 2012 (UTC)<br />
:Nice find of that page! The good news here is that almost all of those links seem legitimate. I only found one (the very last of the first 100) that was typical user-page spam (from 2009!), and deleted it. I'll run through the rest of the list, slowly.<br />
:Many thanks for all your help. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:59, 14 June 2012 (UTC)<br />
<br />
==New volunteer==<br />
Hello. I recently started to built some pages for brazilian community start to work and I'd like to contribute in the wiki maintenance also. I've created [[:Category:Outdated]] to mark all old content pages that need to be revised. I have a lot of suggestions to offer in order to make this wiki more affordable, but I am affraid to make changes without people's agreement. I do not wish to upset anyone so, please, if there is a wiki coordinator/administrator (or something like that), let me know. I don't wish to work '''against''' but '''with''' you. =) <br />. Thanks. <small>signed by sysop</small> 2012-05-17T09:12:32 [[User:PauloLima|PauloLima]]<br />
<br />
:Hi, Paolo!<br />
<br />
:I'm replying here, just to keep the whole conversation in one place. You can put a Watch on my Talk page if you like, or I'll put a note on yours. I see that you have met [[User:Adailton|Adailton]], who is a big help around here, chasing spammers. Whatever help you care to give is very welcome.<br />
<br />
::Hi TJ. This place is fine.<br />
<br />
:Like most everything at Apache, there is no "official" hierarchy on this wiki. The only sense in which I'm "it" is that I'm doing the work. I do have both sysop and bureaucrat privileges, and I will promote any committer to sysop who asks. My personal expertise runs to "expert user": knowledgeable on wiki markup, templates, ''etc.'' If you have plans to improve the user experience, go for it; I'll be glad to help you do it the easy way, if you like.<br />
<br />
:: Ok. I've been working with Mediawiki software intensively for the last 2 years. I've created/developed many of the pages in LibO PT_BR wiki, and I was responsible to develop the document translation workflow to PT-BR. That was a great learning. Now I wish to contribute here. These days, I am running a document management project for the company I work,using Mediawiki software, for for the last year, using its semantic features. And this was a great learning for me too. So, I proposed to use my experience in this area to help building an intelligent ontology that could ease the access tothe information in the wiki. But... In order to do that, it would be necessary to upgrade Mediawiki at least to 1.7.4 (1.9 would be better) and install some semantic extensions (maybe creating some new user's groups, if necessary). Can you help me on that? This should not impact the actual wiki's access/availbility, but can make available features for me to work on some sort of "snapshot". =)<br />
<br />
:Which reminds me: are you deliberately using the "preformatted text" option (starting your line with a space character), to create indentation? A colon (:) works better, because it wraps better. Use more colons for more levels of indentation (think, "tabs"). By convention, if you reply here, you would start your lines with two colons, I would reply with three, ...<br />
<br />
:: Yes. I'm using that. It's a matter of preferences. For me it looks better, but I have no objections in using identation =)<br />
<br />
:I look forward to your contributions. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 20:06, 17 May 2012 (UTC)<br />
<br />
:: I've created a category PT-BR for brazilian community begin to work. It was necessary, but, as Adailton pointed, maybe we could join PT-BR and PT sections, if it works better. I'm helping Kevin on UX team and looking for pages that must be updated/deleted. There are many outdated information here and it's necessary to classify them (that's why I've created a [[:Category:Outdated]]). In the next days I will navigate through the wiki to find and categorize those pages. After that, we will have a picture of what/where/who/when we need to do. If you and Adailton agree with that, of course. What do you think?<br />
<br />
:: [[User:PauloLima|PauloLima]] 22:17, 17 May 2012 (UTC)<br />
Preformatted text looks great — ''if'' you pre-format it!<br />
<br />
:::Otherwise, it has a nasty tendency to run right over the right-hand border, and just keep going. I find that both ugly and a nuisance, having to adjust the horizontal slider, and I had to do that a lot on your talk page. This may be browser- and skin-dependent. But, to more important matters.<br />
<br />
:::: Well, I have placed line breakers <nowiki>"<br />"</nowiki> in my replies, because I am aware of this issue. I don't know why you had this problem in you browser, maybe your screen resolution is too low. For me, my replies are been displayed with short lines and no horizontal slider both in Internet Explorer (Windows 98 in a virtual machine), Google Chrome and Mozilla Firefox (Ubuntu 11.10). But it doesn't matter, I can use identation. No problem.<br />
<br />
:::For upgrading MW and installing new extensions, you need a site-maintenance person, and that's not me. The only one I know of with the project is Raphael Bircher; otherwise, we depend on Infra. The problem is that none of those folks have any real expertise with MW or php, and neither do I. If you have command-line expertise, by all means volunteer on the Infra ML, and ask for access. Otherwise, I suppose we can try writing JIRA tickets. I am certainly in favor of an upgrade; there are problems with the <nowiki><math></nowiki> syntax that probably can only be fixed that way, and some other adjustments that should be made.<br />
<br />
:::: Yes, I know how to upgrade and install extensions to Mediawiki. But, I would had to get ssh access to the server and RWX rights to Mediawiki directory. A database backup would be necessary (and I should have access to it in this case, also). If you have admin rights to the wiki, so you can perform admin tasks for me, when it's necessary.<br />
:::::Yes, you know what you need, and you can get the access by asking on the Infra ML (infrastructure@apache.org). Send from your Apache address, with a subject like, "Request root access to ooo-Mwiki VM". I think they will be glad to hear from you, when you spell out your expertise as you have done here. I haven't asked for such access, because I don't have (yet) the knowledge to use it. I will add a new section on this page for a data dump of what I've learned about the physical setup.<br />
<br />
:::For your other plans, I suggest you pick out some segment for a pilot program, and work the bugs out; there are thousands of pages needing attention. But don't let this tired old man dampen your enthusiasm! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 01:35, 18 May 2012 (UTC)<br />
<br />
:::: Well TJ, I am not exactly a kid anymore for a long, long time. At least in my body. In my soul I feel like a kid yet =)<br />
:::::Some of us on the high side of 70 have merely lived a long time; others of us are ''old''. I must regretfully admit to which one I am.<br />
:::: I am planning to use PT-BR section for my tests. This will not affect any feature of actual wiki. Pages/Templates/Forms/Properties can be created transparently and released to production when ready. The only impact will be in the categories structure. I shall have to do some modifications, but I won't do that without notice. Before that, I will show you a new ontology (categories/properties structure), put it into discussion, so we can find the best way to improve the wiki, right?<br />
:::::Sounds great to me. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
:::P.s.: Do I assume correctly that you mean MW versions 1.17.x and 1.19.x ?<br />
<br />
:::: Yes, that's it. Thank you very much for your help.<br />
==The Physical Wiki==<br />
This wiki is housed on a VM, running a LAMP stack. "L" = some version of Ubuntu. In addition to the MW software, we run the Apache Traffic Server (ATS) as a front end. (Some adjustment is needed here: as of this writing, ATS sometimes serves up stale pages.)<br />
<br />
Exact information on extensions and versions should be available on the [[Special:Version|Version]] page. Known problems include:<br />
* The locally written IDL extension is not the latest version; this was an error during the move to Apache. The latest version needs to be found and installed, so that the <nowiki><idlml></nowiki> tags work.<br />
* MW was undergoing a change to the Math support, during MW v17. Math is showing errors on our installation (see example on [[User:TJFrazier|my user page]]), which have probably been fixed in a later MW release.<br />
:*Many thanks to Imacat, who installed the Textvc code, and fixed the math problem. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 19:47, 30 July 2012 (UTC)<br />
<br />
--[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:47, 18 May 2012 (UTC)<br />
<br />
== Wanted Categories ==<br />
<br />
Hi TJ<br />
<br />
There is a [[Special:WantedCategories|Wanted Categories]], '''Category:RU/Авторы/А. Е. Харламенков''', that has been recently deleted. What do we do?<br />
<br />
Thanks [[User:Adailton|Adailton]] 15:16, 18 September 2012 (UTC)<br />
<br />
:Nothing. The category was marked for speedy delete, by the Russian fellow who created it. I deleted it. Why it's showing up on that special page is a mystery. I'll poke around some. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 15:55, 18 September 2012 (UTC)<br />
::That I understood. It is listed on the special page to have a page, [[RU/kb/common/programming]], the same author category. I think I must remove the category of the page, but it is a hidden category within a Template. [[User:Adailton|Adailton]] 16:07, 18 September 2012 (UTC)<br />
:::I must confess that I couldn't trace through the signature-related templates to find the Category call. So I commented out the signature (which is against policy anyway; sign with wiki signatures, if at all). Special page now empty. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 16:35, 18 September 2012 (UTC)<br />
::::Ok, unusual solution but ''problem'' solved. [[User:Adailton|Adailton]] 22:16, 18 September 2012 (UTC)<br />
<br />
== SimpleNonprofitAccountingTemplate ==<br />
<br />
Hi TJ<br />
<br />
Please, see [[SimpleNonprofitAccountingTemplate]]<br />
<br />
Thanks [[User:Adailton|Adailton]] 13:03, 27 September 2012 (UTC)<br />
<br />
:ROFL! Just adding that to the doc list when I got your message. I'll categorize it properly, too. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:08, 27 September 2012 (UTC)<br />
<br />
==Question on adding Justification to marking a page for Speedy Delete==<br />
Hi TJ;<br />
<br />
I wanted to mark a page for speedy delete and noticed in the in the preview that there was a section for adding a justification when you use the delete template. Was wondering what the proper syntax was for adding that. Appreciate your time and help.<br />
<br />
Regards<br />
Keith<br />
<br />
:Hi, Keith,<br />
<br />
:User Adailton's reply to you is authoritative: he added that field to the template. (He's a big help around here.)<br />
<br />
:Sorry for the slow reply, but Sandy did interrupt my power for several hours, and threatened to do worse. I didn't want to be in the middle of doing something here on the wiki, and have to quit. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:59, 27 October 2012 (UTC)<br />
<br />
== Hurricane Sandy ==<br />
<br />
Hi TJ<br />
<br />
Welcome back! I hope that Sandy has not given him much trouble.<br />
<br />
Spammers have given some work here, but everything under contrrole.<br />
<br />
Regards [[User:Adailton|Adailton]] 13:14, 27 October 2012 (UTC)<br />
<br />
<br />
:Sandy came and went, with no lasting problems. Now I'm catching up. Thanks for covering. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 13:19, 27 October 2012 (UTC)<br />
<br />
== File:FreedomFleetAttendance.xls ==<br />
<br />
Hi TJ<br />
<br />
[:File:FreedomFleetAttendance.xls] some use?<br />
<br />
[] [[User:Adailton|Adailton]] 10:18, 12 November 2012 (UTC)<br />
<br />
<br />
:Not that I could see, so I deleted it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:37, 12 November 2012 (UTC)<br />
<br />
== New pages ==<br />
Hi TJ<br />
<br />
[[Special:NewPages|some pages created November 12 were forgotten]]<br />
<br />
Regards [[User:Adailton|Adailton]] 10:47, 14 November 2012 (UTC)<br />
<br />
:I see only one new page, in User space, and you erased the spam on it. Do you see other new pages on some other list? <br />
:There was some kind of error about then, on the wiki; one of my operations timed out, so I just went away for a while. Maybe some logs (or pages) were lost. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]] | [[Special:Contributions/TJFrazier|Contribs]]) 12:16, 14 November 2012 (UTC)<br />
<br />
== Sysop ==<br />
Hi TJ<br />
<br />
I worried that I am not fluent in the language. I read a little English, and generally use the google translator to long paragraphs.<br />
<br />
I will be more cautious, but stay tuned for elimination and blocks.<br />
<br />
Regards [[User:Adailton|Adailton]] 15:07, 17 November 2012 (UTC)<br />
:The more users doing good work, less work for each. [[User:Helen russian|Helen russian]] also did good job. Thanks [[User:Adailton|Adailton]] 23:03, 18 November 2012 (UTC)<br />
::What a busy day! I have deleted more than 130 pages today. TJ, Adailton, Andrew, I need a time-out. :-) I'll be back in 12 hours (at 4:00 UTC). Please don't lose me. --[[User:Helen russian|Helen]] 16:09, 19 November 2012 (UTC)<br />
<br />
::I see a new Russian sysop [[User:Yak|Yak]]. It's great! Yakov, thank you for joining us --[[User:Helen russian|Helen]] 03:44, 20 November 2012 (UTC)<br />
<br />
:::You folks have been doing a super job! Help is on the way: see the Mwiki threads on dev@, plus the new section on my user page. That info is not current yet, but it will be. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 13:01, 20 November 2012 (UTC)<br />
<br />
::Hi TJ, any news? --[[User:Helen russian|Helen]] 02:15, 21 November 2012 (UTC)<br />
<br />
== Excessive spamming ==<br />
<br />
Hi TJ<br />
<br />
I made a [[Special:Log/protect|protection]] to prevent re-creation. What do you think?<br />
<br />
Regards [[User:Adailton|Adailton]] 10:26, 22 November 2012 (UTC)<br />
<br />
:Good move! We can delete it when the spam attack is over. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 10:49, 22 November 2012 (UTC)<br />
<br />
== How long will the spam attack? ==<br />
Hi TJ<br />
<br />
How long will the spam attack? Can I search for additional volunteers from the Russian community? --[[User:Helen russian|Helen]] 02:23, 23 November 2012 (UTC)<br />
<br />
:Hi, Helen,<br />
<br />
:We have a new recruit for site maintainer: Jan Iversen (also new Bureaucrat and sysop). Hopefully his access will be finished tonight or tomorrow, and he will turn off the spam user creation and delete their accounts. You will know for sure when you see a banner announcement about it, explaining that new accounts are by invitation only.<br />
<br />
:I can't guarantee the timing. You are welcome to search for more volunteers, and I will appoint them as sysops on your say-so. I just hope they won't have anything to do! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 02:38, 23 November 2012 (UTC)<br />
<br />
::OK. I'll try to find some volunteers for the job today after 11:00 UTC. --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
<br />
:::P.S.: Adailton found a clever way to defeat the repeated spamming of a few pages. Protect them to the Administrator level, then delete. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:28, 23 November 2012 (UTC)<br />
:::: OK --[[User:Helen russian|Helen]] 04:50, 23 November 2012 (UTC)<br />
:::::TJ, delete first, then protect the page. This prevents an editor to create again. [[User:Adailton|Adailton]] 05:33, 23 November 2012 (UTC)<br />
<br />
== Need Create New Pages permission ==<br />
<br />
Started the proect to merge the FAQ's from the web site into the wiki and find my account does not have Create New Pages Permissions. Can you add them please or should I send a formal request through the dev list. Thanks for the help<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 02:55, 11 December 2012 (UTC)<br />
<br />
== Request for advice from mWiki guru ==<br />
<br />
After a closer look at all the materials involved with consolidating the FAQ's from the web site into the Wiki it appears the most effiecient way todo it would be to create some new Documentation\FAQ catagories and restructure the toc to add them. Given what is currently going on would it be best to just fit them in to the current structure and wait until the update is completed and then make the changes and reassign the new FAQ's to them? The alternative would be to do it know and I would need a crash course (mostly on reading the help files) on the intricacies of doing it.<br />
<br />
Sorry to be a pain with questions, but the engineer in me says ask the questions first before you really muck something up!<br />
<br />
Regards<br />
[[User:KNMcKenna|Keith]] 20:53, 12 December 2012 (UTC)<br />
<br />
:Keith, your cautious approach is much appreciated.<br />
<br />
:First, go right ahead now. This work should not be affected by the upgrades and such.<br />
<br />
:Second, IIRC, the lowest-level listing is all done with DPL and categories. The relevant help files for the DPL extensions (we're using the older one) are on [http://www.mediawiki.org/wiki/MediaWiki MediaWiki], which can (surprisingly) be a little hard to reach from Wp. You can probably do just what I'd do: copy an existing page, changing only the particular data (category name). Then put the appropriate new category on each new page: <nowiki>[[Category:whatever]]</nowiki>.<br />
<br />
:The higher-level toc (purple box) is built by one template calling another. The Master TOC template positions and paints the box; the FAQTOC template supplies the data, so this is what you need to edit. Wp has scads of help on templates; it is a much more powerful feature than any reasonable person would ever need. Fortunately, again all you probably need to do is copy and adjust existing entries to show the new stuff. The Preview button is your friend. Please try to minimize the number of edits to templates: an edit change kicks off a chain of replacements for every calling page, which can bog down the wiki for minutes. Note that you can call templates from your own space. That makes experimenting cheap. <nowiki>{{User:KNetc/test}}</nowiki> or something similar should suffice, where page "test" is a copy of the real template.<br />
<br />
:I'm fairly ignorant about DPL, but I'm useful on templates. Ask if you have problems. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 01:55, 13 December 2012 (UTC)<br />
<br />
::TJ I spent the better part of 20 years in Manufacturing Engineering first as a tech and then as an engineer. Have seen to many screw-ups that could have been prevented by asking "stupid questions" first. Not fun having to explain to ops managers why they lost x number of man hours / days.<br />
<br />
::First, since there should be no conflicts with the upgrades et al, I will venture down the path of creating new catagories and updating the toc.<br />
<br />
::Second, I will spend a few days this weekend looking over the help sections that you point to and try some experimenting in my "sandbox". Is there a time frame that would be best to go "live" with the changes to the FAQtoc to have the least disruption to the rest of the community on the Wiki?<br />
<br />
::Believe me if I have questions believe me I will ask. Thank you for all the info and your willingness to help.<br />
<br />
::Regards [[User:KNMcKenna|Keith]] 22:11, 13 December 2012 (UTC)<br />
<br />
I suggest that you make a copy[1] of faqtoc, maybe "factoc2", in template space. Just click on a link like this one: [[Template:factoc2]]. You can edit that one all you want, because only the few pages you build will be affected. At the very end, copy it back — only one edit to the live template, so you needn't worry about the timing. Then change the links (the special page, "What links here" is your friend) and delete the copy.<br />
<br />
Feel free to put the links to the new subdivisions[2] where they belong, on the Documentation or Doc/FAQ pages, but please hang the "Under Construction" sign on anything incomplete, in case users blunder into it.<br />
<br />
Thank you very much for undertaking this task.<br />
<br />
<br />
Notes:<br /><br />
[1] "copy" means Edit | Select all | Copy | Cancel edit on the source page, then Edit | Paste on the new page.<br /><br />
[2] I used a different term, because you will be creating some wiki Category pages, too. Using the redlink method, just reference the new category as usual, at the bottom of the new faq page. That will show as a redlink; click on it, add a one-line description, and save the page. Nothing to it! --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 03:32, 14 December 2012 (UTC)<br />
<br />
==Speedy Delete==<br />
Hi TJ<br />
<br />
I wish you a Merry Christmas :)<br />
<br />
I have been absent due to commitments, but I must return to work soon<br />
<br />
[[:Category:Candidates for speedy deletion]] is ''Outdated, not valid''? There is another to replace it?<br />
<br />
Even if only administrators are active, I think at times be necessary ''ask'' the opinion of others about certain deletions to prevent undue eliminations. In wikipedia the ''normal'' is always an editor (even an administrator) mark and an administrator check and then eliminate.<br />
<br />
There needs to alter {{tl|delete}}?<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 08:52, 25 December 2012 (UTC)<br />
<br />
:Agree that the category is needed, so I replaced it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 12:32, 25 December 2012 (UTC)<br />
==Category Names Problem==<br />
Hi TJ <br />
<br />
In [[Special:WantedCategories]] there in many categories, but all with ''problems'' in the title, probably due to a misconfiguration in for special characters needed for languages like Polish, Portuguese, French, Russian, etc. But I do not know exactly how to fix it.<br />
<br />
For exemples: [[:Category:Wdrożenia]] would be [[:Category:Wdrożenia]] ('''ż''')<br />
<br />
This may have occurred before December 25, the date of deletion. Possibly the time of spam attack, in november.<br />
<br />
I'll create the correct categories, with the hope that it would remove the entries in special page.<br />
<br />
Regards [[User:Adailton|Adailton]] ([[User talk:Adailton|talk]]) 13:57, 7 January 2013 (UTC)<br />
<br />
:This looks to me to be a problem related to the UTF-8 settings and conversion, which was part of the upgrade on 12/25. The pages themselves seem to be properly categorized; why they are showing up in "Wanted" is a mystery. I'll ask Jan about it. --[[User:TJFrazier|TJ]] ([[User_talk:TJFrazier|Talk]]) 15:27, 7 January 2013 (UTC)<br />
<br />
== String character index base ==<br />
<br />
Thanks for adding the clarification. I'd found it out myself by experimentation, but it's good to have authoritative backing.</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/Strings_(Runtime_Library)Talk:Documentation/BASIC Guide/Strings (Runtime Library)2013-01-21T10:59:21Z<p>Ptoye: </p>
<hr />
<div>We need to know how the characters are counted - do they start at 0 or 1?<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:59, 21 January 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/User:PtoyeUser:Ptoye2013-01-21T10:52:56Z<p>Ptoye: </p>
<hr />
<div>Biog: Ex-IT consultant in data communications. Programming background. Wishes that the OO API documentation wasn't so difficult to understand and navigate.<br />
<br />
Now a classical pianist.<br />
<br />
Lives in Reading, England.<br />
[[User:Ptoye|Ptoye]] ([[User talk:Ptoye|talk]]) 10:52, 21 January 2013 (UTC)</div>Ptoyehttps://wiki.openoffice.org/wiki/User:PtoyeUser:Ptoye2013-01-21T10:52:20Z<p>Ptoye: Created page with "Biog: Ex-IT consultant in data communications. Programming background. Wishes that the OO API documentation wasn't so difficult to understand and navigate. Now a classical pi..."</p>
<hr />
<div>Biog: Ex-IT consultant in data communications. Programming background. Wishes that the OO API documentation wasn't so difficult to understand and navigate.<br />
<br />
Now a classical pianist.<br />
<br />
Lives in Reading, England.</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/Strings_(Runtime_Library)Talk:Documentation/BASIC Guide/Strings (Runtime Library)2013-01-21T10:48:29Z<p>Ptoye: Comment about character counting</p>
<hr />
<div>We need to know how the characters are counted - do they start at 0 or 1?</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Creating_a_documentTalk:Creating a document2013-01-20T17:17:52Z<p>Ptoye: Request for expansion on how to use templates when creating a document</p>
<hr />
<div>This leaves out one very important issue: how to create a document from an existing template. This is complicated by the fact that templates can exist in more than one place: as built-in OO templates and as user templates. I'm currently trying to get my head around the documentation on template folder names, and some guidance here would be welcome!</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/StringsTalk:Documentation/BASIC Guide/Strings2010-09-27T08:36:22Z<p>Ptoye: </p>
<hr />
<div>There needs to be text in here to specify how to enter strings containing layout characters: tab, newline etc.<br />
<br />
Or it could go into the "Constants" section.<br />
<br />
Documentation should be complete as well as accurate! Remember that not all users of OOBasic are necessarily VBA programmers.</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/StringsTalk:Documentation/BASIC Guide/Strings2010-09-27T08:34:52Z<p>Ptoye: Need for clarification</p>
<hr />
<div>There needs to be text in here to specify how to enter strings containing layout characters: tab, newline etc.</div>Ptoyehttps://wiki.openoffice.org/wiki/Talk:Documentation/BASIC_Guide/ArraysTalk:Documentation/BASIC Guide/Arrays2009-04-12T15:34:48Z<p>Ptoye: </p>
<hr />
<div>== Please expand... ==<br />
<br />
* how do you set a value in an array?<br />
** example: see [[Documentation/BASIC Guide/Loops]].<br />
** I added a very simple example, but as I'm only starting, I don't know more ways - I'd also expect something like "myArray = [1, 2, 3] to work, as in many other languages, but I couldn't find how to do that --[[User:HenningSprang|HenningSprang]] 14:38, 22 November 2008 (CET)<br />
* can arrays be appended to other arrays?<br />
* can an item be inserted into an array?<br />
* can an array be indexed with strings or other values?<br />
<br />
(copied from the bottom of the Article page. Please post all discussions and comments to the Discussion page.)<br />
--[[User:Ccornell|Ccornell]] 14:34, 20 June 2008 (CEST)<br />
<br />
== Multi-dimensional ==<br />
<br />
The example for multi-dimensional is awful, because the number for each dimension is the same 5.<br />
<br />
Here's what it currently says.<br />
<br />
: In addition to single dimensional data fields, {{OOo}} Basic also supports work with multi-dimensional data fields. The corresponding dimensions are separated from one another by commas. The example<br />
<br />
: <source lang="oobas">Dim MyIntArray(5, 5) As Integer</source><br />
<br />
: defines an integer array with two dimensions, each with 6 indexes (can be addressed through the indexes 0 to 5). The entire array can record a total of 6 x 6 = 36 integer values.<br />
<br />
: You can define hundreds of dimensions in {{OOo}} Basic Arrays; however, the amount of available memory limits the number of dimensions you can have.<br />
<br />
Shouldn't how to store and access entries in these also be described? --[[User:Ashawley|Ashawley]] 01:43, 27 February 2009 (UTC)<br />
<br />
== How to find array bounds ==<br />
<br />
Something's badly missing here - how to find the bounds of an array. I assume this is in the language somewhere, but can't find it. As some methods return arrays, this is essential.<br />
<br />
--[[User:Ptoye|Ptoye]] 15:34, 12 April 2009 (UTC)</div>Ptoye