Loading...
 
Skip to main content

Category: Feature request

Request to add a totally new feature or to enhance an existing feature. Also called Request for Enhancement (RFE)
Feature request
Show subcategories objects

Name Type
Allow for styling of the page name in a link to a non-existent page
Currently in tiki when a link to a non-existent page is made, the page name is not styled or in any way distinguishable in the HTML and a link is only around a following hard-coded question mark. What I would like to see is to change it so that the page name is in fact the link text and the appearance can be styled via CSS. This would allow a particular theme to use the question mark indicator or a Mediawiki-style "red link" or some other styling for these "edit new page" links.
tracker item
Item/Object perms: copy permissions from another object. (especially for wiki pages and categories)
Tiki perms are very fined-grained: great

But when you need to create a lot of items with individual perms, it can be time consuming and human-error prone.

So copying perms from another page (which we know is OK) will be very helpful.

It will also save tons of time since permissions are not inherited.


__Related__
{WISH(id="2133")}{WISH}
{WISH(id="1820")}{WISH}
{WISH(id="2586")}{WISH}
tracker item
ItemId for tracker
There is no easy way to create a numbered list of items (automatic numbering). There is no easy way to automatically assign a unique identifier to a item in a tracker. In other words, you can't display the ItemId in a tracker.

Need the ability to show the ItemId as another field in the tracker. This id is very useful when creating tables or lists in a tracker and I beleive is a must have. For example, if I create a list of ideas, I would like to have an idea number associated to each idea.

I hope someone is already working this.

Best,
Diego

---
Working on a fix for this as I need this as well. Among other things, also lets you display 0-padded item ID's and hyphenated item ID's prominently in the item viewer.
tracker item
ItemLink: use = operator to have different value and data in drop down - like select tag in HTML
In ItemLink if the setting for "Format for Customising Multiple Field"s has a "=" between two tracker fields (e.g. %0=%1) then one should be treated as value and the other as data.

This will be consistent with the behavior of the "Other" setting in DropDown field type and will simulate the options of the HTML select tag.

The enhanced functionality will enable ItemLink to display one set of data in a drop down but store the corresponding value in the tracker field; for those situations where we wish to store the value and not the data that the user selects in the drop down.

Currently the functionality is:
<select>
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>

The enhancement will make this possible:
<select>
<option value="68768">Volvo</option>
<option value="543543">Saab</option>
<option value="678654">Mercedes</option>
<option value="32342">Audi</option>
</select>
tracker item
javascript word & character counter
For text area trackers:

http://www.felgall.com/jstip42.htm
tracker item
JavaScript zoom on images
http://www.synegg.co.uk/top-tips/8-great-javascript-zoom-scripts/
tracker item
jQuery File Upload: This repository has been archived by the owner on May 25, 2023. It is now read-only.
https://github.com/blueimp/jQuery-File-Upload

As of 2024-01-19, Tiki is using version 9.34.0 (2019-07)
https://gitlab.com/tikiwiki/tiki/-/blob/master/vendor_bundled/composer.lock

Version 10.32 (2021-09) is available from https://github.com/blueimp/jQuery-File-Upload/tags and is presumably the last one.

https://stackoverflow.com/questions/71526727/blueimp-jquery-fileupload-github-marked-as-readonly-archived

Alternative candidates: https://github.com/search?q=file+upload&type=repositories&s=stars&o=desc
tracker item
Kanban plugin; It should be possible to hide edit and anchor icon of a card, a user shouldn't see action he can't do
On Tiki 25 the plugin Kanban display trackeritem as card with an edit and link icon on mouseover.

It should be possible to hide them for non-admins, allowing users only to move the cards if he has tracker item tiki_p_modify_tracker_items permission.

(note that permission from tracker=>properties=>permissions should applied)

Note: if the user don't have the permission "tiki_p_modify_tracker_items" he will see the icon but clicking on it will display an error (Permission denied)

Instance here : http://bsfez-11581-8358.show2.tiki.org/tiki-index.php?page=Basic-board
tracker item
Kanban plugin; API disabled error should contain a way to enable it right away (or a link to the admin control panel)
When you add for the first a KanBan plugin to a Wiki Page you may see the following error:

^
User error
Security -> API access is disabled but Kanban plugin needs it.
^

There should be a way for an admin to enable the API access right away and solve this minor issue.
Or at least a link to the relevant control panel.
tracker item
Kanban plugin; It should be possible to filter items displayed
It should be possible to apply filters on the items displayed;
* User items (like only the actual user items)
* Categories (selection)
* Tracker status (like only open items)
* Dates (today items, this week, etc...)
* ... Checkbox... ?
* ...
tracker item
Kanban; It should not be possible to be able to drag a cell if you can't modify the board
At https://kanban.dev4.evoludata.com/HomePage anonymous can see items and drag them.
However this dragging action has no real action as they don't have permission to modify the board.

