Posts by Min Lee

    It is only possible if you willing to rewrite and overwrite the core registration/login systems provided by woltlab. Doing so would probably cut you off the official updates as your woltlab suite would be modded and maybe incompatible with certain update(s).


    (e.g. do not store users e-mails at all in my database)

    You have to make sure your API has a unique identifier for your users if you want to ditch an email address. For example a display name is not always a reliable way to track users as it may be not unique and etc.

    I've already solved it by writing if and else statements while checking '==' to every possible value from 1-60 and 1-24 respectively even though that's a quite messy and more costly approach in terms of loading times.

    You can use raw JavaScript-Code

    It doesn't look like raw javascript is being passed trough {lang} as well unless you meant code inside the templates or something else.


    This is how it looks on attempt to place js inside the phrase:

    Is there any possible workaround apart from editing the core and outputting $hours and $minutes already translated and pluralised before it even reaches {lang}?

    Can java script engine can be extended if so which files are responsible for parsing the syntax?

    It's really sad that woltlab can't handle a basic task like a proper localisation by default...

    I have failed to properly localise and pluralise wcf.date.relative.minutes and wcf.date.relative.hours. Thb there could be more strings that behaves exactly like them.

    The correct phrase shows up for a split of the second and then gets replaced by the raw syntax inside the language phrase. That also applies on any other default woltlab template or PHP function. Without subtr I simply can not pluralise the phrase.

    Disabling java-script shows the text as it should be.

    Does anyone knows how to solve it?:/

    For example something like that would work {15|rand:25} but {15|MathUtil::getRandomValue:25} would throw an error.

    Can any static function be passed directly and if not what's the alternative approach? The only thing I could think of would be writing a Template Plugin or implementing a class method 'ICompilerTemplatePlugin'. Any ideas?:/

    Translating Woltlab properly requires additional modifications of core libraries,templates when it comes to plural forms in variety of languages. In the future that should not be the case because modifying core files and templates cuts us off the automatic updates. With modifications to the libraries it has to be updated manually which is quite tedious.

    In English pluralisation is quite simple, you just normally add an 's' at the end if there's multiple units of something but it might be way more complex when it comes to others languages. I have no idea how it is in German language and how Woltlab deals with it but I assume there aren't any issues.


    For example, take the phrase 'x registered user(s)' and translate it to the Lithuanian language. The phrase will look quite differently depending on the quantity of the noun and even the word that describes the noun changes alongside with the numbers:


    If number is or ends in 1 the phrase should be "x registruotas vartotojas"

    If number is or ends in 0,11,12,13,14,15,16,17,18,19 the phrase should be "x registruotų vartotojų"

    If number is or ends in 2,3,4,5,6,7,8,9 the phrase should be "x registruoti vartotojai"


    Normally I have a custom function that parses the translation strings alongside the php variables but as I mentioned before I rather not modify the system to achieve that. And if there is a way to achieve that without writing million if blocks in the templates, let me know. I might have missed something as there little to no documentation.:/


    I've used IPS community suite for a while and they have a nifty regex based solution that can be applied to any language (please read to have a general idea): https://invisioncommunity.com/…_326/plural-phrases-r121/


    If Woltlab had something along those lines it would be just perfect.;)

    If it was possible to generate skeleton files in the ACP it would be sufficient for me.

    Some of other frameworks have this implemented. I see no reason why woltlab couldn't if they wanted.


    Let's take IPS framework language XML as an example . The normal behaviour is to install app which uses XML files in order to import language strings to the database and load it from there while page is being processed(woltlab does that too), it is how most systems works.

    If dev mode is turned on, then ips system loads everything from a lang.php files instead of database entries, which is a simple array. Yes, all you have to do as dev is to add array key and assign a value to it and it works out of the blue anywhere on the system or in the module you develop. This is so fast and efficient. Same with jslang.php, plus they get merged into one xml file on compilation for production; if its js it has xml flag of js=1. So while developing your custom translations you don't deal with database entries at all, nor with XML, just a plain good array. So if to do something along those lines you don't need XML skeleton generation for language files at all because defining array takes so little of the time its not even worth making a skeleton, it would be just an overkill. If it's strictly XML based then skeleton is needed. Like you add a keys and assign the values trough the html form and then system generates the XML for you. Doing it trough array is faster than using ACP I think, unless you use ajax so you only to press one button to add a XML value.




    As for sql queries skeleton generation they have them form/ajax based, you can also add indexes,keys and everything trough there(kinda remains me of simplified phpmyadmin) even though it's only for creating tables that new app/plugin will use. To UPDATE or modify already exiting system tables you still have to use normal queries(like alter table and etc) even though they are doing it using their php library so it's not .slq file based like woltlab.


    And don't get me wrong I'm not saying that things should done one way or another or that wotlab should do what ips does. By any means, no :) I'm just showing what approaches exist in the market.


    To sum up, in my opinion language needs skeleton generation only if it remains as xml all the time because it might get slightly tedious.

    MySQL queries may remain the same. I personally have no problem doing it trough pure .sql, but I guess adding them trough ACP is more 'noob' friendly.

    Modules,Controllers,Pages,Form and hooks must have skeleton generation for sure and correct name spacing in them. That would save so much of our time.

    I simply copy and replace the package identifier . Then I comment/uncomment all relevant PIPs. Then I install the package *once*. All subsequent changes are done in the file system, and changes o the PIPs are done in the database directly. I then just put the changes in the XML files as well.

    Why I never thought of doing that. Thanks for sharing. It's a good hack to avoid gziping.

    Well, the Dev tools allow you currently to simply sync your dev folder with your installation, but requires to manually write the xml files.

    Yeah, as I mentioned before current Dev current tools partially solves update issues while in developer mode. But that's not what I'm requesting. It's the first paragraph that you should pay attention. Skeleton file generation with proper namespaces predefined. It could be done in two ways, you could create all of the module files, hooks xmls trough ACP by using html forms and ajax submission or by php command line pretty much like composer which is exactly what Netzwerg wants as well.


    Rough example of how it could be done with PHP console:

    PHP
    php wbbdev make:controller packagename filename
    php wbbdev make:langxml packagename language code
    php wbbdev make:templatehook packagename filename

    I'm in process in converting my custom cms to woltlab which requires re-writing lots of modules and I'm already sick of recreating skeleton files manually.

    For example, in IPS community suite they have additional package called "dev tools" that includes whoops as error handling solution(very detailed) alongside possibility to create all package files, template hooks,language xml, MySQL queries for app/plugin trough admin ACP. You can literally create everything trough it, ofc those files are empty with default predefined method but they always has correct name-spacing in accordance with the app, so all you have to do is code your custom things and don't worry about the cliche part. This makes developing easy because you don't have to manually recreate skeleton files or modify name-spacing in them which saves tremendous time of work.


    This is what I miss in Woltlab so much.. If you at least allow to use file system without gziping or putting anything in tar while in dev mode it would simply things in a long run, because now to test a change you have to actually pack everything into multiple archives within tar/gzip and then reinstall/update the application. It's just a pure overkill. Other than that the framework is a perfection. (I guess this already kinda implemented since 3.1)


    P.S. As I mentioned above I know that since 3.1 there is a light version of "developers tools" but it's not nearly as efficient . It just saves you from gziping. It doesn't add the possibility to create package skeleton files trough the admin ACP. WotLab evolves every day, so I assume this will be eventually implemented . Sooner or later, because it would make suite more attractive from the dev point of view, which obviously means more modules, more apps, more goodness.:):love:

    Burning Board 4.0, 4.1, WoltLab Suite Forum 5.0 and 5.1

    Sadly, WCF 1.x family products is not in the list, but I think I found the solution which would be closest to what wbb3 could offer. That would be Burning Board Lite 2.1.1 which is based on the same framework version, but since it's "lite" I assume that it has way less functionality than original wbb3.

    I'll try porting my website to that which by the way will have to be 100% manual since no converters are available. If I'm successful, I might consider upgrading to 5.x family in the near future and if not then I'll just go with IPB. My main hassle with WCF 3.x is that bbcodes are being converted to the pure html upon saving and remains like that inside of database. I need it to be the old way, when entries were saved to the database with bbcode and parsed back to html only upon loading the page.

    Anyway, thanks for clearing out the concerns, and I think you can mark the topic as solved.

    I see. Thank you for your response on this. I think this statement should be added to official FAQ. I was surprised there were no entry regarding these matters.

    it doesn't magically turn into a free-to-use software

    This depends on the company, seen this policy in place before, but thanks for the information.

    regardless of its age without a license is a violation and will be prosecuted.

    I assume there should be a database that still contains all of the purchases related to the old software otherwise you would have no legal proof/standing, because license credentials only needed for updating and you can't really tell if user stole the script or just didn't opt-in to update it by using license information. So to prove anything would be quite a process. I think license should be checked in matter like IPS, and Xenforo does, not just when you update trough packages. Then you can have an actual proof if user runs legit or not. But hey, every company has their own rules. :)


    In regards of demo, at the moment I'm not interested in newer versions of your products, unless you will be offering wbb3 licenses anytime soon.

    A good approach would be if you allow to download old product versions along with the ones you own currently. Like for example, user buys WBB5 then he gets access to all previous versions in case he prefers to run downgraded.

    What is your policy when it comes to outdated versions of WSC and WBB? And in general, is it allowed to use any of your scripts without a license code as long as you do not update via update package servers?

    I was looking for a change from Webspell clan cms because it no longer supports newer php versions and because the development was shut down for good.

    The friend of mine came up with solution and sent me a copy of Burning board 3 which like all of your products (as far as I read online) have no actual license validation in it's code except the product update part where you need to provide the license key in order to get a newer version..

    As far as I have seen in your forums it states that wbb3 is no longer supported in general and admincp in wbb3 proves the point as well, because it fails to connect the package servers as if they haven't even existed.

    My question would be, is it actually legal to use it or not in accordance of your terms because it's not like I want to invest my time in converting all the posts and etc. just to be asked to shut down my forums a week later cause they aren't "legal enough".:/