Jump to content

Community

Numbered

+Clients
  • Posts

    310
  • Joined

  • Last visited

  • Days Won

    1

 Content Type 

Profiles

Downloads

IPS4 Providers

Release Notes

IPS4 Guides

IPS4 Developer Documentation

Invision Community Blog

Forums

Store

Posts posted by Numbered

  1. 19 hours ago, bfarber said:

    This is already supported just FYI. The tag presented may use the id, but the folder/filename.ext syntax also works.

    @bfarber, thank you so much! I don't know about that before and this will be extremely helpful for us. We doing very complex works with cms application and this is the best option for us. There are fresh examples of what we have done with the cms app (all made inside CMS including languages, registrations, and back-end features). https://wowslegends.com/ https://wowslegends.com/promo1/ 
    Is there any change in the future to improve other parts that I mentioned above?

  2. Features that I missed in current IPS:

    • we can't export/import blocks from one site to another one (we doing all changes on the staging server before deploying them to the production one)
    • block contains media with their id's. So when we upload the same media files they have different id's. It will fix if the media supports folder and filenames instead of id. We can upload a lot of media files to different websites and copy-paste pages/blocks code contains the media. It might look like {media="some/folder/file_name.jpg"}
    • if we have a lot of pages and switches from one 'main' page to another one we couldn't find on the next time which page is actual default right now. we should click on the arrow of every page to see if the star icon filled or empty.
    • templates (page templates, css, js) - you couldn't understand where the current css file used now. You can only jump into the edition of each page and remember that. It's not useful.
    • cms don't support languages at all. So in every block, we used code 
    {{$lang = \IPS\Member::loggedIn()->language()->short;}}
    {{if mb_strpos($lang, 'de_DE') === 0}}
    some html
    {{elseif mb_strpos($lang, 'fr_FR') === 0}}
    some FR html
    ... additional 10+ languages
    {{else}}
    EN content
    {{endif}}

    Or you can define variable inside conditions and call them. This is very dumb way to support multilanguage in 'cms'. And, no cache available for all language based blocks at all.

    • block editing in ACP is unuseful. we have very little space for the editor (HTML). No 'revert' option (if save will support ajax we'll have a browser default Ctrl+Z option, but.. we haven't it with reload)
    • same as for templates - when we editing block we couldn't understand on which page it used now
    • You couldn't link the block content with template CSS and JS. Mostly it might be the default way to linking (blocks should be self-dependent). Right now it doesn't (in case of css and js).

    I hope this list helps the devs to understand the daily pains of our content managers.

    Thank you

  3. Maybe. I'm not 100% sure that John said fact. If I were him I'll think twice to say that next/prev working for preventing stupid SEO hacks and panic. (for Google absolutely better if the webmasters wouldn't use these helpings than they use them in the wrong way)

    And there is no Google only search engine. And point about the wrong canonical still present. Yes, Google easily can ignore them. But better to help him do the right things than confuse him.

    P.S. IPS doesn't love me again (writing from TOR)

    image.thumb.png.25eaffeafc3378cafa0bf7c9d77c1b5d.png

     

  4. @Sonya* and @sadams101 you are both right.

    Sonya right in the part of using posts items instead of topics wrong way to the right SEO.

    Sadams101 right in the part of the pagination problem. Thank you for get attention to the pagination problem. I try to do a little bit of research and found that IPS might be better with that important part. For example, this page has a canonical tag:

    <link rel="canonical" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/">

    This tag said that Google should stick to the first page of the series. And the cannonical tag links to the 'only' or 'primary' version of the same page. But other pages are not the same as first - it's wrong. Anyway, Google can understand that the other pages haven't the same content and it might ignore the canonical tag. But there Google doing that scans contrary to, and not by a clear intent.

    There is no way to said Google about pagination. But somebody recommends to use rel=prev/next. This tags exist here, but with strange params: 

    <link rel="next" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/page/2/">
    <link rel="last" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/page/12/">
    <link rel="canonical" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/">

    It seems like the 'next' param didn't work for the current page and put params depends only on first page. And there is no 'prev' page - I think for the same reason.

    Some other example from SEO websites and cannonical tag:

    Quote

    For example:

    
    <link rel="next" href="https://www.example.com/category?page=2&order=newest" />
    <link rel="canonical" href="https://www.example.com/category?page=2" />

    Doing so will indicate a clear relationship between the pages and prevent the potential of duplicate content.

    I think anybody can search this tags and found the same information that I wrote.

    To be clear - this topic for the current page (12) should have this tags:

    <link rel="first" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/">
    <link rel="prev" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/page/11/">
    <link rel="last" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/page/12/">
    <link rel="canonical" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/page/12/">

    page 10 should have this tags:

    <link rel="first" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/">
    <link rel="prev" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/page/9/">
    <link rel="next" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/page/11/">
    <link rel="last" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/page/12/">
    <link rel="canonical" href="https://invisioncommunity.com/forums/topic/442742-large-community-you-have-a-problems-with-sitemap/page/10/">

     

     

  5. Hello. I have one of my application, which have this method:

    1.thumb.png.8e22272468c8ff532981604ea6610b65.png


    As you can see my PhpStorm asks me to cast the array into the string, because of \IPS\Output::i()->json method wait string type as the first param.

    2.thumb.png.057939b20a474f02db7cecb120a6725f.png

    But this is not true. This method (and json_encode function in order) accept an array as the primary usual incoming type. That fact that we can run json_encode('test') and got "test" as valid JSON result is just one behavior that is out if the usual scope for JSON using.
    Another part of this method that we use 'return $this->sendOuput...' but this method doesn't return anything. So we can just use $this->sendOutput without return and declare the method as void.
    If we jump inside 'stripVLETags' function inside of the json_decode method we can see that there have the same problem. Incoming wait for string, but ok to get an array and return a string (which is not true for incoming array).

    3.thumb.png.9fdff56c21658e1f1fe47a654260a6dd.png

     

    This is not one place of something similar. The main reason why I create this ticket post is another question - is there any way to join your git project (I heard somewhere that you using svn, is that true?)? I (and I'm sure other people) easier to send the pull requests for you to fix these parts of code, fix bugs founded (following your rules, linters, markup, etc). It will be much more powerful than delivering these parts by the ticket with screenshots. I wouldn't waste a lot of time on that (if that not so critical and don't break my needs). I could just fix that in my IDE and make a pull request for your review. It would be very useful for all sides!


    Thank you.

  6. I prefer White for websites. But I totally agree that IPS must add default dark theme. There is the only reason for that - help theme developers for making their dark themes. Now if some not developer guy installs IPS and if he wants to create a dark mode the visual styling isn't enough to make it. If he changes all possible fields to the dark colors he still sees white areas. Just because their colors are hardcoded in the css files. In this case, there is no way of making perfect dark themes without CSS editing from the default theme.

  7. I'm sorry for that stupid question. We want to upload 6 MB video in our media for using as a background for landing page. But the media only allow 5MB max

    image.thumb.png.895a803250b51828fb198300a84cf836.png

     

    Can somebody say where I can increase this limit? My nginx client_max_body_size set to 50M, php values post_max_size and upload_max_filesize set to 51M both. The admin group settings have no any file limits. The public area shows 50MB limit correctly.

    Thank you

  8. I get the same problems (with the slow conversion of big sites) and have some helper tools for them. One tool is for background queues. I have a sh script, which runs php file in the cycle.

    #!/bin/bash
    
    while [ true ]
    do
      /usr/bin/php -d memory_limit=-1 -d max_execution_time=0 $HOME/path/to/task.php
      echo 'Task executed'
      sleep 1
    done

    And the task.php file

    <?php
    require 'path/to/init.php';
    
    $queueTask = \IPS\Task::load('queue', 'key')->run();
    var_dump($queueTask);

    Of course, this script might be in one php file. But in my original helpers, it does not have only one function. I just strip unnecessary other parts which are out of this topic. var_dump additionally can write an exception to the console if something goes wrong. You may run them in the background with piping stdout into the log file. Anyway, if you wanna use them - it's a good starting point for solving your problem with slow background queues.

    My experience that this task finishes background conversion to one day from over the week. Another potential helpful part is increasing REBUILD_SLOW constant (it used to define the batch of each background queue). Typically I prefer to set it to 150. If you understand what value might be good for your environment (depends on performance) - you can tune it for yourself.

    It set up in the constants.php file in that way:

    <?php
    // your constants variables here
    
    \define( 'REBUILD_SLOW', 150 );


     

  9. Not certainly in that way. In the case of millions of users/topics/answers, the update time may take a long (for business) time. Of course, this also depends on the power of the application server and the database. But overall, the ability to have command-line tools would add a lot of administration, support and deployment abilities. As an example, it would be possible to describe in some manifest file a list with versions of applications/plug-ins and with some continuous integration tool builds an IPS test instance with needed additional stuff, proceed autotests for updated app branch, make deployment to production, etc.

  10. @Sonya* activity streams can be filtered by language nodes - this is included in the main proposal of 'Forums'. Blocks - another painful part, agree with you. On Pages, I use little bit PHP code for that. Just get current user language and paste it into block calling. Very unuseful, but.. can't do in other ways. Blocks on the forum side - I don't know how to manage it now and don't see the pretty solution to solving them. It's painful, but it's a few other stories. We can't come to IPS with a lot of pains with languages and just ask for fixing it in anyways. I think the one possible way to start moving is a clear task with pain and proposal to solve it (i can write the example code too). And then pray that IPS get it. After this one step, we might think about the next steps with the same way of proposals or code examples. I feel pains with languages too. In different places. For example, currently, I have a bug with some landing, which built with Pages and blocks (where I had {lang="something"} keys). It working well except title and description. It set up on the page setting, which does not support multilanguage. So for fixing that I'll turn off the default title expression in the theme and fill it with the language key for specified page only. It's weird and stupid. But I have no idea how to do this right.

  11. For the 'comment' type of data, I see no way for any right solution. Translators always working very bad and this feature (as I think) can't be a regular part of normal using. And this looks a little bit strange to see the topic, where commenters write in different languages.

    Anyway, this talking might be very long and this is outside of the main proposal - adding a language selector to the 'Container' element (Forums) of Items (Topics). This way looks clear, simple and becomes like a good starting point for other useful features.

  12. Hello, IPS and community! I want to propose you to a little bit of improvement to the 'Forums' item. This option is a selector of speaking language for the selected forum (category/discussion/faq). Some big communities having their special sections for people, speaking in French, Italian, German and other languages. If we implement this selector for the forum we'll open a perfect point for making other useful stuff. There is a list of what it can be:

    1. we can create a lot of ElasticSearch indexes with a correct language analyzer. So the French guy can search something in his language and get the results for his language section
    2. we can add an option inside Account Settings to provide people the ability to select the language, which he can understand. For example, some EU guy selected English, Deutch, and Italian language. This setting provides a lot of next points
    3. When people set up their preferable language then we can filter other language sections from the view in front of forums, we can filter the widgets results (German people, whose don't understand French feel annoyed when he see active discuss in French section and whole of HOT or Recent widgets returns most of the results in French). It's very unuseful widgets for him. (I can PM you the forum link and you'll see the problem in action).
    4. By the special setting, users might show to other users languages, which the author can understand. So some popular guy can say to each other, that he can talk in a special list of languages and he glad to talk in PM in, for example, Espaniol and Turkish
    5. ... 

    What do you think about that?
     

  13. 14 hours ago, sadams101 said:

    I believe this will have positive results, simply because we are making it easier for Google to index specific content

    I think this becomes a negative result for Google. Google scans the whole page and index content on a specific page. In your sitemap_posts file, you have tons of links to the same pages (they have not differences by the code or view). So with that, you bring Google just problems. Moreover, for preventing duplications Google gives us a links management service, where we can 'say' to Google which params identify something important with content changing (like a 'page' attribute) or something not necessarily (like an 'unread' param).
    Additional, you made just problems for Google. If you wish to highlight or markup the content on the page - you should use schema.org meta, html5 tags. All of that already done by IPS. You don't need to do anything more in general purpose.
    Anyway, if your really want to scan every post like an individual content - make a special request to the topic, which will show only one post without other (but with the link to the default view). In this way, you'll increase your number of scanned 'pages'. But it mustn't be good for your SEO.

    image.thumb.png.f8b86364468ea884e92d49775104ac3f.png

  14. Hello friends.
    I made some application, where I have some text and image fields in one Content Item. Text fields are localizable with default \IPS\Helpers\Form\Translatable form. But I need to have localizable images (load different by language images for one Content Item). Yes, I can create additional rows like image_en, image_cs, image_pl and etc.. But it will out of the standard language flow, where I can simply add/remove new languages and the form will accept it.
    Hope somebody (or IPS) will help me with any hint. I don't want to write bad code or reinvent the byke.
    Thanks!

  15. Thank IPS for made Redis status page! It is useful and good to check it without any additionals! I very appreciate these ways of helping!

    0ca682283b4c76759c85068827d9a9d6.thumb.png.0867a5ac831b66c532c9195206531c10.png

    If you have a plan to add other parts, like the opcache status page - it will be awesome! Something like that:
    42077871007df0eb8a2e3c8039b1dc2c.thumb.png.fb5c1dbde9a9848a63575e537d52cf4a.png

    And thanks for your work!
    IPS 4.4 update was the most compatible for the themes and apps. We update our staging with a very few numbers of changings needed and a lot of stuff delivered. Best!

  16. I think this request might be an old already asked request, but still.
    I really need the ability to export/import pages/blocks/templates/css/js/media in the same mechanism as it exists for apps/plugins/themes. We usually prefer to create some new landings on the local dev instance of IPS. Moving the ready page with tons of media items, special template, css and js become very hard to work. We need to copy-paste a lot of files, create a needed (and right named) new blocks with an id's, upload media (which id's changes of course) and etc.
    This feature might be good not only for preparing something. It's good to create one landing and copy them to other production IPS instances (we have a lot of different games and their realms with different addresses).
    Hope you understand our pain.
    Thanks for your attention!

  17. 4 minutes ago, bfarber said:

    There is no built in capability to accomplish this realistically. You can probably create a custom editor widget for this.

    Edit: We have an editor plugin that is designed to emulate an inline code block but it isn't functional here.

    I see. Thanks for the answer! So, the best way (for now) not escape the plugin+hook creation.


    For other members who will come here for the same question:
    We need to create a hook for \IPS\Helpers\Form\Editor for the method _getParser(). There we just need to redefine default parser calling with false in first param. So the default

    /**
     * Get parser object
     *
     * @return	\IPS\Text\Parser
     */
    protected function _getParser()
    {
        return new \IPS\Text\Parser( TRUE, ( $this->options['attachIds'] === NULL ? md5( $this->options['autoSaveKey'] ) : $this->options['attachIds'] ), NULL, "{$this->options['app']}_{$this->options['key']}", !$this->bypassFilterProfanity(), !$this->canUseHtml(), method_exists( $this->extension, 'htmlPurifierConfig' ) ? array( $this->extension, 'htmlPurifierConfig' ) : NULL );
    }

    will transform to

    /**
     * Get parser object
     *
     * @return	\IPS\Text\Parser
     */
    protected function _getParser()
    {
        return new \IPS\Text\Parser( FALSE, ( $this->options['attachIds'] === NULL ? md5( $this->options['autoSaveKey'] ) : $this->options['attachIds'] ), NULL, "{$this->options['app']}_{$this->options['key']}", !$this->bypassFilterProfanity(), !$this->canUseHtml(), method_exists( $this->extension, 'htmlPurifierConfig' ) ? array( $this->extension, 'htmlPurifierConfig' ) : NULL );
    }

    Complete Plugin with hook: Disable BB Codes.xml

  18. Hello, guys! Could anyone (maybe IPS) help with BB codes prevention? I want to post some content which said to press the "B" button. Our content managers like to put "[" and "]" around "b". But it transforms into nothing and makes all next text bold. Same for "s" (stroke, yep) and "i" (italic).
    I tried to use HTML-editor and wrote &#91;s&#93; But unfortunately, it transforms into [ and ] and then stroke again!
    Any ideas (without hooks, obviously)?

  19. I want:

    • CLI-tools for install/build/update/enable/disable apps/plugins/themes. It will provide simplier operation many instances.
    • Any technology, which provide staing framework in background all time. Not default PHP method of die after every request (I know about opcache and other methods, which speed up this, but mainly it's a symptom fixing, not the core of problem). Of course, this point will increase the threshold of entry into IPS. But we want to be "the best" or "just one of"? All have their price. If somebody interesting about that - there is a good article of positive experience at Badoo.
    • Support working as a cluster (on multiple nodes) from the box? I mean some status pages, statistics, logs filter by server node, etc.. (nexus module doesn't do this stuff).
    • Some app/plugin revise tool? Example: if application 'money' use hook for \IPS\Member::load() in IPS 5.1, than if in IPS 5.2 this load method changed - the revise tool should notify about needing to revise 'money' hook. If not changed in original code => not highlight hook. Not so difficult to implement it as it heard. We have a hooks table with classes, we can simple having classess history in a lot of ways.
    • Testing scripts? :laugh: Please don't laugh at me.. I write (sometimes) test cases for my apps inside IPS. Without total coverage and without doing this job 'as becase that good'. It provide better controll when we have a lot of apps/plugins and want to check them together in newer version of IPS. So tests very helps me. From IPS I'd like to have IPS's tests of IPS Framework. It will provide to us is basic regression testing. We can check our code, but it be not interesting if some basic feature (like a post a topic) wouldn't work -). And of course I'd like to extend basic tests when I extend basic things.
    • United IPS code style. I use PHPStorm and want to see same code format everywhere (in IPS and my code). Now I can't tune my IDE for totally support your style because from file to file it is different. You can do it in several ways - from creating style format file to creating autolinter in your cvs system. Please, dont't forget to share your style rules before =). Or may be you just apply PSR-2?
    • Improved caching system. Sound simple - same incoming params to block/app/etc returns the same result (it worked only when params dont income in the middle of the func). And that's all. May be we can create some additional flag for mark classes, which support that type of caching. Any way..
    • Using different DB for read and write. For people, who has master-slave replications and who want to improve the speed by reading from slave. It simple and worked perfect! And all neccesary tools already has in current IPS version. No extra pain.
    • ...
×
×
  • 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