DigitalBorder supports this item


This author's response time can be up to 2 business days.

113 comments found.


LABOR333 Purchased

hey coder :) i love your coded work kanban board, but something runs wrong in my runtime.

error descri0tion: - install routine: OK - Login Screen OK - After type in my login data: browser forwards to …/access/login and display a 404 code

to become a better feeling whats stored on my server, i dumped the sql data and files here for you to visit.

pls e-mail to thxx & chhhers karsten


LABOR333 Purchased

hi man, thx for you fast response. i set the htaccess correctly and now happens… nothing :/ i put some data to check in this shared folder:

i dont know its my php info correct? installer say ok… but i’m not sure about that.. host is directly in root folder:


LABOR333 Purchased

yay ok ignore my last post my friend. problem was: i used php version newest 7.1.4. pkanban runs stable with php version 7.0.13

Ook thank you for this notice :)


ksj786 Purchased


I was finally able to install the pKanBan using zip file. But now that I have added lot of Cards, I found a user interface bug

You know as the number of cards increase, the Top nav bar over takes the space below, the Middle section containers become invisible.

This is huge issue as I have no way to create new tasks. Please fix this and update your software.

Also, i want to make a suggestion. When a card is edit, the user should be able to put his comments. It should build up a story board. This is very important to multiple team collaberations. One has to have a way to comment on project details just like JIRA

I published update now, Codecanyon sometime take 1-2 days for approve it.

Have a nice day friend!


ksj786 Purchased

Hey , Wow , i installed new update and it looks Awesome! thank you so much.

Now I want to point out new interface issues in next update.

One should have limited characters for board name, otherwise the menu gets messed up

ALso, what happens when Others menu is full too, There should be a 2nd Column of Menu that should appear side by side. Otherwise the menu gets messed up again

Couple of suggestions that will make this software REALLY Awesome and compete with asana

1. Users should be able to COmment on Tasks. Right now if there are multiple team users in a Board, they cant place comments or add images with their own name. This we no way to tell who posted an image or comment

2. Ability to add REcurrint tasks. Some times , tasks get repeated after certain interval like Daily tasks, weekly Monthly. Right now we have to delete old task and create new task every day. This makes it lot of time consuming and extra effort. May be you can consider these options in future ?

Once again thank you for your response. I will keep contributing my suggestions in future

Ok thanks for your advice, I will try to keep them in the next update


gibarra Purchased

Hi there! When are you planning launch a new update. You had announced new version since last month! We are still eager expecting it :) !!

Hi gibarra, yes i have little problem with my work i’m sorry.

I will publish update in some days!

Thank you!


gibarra Purchased

Okey, great! I hope you can solve soon your work’s problems (have a great weekend my friend) !!!

Thank you so much!

Stay tuned! :)

I need some help. Thanks. Infinite login loop.

Hi, infinite login loop?

Paste here your .htaccess file and your application/config/config.php please

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /Task

Removes access to the system folder by users.

Additionally this will allow you to create a System.php controller,

previously this would not have been possible.

‘system’ can be replaced if you have renamed your system folder.

RewriteCond %{REQUEST_URI} ci.* RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.)$ /index.php?/$1 [L]

When your application folder isn’t in the system folder

This snippet prevents user access to the application folder

Submitted by: Fabdrol

Rename ‘application’ to your applications folder name.

RewriteCond %{REQUEST_URI} ^application. RewriteRule ^(.)$ /index.php?/$1 [L]

Checks to see if the user is attempting to access a valid file,

such as an image or css document, if this isn’t true it sends the

request to index.php

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.)$ index.php?/$1 [L]


<IfModule !mod_rewrite.c> # If we don’t have mod_rewrite installed, all 404’s # can be sent to index.php, and everything works as normal. # Submitted by: ElliotHaughin </IfModule>

ErrorDocument 404 /index.php

<?php defined(‘BASEPATH’) OR exit(‘No direct script access allowed’);

$config[‘version’] = ‘1.3’; $config[‘demo_mode’] = FALSE; // Only for online demo of pkanban