If they don't have permission to move a card from the board, it should not be possible for them to interact like this with the cards.

{mediaplayer src="display2122"}
tracker item
Kanban; Tracker field selection should be user friendly with a dropdown of existing tracker field for a selected tracker
When you setup a kanban plugin you have to navigate from your tracker field screen to the plugin to set several tracker fields ids or permanames and values.

Once the boardTrackerId is set the other field should display the available fields for this tracker in the plugin.
It would make it much more easily and prevent errors.
tracker item
Keep color highlighting from PluginCode at the mpdf printed version
Keep color highlighting from PluginCode at the mpdf printed version

When you print a page with plugin code and color highlighting enabled (through codemirror), the mpdf produced page doesn't keep the colors.

Some code to easy copy & paste to any tiki 18.x install with mpdf:
https://dev.tiki.org/CodeMirror+Testing+v3

tracker item
keep filter after sorting Tracker by column
When you look at a tracker and filter e.g. for you username and then click on a column heading to sort by Priority, the filter is lost.

You can only first sort, then filter - know what you do!
tracker item
Keep form data after back button (when CAPTCHA typo / session expired)
If you're editing a page and you fail the CAPTCHA or your session expires, your whole edit is lost. Most users expect their browser to have saved the form data, many would know enough to log back in then hit the back button to get back to the form (or at least, hit "back" and copy the data for later pasting after login). This does not work - after a "back" the form is empty!

I'm ranking this bug as priority 7 because it is very serious - data loss and angry users. I think the solution is trivial, too: see below.
tracker item
keep headers in mail submitted forum posts
When an email message is integrated into a forum thread, it's currently impossible to trace its origin. For that reason, it'd be useful to keep the email headers somewhere.

For example, if a spam message pops up, it'd be much easier to find the weak link in spam protection.
tracker item
Kerberos authentication
Should already be supported since we use PEAR::AUTH
http://pear.php.net/package/Auth

Needs testing and confirmation.
tracker item
Language Custom and all language files system holding - Proposal [MOD] [ADD]

!Language Custom and all language files system holding - Proposal [MOD] [ADD] for Trunk 7x
Hi,

I was looking to tra.php and __the way to hold the custom languages__ complements.

~~#693:''Note : ''~~
I note the recent change from array_merge($lang, $custom_lang) to $lang+$custom_lang which forbid custom to overload elements of system language using same English keys, the instruction which "merge" the two languages part into $lang staying into custom.php.

!My proposal
To be clearer and for a best security and portability and capability of extensions. I propose (written ready to commit), which is described below, the details are :
!!FROM NOW :
!!!System language file name(s)
System language has a file named "system_language.php" or "language.php" for backward compatibility (allowed multiple see above)
!!!custom language files names "pattern"
Custom language has file named custom_language.php or custom.php for backward compatibility. (Others can be used see above)
!!! Allow multiple files language with a pattern for names
Others file for language can be hold if their name is patterned <type>_language.php. <type> is allowed ref #[a-z0-9_]# compatible with php var names.
!!!Names of arrays $lang
The "$lang" variables (arrays) defined by these files are of pattern "$lang_<type>"
!!!Fusion of files
The concatenation (fusion) is now out of these files (custom) and become an element of the function "init_language" which must have this role, role which is then enhanced by the check of the contents and the real build of a $lang
A future option will allow when the routine are used to build or update new language files the "merge_array".
!!!Role of init_language
So, the function "init_language" does the following :
#check for language files (scandir) into language dir with valid patterns
#tries to read (include) each file, if failed to include it is an held exception (for the moment just skip, later send system error with a comment) but not syntax error in language files which can crash)
#checks the isset of arrays (corresponding to files names by pattern)
#will checks the content (available chain key and chain values) php syntax validation on prefs
#adds the arrays into $lang (fusion "+" not merge only on option)
!!the benefits
*This allows that tra (init_language) can check what is done and the content of $lang files and arrays generated.
*This allows to check at the $lang_* file definition load (check+include).
*This allows multiple files when need, particularly test phases.(split the files by nature of texts)
*This solves for the future the ability to introduce with backward compatibility "tikityped" strings to accept or not html tagged chains or others markup depending of the use of the strings (the typical sample is the strings of the name, descriptions, help, labels, warning, option in prefs definitions) but too the user fields content validation (can crash smarty and/or send a blank screen).
*May be it can be decided to associate a type of string depending of the syntax (the language array should have two value for each main key the string and the type).
*I have a separate proposal to define with backward compatibility the <type> of strings into the $lang arrays.
!!purpose
*This is done to make the languages files building and checking easier and have a better reliability in the phase of development of specific applications or when changes are necessary during exploitation.
*this allows to develop (I will) a function to run the same init routines with a request merge_files to generate an upgrade of file languages from more little files with changes todo.
*this allows lighter files and separate translated parts from the others etc.
!!What have been done
*I had just to add some lines (without specific checks for now) only managing the good load of a language file and their name pattern, no still enhancement in checking the contents of strings which needs typed strings.
*Tests
*no actually change to $tikidomains, can be enhanced

