Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/10/2015 in all areas

  1. u installs.pagetable modulos > installs > pagetable there.also page table.erecto http://modules.processwire.com/modules/fieldtype-page-table-extended/
    4 points
  2. I am currently looking into dependent select fields or cascading select fields (as they are sometimes called), too. So I have a quite similar scenario as yours. I already have setup some working code that I want to share here. For a better understanding about my scenario: 1. parent countries with list of all countries 2. parent destinations, each destination gets assigned one country through "countries" pages asm select field. 3. parent tours, each tour gets assigned 1 or more countries through "countries" field and 1 or more destinations from "destinations" pages asm select field In tours form, when countries are selected I want to filter the destinations field to only show destinations of the previously chosen countries. For my solution I am using this jQuery plugin. So you need to call this in your template. My code is still a work in progress and written around my requirements but should be fairly easy to transfer to other contexts. Template code <?php // do not load _main.php for ajax requests if($config->ajax) $useMain = false; // provide dropdown data for the ajax request if ($input->post->depdrop_parents) { $ids = $input->post->depdrop_parents; $params = $input->post->depdrop_params; $options = []; $option = []; if (count($ids) == 1) { // only 1 id $pages = $pages->find("template=$params[0], countries=$ids[0]"); } // todo else { handle multiple ids} foreach ($pages as $page) { $option["id"] = $page->id; $option["name"] = $page->title; $options[] = $option; } echo json_encode(['output'=>$options, 'selected'=>'']); } // render the form if (!$config->ajax) { $content = ""; $destinations = $pages->find("template=destination,sort=countries.title"); $options = []; $option = []; // build options array for first select field: this is very specific to my scenario foreach ($destinations as $destination) { if (seekKey($options, $destination->countries->first()->id) == $destination->countries->first()->id) continue; $option["value"] = $destination->countries->first()->id; $option["name"] = $destination->countries->first()->title; $options[] = $option; } $content = "<form> <select id='parent' name='countries'>"; foreach ($options as $option) { $value = $option["value"]; $name = $option["name"]; $content .= "<option value='$value'>$name</option>"; } $content .= "</select>"; $content .= "<select id='child-1' name='destination'> </select>"; // need hidden input with value "destination" to populate params for the JS plugin // with the value that will be used as template value above in line 14 $content .= "<input type='hidden' id='dest' value='destination'> //todo submit button and logic </form>"; } In my functions.inc // Find the value in a multidimensional array function seekKey($haystack, $needle){ $output = ""; foreach($haystack as $key => $value){ if($value == $needle){ $output = $value; }elseif(is_array($value)){ $output = seekKey($value, $needle); } } return $output; } Javascript $(document).ready(function () { $("#child-1").depdrop({ url: './', depends: ['parent'], params: ['dest'], initialize: true }); }); Hope this helps.
    4 points
  3. Interesting timing: I was just about to ask the same question the OP did a few weeks ago TL;DR Processwire can be looked at as a frontend to a network of pages with a semi-arbitrary selection of fields, so using a schema-less graph database instead of an RDBMS (if it can provide for all the other necessary features) would naturally mean less impedance mismatch to compensate for (that is, simpler code and easier implementation), it would allow for superior selectors (no need for intermediate PageArrays and foreach and such), and it would come with an increase in performance. Therefore, if Neo4j keeps gaining popularity and becomes more available as a choice, I believe it would be the right choice to support it as a store. In the long term. Not as a priority. Though I would love to see it tomorrow =) I understand my opinion about what's natural for PW is slightly less important than somebody else's with thousands of posts here on the forum =) Still, let me try to challenge it. I always considered PW's main strength its API and built-in admin interface, not the underlying data store. MySQL, of course, is an obvious choice considering its availability, and that one can force almost anything into an RDBMS with enough magic. However... Looking at how PW uses MySQL, I wouldn't call it a SQL framework by nature. I understand the analogy was more about the ubiquity of MySQL than about a supposed inherent superiority, but I think it's interesting to have a look at why SQL is not the best fit. PW uses MySQL perfectly to do the job, but it does it in ways that go against traditional RDBMS principles; I would say it's a good sign that it's not an RDBMS problem by nature. Examples: templates don't have their own tables in which they would store fields that have a 1-to-1 relationship to the PK, instead, fields are always stored in key/value stores (that happen to be implemented in a certain flavor of SQL), much of the querying is done using textual search in automatically populated columns that describe structural relationships, instead of key lookups, it's fundamentally hierarchical, and page fields extend this structure to a full directed graph. The above points summarized: Processwire is a frontend to a graph database implemented in MySQL. MySQL is a good choice because it is available and usable, not because it (or any other kind of RDBMS) is naturally the best choice for PW. The reason I was thinking about Neo4j is exactly because there is no need for any such optimization: Neo4j is a natural fit for the PW use case "as is," so why not make one of those "other projects [...] inspired by pw" a flavor of PW itself? PW selectors are trivial to implement in Neo4j because filters, as probably all other PW concepts, correspond to native Neo4j concepts and Cypher ("Neo4j SQL") statements. parent/child relationships and page fields directly correspond to connections (edges) in Neo4j, traversing/matching these connections is a native (extremely fast) operation, unlike the id and path based matching/joining that's necessary with an RDBMS, it's schema-less, so there's no need to worry about how to store fields (e.g. in separate tables), similarly no more need for an autojoin-like option to guess and explicitly fine-tune what we think would be frequently required, yet staying safe from extensive/expensive joins, while otherwise schema-less, Neo4j can have uniqueness constraints, so things like unique page names within a parent can be easily ensured, filtering against aggregates (e.g. "children.count") is possible just as with MySQL, except more flexible, textual properties can be queried using full-text search, just as in MySQL. I admit MySQL has these distinct advantages: it's already done, it's available anywhere and everywhere. I love PW the way it is; it's ridiculously amazing compared to anything else I've seen before. The only reason I started wishing for a Neo4j-based version is because I'm using PW for something it was probably not designed in the mind with =) It's a database that utilizes page fields with custom PHP code way more than I would consider it healthy, and I got to where I need to run several queries to collect certain kinds of parents, then use intersections from some of those resulting arrays, then in turn collect items based no queries on the items from those, and so on. If PW had Neo4j under the hood, we would have access to selectors that would render custom PHP for page fields all but unnecessary, and my messed up query would be so very simple, too... All at the "expense" of a simpler database layer =P Therefore, please forgive me if I can't but dream about being able to use Neo4j's capabilities from PW selectors =)
    3 points
  4. I might be missing what you are actually after, but do you know about using something like this for the selector value for a page field: parent=page.otherpagefield That allows for ajax population of one select based on the selected value of the otherpagefield
    3 points
  5. Here is my proposal. The HTML is in attachments. There are multiple ways how to install the module. Installing from directory (recommended) -------------------------------------- If the module is uploaded in the official *ProcessWire Modules/Plugins Directory* (http://modules.processwire.com), you can use this method. 1. Log in to your ProcessWire admin and go to the *Modules* page. 2. Go to the *New* tab and expand the *Add Module From Directory* section. 3. Enter the *Module Class Name* (can be found in the module's detail page, e.g. FieldtypeMapMarker). 4. Click the *Download and Install* button. Installing from URL ------------------- If the module is not in the official *ProcessWire Modules/Plugins Directory* (http://modules.processwire.com), but the module ZIP is accessible from URL, use this method. 1. Log in to your ProcessWire admin and go to the *Modules* page. 2. Go to the *New* tab and expand the *Add Module From URL* section. 3. Enter the *Module ZIP file URL* (can be found in the module's detail page, e.g. https://github.com/ryancramerdesign/FieldtypeMapMarker/archive/master.zip). 4. Click the *Download* button. 5. The downloaded modules are now listed on top of the page. Click the install button next to any of the new modules that you want to install. Installing from upload ---------------------- If the module ZIP file is not accessible from web or you have it already downloaded, you can upload the file. 1. Log in to your ProcessWire admin and go to the *Modules* page. 2. Go to the *New* tab and expand the *Add Module From Upload* section. 3. Select the *Module ZIP file*. 4. Click the *Upload* button. 5. The uploaded modules are now listed on top of the page. Click the install button next to any of the new modules that you want to install. Installing manually ------------------- If any of the above methods isn't suitable for you, you can install the module manually. 1. Place the .module file in your /site/modules/ directory. If the module contains more than one file (like supporting .css or .js files for example), it should be created in it's own directory under /site/modules/ with the same name as the module (.module file). For instance, the FieldtypeMapMarker module and supporting files should be placed in /site/modules/FieldtypeMapMarker/. 2. Log in to your ProcessWire admin and go to the *Modules* page. 3. Click the *Check for New Modules* button. 4. New modules are now listed on top of the page. Click the install button next to any of the new modules that you want to install. *Note: All third party modules should be placed in /site/modules/. You might also notice that ProcessWire keeps core modules in /wire/modules/ – You should avoid installing your modules there, as that location is reserved for core modules.* How to uninstall a module ------------------------- 1. Log in to your ProcessWire admin and go to the *Modules* page. 2. Find and click the module name that you want to uninstall. 3. Expand the *Uninstall* section, check the checkbox. 4. Click the *Submit* button. 5. It is now safe to remove the module's files from /site/modules/ if you want to. how-to-install.html
    3 points
  6. Ok, I have updated that page with the suggested content. I fixed a few typos, added a git clone section, and also a "How to Upgrade" section. I'd appreciate a look over for any mistakes or possible improvements. Thanks again Richard for putting this together.
    2 points
  7. Select Multiple Transfer Multi-selection Inputfield module for ProcessWire using the jquery.uix.multiselect plugin by Yanick Rochon. This Inputfield provides similar capabilities to asmSelect but in a very different way. The usage of two separate lists may be more convenient when needing to select a large quantity of items. Like asmSelect, it also includes support for sorting of items. Unlike asmSelect, it has a built-in search field for filtering. It can be used anywhere that the other ProcessWire multi-selection inputfields can be used. Download ZIP file Modules directory page GitHub Class (for auto-install): InputfieldSelectMultipleTransfer Important Installation Notes This module is installed like any other, however you will need to take an extra step in order to make it available for page selection. After installing this module, click to your Modules menu and click the core InputfieldPage module to configure it (Modules > Core > Inputfields > Page). Select InputfieldSelectMultipleTransfer as an allowed Inputfield for Page selection, and save. Now you should be able to select it as the Inputfield when editing a Page reference field. For obvious reasons, this Inputfield would only be useful for a Page reference field used to store multiple references. (Note that this video is showing this module in combination with field dependencies and dependent selects (something else brewing for 2.4 but not yet committed to dev).
    1 point
  8. Hi everyone, Here's a quick little module that I hope you'll find useful. NB It requires PW 2.5.16 (or late 2.5.15 - this is the exact commit) It allows you can control display of the various Page Edit tabs by user permissions. So if you want to always hide the Settings tab for users of a particular role across all templates, this should come in handy. http://modules.processwire.com/modules/restrict-tab-view/ https://github.com/adrianbj/RestrictTabView You can approach this from two directions - hide from all users unless they have View permission, or show to all users unless they have Hide permission. It's up to you to create the permissions and assign them to roles. Let me know if you have any problems or suggestions for improvements. BTW - I am not sure how much use the Delete and View options really are in most situations, but they are there if you want them. PS Thanks to @LostKobrakai for the code in this post: https://processwire.com/talk/topic/8836-how-to-manage-delete-tab-for-user-groups/?p=85340.
    1 point
  9. I released a simple module: Processwire Dice Captcha Module This is a very simple captcha module. For more extensive information please read the REAMDE on github. If you want you can change the jpg files and adapt the size setting in the module accordingly. This should also increase security as if you use more complex images they will be harder to recognize. You can als change the number of dices asked for. Usage: <?php //Init Module $dice = $modules->get("FormDiceCaptcha"); //On submit check if the validation is correct if($input->post->submit) { //validate - the value is stored in the session if(!$dice->validate($input->post->captcha)) echo "<p class='error'>".__("Please check that you have completed all fields")."</p>"; else echo "Success!"; } ?> <form method="post" action="./"> <!--Show captcha --> <img src="$dice->captcha()"/> How much is the sum of the dices? <!--ask for sum --> <input type="text" name="captcha" value="$form[captcha]"/> <input type="submit" name="submit" value="submit"> </form> Github: https://github.com/romanseidl/FormDiceCaptcha Changelog 0.1.1 Changed the directory structure to conform with Processwire standards and renamed the module classname to FormDiceCapture to conform naming conventions. Also the github project had to be renamed. In case you have version 0.1.0 installed you will have to change the calls to $modules->get('DiceCaptcha') to $modules->get('FormDiceCaptcha') after updating to 0.1.1.
    1 point
  10. Just wanted to share a simple bash script I've been using lately to make installing ProcessWire a little faster. Feel free to modify it to your taste! Just copy everything into a simple text file, I call mine "preparepw". Optionally, set this file to executable (chmod -x preparepw) and put it somewhere into your path to be able to load it as a regular command without the need to call it from sh ~/preparepw for example. To run, first cd to where you want to install PW's root, e.g. /sites/mysite/ then call the script. It will create a /sites/mysite/wwwroot/ directory containing all of PW's files from current master, set the required permissions and rename htaccess. It has an option to set the directory that, when unset, will default back to ./wwwroot. (e.g. preparepw public would install PW in ./public/). #!/bin/bash # Version 2.0 INPUT=$1 if [[ -z $INPUT ]]; then INPUT="wwwroot" printf "Directory option not set, installing into ./$INPUT/...\n" else printf "Installing in to ./$INPUT/...\n" fi # Select a version printf "\nWhich ProcessWire branch do you want to install?\n" options=("master" "dev" "devns") select BRANCH in "${options[@]}"; do test -n "$BRANCH" && break; echo ">>> Invalid selection, please try again"; done printf "\nDownloading ProcessWire $BRANCH branch, please hold on...\n" # Get ProcessWire master and prepare files if [ "$BRANCH" == "master" ]; then curl -o processwire.zip https://github.com/ryancramerdesign/ProcessWire/archive/master.zip -# -L fi if [ "$BRANCH" == "dev" ]; then curl -o processwire.zip https://github.com/ryancramerdesign/ProcessWire/archive/dev.zip -# -L fi if [ "$BRANCH" == "devns" ]; then curl -o processwire.zip https://github.com/ryancramerdesign/ProcessWire/archive/devns.zip -# -L fi unzip -q processwire.zip rm processwire.zip if [ "$BRANCH" == "master" ]; then mv ProcessWire-master $INPUT fi if [ "$BRANCH" == "dev" ]; then mv ProcessWire-dev $INPUT fi if [ "$BRANCH" == "devns" ]; then mv ProcessWire-devns $INPUT fi chmod -R u+rwX,go+rX,go-w $INPUT mv $INPUT/htaccess.txt $INPUT/.htaccess cd $INPUT # Prompt for site profile printf "\nWhich site profile will you be using?\n" select d in site-*/; do test -n "$d" && break; echo ">>> Invalid selection, please try again"; done mv $d site/ rm -rf site-*/ # Set permissions chmod 777 site/assets chmod 777 site/modules chmod 666 site/config.php printf "\n" read -p "Press [Enter] once you've finished the installation process to remove the install files..." rm install.php rm -rf site/install printf "\nInstallation files removed.\n" printf "\nDirectory \"$INPUT\" all set for ProcessWire. Have fun! \n"
    1 point
  11. I produced a module that: backups the db zips the site uploads the zip to google drive The module is not ready for publication yet as it has to be tested more thouroughly and the code has to be revised first. There is a question tha arised in the making of the module: Is there a documentation of the standard procedure on how to backup a site? I just used: WireDatabaseBackup wireZipFile to do so. I had to figure out which directories to include and whicht to omit. As I looked into exisitng modules I came accross "Site Profile Exporter". This one claims to produce a site profile which is easily reinstallable. I am not aware if this is really the case as the module is from 2012. But the ideas seems promising. Is this idea still existing? And if so is it documented? I could not really understand what "Site Profile Exporter" is doing as it is a bit of a mess in mixing presentation and business logic. Call me a middleware developer lost in a php publishing system but still I hate when people zip something in between of creating a form.
    1 point
  12. Hello, My name is Jordan Lev, and I've primarily been using Concrete5 for the past 5 years to build websites for clients. I just came across ProcessWire the other day (not sure how I missed it for so long), and it is very impressive and really jibes with the way I think about building sites. I actually have created several Concrete5 plugins that offer functionality similar in spirit to the way one constructs fields and templates in PW, so it was pretty incredible to discover an entire CMS that embodies those principles! I have been playing around with ProcessWire a little bit, and reading through some forum threads. I'm hoping a project comes my way soon that PW would be a good fit for, so I can actually use it for a real-world website. For those of you who have never built a site with Concrete5 before, I encourage you to check it out (if for no other reason than to get some ideas on a slightly different model of how a site can be put together). I think what C5 is most well-known for is its front-end editing, but I would say that there is a deeper reason C5 is so well-loved by people like me: it really allows you to "design the editing experience". I think PW is somewhat similar in this regard, although it seems that PW is more about "designing the content structure" (which often overlaps, but not entirely). I've read some posts by Ryan that indicate he is concerned with separating the definition of the data from the display of it (for example, https://processwire.com/talk/topic/4189-flexibility-in-page-design/#entry41205 ), and that is a fantastic way to think about things (and very refreshing if you've every worked with less modern systems like Wordpress)! But I also think that philosophy is more well-suited to larger sites that have a lot of structured content. The places where I think PW could be made even better than it already is are for the smaller-scale marketing/informational sites, where tying the content and the display more closely together actually makes sense (especially for the non-technical users who have to manage the content as time goes on). For example, I think the much-discussed "file manager"/"media manager" feature is pretty critical to an easy-to-use workflow, and I feel like there are ways it could be done that honor the underlying spirit and simplicity of PW. Also, I think front-end editing is a HUGE win in terms of ease-of-use, and the "Fredi" module seems to offer that functionality (and there are a few minor tweaks I'd love to make that would allow the site editing experience to be even more "designable"). I have seen comments in the forums that are both "pro" and "con" on the things like file manager and front-end editing, and I think the difference in opinion stems from the difference in the kinds of sites people are building (larger, more structured sites that are served better by PW's existing dashboard versus smaller, less-structured sites I think are better-served by a tighter integration with the pages themselves). What I would love to know is how interested the ProcessWire community is in even attempting to make PW a better fit for these smaller-scale websites. Are people interested in discussing these ideas, and possibly even working towards making them happen? Or is the community primarily concerned with the larger / more structured sites and not interested in rehashing this line of discussion? Or perhaps I'm making some assumptions and generalizations here that aren't true? I just want to share with you all that some of the things Concrete5 has are incredible (pretty much every client has been blown away at how easy and intuitive things are with Concrete5 when I first show them the sites I've built), and I am interested in understanding more about how to make this happen with ProcessWire, and also sharing my experiences and insights with you all in the hopes that ProcessWire can be more appealing to a wider set of users without sacrificing its underlying simplicity and design philosophy. So I'll leave it at that, and am looking forward to hearing what people have to say! Thanks, Jordan
    1 point
  13. I used neo4j for two projects in my studies. One of them was to visualize the GitHub network with User/Repository nodes and their connections over edges like "follows", "stars", "contributes", "owns" etc. I do like neo4j and the cypher query syntax and it was the right choice for this project. However, for ProcessWire I don't see any advantage in using this database, simply because 99% of the apps written in Pw are fine with the tree. With page references you have endless power in modeling other relations than parent-child. For me, a graph database makes sense if you need queries like this: Shortest path between two nodes Get me all common nodes over at most 4 hubs Fire a query from a known start node and return an (unknown) amount of target nodes of type X over edges Y ... If the underlying data structure is a graph and I must answer those type of questions, I would not choose ProcessWire to handle the job. Another problem of neo4j is that it's not that fast, at least in my experience. And they recommend 16-32 GB RAM, this is simply too much for a "normal" web app Cheers
    1 point
  14. Quick heads-up I have been forgetting to mention. This discussion reminded me about it. There are cases where you need 'dummy links', 'divider menu items', 'non-clickable menu items', etc, You can easily achieve that by creating 'External Menu items' and assigning # as the URL.
    1 point
  15. ok - so for the custom menu, the way i did it in the past on many sites was with a hidden branch of the page tree, usually underneath a page called Settings; Most sites i build do require the menu to be very specific and there is absolutely no way that the menu displayed in the front end can be based on the page tree; in my opinion, the page tree being used as the front end menu is only for very small and simple sites; anything more complicated requires you to build your own menu, and now that we have Kongondo's menu module, this is even easier than ever. If you take a look at that module, there may very well be a way to assign a custom URL override to any menu item; i have not tried it yet, but i am planning on using it for the next site i release which is now in admin development. once you have made your menu page tree (yes manually, one by one), and on each of those items selected the page that the menu item will link to, you can use that code to output your menu, and modify it to your needs in terms of menu markup. You can also configure the override field to be always used if it is populated. If you wish to use the page tree as-is to generate your menu, that is pretty much the same thing; you just need a field to override the page's URL in the menu and then use your output code to check if that field is populated and swap out the value of that field with the default URL of the page.
    1 point
  16. Uploading images vía put is a special edge case. See here http://stackoverflow.com/questions/12340720/how-to-upload-files-using-put-instead-of-post-with-php so You should use fopen(php://input) instead of the common method. Only using post and get is possible when You desing an api for clients that not support put and delete.
    1 point
  17. @Soma I am sorry, didn't mean to flood the forum with this. Was just exited about the whole thing and that maybe made me go a bit far... Your proposed solution for setup and custom selector to get this working with pages that don't share the same tree is great. Very much appreciated. I put something together quickly to have the same functionality in a frontend form with the help of a jQuery plugin.
    1 point
  18. Here is a FrontendUserLogin screenshot with additional fields (PersistLogin, ProcessForgotPassword integration) and a basic style (removed list style), Form fields without label and placeholder instead. Default css / js can be added inside the module directory. Custom styles will be loaded from templates/FrontendUserLogin/FrontendUserLogin.<css|js>. FormHelper dependency could be replaced, but in version 0.7+ FormHelper isn't that big and no need to copy & paste form handling to each module with forms or file upload (FrontendUserLogin, FrontendUserRegister, contact form, ...).
    1 point
  19. @gebeer, yeah I said that but also said that another selector would be required and that I didn't know if that would work. But I just tested and it works fine. What you need is this type of selector: "select_page=page.select_country, select_page!=" Setup "select_page" = would be page single page select field on your option pages to select its "reference", like "Zürich" has selected "Schweiz", and so on "select_country" = would be a normal page select on current editing page to select from a parent of countries. Nothing special here. Then use a page select to select cities that are dependent on what country is selected: "select_area" = would be a normal page select on current editing page to select from cities. Here you would use the custom selector option for the input like: "select_page=page.select_country, select_page!=" And so on. You can go further and create a page select that is dependent on the selected city and add a "select_event" that then uses same selector but with using "page.select_city": "select_page=page.select_city, select_page!=" This allows dependent relations using a page select instead of a parent relation. This is only for backend.
    1 point
  20. Dependent selects is not fieldtype but a technique to use the custom selector for the pagefield inputfield. You can use 'page' or 'page.field' in there to make one select dependent on an other select on the same page when editing. Ie 'parent=page.anotherpageselect'
    1 point
  21. I tried to build something similar a few days ago, but fell over this line: json_decode(@file_get_contents('php://input') This does work for x-www-form-urlencoded encoded data, but it fails as soon as you want to send images, which needs the data to be encoded as multipart/form-data. So effectively you can't use PUT to update images in php, especially if you need to send additional data besides the file (authentication). Just wanted to note this here. Alternatively one can use the way that backbone.js goes. Just use GET/POST and differ not by http method, but by something like $_POST["_method"] when working with PHP as backend.
    1 point
  22. @adrian Thanks for the pointer. I had already found that here. But as Soma points out it only works for pages that are nested under the same parent. I would need something like this for page select fields that live under different parents in the page tree. My use case: 1. parent countries with list of all countries 2. parent destinations, each destination gets assigned one country through "countries" pages asm select field. 3. parent tours, each tour gets assigned 1 or more countries through "countries" field and 1 or more destinations from "destinations" pages asm select field In tours form, when countries are selected I want to filter the destinations field to only show destinations of the previously chosen countries. Destinations cannot live under countries because I need them under a separate parent where the user can add destinations easily without having to drill through the 249 available countries and search for the right one where they want to add their destinations under. What I think would work in theory: An inputfield type that lets you define which select fields in a template depend on each other and what the hierarchy of those fields is. This inputfield type adds the JS logic to the template form that will get the option values for the dependent select fields via AJAX call and fills them. The PHP of the inputfield type holds the logic to retrieve the right pages for the AJAX request. There are jQuery plugins like this or this available that could be used. Or the JS that is already there when using selector "parent=page.otherpagefield".
    1 point
  23. yeah it must be the server, because that theme/template doesn't have anything out of the ordinary in terms of js
    1 point
  24. Both ways make the most sense Did that today with groups and products, looks like it works great. You need to adjust names and stuff and you should be up & running (bidirectional)
    1 point
  25. You can click "Edit this Module" and then save it again and it will update version number, readme text etc. You can also wait about 24 hours and it will update automatically.
    1 point
  26. Hi all, finally I just released a major update to my Unsemantic Site Profile. Here are the most important features: runs on Processwire 2.5.3 delegate template approach includes Superfish dropdown menu (requires markup simple navigation module) preconfigured Google Maps implementation includes simple accordion textformatter Module The profile is meant as a starting point for RWD on Processwire. Glad if you find it useful. You can see a preview here. Question: Does somebody know how to update the entry in the modules directory? EDIT: comments, suggestions etc. welcome
    1 point
  27. You should take care of that in your menu generating code, so that menu-1 and menu-2 are somehow recognizable for the needed javascript and not link to a page. You can hardcode it or take an approach like https://processwire.com/talk/topic/4261-parent-pages-and-their-behavior/ You should also decide what you show when you manually go to the container url, see some options in the above thread.
    1 point
  28. Update: version 0.0.8 Added an 'include_children' feature, thanks to ideas by @dazzyweb. Added sister options 'm_max_level' and 'b_max_level' that control how deep to fetch descendants if using 'include_children'. Default is 1 (i.e. only include immediate children); 2 means go up to grandchildren, etc. As part of ideas above, also added a 'current_class_level' that lets you specify how high up the ancestral tree to apply a 'current_class'. This is like an 'active parents' setting. The default setting is 1. A value of 2 means apply class to current item and its parent; 3 means apply to the item, its parent and grandparent, etc. Only applies to menus (not breadcrumbs). Added a permission 'menu-builder-include-children' in relation to above 'include_children' feature (this permission is required to set and use the feature). This is currently in the dev branch only. Please thoroughly read the updated docs about these new features (especially the first) before attempting to use them. Although covered in the docs, I would like to repeat this here: Use the 'include_children' feature with caution. You can end up unwittingly including hundreds of child pages in your menu! Currently there are no code-checks in place to prevent such a situation (difficult to impose an arbitrary figure) so we leave this to your better judgement. Also note that the setting cannot be applied to a menu item made up of your 'homepage'. If you enable the 'include_children' feature (it is off by default), your main settings, PageAutocomplete/AsmSelect and menu item advanced settings will change from this: to this: and your menu output to something like this...(from only two items in the visual Menu Builder) Please test and let me know if there are any issues. Thanks.
    1 point
  29. Greetings, Yes, as Teppo said, "pricing projects is hard work"! I think this part of the project development process is a bit of an art. I'm good at designing/developing, but I'm not always great at getting the best price for my work. Lately, I've partnered with a couple of other people who are the opposite -- they are good at negotiating. I've sat in the table and watched them magically get a better price. Thanks, Matthew
    1 point
  30. @chrizz You can set the permissions for files/folder required by your webserver in the config.php file. Most of the time, this is 644 for files and 755 for folders. Example: Some folders must be writeable for ProcessWire, therefore the system tries to change the permissions of those folders. In this case, the problem is (most likely) that your user executing the script on the webserver does not have write permission on a file/folder where ProcessWire tries to change the permissions. How did you upload the files to your staging environment? Maybe you need to set the correct permissions before uploading or correct the permissions on the server. Cheers
    1 point
  31. I've known people in large organisations (not saying which) turn down quotes because the price seemed suspiciously low. No follow-up discussion to ask why it was low, just discarded the quote in favour of a higher one.
    1 point
  32. Hi Christophe, Please double check your site/config.php for adminEmail configuration. If not you can add that to site/config.php like follows: /** * adminEmail: address to send optional fatal error notifications to. * */ $config->adminEmail = 'name@exampledomain.com'; Here is a little reference. Thanks
    1 point
  33. Well, I want to thank you all for the pointers - It does exist, but I was looking on wrong search terms in the forum and all. I have read a post from Ryan: Quote Actually, you can do this on the dev branch. Lets assume that cities are children of countries and that is reflected in your page structure (i.e. /countries/france/paris/). Create your 2 page fields (country and city), and configure 'country' as a single page field with "parent" set to "/countries/". Next, for the "city" field configuration, use the "Custom selector to find selectable pages", present on the "input" tab. In that field, enter "parent=page.country". Save and try it out. This works with select, selectMultiple and asmSelect fields (and possibly others), though not yet with checkboxes, radios or PageListSelect. - So, I have Skyscrapers - my pages are: provinces - province (drenthe) - - municipal (this) - - municipal (that) - - municipal (some) my templates are: provinces - province - - testing (added fields: province and municipal) my fields are: page field : province > single/null > required > parent selectable pages is Provinces page field : municipal > single/null > required > custom selector is parent=page.province Now it works thanks to you guys! If I select a province (which is required to choose) - I also get a select list for municipals in that province (and is also required to choose). And I do not have to use visibility because I need to choose a province and municipal. But I do wonder why a structure like this is not working? Provinces - a - b Municipal - a - b
    1 point
×
×
  • Create New...