Leaderboard
Popular Content
Showing content with the highest reputation on 07/28/2016 in all areas
-
In the interest of transparency, I would like to state that I made a mistake in editing @Tomasz post. I have personally apologised to him and advised him to use an appropriate board here to air such views. We hope this incident doesn't keep him away from the forums. We are a friendly bunch here but we do make mistakes sometimes. Cheers, Francis5 points
-
Dynamic Selects Released 27 July 2016 Dynamic Selects is a commercial module that enables the creation of dynamically related/dependent ajax-driven chained dropdown lists (aka cascading selects) for display and storage of multiple types of data. The module can be used both in the front- (display only) and backend (display and storage of data). Setting up Dynamic Selects is very easy. With minimal effort, site developers can set up simple or complex chained selects. By making a selection in a trigger dropdown, via ajax, values are fetched and dynamically populate options in the dependent select. In turn, making a selection in the now populated select triggers the same action further down in a dependent select. The module only uses/stores ID references to selected options in the selects meaning the most current/up-to-date data will always be displayed in the selects. Currently only ProcessWire managed data are supported. If there is enough demand, we may incorporate external data sources (typically JSON). The module consists of 4 modules ProcessDynamicSelects MarkupDynamicSelects FieldtypeDynamicSelects InputfieldDynamicSelects Video Demo: https://youtu.be/wkhx8xQ5ue4 Documentation: http://dynamicselects.kongondo.com/ Shop: https://processwireshop.pw/plugins/dynamic-selects/ Requires: ProcessWire 2.5 or newer and jQuery if using the frontend module (MarkupDynamicSelects) Features Easily create powerful ajax-driven cascading/chained selects/dropdowns Unlimited number of select dropdowns per field Data-mapping made easy thanks to multiple possible combinations of data relationships, triggers and sources Mutlipe data relationships to chose from ID-based data referencing ensures your data values always stay fresh Remote and local caching to speed up data access and reduce ajax-requests to server User-friendly, intuitive and easy to set up IMPORTANT Before using this module in the frontend, you will need to thoroughly read the security section in the documentation.4 points
-
The custom php module works great for google speed test. I added a no-jquery javascript lightbox to it (modified version of squeral lightbox), called from my site js. The same could be added for gtmetrix but even using "?url=xxx" needs manual click on the "Analyize" button (the url is pre-filled though). I can share the code if someone needs.4 points
-
Use the dev branch of ImageExtra - it is supposed to be fixed there: https://github.com/justonestep/processwire-imageextra/issues/183 points
-
hi adrian, the page recorder reminded me of my hook recorder i created almost a year ago and i got very little feedback so didn't take it further (not to say it was and may still be beyond my scope ). i think it could play very well together with tracy and all the options we have now (eg only load that panel once when needed). that's only a first vague idea. the last post in the topic has some more suggestions. if you like the idea i would be happy to support you as much as i can3 points
-
Second new panel today Introducing "Page Recorder" This panel records the ID of all pages added whenever it is enabled (so this is one you'll want off by default and just enabled via "Sticky" when you need it). This is perfect for all sorts of testing, whether you need to create a LOT of pages for performance testing or you are testing a form which is automatically creating pages. Once you are done with the testing session, simply click the "Trash Recorded Pages" button and they will all be moved to the Trash. Because pages are sent to the trash rather than completely deleted, I consider it safe to use, but I am a little worried that someone may leave it enabled when they are creating real content pages and then later trash them, then empty the trash without realizing it contains a page they want. If there is demand, I may consider adding checkboxes so you can remove certain pages from the list so they won't get trashed with all the others. Please let me know if you have any suggestions for functionality or the interface.3 points
-
Hello, I made this clone of the Ghost Blog System (http://ghost.org) for demo of the Wire Render Pattern as well as a multi language site and menu system. https://github.com/NinjasCL/pw-ghost As always MIT licence.2 points
-
Hi adrian, Thank you very much that has solved my issue. Thanks to everyone else as well. Matt2 points
-
@tpr and @bernhard - thanks for your thoughts on the Custom PHP panel - the form for submitting to gtmetrix is cool. I am happy to provide a place for sharing these snippets - let's see just how many get posted here for the moment and if we get a critical mass, then I'll either add them to the blog post, or start a Github repo. Let me take a better look at your Hook Recorder - it definitely sounds interesting!2 points
-
Just for the record, this works for gtmetrix (opens in new window): return '<form action="https://gtmetrix.com/analyze.html" method="post" target="_blank">' . '<input type="hidden" name="url" value="' . $page->httpUrl . '" />' . '<button type="submit">GTmetrix test</button>' . '</form>'; I managed to make it work in iframe but it's kinda hacky, I think it's better open it like this.2 points
-
Is this any use to you? $_SERVER['SERVER_PORT'] It will return 8888 or 80 or whatever the port is.2 points
-
2 points
-
I think it's a great idea - I have added to my list. In the meantime I have added a new "Custom PHP" panel which lets you return anything you want. which results in: Not very pretty looking I know - I am sure @tpr will have some style suggestions for me This is obviously not the best solution for things like page speed because it won't work with local dev sites, so as I said, I will work on dedicated panels for those, but this still may be helpful until then, and perhaps also for other things. Some other significant recent updates that I haven't mentioned. There are now separate default panel config options for frontend vs backend The User switcher now lets you logout (while maintaining the session and access to the Tracy debug bar). Until recently, you had to switch to a different user before the logout would work properly.2 points
-
2 points
-
This module allows the default admin - and other users you specify - to login as any other user as defined in the module config. This could be useful for reproducing errors your users can see on websites or during testing, but I would suggest it is used wisely as there are some obvious snooping abilities in using this. Once installed, you can configure the module to be usable by various members of staff other than the default admin account, as well as define which roles or individual users you will be able to login as. After saving the config settings, you will find a page under the Setup menu in the admin called "Switch User". Selecting a user from the list checks via AJAX whether the user has admin access (this is a basic check for the page-edit permission as by default the admin homepage requires page-edit to load the page tree) and will either allow you to redirect to the homepage or back to the admin depending on that check. Download Here Version History 0.0.6 - Initial release1 point
-
Hey guys, Just yesterday I launched my new website, SuperTINY agency : http://supertiny.agency. It's a small but pretty heavy website with all the webgl going on. Older machines will choke. I'm using PW v3 on this one. Took only a couple of hours to install, setup the fields and templates necessary to run the portfolio, add AIOM and SEO and get it running. Got to love PW for that. The case studies are built using a repeater with fields that show/hide according to what's selected on a "type" selector. Clean, simple, just the way I like it. Enjoy.1 point
-
Out of necessity (that is, my editors having created pages with hundreds of files attached...) I've whipped up a small module that adds a live search box (just plain jQuery hide/show) to file input fields (just for InputfieldFile, not images, and no searching descriptions yet). I've called it InputfieldFileFilter. If anybody wants to give it a try, it can be found at https://github.com/BitPoet/InputfieldFileFilter It's currently running on PW 2.8, though it should be compatible with other versions as well. I'd be happy to get a little feedback if this is worth rolling into a more elaborate module. The module is really only in alpha state right now, so I'd not recommend to put it onto a production system, and it does need quite a bit of testing. InputfieldFile has a lot of js magic attached after all...1 point
-
"Exec" is disabled on my hosting, but I found a way to run shell commands through control panel. Thanks for your suggestion! It saved about an hour for me.1 point
-
you can just place like a fixperms.php (with the below code) file in the root and load it (then delete it): <?php exec ("find /home/user/public_html/ -type d -exec chmod 0755 {} +"); exec ("find /home/user/public_html/ -type f -exec chmod 0644 {} +"); replace the path with the root of which folders you need to fix. our main host switched like 30 sites to a different machine and the perms were completely messed up after the migration.1 point
-
Nice module. Just a suggestion... Maybe you could add an option to also hide all but the first select input? When someone selects the first option it could show the next select field as so on?1 point
-
Now you can see a fully functional website using this profile http://ninjas.cl1 point
-
$input does also have a url/httpUrl option if you're using urlSegments and you want those to be included.1 point
-
I once had similar issues where the hosting provider changed permissions. Try re-uploading your original development environment or download a fresh copy. You need to upload these: /wire/ (recursive) index.php .htaccess1 point
-
Try using the native Image fields instead of ImageExtra which is an external module. Perhaps you could post your issues in the thread of ImageExtra.1 point
-
@bernhard Don't know how I missed your original post about that - looks great, have just added my likes to it. I think it would be a great to try merging the two.1 point
-
@blynx Thank you for the help, got it installed and also working.... Happy days!1 point
-
Hi. If there's no iptable rule for port 3000 is because is not blocked (or allowed in case of a DROP policy). Check iptables INPUT and OUTPUT chain's policy to see if they are in ACCEPT or DROP. If is ACCEPT forget about firewall that's not the problem. The result's of your positive connection via telnet could be because the address 127.0.0.1 is mapped to ::1 ip v6 address. (In the /etc/hosts file). And as you wrote in your initial post, there is a socket listening in tcp6 local address. Check that the browsersync service is listening in ip v4 protocol (you should see tcp instead of tcp6). Check with: # netstat -putan | grep 3000 You should see: tcp as protocol (not tcp6) and the Real IP as address (The one you use to connect from yout PC to the server). If you not see this, check browsersync config and be shure you are using the right address. Have a nice day.1 point
-
Cool module! A couple of ideas/dreams for a future update: 1. It would be great to have thumbnails in the select dropdown for image fields. 2. Could there be an option for the last select in the chain to be a select multiple?1 point
-
@Pete Did the list of trimmed features include the ability to mark individual posts as read from the 'All activity' and 'Unread' pages? I miss that feature a lot from the old version, I used to use it in conjunction with the list of all unread posts from the last 24 hours.1 point
-
<?=$config->urls->templates;?> would be a better solution. It is abstracting the path away to PW's config metadata which is generally a good thing in case there is ever a reason to change things. That is actually the same as: /site/templates/, so no need to prepend /site/ to make it work. Take a look at the options in the cheatsheet: http://cheatsheet.processwire.com/?filter=config->urls1 point
-
I haven't tried your module yet but FYI AdminOnSteroids has such feature, and it works with images too:1 point
-
ryan was faster! https://github.com/ryancramerdesign/ProcessWire/issues/1934#issuecomment-2356288921 point
-
Hi. If you have ssh access to the server: 1.- Try telnet from local console: like telnet 127.0.0.1:3000 If locally you get some response from the service, then is a firewall problem(It block'c communication to the outside). 2.- Look at the protocol, maybe is only open for tcp6 connections and firewall block's tcp4 connections If you're using Linux try: # iptables -L -n | grep :3000 It should give you a list of rules in INPUT, OUTPUT that filter all packets for that port. Look at the first line: "Chain INPUT (policy ACCEPT)" If it says ACCEPT, all connection's are by default allowed. If it says DROP the policy is to deny all incoming connections. Hope this could help.1 point
-
Hey @Can, I just ran into some small things myself installing and configuring this module. Since I don't have shell access to the server (yet) I created a workaround. I've created a template and page called "cronjob" so I could trigger the script from an url (www.domainname.com/cronjobs/?key=123). In the template.php I do a simple check on a get variable (key) to prevent people from accessing it on purpose. From there I include: // Skip access since the guest user is loading the script // Perhaps you might want to look into the permission check stuff since you're bootstrapping ProcessWire $options = array('noPermissionCheck' => true); // Load the Module to get the className $linkCheckerModule = $this->modules->getModule("ProcessLinkChecker", $options); // Include Teppo's LinkCrawler require $config->paths->siteModules . $linkCheckerModule->className() . '/LinkCrawler.php'; // Start crawling $crawler = new LinkCrawler(); $crawler->start(); // Stop ProcessWire from executing $this->halt(); This seems to work fine for me. I've got a lot of data. I still get some notices like Array to string conversion in */site/modules/ProcessLinkChecker/LinkCrawler.php on line 335*. I'll look into them tomorrow.1 point
-
Thanks @LostKobrakai - makes sense. I'll stay out of the way. Sorry for any inconvenience.1 point
-
I can certainly see your intent and I think it's ok that you want to let people know about problems in redactors pricing strategy. But this is not the place to discuss this in more detail than that. This part of the forum is just a loose wish list for ProcessWire, which happened to have a topic about redactor. We're by no means promoting or otherwise suggesting anyone to use redactor and even if this topic convinced you initially to use redactor your problem is not related to us. As I said I support you trying to simply warn other people, but everything else is just not our business.1 point
-
@gar1606 Try the "Check for New Modules" button, or see alternatives here: http://modules.processwire.com/install-uninstall/1 point
-
With support for paginated Fieldtypes, ProcessWire’s scalability has moved to the next level. Not sure what this means? Don’t worry, this post has a screencast that makes it clear. We’ve also got some other nice upgrade for ProFields Table. https://processwire.com/blog/posts/fieldtype-pagination/1 point
-
@tpr - Thanks, glad you like it. I have started building Jumplinks 2 from the ground up, but haven't had the time to continue work on it of late. With regards to the state-toggle: I can implement this feature, but it would be turned off by default. That said, if the feature gets enabled, the jumplinks would all be created to redirect with status code 302/307 (actuallly not 100% sure which one is better). That said, is isn't necessary to do so, but not doing so would mean going against the intention of the different HTTP codes. As for previews: these can be somewhat difficult, giving consideration to parameters - I think I may have brought this up before here. It would be easy to preview jumplinks that don't have parameters, but those that do have them would need user input in order to test. This is all on my to-do list for the new module, which will be compatible with both PW 2.8 and 3.0.1 point
-
Will it be able to have an option (when cropping) to contain a certain aspect ratio, or "is the technology not there yet"?1 point
-
Just in case someone else wants to do something like this, I just wanted to note that hooking before ProcessPageEdit::execute and foreaching through wire('breadcrumbs') works well. But for my particular needs I had problems with this approach and the Reno theme and so had to take another approach which worked: hooking after Process::breadcrumb Anyway, thought it might be useful info for others.1 point
-
hi guys, i'm in a hurry so i try it short i wanted to make it visible what happens behind the scenes when you do different things in processwire backend, especially WHEN all the hookable methods are called (render > saveReady > save or the like) i tried a simple wire('log')->save('hookrecorder', __METHOD__); inside the pages::saveReady() method and that worked! next step: i tried to add this line to all hookable functions here: <?php $rustart = getrusage(); include('index.php'); wireCopy('wire_original', 'wire_tmp'); $dir_iterator = new RecursiveDirectoryIterator("wire_tmp"); $iterator = new RecursiveIteratorIterator($dir_iterator, RecursiveIteratorIterator::SELF_FIRST); foreach ($iterator as $file) { if ($file->isFile() AND $file->getExtension() === "php") { $content = file_get_contents($file); $pattern = "/(\w+) function ___(\w+(?<!log))\((.*)\) *{/"; $replace = "$1 function ___$2($3) {\n wire('log')->save('hookrecorder', __METHOD__);"; /* // for debugging preg_match_all($pattern, $content, $matches); echo $file . "<br>"; if(is_array($matches[0]) AND count($matches[0]) > 0) { foreach($matches[0] as $match) { echo $match . '<br>'; } } echo "<br><br>";*/ $content = preg_replace($pattern, $replace, $content); file_put_contents($file, $content); } } //wireRmdir('wire_tmp', true); // Script end function rutime($ru, $rus, $index) { return ($ru["ru_$index.tv_sec"]*1000 + intval($ru["ru_$index.tv_usec"]/1000)) - ($rus["ru_$index.tv_sec"]*1000 + intval($rus["ru_$index.tv_usec"]/1000)); } $ru = getrusage(); echo "This process used " . rutime($ru, $rustart, "utime") . " ms for its computations\n"; echo "It spent " . rutime($ru, $rustart, "stime") . " ms in system calls\n"; ?> it creates a directory wire_tmp with all the inserted log-statements. i replaced wire folder with wire_tmp folder (renamed it) and this does not work unfortunately (white screen, don't know if it would be different with debuggin true). i also tried to replace the wire/core/Wire.php file with the original one and to not log calls of "wire('log')" as i thought this may leed to errors (it's excluded in the regex) the idea is to save a page and then look all the hookable method calls up under setup > logs > hookrecorder and have a list like just now | pagexy | pages::save() just now | pagexy | pages::saveReady() just now | pagexy | pages::render() looking forward to hearing your opinions. should i exclude private methods or the like? or should i exclude whole files? or can i achieve what i want much simpler (eg server logging tools)?1 point
-
nobody? some news: changed logging from the internal wire('log')->save() to hardcoded file log and that works! fwrite(fopen('/var/www/html/hooklogger.txt', 'a'), __METHOD__ . "\n"); added linebreaks after ___finished() method for better reading protected function ___finished() { fwrite(fopen('/var/www/html/hooklogger.txt', 'a'), __METHOD__ . "\n\n\n\n"); added some info to all methods of class page fwrite(fopen('/var/www/html/hooklogger.txt', 'a'), __METHOD__ . " (pageid " . $this->id . ", pagetitle: " . $this->title . "\n"); we could show any useful informations here... wouldn't it be great to have a module to install that enables logging (only on dev ofcourse) and makes it visible on an admin page. maybe filterable to only show relevant entries like macrura did on this site from the showcase section: http://ohmspeaker.com/speaker-filter/ ? couldn't that be a great addition to captain hook? as it alters all the hookable methods from the current installation it would not need any updating like captain hook does need. i think i read captain hook is quite outdated some time. wouldn't that solve this problem? this is the log of one save action on page "about" (changing title from "about" to "hookloggerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr") WireSaveableItems::___load Fieldgroups::___load WireSaveableItemsLookup::___load WireSaveableItems::___load Fieldtype::___wakeupValue Fieldtype::___wakeupValue Page::___loaded (pageid 1, pagetitle: Home) Fieldtype::___wakeupValue Page::___loaded (pageid 2, pagetitle: Admin) Fieldtype::___wakeupValue Page::___loaded (pageid 28, pagetitle: Access) Fieldtype::___wakeupValue Page::___loaded (pageid 29, pagetitle: Users) Fieldtype::___wakeupValue Page::___loaded (pageid 30, pagetitle: Roles) Page::___loaded (pageid 37, pagetitle: ) Page::___loaded (pageid 38, pagetitle: ) Page::___loaded (pageid 40, pagetitle: ) Session::___init Session::___isValidSession Fieldtype::___wakeupValue Page::___loaded (pageid 41, pagetitle: ) Fieldtype::___loadPageField Page::___path (pageid 2, pagetitle: Admin) ProcessWire::___init Pages::___find PageFinder::___find PageFinder::___getQuery PageFinder::___getQueryJoinPath Pages::___find Fieldtype::___wakeupValue Page::___loaded (pageid 3, pagetitle: Pages) Fieldtype::___wakeupValue Page::___loaded (pageid 10, pagetitle: Edit Page) ProcessWire::___ready TemplateFile::___render Page::___path (pageid 2, pagetitle: Admin) Page::___path (pageid 3, pagetitle: Pages) Fieldtype::___formatValue Fieldtype::___formatValue Fieldtype::___formatValue ProcessController::___execute Pages::___find Pages::___find Fieldtype::___wakeupValue Page::___loaded (pageid 7, pagetitle: Trash) Fieldtype::___wakeupValue Fieldtype::___wakeupValue Page::___loaded (pageid 1001, pagetitle: About) Page::___setEditor (pageid 1001, pagetitle: About) Field::___getInputfield (id: 1, title: ) Field::___getInputfield (id: 78, title: ) Fieldtype::___loadPageField Fieldtype::___wakeupValue Field::___getInputfield (id: 79, title: ) Field::___getInputfield (id: 76, title: ) Fieldtype::___loadPageField Fieldtype::___wakeupValue Field::___getInputfield (id: 82, title: ) Fieldtype::___loadPageField Field::___getInputfield (id: 44, title: ) Fieldtype::___loadPageField PagefilesManager::___path Page::___isPublic (pageid 1001, pagetitle: About) User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission InputfieldWrapper::___processInput InputfieldWrapper::___processInput Inputfield::___processInput Wire::___changed Inputfield::___processInput Inputfield::___processInput PagefilesManager::___path InputfieldWrapper::___processInput Inputfield::___processInput Inputfield::___processInput Inputfield::___processInput InputfieldWrapper::___processInput Inputfield::___processInput Wire::___changed User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission Page::___path (pageid 1001, pagetitle: hookloggerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr) Pages::___save Pages::___saveReady Page::___isPublic (pageid 1001, pagetitle: hookloggerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr) PagefilesManager::___save Fieldtype::___savePageField Fieldtype::___sleepValue Fieldtype::___savePageField Fieldtype::___savePageField Fieldtype::___savePageField Fieldtype::___savePageField FieldtypeMulti::___savePageField Pages::___saved Session::___redirect Wire::___changed Wire::___changed ProcessWire::___finished WireSaveableItems::___load Fieldgroups::___load WireSaveableItemsLookup::___load WireSaveableItems::___load Fieldtype::___wakeupValue Fieldtype::___wakeupValue Page::___loaded (pageid 1, pagetitle: Home) Fieldtype::___wakeupValue Page::___loaded (pageid 2, pagetitle: Admin) Fieldtype::___wakeupValue Page::___loaded (pageid 28, pagetitle: Access) Fieldtype::___wakeupValue Page::___loaded (pageid 29, pagetitle: Users) Fieldtype::___wakeupValue Page::___loaded (pageid 30, pagetitle: Roles) Page::___loaded (pageid 37, pagetitle: ) Page::___loaded (pageid 38, pagetitle: ) Page::___loaded (pageid 40, pagetitle: ) Session::___init Session::___isValidSession Fieldtype::___wakeupValue Page::___loaded (pageid 41, pagetitle: ) Fieldtype::___loadPageField Page::___path (pageid 2, pagetitle: Admin) ProcessWire::___init Pages::___find PageFinder::___find PageFinder::___getQuery PageFinder::___getQueryJoinPath Pages::___find Fieldtype::___wakeupValue Page::___loaded (pageid 3, pagetitle: Pages) Fieldtype::___wakeupValue Page::___loaded (pageid 10, pagetitle: Edit Page) ProcessWire::___ready TemplateFile::___render Page::___path (pageid 2, pagetitle: Admin) Page::___path (pageid 3, pagetitle: Pages) Fieldtype::___formatValue Fieldtype::___formatValue Fieldtype::___formatValue ProcessController::___execute Pages::___find Pages::___find Fieldtype::___wakeupValue Page::___loaded (pageid 7, pagetitle: Trash) Fieldtype::___wakeupValue Fieldtype::___wakeupValue Page::___loaded (pageid 1001, pagetitle: hookloggerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr) Process::___headline Fieldtype::___formatValue Process::___breadcrumb Process::___breadcrumb ModuleJS::___use Page::___setEditor (pageid 1001, pagetitle: hookloggerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr) Field::___getInputfield (id: 1, title: ) Field::___getInputfield (id: 78, title: ) Fieldtype::___loadPageField Fieldtype::___wakeupValue Field::___getInputfield (id: 79, title: ) Field::___getInputfield (id: 76, title: ) Fieldtype::___loadPageField Fieldtype::___wakeupValue Field::___getInputfield (id: 82, title: ) Fieldtype::___loadPageField Field::___getInputfield (id: 44, title: ) Fieldtype::___loadPageField PagefilesManager::___path Page::___isPublic (pageid 1001, pagetitle: hookloggerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr) Pages::___find PageFinder::___find PageFinder::___getQuery Fieldtype::___formatValue User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission User::___hasPagePermission Page::___path (pageid 7, pagetitle: Trash) Wire::___changed InputfieldWrapper::___render InputfieldWrapper::___renderInputfield InputfieldWrapper::___render InputfieldWrapper::___renderInputfield InputfieldWrapper::___renderInputfield InputfieldWrapper::___renderInputfield InputfieldWrapper::___renderInputfield ModuleJS::___use InputfieldWrapper::___renderInputfield InputfieldWrapper::___renderInputfield InputfieldWrapper::___renderInputfield Page::___path (pageid 10, pagetitle: Edit Page) InputfieldWrapper::___renderInputfield InputfieldWrapper::___render InputfieldWrapper::___renderInputfield Page::___path (pageid 7, pagetitle: Trash) InputfieldWrapper::___renderInputfield InputfieldWrapper::___renderInputfield Page::___path (pageid 10, pagetitle: Edit Page) InputfieldWrapper::___renderInputfield InputfieldWrapper::___renderInputfield Page::___path (pageid 10, pagetitle: Edit Page) InputfieldWrapper::___renderInputfield InputfieldWrapper::___render InputfieldWrapper::___renderInputfield InputfieldWrapper::___render InputfieldWrapper::___renderInputfield InputfieldWrapper::___renderInputfield InputfieldWrapper::___renderInputfield InputfieldWrapper::___renderInputfield User::___hasPagePermission AdminTheme::___getExtraMarkup Pages::___find PageFinder::___find PageFinder::___getQuery Fieldtype::___wakeupValue Page::___loaded (pageid 21, pagetitle: Modules) Fieldtype::___wakeupValue Page::___loaded (pageid 22, pagetitle: Setup) Pages::___find PageFinder::___find PageFinder::___getQuery Fieldtype::___wakeupValue Page::___loaded (pageid 6, pagetitle: Add Page) Fieldtype::___wakeupValue Page::___loaded (pageid 8, pagetitle: Tree) Fieldtype::___wakeupValue Page::___loaded (pageid 1007, pagetitle: Find) Fieldtype::___wakeupValue Page::___loaded (pageid 1009, pagetitle: Recent) Page::___path (pageid 10, pagetitle: Edit Page) Page::___path (pageid 3, pagetitle: Pages) Page::___path (pageid 3, pagetitle: Pages) Page::___path (pageid 10, pagetitle: Edit Page) Page::___path (pageid 8, pagetitle: Tree) Page::___path (pageid 8, pagetitle: Tree) Page::___path (pageid 10, pagetitle: Edit Page) Page::___path (pageid 1007, pagetitle: Find) Page::___path (pageid 1007, pagetitle: Find) Page::___path (pageid 1009, pagetitle: Recent) Page::___path (pageid 1009, pagetitle: Recent) Page::___path (pageid 1009, pagetitle: Recent) Page::___path (pageid 1009, pagetitle: Recent) Page::___path (pageid 1009, pagetitle: Recent) Page::___path (pageid 1009, pagetitle: Recent) Page::___path (pageid 1009, pagetitle: Recent) Page::___path (pageid 1009, pagetitle: Recent) Page::___path (pageid 1009, pagetitle: Recent) Page::___path (pageid 1009, pagetitle: Recent) Page::___path (pageid 1009, pagetitle: Recent) Page::___path (pageid 3, pagetitle: Pages) Pages::___find PageFinder::___find PageFinder::___getQuery Fieldtype::___wakeupValue Page::___loaded (pageid 11, pagetitle: Templates) Fieldtype::___wakeupValue Page::___loaded (pageid 16, pagetitle: Fields) Fieldtype::___wakeupValue Page::___loaded (pageid 1011, pagetitle: Logs) Page::___path (pageid 10, pagetitle: Edit Page) Page::___path (pageid 22, pagetitle: Setup) Page::___path (pageid 22, pagetitle: Setup) Page::___path (pageid 11, pagetitle: Templates) Page::___path (pageid 11, pagetitle: Templates) Page::___path (pageid 16, pagetitle: Fields) Page::___path (pageid 16, pagetitle: Fields) Page::___path (pageid 1011, pagetitle: Logs) Page::___path (pageid 1011, pagetitle: Logs) Page::___path (pageid 22, pagetitle: Setup) Page::___path (pageid 10, pagetitle: Edit Page) Page::___path (pageid 21, pagetitle: Modules) Page::___path (pageid 21, pagetitle: Modules) Page::___path (pageid 21, pagetitle: Modules) Page::___path (pageid 21, pagetitle: Modules) Page::___path (pageid 21, pagetitle: Modules) Page::___path (pageid 21, pagetitle: Modules) Page::___path (pageid 21, pagetitle: Modules) Page::___path (pageid 21, pagetitle: Modules) Page::___path (pageid 21, pagetitle: Modules) Page::___path (pageid 21, pagetitle: Modules) Page::___path (pageid 21, pagetitle: Modules) Page::___path (pageid 21, pagetitle: Modules) Pages::___find PageFinder::___find PageFinder::___getQuery Fieldtype::___wakeupValue Page::___loaded (pageid 31, pagetitle: Permissions) Page::___path (pageid 10, pagetitle: Edit Page) Page::___path (pageid 28, pagetitle: Access) Page::___path (pageid 28, pagetitle: Access) Page::___path (pageid 29, pagetitle: Users) Page::___path (pageid 29, pagetitle: Users) Page::___path (pageid 30, pagetitle: Roles) Page::___path (pageid 30, pagetitle: Roles) Page::___path (pageid 31, pagetitle: Permissions) Page::___path (pageid 31, pagetitle: Permissions) Page::___path (pageid 28, pagetitle: Access) User::___hasPagePermission Page::___path (pageid 2, pagetitle: Admin) Fieldtype::___formatValue User::___hasPagePermission ProcessWire::___finished1 point