Ready to submit.
What's your opinion ? Do I commit ?
tracker item
Language field for menus (multilingual menus)
Menus items can have
Name
URL:
Sections:
Permissions:
Group:
Type:

We need an extra option for the language. Using the nifty lang & notlang as below gives more flexibility:
{CODE()}
{LANG([not]lang=>code[+code+...])}text{LANG
{CODE}

In the URL, it would nice to [tiki-view_tracker_item.php?itemId=948|be able to use variables]

URL:
{CODE()}
tiki-index.php?page=BogusPage{lang}
{CODE}


Name:
{CODE()}
{tr}my translated text{/tr}
{CODE}

There is a table in the database which seems unused.
tiki_menu_languages

Related:
*{wish id=521}
*{wish id=3030}
tracker item
Large File Upload Problems in File Gallery
I tried to upload a 230MB media file to a file gallery, and the site didn't have progress bar, and it sent the request for 25 minutes, then stopped and the file never uploaded.

Marc Laporte adds:
"A progress bar, and maybe a test/check first that file is smaller than
what is permitted by server config. In image gallery, tiki tells you
who much you can upload. This is needed for file gallery as well."



tracker item
Last comments for trackers : module needed
On this site, people add comments to trackers but there is no way to know what what the last comments.
tracker item
LDAP authentication and email field
We are using LDAP authentication at our site and the email field is not being automatically filled in. This means we must manually setup our email for each user for the page change notifications to work.


Note we are connecting to an ActiveDirectory LDAP database which does not like anonymous binds so had to make a patch based on the following suggestion:

http://tikiwiki.org/tiki-view_forum_thread.php?topics_offset=58&forumId=6&comments_parentId=14021
tracker item
LDAP authentication by binding user credentials
Our Active Directory is configured not to allow arbitrary LDAP searches for unprivileged users. However, these users can successfully bind to AD's LDAP interface. This would be enough for authentication and we would not need a special account for checking authentication.

I therefore removed parts of the function fetchData in /lib/pear/Auth/Container/LDAP.php:

{img src=images/code.png}%%% {CODE()}
function fetchData($username, $password)
{
$this->log('Auth_Container_LDAP::fetchData() called.', AUTH_LOG_DEBUG);
$err = $this->_prepare();
if ($err !== true) {
return PEAR::raiseError($err->getMessage(), $err->getCode());
}

$err = $this->_getBaseDN();
if ($err !== true) {
return PEAR::raiseError($err->getMessage(), $err->getCode());
}

// UTF8 Encode username for LDAPv3
if (@ldap_get_option($this->conn_id, LDAP_OPT_PROTOCOL_VERSION, $ver) && $ver == 3) {
$this->log('UTF8 encoding username for LDAPv3', AUTH_LOG_DEBUG);
$username = utf8_encode($username);
}

/* // make search filter
$filter = sprintf('(&(%s=%s)%s)',
$this->options['userattr'],
$this->_quoteFilterString($username),
$this->options['userfilter']);

// make search base dn
$search_basedn = $this->options['userdn'];
if ($search_basedn != '' && substr($search_basedn, -1) != ',') {
$search_basedn .= ',';
}
$search_basedn .= $this->options['basedn'];

// attributes
$searchAttributes = $this->options['attributes'];

// make functions params array
$func_params = array($this->conn_id, $search_basedn, $filter, $searchAttributes);

// search function to use
$func_name = $this->_scope2function($this->options['userscope']);

$this->log("Searching with $func_name and filter $filter in $search_basedn", AUTH_LOG_DEBUG);

// search
if (($result_id = @call_user_func_array($func_name, $func_params)) === false) {
$this->log('User not found', AUTH_LOG_DEBUG);
} elseif (@ldap_count_entries($this->conn_id, $result_id) >= 1) { // did we get some possible results?

$this->log('User(s) found', AUTH_LOG_DEBUG);

$first = true;
$entry_id = null;

do {

// then get the user dn
if ($first) {
$entry_id = @ldap_first_entry($this->conn_id, $result_id);
$first = false;
} else {
$entry_id = @ldap_next_entry($this->conn_id, $entry_id);
if ($entry_id === false)
break;
}
$user_dn = @ldap_get_dn($this->conn_id, $entry_id);

// as the dn is not fetched as an attribute, we save it anyway
if (is_array($searchAttributes) && in_array('dn', $searchAttributes)) {
$this->log('Saving DN to AuthData', AUTH_LOG_DEBUG);
$this->_auth_obj->setAuthData('dn', $user_dn);
}

// fetch attributes
if ($attributes = @ldap_get_attributes($this->conn_id, $entry_id)) {

if (is_array($attributes) && isset($attributes['count']) &&
$attributes['count'] > 0) {

// ldap_get_attributes() returns a specific multi dimensional array
// format containing all the attributes and where each array starts
// with a 'count' element providing the number of attributes in the
// entry, or the number of values for attribute. For compatibility
// reasons, it remains the default format returned by LDAP container
// setAuthData().
// The code below optionally returns attributes in another format,
// more compliant with other Auth containers, where each attribute
// element are directly set in the 'authData' list. This option is
// enabled by setting 'attrformat' to
// 'AUTH' in the 'options' array.
// eg. $this->options['attrformat'] = 'AUTH'

if ( strtoupper($this->options['attrformat']) == 'AUTH' ) {
$this->log('Saving attributes to Auth data in AUTH format', AUTH_LOG_DEBUG);
unset ($attributes['count']);
foreach ($attributes as $attributeName => $attributeValue ) {
if (is_int($attributeName)) continue;
if (is_array($attributeValue) && isset($attributeValue['count'])) {
unset ($attributeValue['count']);
}
if (count($attributeValue)<=1) $attributeValue = $attributeValue[0];
$this->log('Storing additional field: '.$attributeName, AUTH_LOG_DEBUG);
$this->_auth_obj->setAuthData($attributeName, $attributeValue);
}
}
else
{
$this->log('Saving attributes to Auth data in LDAP format', AUTH_LOG_DEBUG);
$this->_auth_obj->setAuthData('attributes', $attributes);
}
}
}
@ldap_free_result($result_id);


// need to catch an empty password as openldap seems to return TRUE
// if anonymous binding is allowed
*/ $user_dn = $username;
if ($password != "") {
$this->log("Bind as $user_dn", AUTH_LOG_DEBUG);

// try binding as this user with the supplied password
if (@ldap_bind($this->conn_id, $user_dn, $password)) {
$this->log('Bind successful', AUTH_LOG_DEBUG);
// check group if appropiate
if (strlen($this->options['group'])) {
// decide whether memberattr value is a dn or the username
$this->log('Checking group membership', AUTH_LOG_DEBUG);
$return = $this->checkGroup(($this->options['memberisdn']) ? $user_dn : $username);
$this->_disconnect();
return $return;
} else {
$this->log('Authenticated', AUTH_LOG_DEBUG);
$this->_disconnect();
return true; // user authenticated
} // checkGroup
} // bind
} // non-empty password
// } while ($this->options['try_all'] == true); // interate through entries
// } // get results
// default
$this->log('NOT authenticated!', AUTH_LOG_DEBUG);
$this->_disconnect();
return false;
}
{CODE}

If would be nice to have a checkbox in the LDAP part of the admin page for selecting this behaviour.
tracker item
LDAP authentication should use LDAPv3 (or at least have configurable support for it)
LDAPv2 is obsolete, and the use of LDAPv3 is now standard practice. In fact, the [http://www.openldap.org/faq/data/cache/822.html|latest releases of OpenLDAP don't even support LDAPv2 properly anymore]. However, PHP's ldap_connect() and PEAR::Auth [http://www.openldap.org/lists/openldap-software/200204/msg00046.html|default to LDAPv2].

The patch to use LDAPv3 is attached. It shouldn't be difficult to make the LDAP protocol version a configurable preference.
tracker item
let "Dynamic items list" feed on a dynamic drop down (items link) to have several dynamic lists
let "Dynamic items list" feed on a dynamic drop down (items link) to have several dynamic lists.

See this scenario with a form including Region > City > Suburb:
You chose Region
Cities get populated according to region. You choose region.
Suburbs get populated according to city.

According to the documentation for dynamic items list, cities are inserted in another tracker, as a text field linked to a hardcoded dropdown with REgion names.

In order to have suburbs populated dynamically from that tracker, sylvieg said that there is some code missing to allow dynamic items list feed on an item list, and not just a static drop down.

tracker item
Show PHP error messages