Jump to content

Community

CodingJungle

+Clients
  • Posts

    2,972
  • Joined

  • Days Won

    30

Reputation Activity

  1. Like
    CodingJungle got a reaction from Jon Erickson in IPS API Request   
    my request:
    can we get documentation for adding API to our apps, I'm having to add it to 3 different apps atm for a project for a client, and i'm really sorta winging it. looking at what you guys have done, but even then its not all that clear what is being done or why. please document the graphql api you've added, i'm assuming you are using this in your mobile app, since i can't find any reference to it in any of your php/js code. '/^\s*\*\s*@([a-z]*)(\t+([^\t]*))?(\t+([^\t]*))?(\t+([^\t]*))?$/', found in /system/Api/Controller.php line 319. hopefully I can express how much misery this regex has caused me. you guys are literally the only software or framework i know of, in php or not, that uses tabs in their code. I use spaces, the rest of the world uses spaces, I have git hooks that will actually reject code for using tabs instead of spaces, my IDE is configured to use spaces. so for like .00001% of the over all app, on stuff that isn't even code, i have to undo ALL of that, just so the api reference docs are processed and shown in the ACP for the other devs on this project to have easy access to that info. I spent a good long while trying to figure out why it was not showing or throwing an exception in the api references, as there was no clear indication as to what was causing it or why. so for sanity sake, please make this regex more robust to look for tabs or space (or better yet, not rely on phpdoc block for api reference, make it a json/xml/txt in <app>/data that can be read and parsed out).  $this->_respond( json_encode( $output, JSON_PRETTY_PRINT ), $response->httpCode, NULL, $shouldLog, TRUE ); /system/Dispatcher/Api.php line 338/342/348., this code does not always produce valid json. it looks like json, but its not, its corrupted. I've had to add 'JSON_HEX_QUOT | JSON_HEX_TAG ' to the flags section of json_encode to get it to produce valid json (i did this thru a hook, but had to overload the entire method, cause there was no point in the code execution, i would be able to add those 2 flags). So please either add those flags or move the json_encode to a method inside the dispatcher, where all it does is json_encode, that way i can hook it and add those flags or any other flags i might need in the near future.  editor content from the api doesn't not get the file or url place holders replaced, i was pulling articles and blogs records, and none of the internal links or attachments were showing up, cause they still had the and <filestore> stuff still in them, so i had to go hook blogs and articles api to parse them (haven't gotten to the other apps yet).  embed/iframe content also is not loaded, cause the src attribute is empty, as the source is still on data-embed-src (i'm assuming this is apart of the IPS lazy loading that didn't get scrubbed properly). on db records, you include a title property but in 'fields' property, it also includes the title field content as well, so if that can be removed or at least give us the ID of which field_# is the title, same for description.  can you also include for any dates, a rfc2822 format along with the rfc3339, as javascript does not like the rfc3339 one (example: DateTime::ts($sometimestamp)->format(RFC::882), this will return a rfc2822 formatted date). heck even a raw unix timestamp would be better than a rfc3339 :).  to be completely honest, the api has not been a pleasure to write code for or to work with. it is one of the most difficult API's i've used. I have spent about 20 times longer debugging and finding solutions, than i have actually writing code to use the api. any way, i hope you guys can address these issues, if not, I might be forced to abandon the api and find another solution.
  2. Like
    CodingJungle got a reaction from BomAle in IPS API Request   
    my request:
    can we get documentation for adding API to our apps, I'm having to add it to 3 different apps atm for a project for a client, and i'm really sorta winging it. looking at what you guys have done, but even then its not all that clear what is being done or why. please document the graphql api you've added, i'm assuming you are using this in your mobile app, since i can't find any reference to it in any of your php/js code. '/^\s*\*\s*@([a-z]*)(\t+([^\t]*))?(\t+([^\t]*))?(\t+([^\t]*))?$/', found in /system/Api/Controller.php line 319. hopefully I can express how much misery this regex has caused me. you guys are literally the only software or framework i know of, in php or not, that uses tabs in their code. I use spaces, the rest of the world uses spaces, I have git hooks that will actually reject code for using tabs instead of spaces, my IDE is configured to use spaces. so for like .00001% of the over all app, on stuff that isn't even code, i have to undo ALL of that, just so the api reference docs are processed and shown in the ACP for the other devs on this project to have easy access to that info. I spent a good long while trying to figure out why it was not showing or throwing an exception in the api references, as there was no clear indication as to what was causing it or why. so for sanity sake, please make this regex more robust to look for tabs or space (or better yet, not rely on phpdoc block for api reference, make it a json/xml/txt in <app>/data that can be read and parsed out).  $this->_respond( json_encode( $output, JSON_PRETTY_PRINT ), $response->httpCode, NULL, $shouldLog, TRUE ); /system/Dispatcher/Api.php line 338/342/348., this code does not always produce valid json. it looks like json, but its not, its corrupted. I've had to add 'JSON_HEX_QUOT | JSON_HEX_TAG ' to the flags section of json_encode to get it to produce valid json (i did this thru a hook, but had to overload the entire method, cause there was no point in the code execution, i would be able to add those 2 flags). So please either add those flags or move the json_encode to a method inside the dispatcher, where all it does is json_encode, that way i can hook it and add those flags or any other flags i might need in the near future.  editor content from the api doesn't not get the file or url place holders replaced, i was pulling articles and blogs records, and none of the internal links or attachments were showing up, cause they still had the and <filestore> stuff still in them, so i had to go hook blogs and articles api to parse them (haven't gotten to the other apps yet).  embed/iframe content also is not loaded, cause the src attribute is empty, as the source is still on data-embed-src (i'm assuming this is apart of the IPS lazy loading that didn't get scrubbed properly). on db records, you include a title property but in 'fields' property, it also includes the title field content as well, so if that can be removed or at least give us the ID of which field_# is the title, same for description.  can you also include for any dates, a rfc2822 format along with the rfc3339, as javascript does not like the rfc3339 one (example: DateTime::ts($sometimestamp)->format(RFC::882), this will return a rfc2822 formatted date). heck even a raw unix timestamp would be better than a rfc3339 :).  to be completely honest, the api has not been a pleasure to write code for or to work with. it is one of the most difficult API's i've used. I have spent about 20 times longer debugging and finding solutions, than i have actually writing code to use the api. any way, i hope you guys can address these issues, if not, I might be forced to abandon the api and find another solution.
  3. Thanks
    CodingJungle got a reaction from Ilya Hoilik in IPS API Request   
    my request:
    can we get documentation for adding API to our apps, I'm having to add it to 3 different apps atm for a project for a client, and i'm really sorta winging it. looking at what you guys have done, but even then its not all that clear what is being done or why. please document the graphql api you've added, i'm assuming you are using this in your mobile app, since i can't find any reference to it in any of your php/js code. '/^\s*\*\s*@([a-z]*)(\t+([^\t]*))?(\t+([^\t]*))?(\t+([^\t]*))?$/', found in /system/Api/Controller.php line 319. hopefully I can express how much misery this regex has caused me. you guys are literally the only software or framework i know of, in php or not, that uses tabs in their code. I use spaces, the rest of the world uses spaces, I have git hooks that will actually reject code for using tabs instead of spaces, my IDE is configured to use spaces. so for like .00001% of the over all app, on stuff that isn't even code, i have to undo ALL of that, just so the api reference docs are processed and shown in the ACP for the other devs on this project to have easy access to that info. I spent a good long while trying to figure out why it was not showing or throwing an exception in the api references, as there was no clear indication as to what was causing it or why. so for sanity sake, please make this regex more robust to look for tabs or space (or better yet, not rely on phpdoc block for api reference, make it a json/xml/txt in <app>/data that can be read and parsed out).  $this->_respond( json_encode( $output, JSON_PRETTY_PRINT ), $response->httpCode, NULL, $shouldLog, TRUE ); /system/Dispatcher/Api.php line 338/342/348., this code does not always produce valid json. it looks like json, but its not, its corrupted. I've had to add 'JSON_HEX_QUOT | JSON_HEX_TAG ' to the flags section of json_encode to get it to produce valid json (i did this thru a hook, but had to overload the entire method, cause there was no point in the code execution, i would be able to add those 2 flags). So please either add those flags or move the json_encode to a method inside the dispatcher, where all it does is json_encode, that way i can hook it and add those flags or any other flags i might need in the near future.  editor content from the api doesn't not get the file or url place holders replaced, i was pulling articles and blogs records, and none of the internal links or attachments were showing up, cause they still had the and <filestore> stuff still in them, so i had to go hook blogs and articles api to parse them (haven't gotten to the other apps yet).  embed/iframe content also is not loaded, cause the src attribute is empty, as the source is still on data-embed-src (i'm assuming this is apart of the IPS lazy loading that didn't get scrubbed properly). on db records, you include a title property but in 'fields' property, it also includes the title field content as well, so if that can be removed or at least give us the ID of which field_# is the title, same for description.  can you also include for any dates, a rfc2822 format along with the rfc3339, as javascript does not like the rfc3339 one (example: DateTime::ts($sometimestamp)->format(RFC::882), this will return a rfc2822 formatted date). heck even a raw unix timestamp would be better than a rfc3339 :).  to be completely honest, the api has not been a pleasure to write code for or to work with. it is one of the most difficult API's i've used. I have spent about 20 times longer debugging and finding solutions, than i have actually writing code to use the api. any way, i hope you guys can address these issues, if not, I might be forced to abandon the api and find another solution.
  4. Like
    CodingJungle got a reaction from sobrenome in React with IPS4   
    if this for a non-marketplace app, i would load it up thru the interface folder or load it remotely.
    $myJs = \IPS\Output::i()->js('myfolder/myjs.js', 'myapp','interface'); \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles,$myJs); or 
    \IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles,[ \IPS\Http\Url::external('http://example.com/something.js') ]); if this is for a MP app, you might have to consider the remote loading as an option, since last i heard the the interface folder doesn't work for the cloud communities and i don't think you can you use the bypass method (which would be loading it thru the resources), cause it probably wont be able to properly map the imports (as imports if i am not mistaken are loaded by relative paths and resources wouldn't be relative). 
  5. Thanks
    CodingJungle got a reaction from Daniel F in [CJ] Stratagem (Support Topic)   
    they must not be on the latest version, cause it has a try/catch around that section for this reason.

  6. Like
    CodingJungle got a reaction from sobrenome in any one else?   
    i did include a stack trace 🙂 the app i tried to uninstall, i had just created it, i was gonna uninstall delete the folder and create it again, as i decided to change the app folder name.  so there weren't any tables to it yet. 
  7. Like
    CodingJungle got a reaction from sobrenome in any one else?   
    sorry @bfarber and @everyone else, no video today (sore throat!), has any one else hit this when trying to uninstall an app?
    IPS\Db\Exception thrown with message "Truncated incorrect DOUBLE value: 'sockets'" Stacktrace: #9 IPS\Db\Exception in /home/michael/public_html/dev/system/Db/Db.php:671 #8 IPS\_Db:preparedQuery in /home/michael/public_html/dev/system/Db/Db.php:1280 #7 IPS\_Db:delete in /home/michael/public_html/dev/system/Node/Model.php:3082 #6 IPS\Node\_Model:delete in /home/michael/public_html/dev/system/Application/Application.php:4294 #5 IPS\_Application:delete in /home/michael/public_html/dev/applications/core/modules/admin/applications/applications.php:1157 #4 IPS\core\modules\admin\applications\_applications:delete in /home/michael/public_html/dev/system/Dispatcher/Controller.php:85 #3 IPS\Dispatcher\_Controller:execute in /home/michael/public_html/dev/system/Node/Controller.php:62 #2 IPS\Node\_Controller:execute in /home/michael/public_html/dev/applications/core/modules/admin/applications/applications.php:43 #1 IPS\core\modules\admin\applications\_applications:execute in /home/michael/public_html/dev/system/Dispatcher/Dispatcher.php:152 #0 IPS\_Dispatcher:run in /home/michael/public_html/dev/admin/index.php:14 i upgraded to ubuntu 19.10 last week, so it might be the mysql v8 it upgraded me too, so i might end up downgrading back to 5.7 or whatever it was.
  8. Thanks
    CodingJungle got a reaction from Gil Ronen in Intellij IDE support   
    those are my settings.
    my template is the Material Theme UI (i use the night owl theme)
    and i have rainbow brackets plugin installed
    so it might be a combination of those things that make it a tad bit more "lively"
  9. Like
    CodingJungle got a reaction from puka in Autoloader and PSR4   
    yes.
    composer packages that are psr4, can have a different file path than NS (where IPS's autoloader only takes the first bit of the NS and then uses the rest of the class called to load the file). a psr4 autoloader can rectify this. the one in IPS can not on its own. i would have to alter the file paths to the libs to get them to load properly and it would mean i would have to do this each time i upgraded them. the autoloader also isn't a 100% psr0 compliant either, as i have several psr0 libs i have to alter, giving them a NS, cause IPS autoloader expects at least 2 bits like (\NS\classname) to work properly, this is not the case in a psr0 autoloader. 
    Example: \Zend\Code\Generator\ClassGenerator -> /vendor/zendframework/zend-code/src/Generator/ClassGenerator.php \Symfony\Component\Finder\Finder -> /vendor/symfony/finder/Finder.php in its current form, the IPS autoloader with $PSR0Namespace wouldn't be able to resolve this. as for the example where its not PSR0 compliant, i have a lib erusev-parsedown, 
    \Parsedown -> /vendor/erusev/parsedown/Parsedown.php if i try to use it in the $PSR0namespace, like:
    \IPS\IPS::$PSR0Namespace['Parsedown'] = MYPATH.'/erusev/parsedown/'; i get an error how its not found, and if i do this:
    \IPS\IPS::$PSR0Namespace['Parsedown'] = MYPATH.'/erusev/parsdown/Parsedown'; i get the same eror, cause the autolaoder is expecting something like 
    \Erusev\Parsedown and it to be like this in the namespace var:
    \IPS\IPS::$PSR0Namespace['Erusev'] = MYPATH.'/erusev/parsedown/'; This lib can be loaded by the composers autloader without issue, so the problem is the IPS autoloader isn't fully compatible with psr0 either. 
  10. Like
    CodingJungle got a reaction from IPCommerceFan in Form Node Input Issue   
    using an IDE with the proxyclass generator, it will tell you when method signatures change from a parent class, here it puts a squiggly line under the method and when i focus on it, it will tell me its no longer compatible with the parent.
    Phpstorm is an excellent IDE, its very reasonably priced (they offer yearly or monthly subscriptions, and they also offer loyalty discounts. after 3 years phpstorm will be as little as $5 a month or around $50 a year. note: i'm not affiliated with jetbrains, i'm just a crazed fanboi of their products).
    if you don't want to pay for one, there are a few opensource free ones like eclipse or VS Code (if you are afraid MS tracking you thru telemetry which VS Code has, you can opt for the VS Codium which removes all that but still remains compatible with VS Code plugins), and if you are really masochistic, there is netbeans and sublime. note: vs code/sublime aren't true IDE's, they are more advanced text editors that thru plugins you can emulate IDE features, netbeans and eclipse are IDE's, but they all vary in ability and features. 
  11. Like
    CodingJungle got a reaction from PurplePixel in Debug eval'd code suggestion of solution   
    in my toolbox app, in settings, there is an option for "patch init.php", what this does, will rewrite the monkeypatch method of the init class, to write hooks to a folder and use those instead of eval'ing them, so if there is an error with them, its a proper backtrace instead of a pseudo one thru eval. note: you shouldn't use this on a live site and it can't be used in the community in the cloud, so a localhost or a dev site should suffice. it does modify a core file from IPS, so if you have any unexpected behaviors, you should restore the init.php from the IPS download. 
    you can grab the latest toolbox from this repo: 
    https://github.com/codingjungle/toolbox
    make sure you are on the dev branch when you checkout. 
  12. Like
    CodingJungle got a reaction from Adriano Faria in Form Node Input Issue   
    using an IDE with the proxyclass generator, it will tell you when method signatures change from a parent class, here it puts a squiggly line under the method and when i focus on it, it will tell me its no longer compatible with the parent.
    Phpstorm is an excellent IDE, its very reasonably priced (they offer yearly or monthly subscriptions, and they also offer loyalty discounts. after 3 years phpstorm will be as little as $5 a month or around $50 a year. note: i'm not affiliated with jetbrains, i'm just a crazed fanboi of their products).
    if you don't want to pay for one, there are a few opensource free ones like eclipse or VS Code (if you are afraid MS tracking you thru telemetry which VS Code has, you can opt for the VS Codium which removes all that but still remains compatible with VS Code plugins), and if you are really masochistic, there is netbeans and sublime. note: vs code/sublime aren't true IDE's, they are more advanced text editors that thru plugins you can emulate IDE features, netbeans and eclipse are IDE's, but they all vary in ability and features. 
  13. Like
    CodingJungle got a reaction from IPCommerceFan in React with IPS4   
    if this for a non-marketplace app, i would load it up thru the interface folder or load it remotely.
    $myJs = \IPS\Output::i()->js('myfolder/myjs.js', 'myapp','interface'); \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles,$myJs); or 
    \IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles,[ \IPS\Http\Url::external('http://example.com/something.js') ]); if this is for a MP app, you might have to consider the remote loading as an option, since last i heard the the interface folder doesn't work for the cloud communities and i don't think you can you use the bypass method (which would be loading it thru the resources), cause it probably wont be able to properly map the imports (as imports if i am not mistaken are loaded by relative paths and resources wouldn't be relative). 
  14. Like
    CodingJungle got a reaction from Matt in React with IPS4   
    if this for a non-marketplace app, i would load it up thru the interface folder or load it remotely.
    $myJs = \IPS\Output::i()->js('myfolder/myjs.js', 'myapp','interface'); \IPS\Output::i()->jsFiles = array_merge(\IPS\Output::i()->jsFiles,$myJs); or 
    \IPS\Output::i()->jsFiles = array_merge( \IPS\Output::i()->jsFiles,[ \IPS\Http\Url::external('http://example.com/something.js') ]); if this is for a MP app, you might have to consider the remote loading as an option, since last i heard the the interface folder doesn't work for the cloud communities and i don't think you can you use the bypass method (which would be loading it thru the resources), cause it probably wont be able to properly map the imports (as imports if i am not mistaken are loaded by relative paths and resources wouldn't be relative). 
  15. Like
    CodingJungle got a reaction from xtech in [CJ] Stratagem (Support Topic)   
    I'll submit it a ticket.
    I use it myself for my apps and clients for their custom work, so i don't see why i wouldn't. 
  16. Thanks
    CodingJungle got a reaction from Noble~ in [CJ] Stratagem (Support Topic)   
    I am testing 2.3.0 now for release, that should remove this.
    they should be the same version, i might've forgotten to change the version number here on IPS. 
  17. Like
    CodingJungle got a reaction from Miss_B in How to confirmedDelete() in Ajax   
    ips.ui.alert.show({ type: 'confirm', icon: 'question', message: ips.getString('some_message_string'), buttons: { ok: ips.getString('ok'), cancel: ips.getString('cancel'), }, callbacks: { ok: function (e) { }, }, }); you can use the ips.ui.alert, put the ajax callback inside "ok" that actually sends the ajax request for delete.
  18. Like
    CodingJungle got a reaction from PurplePixel in CodingJungle's Apps [support topic]   
    One of the biggest complaints about my support (other than my disappearances) has been that i chose to keep it all in one topic. I've decided to make a topic for each of the apps, and will be requesting this topic be closed/deleted.  
    CJ Duplicate Member Logger
    Keyword Tooltips
    Babble
    Downloads Plus
    Menu Groups Manager
    Name 2 Avatars
    Stratagem
    Nettoolkit Geo
    Regards,
    Michael
  19. Like
    CodingJungle got a reaction from Keith Clark in [CJ] Babble (Support Topic)   
    the chat service will, it is one of the reasons why it exist. the self hosted could too, but your node.js service would need to be on another server.
    babble has been out for almost 5 years now, i changed the renewal for babble 3, why it has a new entry (as i increased the renewal for the self hosted and increased the chat service from the 6 month to 1 year service, and there is no way on IPS to change existing purchases renewals). 
    I do offer a 30 day trial of the chat service on my site. you will need to register to get access to the offer:
    https://codingjungle.com/babble/?app=babbleadmin&module=license&controller=demo
  20. Thanks
    CodingJungle got a reaction from Kjell Iver Johansen in [CJ] Babble (Support Topic)   
    3.0.1 has been released on my site and here (waiting approval here). it has fixed these issues and added in the new feature for idle time. 
  21. Thanks
    CodingJungle got a reaction from wegorz23 in [CJ] Night Mode (Support Topic)   
    pushed an update.
    disabled by default, user has to enable it.
    added mobile menu item for it under "account"
    if enabled, hides theme selector.
    this is a basic app, its not meant to be all encompassing. a lot of the sites i have for clients, only have the one theme, and some expressed interest in having a "night mode" option. if you have a gazillion themes, and want to allow people to choose between those, then this app probably isn't intended for you, as i doubt i will be expanding it to allow users to choose what their sunrise and sunsets will be. another dev is more than welcomed to take this app, and do that with if they want as it is MIT licensed for such reason. 
  22. Thanks
    CodingJungle got a reaction from Kjell Iver Johansen in [CJ] Babble (Support Topic)   
    added this in for the next version, it will be a group setting. so you can set different times between 1 minute to 60 minutes (like the idler was in 2.x), the message will display showing they have 30 seconds before disconnection (it will also now countdown from 30 :) and the message will change when it hits 0, saying that they have been disconnected). 
  23. Thanks
    CodingJungle got a reaction from wegorz23 in [CJ] Night Mode (Support Topic)   
  24. Like
    CodingJungle got a reaction from Claudia999 in [CJ] Menu Groups Manager (Support Topic)   
    Menu group with submenu's in the "traditional" style. this is the "primary" location, replacing the primary menu

    Menu group with submenu's in the "mega menu" style

    This is a block style menu group, with a magic menu item in the "footer" location.

    this is a menu group in the primary location, with a magic submenu.
    I believe the last image is the one would that would be best to do the mega menu on the site you linked me too. (a "magic menu item" allows you to use IPS template logic to design your own menu or to add stuff that is outside the structure of the menu.).
    Hope this answers your questions. 
  25. Thanks
    CodingJungle got a reaction from BankFodder in [CJ] Keyword Tooltips (Support Topic)   
    it is probably the soft delete IPS does, takes like 30 days to remove. I have it disabled on my dev board, but i'll add a change to the check to ignore those. 
×
×
  • Create New...

Important Information

We use technologies, such as cookies, to customise content and advertising, to provide social media features and to analyse traffic to the site. We also share information about your use of our site with our trusted social media, advertising and analytics partners. See more about cookies and our Privacy Policy