rash

Members
  • Content Count

    24
  • Joined

  • Last visited

Community Reputation

9 Neutral

About rash

  • Rank
    Jr. Member

Profile Information

  • Location
    Stuttgart, Germany

Recent Profile Visitors

465 profile views
  1. rash

    @Mike Rockett Fine, thank you. Just a question for future generations: As I presume that there are (or will be) several different images field types, wouldn’t it be better to keep the check more generic? The way I’ve suggested is working for me, but has the big drawback that every single field type must be explicitely listed – and you might never catch all of them. So is there a syntax for (in plain words) find('type=fields that are somehow managing images')?
  2. rash

    @Mike Rockett Thanks for your fast reply. It looks as if we’re getting closer: my images are of fieldtype CroppableImage3, resulting from the popular module with the same name. Do you think I could just change the field type where the check happens? Or extend the range of possible field types? I’m no big fan of module hacks, but in this case I could live with it. Would you mind to reveal the exact check location? Update: I’ve got the job done now – much easier than expected. Just in case somebody faces the same problem: in /site/modules/MarkupSitemap/MarkupSitemapConfig.php in line 90 I changed if ($imageFields = $this->fields->find('type=FieldtypeImage') and $imageFields->count) { to if ($imageFields = $this->fields->find('type=FieldtypeImage|FieldtypeCroppableImage3') and $imageFields->count) { to extend the range of considered field types. The option select appeared and everything works perfectly now. Another thanks for your help.
  3. rash

    @Mike Rockett This is the way I would have assumed to go, unfortunately I can't find an option like the one you describe. On the module’s config page there are the following sections: Module information Templates with sitemap options Templates without sitemap options ISO code for default languages Stylesheet Support Development Deinstall Either I’m suffering from vision defects, or the mentioned option is missing. (Or carefully hidden.)
  4. rash

    @Mike Rockett It seems as if I'm unable to include images in the sitemap. Besides that, the module is working just fine. I can find the option to exclude images (page-based) but neither the one to include them, nor do they get included automatically. I'm using only one images field in my template and the page is multilingual. Any hints what I'm doing wrong? Thanks.
  5. rash

    @Sergio A late Bingo! After a few hours of sleep I picked up your hint once more, although I still don’t understand what's going on with the hyphens. So I simply deleted the _strings.php of the translater and re-imported it. The number of hyphens appeared reduced and everything works now as expected. Another big thank you – the day is suddenly showing a much sunnier face as this little evil is defeated.
  6. rash

    @Robin S Thanks for your recommendation. I installed TracyDebugger and spontaneously I'm a bit overwhelmed (it's long after midnight here and the fights did weaken me). Anyway, it's definitely a highly interesting tool that I will examine in detail soon. @Sergio You do lot of work to help me, that’s very friendly. Your secont hint could lead into the near of a solution, as I assume a problem with paths. Unfortunately I don’t understand the relation of the path in the function and the number of hyphens the translator produces. Regarding my settings: before I tried the _strings.php method, I travelled the exhausting road of translating with __('term') file by file. That worked just fine, I only found it a bit too exhausting on the long run and started looking for a faster way (haha). So there might be something wrong with the settings, but it must be very subtile then.
  7. Hi guys, after hours of trying and reading several threads I suppose tears will start running soon. I work with the widely spread and documented method of a _strings.php file and a t() function. Everything seeems to run fine, the translator finds the _strings file, all phrases are translated properly and no error messages are showing up. Except that no translatiions are shown at all, no matter what I do: It's like a hopeless struggle with deceitful demons. My _init.php: include_once("./_func.php"); include_once("./_strings.php"); (in this order). Then in _func.php: function _t($text, $context, $textdomain = "/site/templates/_strings.php") { return _x($text, $context, $textdomain); } and in _strings.php: <?php namespace ProcessWire; /* _x('Home', 'generic'); _x('/en/', 'generic'); _x('Contact', 'footer'); _x('/en/contact/', 'footer'); _x('Other projects', 'footer'); */ ?> Trying to call the translations for example in the footer template like this: <li><a href='<?php echo _t('/en/contact/', 'footer'); ?>'><?php echo _t('Contact', 'footer'); ?></a></li> leads to this result , no matter what language is active. <li><a href='/en/contact/'>Contact</a></li> The translator has everything it needs: { "file": "site\/\/templates\/_strings.php", "textdomain": "site----templates--_strings-php", "translations": { "33fa1c21648d73e1ac14e0db66b4fa9e": { "text": "Start" }, "2f73c44cbb8a98616f8aeca67192aec6": { "text": "\/de\/" }, "77eb6543a21ba5c45f9c11f899136eee": { "text": "Kontakt" }, "68780987fca9c3f52fb511f87cd43262": { "text": "\/de\/kontakt\/" }, "184cf75de619c2e3a02a40f163c81c5e": { "text": "Weitere Projekte" } } } Obviously there seems to be a connection problem between the _func and the _strings file. Instead of $textdomain = '/site/templates/_strings.php' I can fill in whatever I want without any recognizable difference. Any hints what else I could try? Cheers Ralf
  8. Hi Zeka, BINGO, that’s it, problem solved! The easyness and logic of your solution is probably a bit embarrasing for me, but sometimes I don’t see the most obvious things. So thanks a lot, you saved a lot of my time and nervs. Ralf
  9. Hi guys, I’m struggling with an annoying problem which I guess where it comes from, but can‘t find a way to get rid of it. When I try to preview hidden oder unpublished posts in the /kompendium/ category, I'll receive a 404 error, when I do the same thing with posts of other catgegories, everything works as expected. The only difference is an url thing I’ve bulit to shorten urls like /kompendium/entry to /entry/, while others are formed completely like /category/entry/. To enable this, I use the following code in my home template: <?php if (strlen($input->urlSegment2)) { // 2 segments => 404 throw new Wire404Exception(); } else if (strlen($input->urlSegment1)) { // 1 segment, check whether it exists in /kompendium/ $name = $sanitizer->pageName($input->urlSegment1); $post = $pages->get("/kompendium/")->child("name=$name"); // if so render /kompendium/name/ if($post->id) { echo $post->render(); } // else 404 else { throw new Wire404Exception(); } $render_homepage = "no"; } if ($render_homepage != "no") { // render normal home content } ?> and in _init.php there is the following hook to ensure lists are generated in the wanted manner (all entries in /kompendium/ and only those work with template pg_entry) <?php ProcessWire\wire()->addHookBefore('Page::path', function($event) { $page = $event->object; if($page->template == 'pg_entry') { $event->replace = true; $event->return = "/$page->name/"; } }); ?> So everything is fine beside the preview/404 problem with hidden/unpublished posts. As some of them show quite complex content, the preview funtion is important. Any hints, why it doesn’t work? Thanks Ralf
  10. Problem solved. After mailing the provider, everything mysteriously started to work as it should. I fear, I don’t really understand what exactly caused the problems – some weird combination of »properties« and »permissions«, his explanations were not to detailed. So thanks again Horst and Robin for your help. Ralf
  11. Okay, now I set all files on the server to owner 'User'. Still no image is shown, not in frontend, not in backend. Sad, but true. I’ll better try to cry myself into sleep now, this day definetely was’nt mine.
  12. Thanks Horst for pointing to the right direction – after inspecting how to solve the problem concretely, I found a provider’s ReadMe telling me bascially the same. The offered options are exactly two: owner is either 'User' (Me) or 'PHP-User', named '33'. When I set the owner of /site/assets/ to 'User' (recursively), nobody will see not even a single image. Chosing the second option 'PHP-User', I receive the completety irritating require_once error (and nobody will see anything else at all). As there is no third option available I don’t see the right method to get it done.
  13. Hi guys, bad day today. I first updated PW to 3.0.42, everything went fine without any problem. Then I changed the PHP version of my (shared) server and the weirdness started: 1. I switched from PHP 5.5 (Apache module) to 7.1 in CGI mode. There were a few minor issues with too less function parameters that I got fixed in minutes. The only real strange thing was that no images were shown anymore, neither in frontend nor in backend. Trying to call an image directly by it’s URL led to a 403 message, telling me I don’t have access to the site/assets directory. 2. To find out whether the problem is specific to PHP 7.1, I »downgraded« to 7.0 and 5.6 in CGI mode, both didn’t change anything. 3. I finally »reset« everything to the 5.5 version as Apache mode again, now everything seems to be broken. In frontend I get Compile Error: require_once(): Failed opening required '~/site/modules/TextformatterTextile/src/Parser.php' (include_path='~/wire/modules/Markup/MarkupHTMLPurifier/htmlpurifier/standalone:.:/usr/share/php:..') (line 39 of ~/site/modules/TextformatterTextile/TextformatterTextileField.module) (The file is definitely there). In the backend I receive DirectoryIterator::__construct(~ /site/assets/files/1148/): failed to open dir: Permission denied The process returned no content. when I try to edit a page. There seems to be a serious permission problem, but I don’t know where to start. If nothing helps, I will ask my provider for a yesterday’s server backup, but I would prefer to understand at least the basics of what is going on. UPDATE: Meanwhile I returned to the PHP 7.1. update. At least this situation hasn’t changed: all is working well except the images are still missing, in frond- and backend as described above. The require_once errors are gone, so my ideal solution would be to stay with PHP 7.1. but with correctly displayed images.
  14. Okay, the job is done now. The final solution might not be too elegant, but it works exactly the way I want as I described it in the opening post. My search form has two additional selects: scope for setting the fields to search and mode for setting the search mode. kongondo and Robin S: I want to thank you once more – I wouldn't be where I am without your kind help. <?php if ($input->get->search_terms) { // ---- sanitizing text input ------------------------------------------------------- $search_terms = $sanitizer->text($input->get->search_terms); // ---- getting desired search scope, default = title + body ------------------------ if ($input->get->scope) { $scope = $input->get->scope; } else $scope = "t_body"; // ---- getting desired search mode, default = AND ---------------------------------- if ($input->get->mode) { $mode = $input->get->mode; } else $mode = "and"; // ---- template and limit settings -------------------------------------------------- $template = "pg_entry"; $limit = 50; $selector_complete = ", template=".$template.", limit=".$limit; // ---- replace multiple spaces with single space $search_terms = preg_replace("/\s+/", " ", $search_terms); $terms = explode(" ", $search_terms); // ---- both scope options: search title ---------------------------------------- // ---- mode: AND search if ($mode == "and") { $selector_1 = "("; foreach($terms as $term) { $selector_1 .= "title%=".$term.", "; } $selector_1 = substr($selector_1, 0, -2); // delete trailing comma and space $selector_1 .= ")"; } // ---- mode: OR search else { $selector_1 = "title%="; foreach($terms as $term) { $selector_1 .= $term."|"; } $selector_1 = substr($selector_1, 0, -1); // delete trailing pipe } // ---- adding template and limit values $selector_1 .= $selector_complete; // ---- scope: t_body, adding 2nd selector for body ----------------------------- if ($scope == "t_body") { // ---- mode: AND search if ($mode == "and") { $selector_2 = "("; foreach($terms as $term) { $selector_2 .= "body%=".$term.", "; } // ---- delete trailing comma and space $selector_2 = substr($selector_2, 0, -2); $selector_2 .= ")"; } // ---- mode: OR search else { $selector_2 = "body%="; foreach($terms as $term) { $selector_2 .= $term."|"; } // ---- delete trailing pipe $selector_2 = substr($selector_2, 0, -1); } // ---- adding template and limit values $selector_2 .= $selector_complete; } // ++++ matches for selector 1 (title) ++++++++++++++++++++++++++++++++++++++++++ $matches = $pages->find($selector_1); // ++++ scope t_body && limit not reached yet: matches for selector 2 (body) ++++ if ($matches->count < $limit && $scope == "t_body") { $body_matches = $pages->find($selector_2); } else { $body_matches = ""; } // --- matches found in body if ($body_matches) { // ---- remove duplicates already in title matches $body_matches->removeItems($matches); // ---- add body_matches to matches $matches->import($body_matches); } // ++++ Output search result ++++++++++++++++++++++++++++++++++++++++++++++++++++ if ($matches->count) { foreach($matches as $match) { // Output matches } } else { // Output no matches } } else { // Output no search term(s) } ?>
  15. kongondo and Robin S – thank you both a lot. Your explanations sound clear and doable, so I will try how far I can get with the new knowledge this evening. And of course I will post the final solution just in case someone has a need for it.