koken / issues Goto Github PK
View Code? Open in Web Editor NEWPublic issue tracker for Koken http://koken.me
Public issue tracker for Koken http://koken.me
As it seams Koken admin is not fully compatible when running MySQL in strict mode
STRICT_TRANS_TABLES is enabled by default in 5.7 and CentOS/RedHat has also strict mode enabled for both 5.5 & 5.6
When using {{ discussion_count }}
the output is x Comments no matter what language is set in the theme settings panel.
OFF TOPIC
And as a side note IMO we can "lose" the "Comments" all toghter and only display the number
The included animate (app/site/themes/common/css/animate.css
) is outdated.
Latest version 3.5.1 (https://github.com/daneden/animate.css)
When trying to use lazy="{{ settings.use_lazy }}"
and creating a toggle in the theme settings panel.
Lazy loading always will return false
It doesn't matter if I use
"use_lazy": {
"label": "Use lazy loading",
"type": "boolean",
"values": { "true": "true", "false": "false" },
"value": "false",
"control_first": true
},
Or:
"use_lazy": {
"label": "Use lazy loading",
"type": "boolean",
"value": "true",
"control_first": true
},
As soon as lazy="true"
is changed to lazy="{{ settings.use_lazy }}"
lazy loading fails
Both the
<title>Password required / {{ site.title }}</title>
and
<h1>Password required</h1>
together with
<input id="klogin_input" type="password" name="password" autofocus placeholder="Enter password" />
and
<button type="submit" disabled>Go</button>
is hard coded.
When inserting a koken:not lens tag call for IPTC copyright in a template, it doesn't return a value to the page.
<koken:not empty="exif.iso_speed_ratings">
<li>
<span class="label">ISO</span>
<span class="value">{{ exif.iso_speed_ratings }}</span>
</li>
</koken:not>
<koken:not empty="iptc.copyright">
<li>
<span class="label">Copyright</span>
<span class="value">{{ iptc.copyright }}</span>
</li>
</koken:not>
The use of <koken:time />
in conjunction with with custom date format for example: jS F Y
will output a trailing 0 after j
.
This only affects theme that uses the language feature of koken
The issue is detailed in the feedback thread here: http://feedback.koken.me/topic/make-stripping-of-exifiptc-data-optional
The short version...
If GD2 is the only graphics library available, it is not specifically instructed (in Koken's core code) to cache & then append the EXIF data to image files. When uploading and processing content to either the library or when embedded into essays (via it's editor), it only uses the base image data for graphics manipulation and file writing.
ImageMagick, Imagick, GraphicsMagick can apparently provide the data correctly, and also include a toggle within the admin side to enable/disable the saving of EXIF data.
Month names in <koken:time />
and inside
<koken:dates filter:scope="month">
<koken:select label="{{ language.select_month }}" />
</koken:dates>
is not translated in any theme
The images in the site preview is not visible when behind a Varnish cache.
The first Theme preview functions as expected: but as soon as you have chosen the theme images is no longer available.
Browser developer tool->Network reports status code 302 for http://site.com/preview.php?/koken.js
Brwoser developer toll->Console gives
SyntaxError: expected expression, got '<' preview.php:1:0
ReferenceError: $K is not defined
preview.php:65:1
ReferenceError: $K is not defined
preview.php:233:2
SyntaxError: missing ; before statemen
Calling yourdomain.com/preview.php redirects to yourdomain.com/admin/#/site. Calling the url a second time, it will load content but keeps preview.php?/ in its url and you will never be redirected to /admin again.
The above is valid for connections over http and https. You have to be logged out to reproduce the behaviour. Manually deleting API, Site and browser cache leads to a one time redirection to /admin but after a second call it shows the site content again.
The installer throws an error:
Uncaught ReferenceError: intId is not defined
The variable intId is not set because a whitespace is missing in line 774.
varintId = setInterval(function() {
var intId = setInterval(function() {
After enabling reCAPTCHA in a contact form you can click submit without solving the captcha. The form does not submit but neither throws an error.
Edit: You don't even need to fill out the fields.
When MySQL is running under ONLY_FULL_GROUP_BY in sql_mode, as is the default in MySQL 5.7, Koken throws errors.
without ONLY_FULL_GROUP_BY:
mysql> SELECT COUNT(*) as count, YEAR(FROM_UNIXTIME(folio_content.published_on)) as event_year, MONTH(FROM_UNIXTIME(folio_content.published_on)) as event_month, `folio_albums`.`id` AS album_id FROM (`folio_content`) LEFT OUTER JOIN `folio_join_albums_content` folio_join_albums_content ON `folio_content`.`id` = `folio_join_albums_content`.`content_id` LEFT OUTER JOIN `folio_albums` folio_albums ON `folio_albums`.`id` = `folio_join_albums_content`.`album_id` WHERE `folio_content`.`visibility` = 0 AND `folio_content`.`deleted` = 0 GROUP BY `event_year`, `event_month` ORDER BY `event_year` DESC, `event_month` DESC;
+-------+------------+-------------+----------+
| count | event_year | event_month | album_id |
+-------+------------+-------------+----------+
| 73 | 2016 | 12 | 3 |
+-------+------------+-------------+----------+
1 row in set (0.00 sec)
With:
mysql> SELECT COUNT(*) as count, YEAR(FROM_UNIXTIME(folio_content.published_on)) as event_year, MONTH(FROM_UNIXTIME(folio_content.published_on)) as event_month, `folio_albums`.`id` AS album_id FROM (`folio_content`) LEFT OUTER JOIN `folio_join_albums_content` folio_join_albums_content ON `folio_content`.`id` = `folio_join_albums_content`.`content_id` LEFT OUTER JOIN `folio_albums` folio_albums ON `folio_albums`.`id` = `folio_join_albums_content`.`album_id` WHERE `folio_content`.`visibility` = 0 AND `folio_content`.`deleted` = 0 GROUP BY `event_year`, `event_month` ORDER BY `event_year` DESC, `event_month` DESC;
ERROR 1055 (42000): Expression #4 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'vickehco_koken.folio_albums.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
In this example, the issue is that there is the album_id column, which is not in the GROUP BY clause. Putting it in demonstrates why this error is reported by MySQL:
mysql> SELECT COUNT(*) as count, YEAR(FROM_UNIXTIME(folio_content.published_on)) as event_year, MONTH(FROM_UNIXTIME(folio_content.published_on)) as event_month, `folio_albums`.`id` AS album_id FROM (`folio_content`) LEFT OUTER JOIN `folio_join_albums_content` folio_join_albums_content ON `folio_content`.`id` = `folio_join_albums_content`.`content_id` LEFT OUTER JOIN `folio_albums` folio_albums ON `folio_albums`.`id` = `folio_join_albums_content`.`album_id` WHERE `folio_content`.`visibility` = 0 AND `folio_content`.`deleted` = 0 GROUP BY `event_year`, `event_month`, album_id ORDER BY `event_year` DESC, `event_month` DESC;
+-------+------------+-------------+----------+
| count | event_year | event_month | album_id |
+-------+------------+-------------+----------+
| 8 | 2016 | 12 | NULL |
| 3 | 2016 | 12 | 2 |
| 6 | 2016 | 12 | 3 |
| 4 | 2016 | 12 | 4 |
| 10 | 2016 | 12 | 8 |
| 10 | 2016 | 12 | 14 |
| 3 | 2016 | 12 | 15 |
| 10 | 2016 | 12 | 18 |
| 3 | 2016 | 12 | 19 |
| 21 | 2016 | 12 | 20 |
| 3 | 2016 | 12 | 21 |
+-------+------------+-------------+----------+
11 rows in set, 1 warning (0.00 sec)
As you can see the album_id in the first response is picked roughly by random, but is not correct. We either want to know the total count in all albums, in which case we should remove the album_id from the query, or we want to know counts for each album, in which case it should be in the GROUP BY clause.
There are probably other queries with similar issues.
I would recommend a short term solution of warning in the admin side if this setting is enabled, as it's very hard to debug without quite a bit of know-how.
Today it's not possible to set an individual video as downloadable.
But if you select all content in a album, or in the library, and set them as downloadable: the video(s) are marked to be downloadable to.
And in the public site the video is indicated that it is possible to download, as long as the original is set as max download size; the video is possible to download but for all other sizes it fails.
To day it's not possible to allow download of any video file in Koken
dl.php
only accept .jpg
, .png
& .gif
as downloadable files.
Due to double <koken:head>
the favorites.lens only loads four images
Original:
<koken:include file="layouts/header.html" />
<koken:load limit="4">
<koken:head>
<meta property="og:site_name" content="{{ site.title }}" />
<meta property="og:title" content="{{ labels.content.plural }}" />
<meta property="og:description" content="{{ site.description strip_html='true' }}" />
<meta property="og:type" content="website" />
<koken:first>
<meta property="og:image" content="{{ content.presets.medium_large.url }}" />
<meta property="og:image:width" content="{{ content.presets.medium_large.width }}" />
<meta property="og:image:height" content="{{ content.presets.medium_large.height }}" />
</koken:first>
<meta property="og:url" content="{{ location.site_url }}{{ location.here }}" />
<koken:not empty="profile.twitter">
<meta name="twitter:card" content="gallery" />
<meta name="twitter:site" content="@{{ profile.twitter }}" />
<meta name="twitter:creator" content="@{{ profile.twitter }}" />
<koken:loop>
<meta name="twitter:image{{ index }}" content="{{ content.presets.medium_large.cropped.url }}">
</koken:loop>
</koken:not>
</koken:head>
</koken:load>
<koken:load limit="{{ settings.content_index_limit }}">
<koken:head>
<meta property="og:site_name" content="{{ site.title }}" />
<meta property="og:title" content="{{ labels.favorite.plural }}" />
<meta property="og:description" content="{{ site.description strip_html='true' }}" />
<meta property="og:type" content="website" />
<koken:first>
<meta property="og:image" content="{{ content.presets.medium_large.url }}" />
<meta property="og:image:width" content="{{ content.presets.medium_large.width }}" />
<meta property="og:image:height" content="{{ content.presets.medium_large.height }}" />
</koken:first>
<meta property="og:url" content="{{ location.site_url }}{{ location.here }}" />
<koken:not empty="profile.twitter">
<meta name="twitter:card" content="gallery" />
<meta name="twitter:site" content="@{{ profile.twitter }}" />
<meta name="twitter:creator" content="@{{ profile.twitter }}" />
<koken:loop limit="4">
<meta name="twitter:image{{ index }}" content="{{ content.presets.medium_large.cropped.url }}">
</koken:loop>
</koken:not>
</koken:head>
<ol class="thumbs">
<koken:loop>
<koken:include file="layouts/content_list_item.html" />
</koken:loop>
</ol>
<koken:include file="layouts/pagination.html" />
<koken:else>
<koken:note>
This page displays favorites. Mark individual images/videos as favorites in the Library.
</koken:note>
</koken:load>
<koken:include file="layouts/footer.html" />
Correct:
<koken:include file="layouts/header.html" />
<koken:load limit="4">
<koken:head>
<meta property="og:site_name" content="{{ site.title }}" />
<meta property="og:title" content="{{ labels.content.plural }}" />
<meta property="og:description" content="{{ site.description strip_html='true' }}" />
<meta property="og:type" content="website" />
<koken:first>
<meta property="og:image" content="{{ content.presets.medium_large.url }}" />
<meta property="og:image:width" content="{{ content.presets.medium_large.width }}" />
<meta property="og:image:height" content="{{ content.presets.medium_large.height }}" />
</koken:first>
<meta property="og:url" content="{{ location.site_url }}{{ location.here }}" />
<koken:not empty="profile.twitter">
<meta name="twitter:card" content="gallery" />
<meta name="twitter:site" content="@{{ profile.twitter }}" />
<meta name="twitter:creator" content="@{{ profile.twitter }}" />
<koken:loop>
<meta name="twitter:image{{ index }}" content="{{ content.presets.medium_large.cropped.url }}">
</koken:loop>
</koken:not>
</koken:head>
</koken:load>
<koken:load limit="{{ settings.content_index_limit }}">
<ol class="thumbs">
<koken:loop>
<koken:include file="layouts/content_list_item.html" />
</koken:loop>
</ol>
<koken:include file="layouts/pagination.html" />
<koken:else>
<koken:note>
This page displays favorites. Mark individual images/videos as favorites in the Library.
</koken:note>
</koken:load>
<koken:include file="layouts/footer.html" />```
The email subject is hard coded in to /app/plugins/shortcodes/plugin.php line 52
Would be good to have this as a separate form field so the visitor will fill it out at submission, maybe "prefixed" with something like
[ {{ site.title }} ]:
As reported here: http://help.koken.me/customer/portal/questions/16188432-sending-emails-via-contactform
Tested on my own form that uses SMTP via gmail
First tested by sending a form from black.skorpio[a]gmail.com (Still not delivered)
After five minutes sent another form mail from bjarne[a]kokensupport.com (This was delivered immediately)
Seems to be after the most recent update the admin site editor doesn't load the changes and also unable to save changes. Doesn't sense any changes when changes are made. Just noticed it now, so I'm not sure if this happened after most recent update or the one before. When making changes it reloads the draft page but not with any changes and unable to save.
When a img is made purchasable it's no longer possible to open that img up in lightbox (or click to content.lens) when visiting with an iOS device.
(Tested on iPhone running iOS 7.0.4 and iPad Mini running 9.3.3)
On android it works as expected
Can be seen on: https://varoystrand.se/album/summer/
While using Password Protect plugin, the body tag in login.lens has no helper class named k-lens-login.
From reading the docs at http://help.koken.me/customer/portal/articles/828695-helper-classes it should be added to the page automagically.
The issue:
Swiping an image in a lightbox feels inconsistent. Starting to swipe from the edge of the screen does nothing if previous/next links are shown.
Steps to reproduce:
Use Samsung GT-N7100 with Android 4.4.2, latest Chrome or Firefox Browser and open an image in a lightbox. Try to swipe from the edge of the screen to the center. Start to swipe next to the next/previous nav and will work fine.
Miscellaneous information:
Heard it's not an issue on iPhone 4s.
When using <koken:breadcrumbs separator="/" show_if_single="false" />
inside album.lens it fails to show the parent set if an album is part of an set.
You would expect Home / Alums / Set / Album name
instead it prints Home / Albums / Album name
Instead of only showing the album/set id: adding the album/set name will make the Library even more user-friendly.
It can today be archived with the help of a third-party plugin: https://github.com/DanielMuller/koken-plugin-library_display
But I believe it would be better to add this functionality directly to the core
During installation, the following message will be displayed when running PHP 7:
Koken is incompatible with PHP 7. Ask your host or system administrator to downgrade to PHP 5.3 to 5.6
This is absolutely terrible advice— you should not tell people to downgrade software on their servers. In addition, PHP versions older than 5.6 are officially unsupported.
Please consider replacing this with a message that says that PHP 7 compatibility has not been fully assessed yet, maybe with a link to a help article sharing more details. Or, ideally, finish the assessment.
Enviroment: latest Koken
Using <koken:asset file="inc/js/main.min.js?2.3" />
will make Koken not recognize the javascript: dues not including it at all.
The tag {{ exif.lens }}
will always return empty when viewed inside admin, but on live site it behaves as expected.
As the title suggests, if you click on the album name in lightbox you are taken back to the album, but instead of using the real slug (album name) it is instead something like
http://domain.com/albums/740784e55171ba6be856c246cf6efead/
Where as the 740784e55171ba6be856c246cf6efead
corresponds to the album name/slug spring
Example on this can be seen if you open up any images here in lightbox and hover over the album name "Våren"
I want to extend admin interface via plugin. I found a good way through console/plugin.js
but problem to change templates.
In my first plugin (export) I just append element to body with position absolute. Click event on that element fire sync
method. Not as I would like but it'll do.
But in my future plugin I need a separate page with settings (standard plugin "setup" not suitable).
A good way to do this is channels, but if I call this.channel({id: 'test', name: 'test', title: 'test'});
I got __k.interfaces.app.observers.channels is undefined
(koken-core.js:1451)
Workaround is setTimeout but I think it ugly hack.
To reproduce just create console/plugin.js
in any plugin with
Koken.extend(function () {
this.channel({
id: 'test',
name: 'Test',
title: 'Test'
});
});
and clear system cache
It's not possible to use the <koken:discussion_count>{{ discussion_count }}</koken:discussion_count>
inside a essay(/page?) as of today.
(Koken 0.21.13)
I'm assuming you using something like:
{{ location.site_url }}/{{content.filename }}
When building the src url for images and slideshows
Replacing that with something like
{{ location.root_folder }}/{{content.filename }}
Would make life much easier for people serving the same site with multiple domains
The contact form feature lacks recaptcha or captcha which leads to spam
When using <koken:time relative="true" />
the output is not translatable.
Steps to reproduce:
Replace any instance of <koken:time />
with <koken:time relative="true" />
When using <koken:permalink />
in a album it's returning
When it should return
Is there a way to move or set pictures to Albums on IOS-Devices or other mobile Devices?
i see it is possible to upload photos from iOS directly into albums, but it seems it is not possible to move them into albmus later, because of missing drag & drop funcionality on mobile Devices. Is there a way to manage the albums on mobile devices?
This may be a very minor issue, unless it's a result of some change in Google's own code and then it's more of a non-Koken issue as far as their report goes, but....
Google's crawl report for my site (in their webmaster search console) shows a single consistent error starting on 2/10/2017 for 'error/404/' as a "page not found". I understand 404's, so it's not that the error itself is entirely incorrect - but it hasn't shown up as an error in any Google reports between last November on up to February 10th, and the bot regularly crawls the site according to my reports and site logs. I've made no template changes to cause the issue.
After some testing I found that my 404 page generally works as expected on errors, and it also displays the results for routed_variables.code as an error code from the template. The one exception where it won't render correctly is when I manually type in /error after my domain name as a directory/folder route, I see a direct rendering of the theme's 'error.lens' template with a blank error code. It's still looks complete, with header and footer templates - otherwise it's what you'd visually expect from a non-existent resource producing a 404 error. The only problem seems to be that there's no proper redirect or a display of Koken's internal 404 error code.
i.e., https://lumiworx.com/error/ will show error.lens as-is, versus something like https://lumiworx.com/jo4deswqut that will properly redirect to /error/404/ and show the 404 error code.
This all may be trivial and not worth investigating - and/or unrelated - but experience tells me that when Google's reports start showing errors there may be something else in the works.
The /storage/cache/api/
never gets clear, just keeps building up over time.
https://kokensupport.com/viewtopic.php?t=490
Google geolocation API not work on https sites.
When I try to click "geo icon" (in right Inspector pane) nothing happened.
In Chrome Developer I see errors:
Mixed Content: The page at 'https://stupalov.com/admin/#/library/albums/2/content/selection:5' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://maps.googleapis.com/maps/api/geocode/json?latlng=59.976845,30.302836666667&sensor=false'. This request has been blocked; the content must be served over HTTPS.
XMLHttpRequest cannot load http://maps.googleapis.com/maps/api/geocode/json?latlng=59.976845,30.302836666667&sensor=false. Failed to start loading.
I know that Google Api requires serve https requests when site use https.
Using <koken:link to="custom">My custom template</koken:link>
Dosent work.
Tested after adding routes and templates for it inside the theme info.json
(Koken version 0.21.13)
I.E <koken:link class="o-myClass">Text</koken:link>
the o-myClass
is ignored/removed.
While <koken:link class="o_myClass">Text</koken:link>
is accepted.
As the title says, when visiting templates where the Cart should not be active $this->blacklist_templates = array('albums', 'sets', 'set');
it is still loading all resources.
IMHO those resources should not be loaded if they are not used.
As a side note the above blacklist should also be extended to include the page.lens
and essays.lens
The EXIF values used for "EXIF.ExposureMode", as of Koken v.0.22.11, are incorrect according to the EXIF v.2.31 specifications. Full CIPA specs - PDF (updated, July 2016)
From line 1423 in /koken/app/application/models/content.php:
'exposure_mode' => array(
'label' => 'Exposure mode',
'field' => "EXIF.ExposureMode",
'values' => array(
0 => 'Easy shooting',
1 => 'Program',
2 => 'Shutter priority',
3 => 'Aperture priority',
4 => 'Manual',
5 => 'A-DEP'
)
These values appear to be a jumble of what should belong to different parts of an array for 'ExposureProgram'. The EXIF spec for ExposureMode only has 3 possible values.
Tag ID - Tag Name - Write Value - Group
++++++++++++++++++++++++++++++++++++
0xa402 - ExposureMode - SHORT (int16u) - ExifIFD0 = Auto
1 = Manual
2 = Auto bracket
Since the file is from Koken's core, any changes made could be overwritten with any updates, so it's not something users would want to monitor and modify every time.
As of the latest version, Koken doesn't include an array with appropriate values for "EXIF.ExposureProgram", which would be:
Tag ID - Tag Name - Write Value - Group
++++++++++++++++++++++++++++++++++++
0x8822 - ExposureProgram - SHORT (int16u) - ExifIFD0 = Not defined (Default value)
1 = Manual
2 = Normal program
3 = Aperture priority
4 = Shutter priority
5 = Creative program (biased toward depth of field / slow speed)
6 = Action program (biased toward fast shutter speed / high speed)
7 = Portrait mode
8 = Landscape mode
Other = reserved9 = Bulb (Not an accepted value from the spec and ONLY used by Canon for the EOS 7D)
Hi,
I've integrated Daniel Muller's Photoswipe-for-Koken plugin to replace lightbox. The plugin works great but in Regale2 it suffers from an issue: It displays an album's sequence of images in a wrong order. The cause of this is that it uses the order of the images that the HTML DOM that it is generated by the template, and for the case of Regale2 this doesn't follow the Koken album order but instead jumps images. Please see below ticket for reference:
DanielMuller/koken-plugin-photoswipe#36
Is there anything that can be done so that the generated Regale2 DOM follows the sequence order? Can this be considered added as an option for regale2 in an upcoming release? I think this would be very useful for the Koken community and Regale2 users.
Please let me know.
Many thanks,
Marcos
The <koken:permalink />
that is used in the RSS feeds is broken.
On line 1861 in koken.php we have:
$url = $protocol . '//' . $_SERVER['HTTP_HOST'] . $url;
It should instead say:
$url = $protocol . '://' . $_SERVER['HTTP_HOST'] . $url;
Issue reported at KCS (we have provided a quick DIY fix for the time being) and help.koken.me
Whenever I click the "Store" link on my sites admin page it just displays a white page with the store sidebar for a few seconds, then returns to the page I came from. It doesn't say why. There are no errors in the console either.
The included Font Awesome is outdated and need to be updated.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.