/* |-------------- | Base Site URL |-------------- | | URL to your CodeIgniter root. Typically this will be your base URL, | WITH a trailing slash: | | | | WARNING: You MUST set this value! | | If it is not set, then CodeIgniter will try guess the protocol and path | your installation, but due to security concerns the hostname will be set | to $_SERVER[‘SERVER_ADDR’] if available, or localhost otherwise. | The auto-detection mechanism exists only for convenience during | development and MUST NOT be used in production! | | If you need to allow multiple domains, remember that this file is still | a PHP script and you can easily do that on your own. | / $config[‘base_url’] = “http://”.$_SERVER[‘SERVER_NAME’].”/Task/”; // If you have a subdirectory, use: “http://”.$_SERVER[HTTP_HOST].”/yourdirectory/”;

/ |-------------- | Index File |-------------- | | Typically this will be your index.php file, unless you’ve renamed it to | something else. If you are using mod_rewrite to remove the page set this | variable so that it is blank. | / $config[‘index_page’] = ‘index.php’;

/ |-------------- | URI PROTOCOL |-------------- | | This item determines which server global should be used to retrieve the | URI string. The default setting of ‘REQUEST_URI’ works for most servers. | If your links do not seem to work, try one of the other delicious flavors: | | ‘REQUEST_URI’ Uses $_SERVER[‘REQUEST_URI’] | ‘QUERY_STRING’ Uses $_SERVER[‘QUERY_STRING’] | ‘PATH_INFO’ Uses $_SERVER[‘PATH_INFO’] | | WARNING: If you set this to ‘PATH_INFO’, URIs will always be URL-decoded! / $config[‘uri_protocol’] = ‘REQUEST_URI’;

/ |-------------- | URL suffix |-------------- | | This option allows you to add a suffix to all URLs generated by CodeIgniter. | For more information please see the user guide: | | / $config[‘url_suffix’] = ’’;

/ |-------------- | Default Language |-------------- | | This determines which set of language files should be used. Make sure | there is an available translation if you intend to use something other | than english. | / $config[‘language’] = ‘english’;

/ |-------------- | Default Character Set |-------------- | | This determines which character set is used by default in various methods | that require a character set to be provided. | | See for a list of supported charsets. | / $config[‘charset’] = ‘UTF-8’;

/ |-------------- | Enable/Disable System Hooks |-------------- | | If you would like to use the ‘hooks’ feature you must enable it by | setting this variable to TRUE (boolean). See the user guide for details. | / $config[‘enable_hooks’] = FALSE;

/ |-------------- | Class Extension Prefix |-------------- | | This item allows you to set the filename/classname prefix when extending | native libraries. For more information please see the user guide: | | | | / $config[‘subclass_prefix’] = ‘MY_’;

/ |-------------- | Composer auto-loading |-------------- | | Enabling this setting will tell CodeIgniter to look for a Composer | package auto-loader script in application/vendor/autoload.php. | | $config[‘composer_autoload’] = TRUE; | | Or if you have your vendor/ directory located somewhere else, you | can opt to set a specific path as well: | | $config[‘composer_autoload’] = ’/path/to/vendor/autoload.php’; | | For more information about Composer, please visit | | Note: This will NOT disable or override the CodeIgniter-specific | autoloading (application/config/autoload.php) / $config[‘composer_autoload’] = FALSE;

/ |-------------- | Allowed URL Characters |-------------- | | This lets you specify which characters are permitted within your URLs. | When someone tries to submit a URL with disallowed characters they will | get a warning message. | | As a security measure you are STRONGLY encouraged to restrict URLs to | as few characters as possible. By default only these are allowed: a-z 0-9%.:_- | | Leave blank to allow all characters—but only if you are insane. | | The configured value is actually a regular expression character group | and it will be executed as: ! preg_match(’/[<permitted_uri_chars>]+$/i | | DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!! | / $config[‘permitted_uri_chars’] = ‘a-z 0-9%.:_\-’;

/ |-------------- | Enable Query Strings |-------------- | | By default CodeIgniter uses search-engine friendly segment based URLs: | | | By default CodeIgniter enables access to the $_GET array. If for some | reason you would like to disable it, set ‘allow_get_array’ to FALSE. | | You can optionally enable standard query string based URLs: | | | Options are: TRUE or FALSE (boolean) | | The other items let you set the query string ‘words’ that will | invoke your controllers and its functions: | | | Please note that some of the helpers won’t work as expected when | this feature is enabled, since CodeIgniter is designed primarily to | use segment based URLs. | / $config[‘allow_get_array’] = TRUE; $config[‘enable_query_strings’] = FALSE; $config[‘controller_trigger’] = ‘c’; $config[‘function_trigger’] = ‘m’; $config[‘directory_trigger’] = ‘d’;

/ |-------------- | Error Logging Threshold |-------------- | | You can enable error logging by setting a threshold over zero. The | threshold determines what gets logged. Threshold options are: | | 0 = Disables logging, Error logging TURNED OFF | 1 = Error Messages (including PHP errors) | 2 = Debug Messages | 3 = Informational Messages | 4 = All Messages | | You can also pass an array with threshold levels to show individual error types | | array(2) = Debug Messages, without Error Messages | | For a live site you’ll usually only enable Errors (1) to be logged otherwise | your log files will fill up very fast. | / $config[‘log_threshold’] = 0;

/ |-------------- | Error Logging Directory Path |-------------- | | Leave this BLANK unless you would like to set something other than the default | application/logs/ directory. Use a full server path with trailing slash. | / $config[‘log_path’] = ’’;

/ |-------------- | Log File Extension |-------------- | | The default filename extension for log files. The default ‘php’ allows for | protecting the log files via basic scripting, when they are to be stored | under a publicly accessible directory. | | Note: Leaving it blank will default to ‘php’. | / $config[‘log_file_extension’] = ’’;

/ |-------------- | Log File Permissions |-------------- | | The file system permissions to be applied on newly created log files. | | IMPORTANT: This MUST be an integer (no quotes) and you MUST use octal | integer notation (i.e. 0700, 0644, etc.) / $config[‘log_file_permissions’] = 0644;

/ |-------------- | Date Format for Logs |-------------- | | Each item that is logged has an associated date. You can use PHP date | codes to set your own date formatting | / $config[‘log_date_format’] = ‘Y-m-d H:i:s’;

/ |-------------- | Error Views Directory Path |-------------- | | Leave this BLANK unless you would like to set something other than the default | application/views/errors/ directory. Use a full server path with trailing slash. | / $config[‘error_views_path’] = ’’;

/ |-------------- | Cache Directory Path |-------------- | | Leave this BLANK unless you would like to set something other than the default | application/cache/ directory. Use a full server path with trailing slash. | / $config[‘cache_path’] = ’’;

/ |-------------- | Cache Include Query String |-------------- | | Whether to take the URL query string into consideration when generating | output cache files. Valid options are: | | FALSE = Disabled | TRUE = Enabled, take all query parameters into account. | Please be aware that this may result in numerous cache | files generated for the same page over and over again. | array(‘q’) = Enabled, but only take into account the specified list | of query parameters. | / $config[‘cache_query_string’] = FALSE;

/ |-------------- | Encryption Key |-------------- | | If you use the Encryption class, you must set an encryption key. | See the user guide for more info. | | | / $config[‘encryption_key’] = ’’;

/ |-------------- | Session Variables |-------------- | | ‘sess_driver’ | | The storage driver to use: files, database, redis, memcached | | ‘sess_cookie_name’ | | The session cookie name, must contain only [0-9a-z_-] characters | | ‘sess_expiration’ | | The number of SECONDS you want the session to last. | Setting to 0 (zero) means expire when the browser is closed. | | ‘sess_save_path’ | | The location to save sessions to, driver dependent. | | For the ‘files’ driver, it’s a path to a writable directory. | WARNING: Only absolute paths are supported! | | For the ‘database’ driver, it’s a table name. | Please read up the manual for the format with other session drivers. | | IMPORTANT: You are REQUIRED to set a valid save path! | | ‘sess_match_ip’ | | Whether to match the user’s IP address when reading the session data. | | WARNING: If you’re using the database driver, don’t forget to update | your session table’s PRIMARY KEY when changing this setting. | | ‘sess_time_to_update’ | | How many seconds between CI regenerating the session ID. | | ‘sess_regenerate_destroy’ | | Whether to destroy session data associated with the old session ID | when auto-regenerating the session ID. When set to FALSE, the data | will be later deleted by the garbage collector. | | Other session cookie settings are shared with the rest of the application, | except for ‘cookie_prefix’ and ‘cookie_httponly’, which are ignored here. | / $config[‘sess_driver’] = ‘database’; $config[‘sess_cookie_name’] = ‘ci_session’; $config[‘sess_expiration’] = 864000; $config[‘sess_save_path’] = ‘ci_sessions’; $config[‘sess_match_ip’] = FALSE; $config[‘sess_time_to_update’] = 300; $config[‘sess_regenerate_destroy’] = FALSE;

/ |-------------- | Cookie Related Variables |-------------- | | ‘cookie_prefix’ = Set a cookie name prefix if you need to avoid collisions | ‘cookie_domain’ = Set to for site-wide cookies | ‘cookie_path’ = Typically will be a forward slash | ‘cookie_secure’ = Cookie will only be set if a secure HTTPS connection exists. | ‘cookie_httponly’ = Cookie will only be accessible via HTTP (no javascript) | | Note: These settings (with the exception of ‘cookie_prefix’ and | ‘cookie_httponly’) will also affect sessions. | / $config[‘cookie_prefix’] = ‘pk_’; $config[‘cookie_domain’] = ’’; $config[‘cookie_path’] = ’/’; $config[‘cookie_secure’] = FALSE; $config[‘cookie_httponly’] = FALSE;

/ |-------------- | Standardize newlines |-------------- | | Determines whether to standardize newline characters in input data, | meaning to replace \r\n, \r, \n occurrences with the PHP_EOL value. | | This is particularly useful for portability between UNIX-based OSes, | (usually \n) and Windows (\r\n). | / $config[‘standardize_newlines’] = FALSE;

/ |-------------- | Global XSS Filtering |-------------- | | Determines whether the XSS filter is always active when GET, POST or | COOKIE data is encountered | | WARNING: This feature is DEPRECATED and currently available only | for backwards compatibility purposes! | / $config[‘global_xss_filtering’] = TRUE;

/ |-------------- | Cross Site Request Forgery |-------------- | Enables a CSRF cookie token to be set. When set to TRUE, token will be | checked on a submitted form. If you are accepting user data, it is strongly | recommended CSRF protection be enabled. | | ‘csrf_token_name’ = The token name | ‘csrf_cookie_name’ = The cookie name | ‘csrf_expire’ = The number in seconds the token should expire. | ‘csrf_regenerate’ = Regenerate token on every submission | ‘csrf_exclude_uris’ = Array of URIs which ignore CSRF checks / $config[‘csrf_protection’] = FALSE; $config[‘csrf_token_name’] = ‘csrf_test_name’; $config[‘csrf_cookie_name’] = ‘csrf_cookie_name’; $config[‘csrf_expire’] = 7200; $config[‘csrf_regenerate’] = TRUE; $config[‘csrf_exclude_uris’] = array();

/ |-------------- | Output Compression |-------------- | | Enables Gzip output compression for faster page loads. When enabled, | the output class will test whether your server supports Gzip. | Even if it does, however, not all browsers support compression | so enable only if you are reasonably sure your visitors can handle it. | | Only used if zlib.output_compression is turned off in your php.ini. | Please do not use it together with httpd-level output compression. | | VERY IMPORTANT: If you are getting a blank page when compression is enabled it | means you are prematurely outputting something to your browser. It could | even be a line of whitespace at the end of one of your scripts. For | compression to work, nothing can be sent before the output buffer is called | by the output class. Do not ‘echo’ any values with compression enabled. | / $config[‘compress_output’] = FALSE;

/ |-------------- | Master Time Reference |-------------- | | Options are ‘local’ or any PHP supported timezone. This preference tells | the system whether to use your server’s local time as the master ‘now’ | reference, or convert it to the configured one timezone. See the ‘date | helper’ page of the user guide for information regarding date handling. | / $config[‘time_reference’] = ‘local’;

/ |-------------- | Rewrite PHP Short Tags |-------------- | | If your PHP installation does not have short tag support enabled CI | can rewrite the tags on-the-fly, enabling you to utilize that syntax | in your view files. Options are TRUE or FALSE (boolean) | | Note: You need to have eval() enabled for this to work. | / $config[‘rewrite_short_tags’] = FALSE;

/ |-------------- | Reverse Proxy IPs |-------------- | | If your server is behind a reverse proxy, you must whitelist the proxy | IP addresses from which CodeIgniter should trust headers such as | HTTP_X_FORWARDED_FOR and HTTP_CLIENT_IP in order to properly identify | the visitor’s IP address. | | You can use both an array or a comma-separated list of proxy addresses, | as well as specifying whole subnets. Here are a few examples: | | Comma-separated: ‘,’ | Array: array(‘’, ‘’) */ $config[‘proxy_ips’] = ’’;

