Jump to content

horst

PW-Moderators
  • Posts

    4,088
  • Joined

  • Last visited

  • Days Won

    88

Everything posted by horst

  1. +2 @adrian: I think you are not over-reacting! After reading #7 my blood pressure and pulse are getting too high for some minutes. (da muss man sich ja fremd-schämen) @blad: I find it good that you have helped with some fixes for those found security issues via PM.
  2. RSS: http://modules.processwire.com/modules/markup-rss/ or better use the webservices module? (http://modules.processwire.com/modules/service-pages/)
  3. @Mel: here is a post that describes how to use a watermark that is uploaded into a single image field (to make an image field a single image field you have to setup the field to only allow 1 file, otherwise, 0 or greater 1 it is a multiple files field): https://processwire.com/talk/topic/4264-release-page-image-manipulator/#entry41883 The general how to you can read in the initial post here in this thread: The $pngAlphaImage can be a filename (full path and not an url!) or a pageimage. Example with filename, assumed you have uploaded a png watermark image per FTP to your server into a directory besides wire and site, called "_mystuff": $png = $_SERVER['DOCUMENT_ROOT'] . '/_mystuff/' . 'basename-of-my-watermark.png'; foreach($images as $image) { $watermarked_image = $image->pimLoad('tw', true)->width(500)->watermarkLogo($png, 'southeast', 0)->pimSave(); echo "<img src='{$watermarked_image->url}' />"; } An example with png from an imagefield, assumed it is called 'watermarkfield' and is on a page with the name/url '/tools/'. The tools page isn't visible from the frontpage, it is only a page that holds some fields and stuff that I need around the site on different places: // assumed the watermarkfield is a single image field: $png = $pages->get('/tools/')->watermarkfield; // assumed the watermarkfield can have multiple images and I want use the first one: $png = $pages->get('/tools/')->watermarkfield->first(); foreach($images as $image) { $watermarked_image = $image->pimLoad('tw', true)->width(500)->watermarkLogo($png, 'northwest', 0)->pimSave(); echo "<img src='{$watermarked_image->url}' />"; }
  4. @Mel: I changed the subject of your thread and I moved your post into the Support-Board-Thread of the PiM and have answered the question there: https://processwire.com/talk/topic/4264-release-page-image-manipulator/page-6#entry71075
  5. Page-Edit -> tab: Children -> Sort Settings -> Children are sorted by or: https://processwire.com/talk/topic/4758-release-pagetree-add-new-child-reverse-on-top/
  6. @xorotle: you can use the underscore for that or you can configure something other in your site/config.php for $config->ignoreTemplateFileRegex see: https://github.com/ryancramerdesign/ProcessWire/blob/dev/wire/config.php#L249 if you define something in your site/config.php it overrides the setting from wire/config.php.
  7. @renobird: which fileformat(s) do you test? png, gif, jpeg or variing? For PNG and GIF the quality setting has no effect, only for JPEG it should.
  8. it says: default option, not the only one you can have. As far as I know defaults, they will be taken if you have not specified an individual value for something.
  9. Uhh? Where does it say that? This would be new to me. (good reference is here)
  10. I think not a "special PW-function" but what's about radio buttons in your form with left - center - right and within form processing you crop the images west - center or east, according to the selected radio button?
  11. Hi, in the examples of pocketgrid it is to read that this should support n-th child for IE 6 - 8, but like I understand the code it only selects IE7 ?? I thought gte = "is greater then" and lte = "is lesser then". I'm wrong or right?
  12. +1 for $config->siteScripts and $config->siteStyles with absolute pathes / urls
  13. but if it has a single image in it, why do you try to select the ->first() ? I assume you have set the image field to allow only 1 image? Also, if you have set it proper to a single image field, it could be that you have a page without an uploaded image to that field. if($featured->Featured_Image) { echo "<img src=\"{$featured->Featured_Image->getThumb('thumbnail')}\" />"; } ------ Also my questions a post above was thought a bit different. I was trying to get you debug the output in your page, just above the line that raises the error. But I wasn't clear, so it doesn't . The error messages said that it isn't an object or the wrong object, so you can debug it to see what's going on. You expect it to be a cropimage field, therefore it should be an instance of type "FieldtypeCropImage". if($featured->Featured_Image->first() instanceof FieldtypeCropImage) { echo "\n<p>the Featured_Image->first() is a cropimage</p>\n"; } if($featured->Featured_Image instanceof FieldtypeCropImage) { echo "\n<p>the Featured_Image is a cropimage</p>\n"; } // imagefield is: FieldtypeImage Most collections in PW are based on WireArrays, so multiple images fields are too and you can look for that: // or checking for single vs multiple if($featured->Featured_Image instanceof WireArray) { echo "\n<p>it is multiple</p>\n"; } else { echo "\n<p>it is single</p>\n"; } You can also just dump a variable with var_dump($featured->Featured_Image->first()) to see what is in it, but that's mostly not very usefull in PW because objects in PW have way to many references to other objects so that var_dump results into very, very large outputs.
  14. if $featured->Featured_Image->first() isn't an object that has a method getThumb, so what is it actually? or lets have a look at one step before: what does $featured->Featured_Image hold? (an images array, a single image, nothing?)
  15. Sorry Tom, I have misunderstood or haven't answered clearly. My tip was regarding this comment I don't know nothing about that error with the usage on profile pages. My tip was only to let you know that if you like the stored crop rectangle coords per session, you can use it also permanent with installing PiM and the setting in config.php.
  16. @xorotle: has you set debug to true? (site/config.php -> $config->debug = true;) have you entries in your site/assets/logs/error.txt ? (after switching debug to true?)
  17. "Komodo Edit" (not Komodo IDE) is a free Editor (OSX, Win, Linux) that supports FTP-Remote editing too: http://komodoide.com/komodo-edit/
  18. Hi Tom, unfortunately not yet without hacking. The plan is, in a new fork of the Thumbnail module, to add the (optional) permanent storage directly into Thumbnails. If you want hide the options you can hack/edit the site/modules/Thumbnails/ProcessCropImage/ProcessCropImage2pim.css and set them as display none (#hd form label, #hd form select, #hd form button) ??
  19. @renobird: Do you also have installed PiM? Together with PiM installed, you can store the used crop rectangle coords permanent by just add this to your site/config.php $config->imageManipulatorOptions = array( 'thumbnailCoordsPermanent' => true );
  20. Haha, - to add one more, I want to point out that I really like to use the way it is done with Spex!
  21. @enricob: 1) You do not have to add an alternate template file on a per page basis, you only have to add it once for a newly created template. Don't know how many templates one need for a average site, - I seldom have used more than 10 or 15. 2) I think it isn't a good idea. For example, it is different if a page has a template that has no template file compared to pages that have a template which is assigned a template file. Those pages without a template file cannot be shown on the frontend (because there is no template file that specifies how to generate the output). Such pages have many usecases like for example toolpages etc., or trees and childpages that you need to define categories or tags or whatever. You don't want them accessible through HTTP.
  22. +1 A bit OT regarding the threadtitle but another great thing that one can use with ProcessWire is the Hannacode module. When fetching pages from an online resource and store them locally I want that links in the bodycontent point to the local resources if they are available. But which one is, will or should be locally stored isn't easy to determine when fetching the (first) pages is in progress. Therefore I installed Hannacode and store every a-href in the bodycontent as hannacode: [[source_url source_url=http://example.com/path/to/page.html]] The codesnippet that get invoked for every link: $p = $pages->get("template=elektronik, source_url=$source_url"); if(0<$p->id) { // page is locally available echo $p->url; } else { // page is only online available, add a css class to the tag that this can be shown in the page output echo $source_url . '" class="externLink'; } This way I can add or remove pages without breaking (locally) references in other pages. Summary: created an importer script, modified the renderNav function, added one Hannacode and some css styles = a nice and comfortable to use site!
  23. Yes, I have added three fields to the template: mainid, subid and tag. I use an array with a predefined structure that I use for adding pages via API: $struktur = array( 'grundlagen' => array( 'elektrotechnische-physik', 'stromkreisgesetze', 'elektrotechnische-chemie', 'wechselstrom-und-wechselspannung', 'signal-und-energiequellen', 'messtechnik', 'praxis' ), 'bauelemente' => array( 'lineare-und-nichtlineare-widerstaende', 'kapazitive-und-induktive-bauelemente', 'halbleiter', 'transistoren', 'integrierte-schaltungen', 'sonstige-bauelemente', 'praxis' ), 'schaltungstechnik' => array( 'grundschaltungen', 'transistorschaltungen', 'stabilisierungsschaltungen', 'anwendungen-mit-operationsverstaerker', 'praxis' ) ); Here a bit simplyfied the import process: foreach($struktur as $main => $subs) { $mainPage = $pages->get("/$main/"); // let out the check if the mainPage exists or need to be created here foreach($subs as $sub) { $subPage = $pages->get("parent=$mainPage, name=$sub");// let out the check if the subPage exists or need to be created here // ... execute code for fetching the urls for this subPage here ... foreach($urls as $url) { $dump = @file_get_contents($url, false, $context); if(!$dump) continue; // fetch or create this page $newPage = $subPage->child("source_url={$url}"); if(0==$newPage->id) { // create a new page $newPage = new Page(); $newPage->parent = $subPage; $newPage->source_url = $url; $newPage->tag = 'page'; // can be one out of main, sub, or page $newPage->mainid = $mainPage->id; // store main parent id $newPage->subid = $subPage->id; // store sub parent id ... (template, title, name, etc) $newPage->save(); } $assetsUrl = '/site/assets/files/' . $newPage->id . '/'; // ... parse and adjust the body content, store it into $newContent ... $newPage->of(false); $newPage->body = $newContent; $newPage->save(); wire('pages')->uncache($newPage); } } } This way i have all needed information in the contentpage itself. In my search template I use $selector = "title|body%=$q, tag=page, limit=$limit"; $matches = $pages->find($selector); $selection = array(); foreach($matches as $match) { $selection[$match->id] = $match->id; if(0<intval($match->mainid)) $selection[$match->mainid] = $match->mainid; // add involved mainPage to the ids if(0<intval($match->subid)) $selection[$match->subid] = $match->subid; // add involved subPage to the ids } In my case here this was all to do to get it working with the above posted renderNav4. Into the generated output of the renderNav4 I have added css classes: "<li class='main{$item->mainid} type{$item->tag}'>" I only need to lookup the ids of the three mainPages and add these lines to main.css: li.main2908 a, li.main2908 { color: #465E8A !important; } li.main2916 a, li.main2916 { color: #5B7D12 !important; } li.main2924 a, li.main2924 { color: #AB5D65 !important; } In the sidebar I display the list of the next higher level. It is a really nice and functional site what doesn't take much effort because of Ryans new minimalistic SiteProfile in dev-branch. I only had to manage the import and had to modify the renderNav function into two different behaviours. I love ProcessWire Screenshots:
×
×
  • Create New...