Jump to content

markus_blue_tomato

Members
  • Posts

    192
  • Joined

  • Last visited

  • Days Won

    3

Posts posted by markus_blue_tomato

  1. Here now some details how we use ElasticsearchFeeder on www.blue-tomato.com:

    Our main webshop technology is Java / SAP Hybris which is mostly developed by an external developer team. Hybris is good for multichannel webshops but not the best tool for general content management or for creating quick new content. So we use ProcessWire for our editoral content like blogs, landing pages, buyers guides etc. since 2 years. We created a RestAPI where SAP Hybris gets the content from ProcessWire. So ProcessWire prerenders the main-body and gives it with some metadata to Hybris which puts them between the webshop header and footer.

    This works great with following page sections:

    Since this are kind of static pages it worked very well but we want to integrate also our content dynamicly on other high traffic pages like the homepage or product detail pages. This is why we decided to put our content into ElasticSearch. In front of ElasticSearch we created an GraphQL / Node.js Server, because we mashup our ProcessWire data with product data from other (REST) sources.

    For the first step we created two kind of widgets, which run on the Blue Tomato Homepage:

    • Blue World News (latest news from our blog)
    • Shop The Look

    The Shop The Look Widget is our first try to mix and show data from different sources. The Editor of a "Look" has to create the look in the ProcessWire Admin panel. He uploads the look photo and has to put product IDs into a Table. No product price, title or image. All of the product data will be fetched by GraphQL from our other database during the request. All widgets are rendered with React.

    1416878119_Bildschirmfoto2019-06-19um22_23_11.thumb.png.0028ac16a1386f12421fd7d4671a8f12.png

    1310604572_Bildschirmfoto2019-06-19um22_23_23.thumb.png.5b6e10ace963f8d15f76e504dc60739d.png

    I hope I could give you a short overview of what we do with ProcessWire and ElasticsearchFeeder.

     

    • Like 6
  2. I forgot to write some update here.

    We made some minor and one major release since 1.0.0 with this changes:

    • fix some log warnings from some Repeater fields
    • Module can now be installed via composer
    • Add support for $config->elasticsearchFeederConnectionOverride
    • Better support of own hosted ElasticSearch Servers
    • Use of PW 3.0.133's new $page->meta() feature instead of creating a fields for indexed pages
    • CI Tests via circleci.com and peridot-php

    Current Version is 1.2.0 and since we use $page-meta() the module requires now PW 3.0.133

    And a live production demo will follow the next 1-2 weeks.

     

    • Like 4
  3. Is there any good way to manage PW dependencies - mainly modules - with composer or else?
    I know that there are some PW modules available for composer, but not all. Does anyone have an idea to get other 3th party modules manageable with composer?

    In our team of 3 dev's it would help us a lot to handle module updates and dev setup.

    I was playing around with a idea to build a "ppm - processwire package manager" on my own if I find nothing good.

    • Like 1
  4. On 3/14/2019 at 3:18 PM, sujag said:

    I ran into an issue with multilanguage support.

    Most sites I'm working need only one language, but for a german user interface I need the module Languages Support which automatically adds a description field for every language to an image field. I used to disable these extra language fields in the admin interface by setting disable multilanguage support in the input settings of the definition for my images-fields. After installing the Image Extra Module I added a caption field, which seemed to work fine: I could edit and process content of this new caption field.

    Now I noticed that it is  possible to insert a new caption, but not to alter an existent one. I get a notice that the field was changed, but nothing happens. After checking the database I saw that there was a connection to multi-language support. Instead of a simple entry for new captions like "["Schloss Rheinsberg (Photo: xyz)"] an edited entry is like '{"0":"Das Refektorium","1019":"Das Refektorium"}'
    When I enable multi language support for the image field I can see, that only changes in the field for the custom language (in my case german) are processed but do also change the value of the field in the default language (english) This is very confusing for authors.

    As a workaround When changing the language of the admin to default instead of german everything works as expected.

    Yes we have also this problem. only solution is the workaround to set the users language to the default language ?

  5. On 3/12/2019 at 11:20 AM, Wanze said:

    @tiefenbacher_bluetomato Here is an example script from my migration. Note that I did not use MarkupSeo, in my case I had two fields "seoTitle" and "seoDescription". I highly recommend using the migrations module to execute such logic.

    
            $pages = $this->wire('pages')->findMany("seoTitle|seoDescription!='',include=all");
    
            foreach ($pages as $page) {
                if (!$page->hasField('seo')) {
                    continue;
                }
    
    			$page->of(false);
                
    			foreach ($this->wire('languages') as $language) {
                    $this->wire('user')->language = $language;
                    $title = $page->seoTitle->getLanguageValue($language);
                    $desc = $page->seoDescription->getLanguageValue($language);
                    $page->seo->meta->title = $title ?: 'inherit';
                    $page->seo->meta->description = $desc ?: 'inherit';
                }
    
                $page->save();
            }

     

    thanks, works great ?

     

  6. 22 hours ago, Wanze said:

    Actually I wanted to ask you if you would like to develop the 2.x version of TemplateEngineSmarty, and if you like, maintain the project? The implementation itself is really easy, you can basically copy + past from Twig and tweak/change things for Smarty. I only use Twig these days, so I might miss some useful/important stuff for Smarty. What do you think? ?

    Sure we can do that ? Do you want to transfer the repo to our account: https://github.com/blue-tomato ?

    You can write me also via email for the details: markus.tiefenbacher {at} blue-tomato.com

  7. 9 minutes ago, Wanze said:

    Thanks @B3ta

    I think that the decision where the Seo Maestro field is rendered should be left to the user. And it should be done in the same way it works for all fields: By editing the template and placing the field. Display it in a new tab? Create an InputfieldFieldsetOpen and wrap the field. But maybe the content editor only needs to see meta title and description - then it's not worth to create a new tab.

    I understand that it requires some manual work to add the field to all templates, but I don't think it is the responsibility of the module to do this. There are other solutions like the Migrations module, which can do this task in a few milliseconds. For the project I built this module, it took me 10 minutes to write a migration that creates and configures the field, adds it to all templates, tweaks the settings per template and also wraps it in a tab. No need to do this by hand if I deploy to production.

    Cheers

    I think this is okay - maybe to put some documentation note about that in the readme for user's who used MarkupSEO and will migrate zu SeoMaestro.

    • Like 1
  8. Very cool! I used this other markup-seo module since yet but I think I will try to switch soon, because I had to trick some stuff into the other module to get multilang.

    One thing what would be cool, I guess: the whole SEO-Fields into an extra "SEO" tab on the page.

  9. I'm looking for some help with Sessions in Redis and Memcached.

    First, I discovered this issue in the third-party module SessionHandlerRedis from @netcarver

    After reading more about Session in PHP with Redis, I found that PHP can handle this (and also with memcached) out of the box without any third party module.

    I tried it with Redis and memcached so in this cases I added following to my php.ini

    session.save_handler = redis
    session.save_path = "tcp://127.0.0.1:6379"
    session.save_handler = memcached
    session.save_path = "127.0.0.1:11211"

    Everything went well and sessions were saved to redis/memcached in both methods.

    ..... but:

    The only thing what does not work, was the upload of multiple files at once. So when I upload two images, only the image which are last finished are saved to the database. In the JSON response of the AJAX upload request, the page-id of the file where in both files the same id. Sometimes with memcached the response failed because the response was no valid JSON and the response was the login page of processwire.

    I opened an issue in processwire-issues but @ryan hasn't worked with this kind of session handling since yet: https://github.com/processwire/processwire-issues/issues/798

     

    Does any body uses Redis or memcached as session handling and has also found this bug?

×
×
  • Create New...