Thanks. :)

Hi, it’s very strange. Try to change config base url from: /Task to Task/index.php/

And try again


Cinefake Purchased

nice Work needs Time!!! no Problem ;)

Thank you! :)

Nice work DigitalBorder, I’m probably going to purchase soon.

Quick question: When do tasks get archived? And can they stay archived until admin clears them?

Hi, thank you.

Click and hold on a task to see the archive or trash button. Yes, they stay archived how much you want.

Hi, can you list a changelog? This is for your latest release

Hi, yes, i updated now the changelog.

v.1.4 – 19/05/2017 - Graphic enhancements - Add daily reminder by email - Add multi language support - Bug fixing html


seahawk1 Purchased

Hi there, I tried to update from 1.3 to 1.4 but was having database issues. So I backed up my database and did a fresh install of 1.4 and when I try to import the db backup, I get an error – #1062 – Duplicate Entry ‘1’ for key ‘PRIMARY’ – Can you help me with that? Thank you, Dwayne


seahawk1 Purchased

All good. Figured it out. Just deleted all existing data and then import worked.

Ok thank you for your report

tried to update and got into this error:


Error: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘user_daily_reminder’

any advice?

i have run the update process 4 times but i still bump into the same error.


Error: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘user_daily_reminder’

Yes but if you get this error the update is not necessary.

