Leaderboard
Popular Content
Showing content with the highest reputation on 09/23/2014 in all areas
-
This is the second site for my music production company using ProcessWire - the first was over a year and a half ago. http://dancingbear.co.uk Very simple site incorporating a version of jplayer - the player is loaded via ajax and is actually incorporated into the page using Hanna Code. Site runs with ProCache and cloudflare. It is not the most awe inspiring site out, but then, audio is not known for having a lot of pictures associated with it! The logo is based on one that a friend drew for me 20 years ago. I have decided to reuse it and redraw it. Slight issue in that the contact form that worked fine on my development server but I am not getting any mails from the production server. I have opened that up as an issue at: https://processwire.com/talk/topic/7685-not-receiving-mail-from-form/ NOTE: I have turned off procache for the moment while I check on a couple of issues. Back on now, as is cloudflare ... is that overkill? Edit - note for anyone using cloudflare (who are very good, mostly). They are not appropriate for streaming audio or video sites. Their advice is to create a subdomain and to put audio files in there, then make sure that subdomain is NOT being cached by cloudflare. Or you can put it on a CDN somewhere. That way the main domain is properly served by cloudflare while the media is brought in from elsewhere.4 points
-
I just stumbled upon Gravit, an open source design tool. it is still in Beta but I think it has potential. gravit.io/4 points
-
I manage to find a way, but it's highly untested, and would have to be worked upon. Hope it's understandable: if($session->selector) { // selector string resulting of the user selection, has to be in session // in the first time we need all the pages that were linked on the base page // after that we need only 3, the current page the previous and the next // we know if it's the first one if $session->start is not defined $limit = $session->start ? "3" : "10"; // if $session->start is not defined we want to start with the first item $start = $session->start ? $session->start : "1"; // for the pageArray $array = $pages->find("{$session->selector}, start={$start}, limit={$limit}"); $prev = $page->prev($array); $next = $page->next($array); // if there isn't session->start, give it the index of the current page in the array if(!$session->start) $session->start = $array->getItemKey($page); // if former page was the previous, add one to $session->start if($session->page === $prev->id) $session->start = $start + 1; // if former page was the next, subtract one from $session->start if($session->page === $next->id) $session->start = $start - 1; // store this page ID in $session->page to compare next $session->page = $page->id; // echo the prev and next links echo "<br><a href='" . $prev->url."'>Prev</a>/<a href='" . $next->url . "'>Next</a>"; } // at some point in the other templates would be good to unset $session->selector with $session->remove("selector") Edit: without the comments it's less scary Edit2: forgot the $session->selector, already added it if($session->selector) { $limit = $session->start ? "3" : "10"; $start = $session->start ? $session->start : "1"; $array = $pages->find("{$session->selector}, start={$start}, limit={$limit}"); $prev = $page->prev($array); $next = $page->next($array); if(!$session->start) $session->start = $array->getItemKey($page); if($session->page === $prev->id) $session->start = $start + 1; if($session->page === $next->id) $session->start = $start - 1; $session->page = $page->id; echo "<br><a href='" . $prev->url."'>Prev</a>/<a href='" . $next->url . "'>Next</a>"; }3 points
-
No PW isn't smart enough. But you. If that a on front end you just save the field and done. It's in your hand to page->save(field).3 points
-
Ah, this is one of my famous big piece of paper things - design it on the floor first of all, it will become a lot clearer! I suggest in the middle of your paper you write Chocolate Bar - this will be central to everything, sort of. Each bar has a type, a manufacturer and a stockist. Though, the stockist will choose the bar and not the other way round. On the chocolate bar side, this is just a case of multi categorization. Any page can be linked to one or more categories and different sets of categories. So, you can use multiple page fields to create: Chocolate Types - milk, dark (different percentages), etc Chocolate Origins - countries, basically Additional flavours - orange, mint... You could set these page fields like you would tags, so that you can add new variations on the fly. You can also set them to choose more than one from each category. There is no problem in searching that sort of thing. You would also have a page field for a list of confectioners, but obviously, that would be single select for each bar. Shops are really a separate deal. They basically stock bars - the rest of the info comes with the bar. The slightly difficult bit is when you need to select which chocolate bars a shop stocks. Selecting one by one would be awful and you cannot guarantee they stock all from a particular manufacturer. I suppose you can list all as check boxes - I wonder how many you could list before it explodes? Once you do get all that together, the real trick is in the searching, to be honest. But since everything is cross linked, that might make your eyes cross, but wont be dreadful.3 points
-
You should rewrite the url to: $config->urls->root = '/'; Load this as early as possible in your templates, so your _init.php might be a good location. I use this all the time when storing websites in folders.3 points
-
Output formatting is off because we are in the back-end. Pages loaded in any a module have it off, it's only on in front-end context. All normal, and no problem turning it on if needed.3 points
-
I'll just go and fetch my sunglasses...won't be a minute... ...looking good (but the lime green is a bit too much? - Don't mind me! Thanks for this massive effort! )3 points
-
Just to add my two pennies worth... I'm not a coder by trade, but used to make many joomla sites for hobby money. But, by virtue of not being a coder I was restricted to what modules and components other more competent people created. This only caused me more problems when the core upgraded etc leaving me with out of date components and a vulnerable site. (and some egg on my face) I switched to PW after recommendation by a friend which turned out to be the best thing I could have done. With practically personal tutoring by members here (Adrian, Ryan, Joss, Pete, sinnut etc (sorry for missing out so many)), I've become competent in using the api and basic php. I now don't need a component to make a blog, photo gallery, complex database, I make my own. The biggest advantage of this is I know exactly how they work, I know how to adapt it and I most of all it won't become obsolete when the core gets upgraded. What makes a coder? $x = "any"; $y = 1; $z = "you"; echo "$x" . "$y"; $y = $y+$y; echo "$z" . $y; Would that even work? lol WP/Joomla and drupal all have a targeted audience... but I belong here lol.3 points
-
2 points
-
This site is also multilingual. I did it like arjen suggested. Created a _init.php file in the templates folder with $config->urls->root = "/" and then I've uncommented the line (50) on config.php : $config->prependTemplateFile = '_init.php'; That way, this code is prepended to every template and so it's executed before any code on the templates.2 points
-
Ah sorry, a form object is a InputfieldWrapper which is a special Inputfield, but it has Inputfields that are part of the InputfieldArray (defined at top of /wire/core/InputfieldWrapper). That's why replace(a,b) is not there for a form object. No you don't have to set it, just modify the field object and done, it's an instance and not a copy. Just as a hint. When doing all this form manipulation, just keep in mind that fields could be nested in case of fieldsets containing fields. There's also $form->get("fieldset_details")->children() etc... But you could also get a flat presentation of the inputfields with $inputfieldsArray = $form->getAll(); though not positive it's useful in your case. That should work fine.2 points
-
okay, still nothing arrived. Knowing my luck, the entire lot of tests will all arrive at christmas....2 points
-
We have Area51. Heinz57. And the Fibonacci Sequence. We now have Post144. BTW: You like fish? I like Turtles. Yes. I said Turtles.2 points
-
I've been working on the site quite a bit. Here are some very early screen grabs (a lot will be changed and improved): Home Page: http://goo.gl/rxjQ5t (more sections will be added below the masthead) Series Page: http://goo.gl/tNfJnk Episodes Page: http://goo.gl/fGJzqJ (very preliminary, many modifications to be made) Episode Page: http://goo.gl/zrIcXf (top of the screenshot is cut off) As you can see, I went with a very bright color palette. I want the site to appear fun, friendly and unintimidating. The colors are also inspired by the PW site. Color palette: http://www.paletton.com/#uid=60R1h0kwi++bu++hX++++rd++kX2 points
-
http://www.tehplayground.com/#91kqu1Uyz It works, but doesn't make much sense2 points
-
Code before talk. With 2.5.0 released Friday, and 2.5.1 dev released today, there's been a lot of code.2 points
-
Just wanted to throw in my two cents. If you come at it as a front-end developer that's a complete beginner to CMSs, then PW should be very easy to get going. It's built around working the same way that existing web technologies work… Pages map in the same way that URLs do… Template files are just plain HTML/PHP files… the API is largely the same as a front-end API (jQuery)… and so on. So if you know your basic web technologies outside of CMSs, then you won't find a simpler system than ProcessWire. The problem is most other CMSs don't work that way. So the line gets more blurry when you've become used to the terminology and approach of another CMS, because PW can be quite different. Sometimes you have to unlearn what you know from elsewhere in order to appreciate the simplicity of PW. People are always trying to find complexity that isn't there, especially those that grew up on other platforms. PW is a system that rewards you by being curious. We aim to show you how to fish so that you can catch the big fish. We're not here to catch the fish for you. You don't have to know anything about fishing, but you should know how to yell for help if you fall in the water. And you should be willing to learn by example. I learn best by example, so this is the way I tend to teach too (and I recognize not everyone learns the same way). PW is a CMS and CMF, not a website builder. If you are curious and willing to explore, you'll find it is very simple indeed. Certainly far simpler than even WordPress in creating a custom website. You do have to come from the point of view of "I want to create and have the system adapt to me" rather than "I will create something based on what the system provides." If you already know what you want to create and it's something unique, you won't find a simpler path to get there than PW. WordPress is a different beast, in that it's basically saying "YOU WILL CREATE A BLOG or modify this blog and call it something else." Some people like that underlying structure… "okay, we're starting with a blog, what can we do with it?" Others do not like that underlying structure. Our audience consists of those that want to have a system support their original creation rather than mash up an existing creation. There was a PDF posted earlier that I think hit upon some good points, and I appreciate the effort that went into putting it together. The fictional character being scripted in the dialog is not our target. I can go into specifics if anyone wants me to, but I was definitely left feeling at the end of it that we have to be careful about hand-feeding too much or else we'll start attracting people beyond our support resources. Folks that want the fish cooked and filleted rather than folks learning to fish. Perhaps in time we will want to attract more of the consumer-type audience, but currently I don't know how to support users looking to find all the answers in a sitemap file. Keep in mind that unbridled growth is not necessarily desirable. Most of us don't get paid for most of the work we do here and we do best if we grow in a more healthy manner, attracting more thoughtful designer/developers that are here to learn and also contribute. Obviously the author of the PDF is one of the thoughtful ones (and the PDF is a great contribution), even if his fictional character isn't necessarily, but we'll welcome him anyway. But we will definitely be going through the PDF in more detail to learn and improve from it where appropriate, while keeping our audience in mind. I think we're doing something right, because our audience is growing rapidly. I'm nearly full time on ProcessWire now, and it's still difficult to keep up with everyone. At present, I like that our audience is largely open-minded, curious and thoughtful designers and developers. Somehow we've attracted an incredible quality of people and that's what makes this place great. We could not ask for a better group of people here. I'm reluctant to lead PW towards a website builder direction because I think that's when the quality of the community could go down, as people come looking to eat fish rather than learn, catch some fish, and throw some back. The reality is that part of our long term goals include converting the rather large audience that has outgrown WordPress into ProcessWire users. I'm convinced that we do that by giving them more ProcessWire, and not more WordPress. But at the same time, we always have to keep an eye on WordPress and learn. They've been lucky no doubt, but they are also doing many things right. So we have been and always will be working to make the WP-side of users more comfortable in ProcessWire, while also trying to help them grow by distancing them from the limited WP mindset.2 points
-
Often times, creating a side project is first and foremost scratching your own itch Or to start differently: Currently, I'm developing a site where I need CKeditor (and later jQueryUI Datepicker) outside of the admin, in frontend. I searched Google and the forums and found an approach to follow - but during the research the site laravel-recipes.com came into my mind (since I'm currently also looking into this framework). It's content consists of small, spot-on bits of information, for example: http://laravel-recipes.com/recipes/269 Just to think out loudly here, wouldn't it be nice to have a ProcessWire counterpart of such a site? processwire-recipes.com for example? Target group: Developers, from beginner to advanced Difference to these forums: Stripping the discussion part, concentrating on the info; and if done properly: bypassing the mediocre forum search, better tagging Difference to the official tutorial section: Focusing on not creating a whole site, but modular parts of it. Single solutions. For example: First child redirects (shameless plug, but this is the format of information pieces I'm having in mind) Difference to the API documentation: Situation-based ("I need this and that") instead of architecture-based Laravel.io (forum), laravel.com (official, and doc) and laravel-recipies.com possibly prove that these type of sites can coexist in a framework ecosystem, so I guess a recipes site would not cannibalize this forum here nor the doc section. A recipe site like this would live and die with its content, of course. I would be ready to share all the small pieces of information I encounter that would make a good "recipe". But that alone wouldn't be enough so this project won't survive without contribution of the community. What's your opinion on this? Yea or nay? Update: ...it just took, erm, nearly three months,... but here it is: https://processwire-recipes.com/1 point
-
You need to study more, escaping the quotes comes explained in the first chapter of any php book1 point
-
I was trying with my 160k testinstall Diogo's code doesn't work really as it has no correct start value and that would be something like the page's position in the result - 2 or something. So I tried with diogos approach and came up with adding a url segment to each article link in the list like /articleurl/1 to be able to get the position on the article page. //That would generate the list $session->list_selector = "template=news-entry, summary*=europa, sort=-date"; $limit = 10; $list = $pages->find( $session->list_selector . ", limit=$limit"); $start = $input->pageNum ? $limit * ($input->pageNum - 1) : 1; // $input->pageNum is the page from pagination foreach ($list as $key => $p) { $pos = $start + $key + 1; echo "<li><a href='$p->url{$pos}'>$p->title</a></li>"; // add position to the url } echo $list->renderPager(); And on the article page if($session->list_selector && $input->urlSegment1) { $pos = (int) $input->urlSegment1; if(!$pos) return; $limit = 3; $start = $pos == 1 ? 0 : $pos - 2; $selector = "{$session->list_selector}, start={$start}, limit={$limit}"; $array = $pages->find( $selector ); $prev = $page->prev($array); $next = $page->next($array); if($prev->id) echo "<a href='" . $prev->url . ($pos-1) . "'>Prev</a> "; if($next->id) echo "<a href='" . $next->url . ($pos+1) . "'>Next</a> "; } Works fine with a search with about (7) thousands of results in about 0.1 - 0.2 sec. This would be cacheable if you even construct the url using the category (if that's what you filter for only) and have those even cached results (hence own url). Another approach would be to cache a text file with the result (to not store big amount of data in session) and save and load that depending on the filter. A delimited list of ID's and use it to search to get the prev and next item in the list. Not sure this would complicate things but then the DB don't need to query each time (if that's at all a problem.)1 point
-
I have added a posts-count class to the <h3> This is a bit vague. I am not sure exactly where you want that image above the blogpost. Do you mean above post title ('Fanions - K.F.C. Heist - Nieuwpoort') or just below it? If you want it above, that means you want the image before the post is rendered ($small post from what I can see). That means, you have to call that image in your template file. That is tricky because you need to programmatically fetch one image from the post that you have rendered. It is not impossible though but I need to know your situation better. How many posts will you be outputting at a time in that 'middle' area of the home page How will you be calling that post? The latest added post? A specific one? You said there will be multiple images per post, which image are you interested in? The first one? The last one? A random one? A specific one? Assuming you will be calling only 1 post, the latest published one, and outputting its first image... /*find the latest post and pass that as a Page or even a string to renderPosts(). You could even just call renderPosts("limit=1, true") but we want to use the Page later to grab the image*/ $post = $pages->get('template=blog-post, sort=-blog_date'); #get and output your first image $image = $post->blog_images->first(); if($image) echo "<img src='$image->url'>"; #render your 'small' post $blog = $modules->get("MarkupBlog"); echo $blog->renderPosts($post, true);1 point
-
how could i have missed that. $image = $page->images->get("name=picture.jpg"); thanks adrian.1 point
-
Building upon what you described in your original post and what Joss said... Templates and Relationships - bars (bars.php) - bar1 (bar.php) - bar2 (bar.php) - barN (bar.php) - chocolate types (chocolate_types.php) - chocolate_type1 (chocolate_type.php) - chocolate_type2 (chocolate_type.php) - chocolate_typeN (chocolate_type.php) - confectioners (confectioners.php) - confectioner1 (confectioner.php) - confectioner2 (confectioner.php) - confectionerN (confectioner.php) - shops (shops.php) - shop1 (shop.php) - shop2 (shop.php) - shopN (shop.php) - countries (countries.php) - country1 (country.php) - country2 (country.php) - countryN (country.php) Fields - bars (page field, multi-select asm or whatever is the most appropriate given amount of data) - chocolate_type (page field, regular select or whatever makes the most sense; i'm assuming each bar has one chocolate type) - confectioners field (page field, multi-select asm or whatever is the most appropriate given amount of data) - shops field (page field, multi-select asm or whatever is the most appropriate given amount of data) - country field (page field, regular select or whatever makes the most sense; i'm assuming each confectioner has one country) Templates w/ Fields - bar.php - title - (etc) - chocolate_type - chocolate_type.php - title - (etc) - confectioner.php - title - (etc) - bars - country - shop.php - title - (etc) - bars - country.php - title - (etc) Example Code Per Template - bars.php list bars: foreach($page->children as $bar) - chocolate_types.php list chocolate types: foreach($page->children as $chocolate_type) - confectioners.php list confectioners: foreach($page->children as $confectioner) - shops.php list shops: foreach($page->children as $shop) - countries.php list countries: foreach($page->children as $country) - chocolate_type.php list bars that have the chocolate type: $bars = $pages->find("parent=/bars/, template=bar, chocolate_type={$page}"); foreach($bars as $bar) - confectioner.php list bars: foreach($page->bars as $bar) - shop.php list bars: foreach($page->bars as $bar) - country.php list confectioners in the country: $confectioners = $pages->find("parent=/confectioners/, template=confectioner, country={$page}");1 point
-
1 point
-
1 point
-
You could always also remove it via phpMyAdmin. Go to the modules table, find the module class (e.g. ProcessBlog) and delete that row...Backup before of course...1 point
-
Arjen: Neat and clean. Thanks, it solved the problem!1 point
-
Session name? You can have multiple sessions run without conflict https://processwire.com/api/variables/session/ http://stackoverflow.com/questions/1348555/having-two-different-sessions-in-same-domain http://stackoverflow.com/questions/854105/multiple-php-sessions1 point
-
No messing var scrollTo = $(window).height() - 250; // eyeball this number $('html, body').animate({ scrollTop: ($playerdiv.offset().top - scrollTo) },500);1 point
-
The problem with the SMTP approach was that Google starting sending me mails saying someone was trying to hack my account....1 point
-
@Joss: at first I would debug what's going on with the php mail function. If it works on your local host and not on the live, there must be a difference. I would hack into the code and store the return from the mail() function: $ret = mail($emailTo, "Contact Form", $msg, "From: $form[email]"); echo "<pre>\n return from mail() is: "; var_dump($ret); die("\n\nDebugExit in file " . __FILE__ . " at line: " . __LINE__);1 point
-
1 point
-
1 point
-
1 point
-
Hello i allso want to ask How's the new version of the shop going??? i am very interest of buy! thank you.1 point
-
1 point
-
1 point
-
Yah as you speak $form->get('field') or find.. Basically it's a WireArray. Rings a bell?1 point
-
Thank you I looked everywhere and couldn't find anything on the subject. I was under the assumption that I had just configured something incorrectly. Everything is working perfectly now thanks to your guidance. You are a good man Soma! As a side note I just wanted to thank you for creating your ajax progressive search module. I have been using it to show results on my site and it looks amazing. It works so well for image results, I really couldn't ask for anything more. Cheers!1 point
-
Thanks for the support and suggestions. Been working hard on episodes. About 1/3 done so far with episode recording, but still need to do editing as well as record the rest. I've began creating the website on my local server. I've inputted a list of all the episodes the "WordPress vs. ProcessWire" series will have (29 so far). Some more may be added to this series if I realize I've forgotten anything. Screenshot: http://goo.gl/3LUYTo Jonathan1 point
-
Blog version 2 Introducing Blog version 2! There are lots of changes so this will be a long read. For upgrading from version 1 to this version, please read the next post. I’ll appreciate beta testers. As you’ll see below, there’s lots of new things (and combination of things!) to test. Many thanks! TL:DR: Blog version 2 is available for beta testing. It comes with a two-step installer that allows you to structure where your Blog lives in your page tree just the way you want and cleans-up after itself in case it isn’t your cup of tea. Please see next post about updating version 1 to 2. Main Changes 1. Configurable Blog 2 is a now configurable module (i.e. ProcessBlog). On a fresh install, you will first have to set a couple of settings before you can run the module. More on this below. 2. Installer Blog 2 comes with a two-step installer. No more installing things you don’t want. In the first step, you set the module configurations in the module settings page as mentioned in #1. The configurable settings are outlined later below. In the second step, via the Blog dashboard, you will see an overview of the settings you selected in the first step above. Here you finalise Blog’s installation. Before you click the button to run the install wizard, nothing will happen yet. You can still go back and change the module configuration settings. Until you run the install wizard in this second step, you will have no Blog pages, fields, templates, etc. On this page, you will also be able to rename your Blog’s main pages before they are created. Yes! If you don’t do it at this stage, you can also rename them post-install in the ProcessWire tree! If you are happy with your settings, click the install wizard to proceed. Blog will be fully installed with your settings before you can dash out to make a coffee . You will then see the familiar Blog dashboard Please note: If you need to change some configurations, you can go back to the module settings and do it BEFORE you finalise step two of the installation. It is important that once the installation is finalised, in case you had left the ProcessBlog's module configuration's browser window open, NOT to press submit again. Otherwise, MarkupBlog may not like it . However, if you reload the module configurations screen once the second-part of the installer has finished, you will not be able to change the configuration settings. Instead, you will be presented with an overview of your installed settings. 3. Blog styles Blog now allows you to install your Blog pages from a choice of 4 different URL structures, aka Blog styles! These should cover most (all?) needs. This means that your Blog pages will live exactly where you want them in the tree, hence give you the URL you want. You select the style you want in ProcessBlog’s module configuration screen (first step of the installer). A visual of the 4 styles is presented on that screen. Example paths for the 4 styles are: Blog style 1: /mysite/blog/posts/example-post/ (similar to Blog version 1) Blog style 2: /mysite/blog/example-post/ (as requested by FuturShoc) Blog style 3: /mysite/posts/example-post/ (same as Ryan’s Blog profile) Blog style 4: /mysite/example-post/ (as requested by PWired) 4. Commenting feature In the first step of the installer (module's configuration's screen), you can choose to install commenting feature or not. The default is to install commenting feature. If you elect not to install this feature, Blog will not install any comments-related components – so no comment fields, associated pages, templates and template files! Note, you CANNOT add this setting once Blog install has been finalised. 5. Auto-publish/unpublish This much requested feature has now arrived! You choose whether to install this feature or not via ProcessBlog’s module configuration screen. The default is auto-publish/unpublish is not enabled. If you want to use this feature, you will FIRST have to install the great SchedulePages module. If you have the module installed, this will be specified in Blog’s module configuration screen. Again you will not be able to proceed with installing this feature unless SchedulePages is installed. If you install this feature, you will see two date fields when editing a blog post, i.e. ‘Auto-publish from’ and ‘Auto-unpublish on’. You will also see these two date fields in Blog’s Quick post’s dashboard. Note, you CANNOT add this setting once Blog install has been finalised. 6. Templates Blog will install templates according to the Blog style you have selected. So, if you went with style #4, you will not have a template called ‘blog’ nor one called ‘blog-posts’. 7. Template files In the first step of the installer (module configurations screen – I know, I am repeating myself!), you have three options when it comes to template files when installing Blog. The default is to install blank template files (with nothing but php tags – a little something to help you get started quickly). The second option is to install demo blog template files (more on this later) and the third is not to install any template files. 8. Demo template files These files have now been streamlined. No more verbose code! A blog-main.inc contains most of the markup and the other template files contain most of the code. The demo will work with any of the 4 Blog styles. 9. Cleanup One of the annoying things with Blog version 1 was not only that it installed things you probably did not need, it also left behind, uh, leftovers (templates, role, pages, fields, template files). Well, no more! Uninstalling Blog is now a two-step process. If you are logged in as a superuser, you will see a Blog menu item called ‘Cleanup’. It will lead to a screen with info about all the fields, templates, pages and role you are about to delete. It will also list the Blog template files that, if you wish, you can also delete. This utility is also useful when you want to try out the different Blog styles without uninstalling the whole Blog module. It returns Blog to the state similar to when you first installed the module. Of course, in case you want to remove Blog as well, just go ahead and uninstall in the normal way but AFTER you have cleaned-up . 10. Renaming Blog pages As mentioned previously, you can rename any of your Blog pages pre- or post-install. Want Diary or Journal instead of Blog? Sure, go ahead. Want Writers instead of Authors? What about Chronicles in lieu of Archives? You can have those too. The only things you should NOT do are to delete the main Blog pages (i.e. anything other than Example Tag, Example Category and Example Post) OR (however remote the chance of this is) CHANGE the IDs of these pages (in the database). In order to allow for flexibility, Blog stores and tracks its main pages using their IDs. 11. Fields and templates admin tag In step 1 of the installer you can choose to change the default name of the tag used to group Blog fields and templates in the admin. You can as well choose not to have any tag and let anarchy reign in your admin pages! 12. Context aware Most of the Blog dashboard is now context aware. It will only display info about Blog components that are installed. No comments? Fine, no comments in Posts dashboard, etc. Apart from ‘Posts’ dashboard, the other Blog dashboards will be labelled according to the titles of your main Blog pages. For instance, if you called ‘Categories’ ‘Classifications’, that is the name you will see in the ‘Categories’ dashboard label. Same for Authors, Tags, etc. Even Cleanup is context aware and will only list components related to the Blog style you installed. OK, so how do I get Blog 2? You can install via ProcessWire modules screen. get it on the dev branch of Blog in GitHub. It is also attached below (please use Github - it is the latest version). I thoroughly tested this but I probably missed something or mixed up my code somewhere so there could be bugs . Please help me find and swat them, thanks! Next post, updating Blog 1 to 2.1 point
-
A few updates in response to the PDF that was posted earlier. More to come, but this is a start. Currently these are just on dev, but will be merged to master soon. The main README file has been updated with a link to the HTML version at the very top. I honestly think including a README.html file in the core itself is bad form because it reveals exactly what software is running the site. Some might have noticed our README files are generally blocked from http access (by the .htaccess file) for this very reason. So I think putting a link to the HTML version of the document at the top of the Markdown file is a good compromise. The default site profile has been updated with its own README file and separately hosted HTML version: Introduction to the default site profile, which goes in depth in explaining exactly how the site profile works. The template files have also been updated, telling the user to see README.txt for more information (though not sure that's really necessary).1 point
-
You didn't sound defensive at all!! Sorry that I started that, I can't repeat anymore that I love the site as it is The comment on the menu comes exactly from that, because the site is so positively minimalistic, and yes, because it has a print feeling (I'm a graphic designer by the way), somehow I felt that the menu brings too much animation to it. It's also natural that André (onjegolders) and I have more or less the same vision on this because we worked together and had long conversations about these kind of details. But, unlike how pwired puts it, this was NOT criticism (constructive or not), but just a friendly and completely subjective remark on a detail on a site that I admire.1 point
-
Hi Kongondo, I'm extremely grateful for your fast response. You really pointed my nose in the right direction. I did a copy/paste and changed the ID to that of the fanions and it worked 'out of the box' (temporary-link). Now I at least I can follow the trail and through trial and error get it completely right so it will fit in the site. I'll keep you and the community informed as how I integrate your great module into the soccer site. Hoping that my simple Q. will also help other newbees to distinguish the trees from the bush, again I really thank you! Bernard ps. On the page of your tutorial you mentioned above, I really think the optional code for categories would really fit for newbees like me.1 point
-
Interesting discussion! I definitely think Processwire could improve its usability but I don't think plugins is the way to do it. I just did a clean install of PW 2.5 and documented each step in the process. Here's a .pdf with 44 slides that covers the scenario of a new user's first contact with PW: http://cl.ly/0e3V2M3w1z1B comments appreciated1 point
-
Hi Ryan I have a series of fields that I wanted to only show to superusers. I used this module to set access to a fieldsetTab group and lo and behold - the tab and all its contents were hidden from other users. However, as I added other tabs, this behaviour stopped working - I think some glitch had made it work originally. Might it be an idea to enable this behaviour - ie a protected fieldsetTab or fieldset also protects any fields it contains. Just a thought - it would make things cleaner in the admin interface. This is obviously v v low priority. Thanks again Ryan. Many thanks Nik1 point
-
it work for willyc and.mom if u add.page-publish perm user need page-publish perm .to edit alreadey publisheded page user w/o page-publish only.create or edit.unpublishedd pages cd ..1 point
-
I love Fireworks. It's a real shame adobe is letting it go. Tribaloid is developing EvolveUI an open source project as a responsive to adobe ending fireworks. It still has a way to go but here is a few links below for EvolveUI App: https://chrome.google.com/webstore/detail/evolveui/kggdkflbniidcjejdnmfpkncdplmfofh http://tribaloid.com/1 point
-
ProcessWire's API doesn't use SQL queries -- it uses selectors. SQL injection is a non-issue in ProcessWire. ProcessWire does not get involved with database abstraction layers, so if you are executing SQL queries then you are using PHP and MySQL (mysqli). You can always add your own database abstraction layers to do whatever you want. But typical usage of ProcessWire for developing a site does not involve SQL. If you are using SQL for something and you want to stick with the DB driver PW is using (PHP's mysqli) then you eliminate SQL injection by either using prepared statements or escaping your strings before putting them in a query. Use it the way you are supposed to and SQL injection is a non issue. Is it possible your company was asking about the security of the software itself? ProcessWire's own queries are well protected against SQL injection, of course. SQL injection is a problem of bad code. If one uses the database driver in the way it is supposed to be used, then you are never subject to SQL injection. Btw, I don't know about what CakePHP is doing, but the whole idea of trying to protect the user from SQL injection (outside of the DB driver) sounds like a security problem in and of itself. We've seen this with PHP's magic quotes, which was meant to protect the user from SQL injection. Anything that tries to protect you from yourself ultimately encourages bad programming practices by making security a grey area. That fosters an environment where many think they don't have to sanitize and validate input, which becomes an even bigger security problem.1 point