Copy all files in your directory and join on your pkanban url


gibarra Purchased

Hello there!

I’m getting the next error (same to @daniavorszky)


Error: SQLSTATE[42S21]: Column already exists: 1060 Duplicate column name ‘user_daily_reminder

Hi gibarra, if you get this error you have execute 2 times the update because user_daily_reminder not exist before…

No problem, it works correctly?


gibarra Purchased

Hi DB,

I repeated your sugegestion +2 times but allways i was arriving to the same message. Then I tried a clean installation deleting the database and now I’m facing this … All my work with a customer I will need to rebuild it :(

Step 6 out 6


INSERT INTO `boards` (`board_id`, `board_name`, `board_default`, `board_order`) VALUES (1, ‘Personal’, 1, 0), (4, ‘My Projects’, 0, 1);

Error: SQLSTATE23000: Integrity constraint violation: 1062 Duplicate entry ‘1’ for key ‘PRIMARY’

Oh no, if you have delete the database you have lost all tasks?

Can you import a backup? If yes execute only this SQL:


And update all files in your root directory.

The update is finished!

Question. When I make a comment, how do others make comments and not overwrite my comment.

Hi, i’m sorry but i don’t understand what you mean

Help, view time-tracker button on small devices????

how to setup the email notification? what file(s) need to be edited? I set up the cron job but I don’t get email notifications, please explain.