Search the Community
Showing results for tags 'new'.
-
Following the advice of some PW-forum members @gebeer @dotnetic @bernhard @sebibu, I would like to share my first Processwire module with all members. QuickSave: My first attempt at developing a PW module to quickly save a page. What can the module QuickSave do: Quickly save a page edit in the admin and return to the last activity. Adds an extra save button AND shortcuts CMD+s and CTRL+s. QuickSave includes an additional plugin for TinyMCE. The plugin for TinyMCE must be assigned and activated specifically for these textarea fields. (Keyboard input shortcut does not yet work in an iFrame - RTE/iFrame, CKE, etc.) PW-QuickSave-1024-v16.mp4 Installation: To install the module, it simply needs to be copied into the Processwire module directory and then activated in the Processwire admin. Optional: Anyone who uses TinyMCE can activate the keyboard input shortcuts via the configuration as a plugin for TinyMCE. Afterwards it has to be activated for the field (e.g. body). This is the path for the configuration in TinyMCE: /site/modules/QuickSave/tinymce/quicksavetinymce.js QuickSave-TinyMCE-inst.mp4 I have been using the module only as a save button version for some time in a long Processwire page with a strong content and a four-fold nested repeater matrix and it works. The keyboard shortcuts were added because of a request. I was only able to test these on the Mac and hope they also work with Windows browsers. Due to another request, the short notification after saving was added. I hope you like the module and that it helps the moderators to keep a better eye on the areas they are currently working on. Especially with long pages and, for example, a table with many rows, it is very helpful for me not to lose the row when saving. (see the video) Note: The module does not intervene in the Processwire saving process, only the original saving button function is triggered. Please note that the keyborad shortcodes do not work in iframes or CKEditor. UPDATE: New version 0.1.7 added on April 13, 2024. A new combined version without jQuery has been created. Thanks to @dotnetic and all others ?. It is now more optimized and further optimizations are planned. Module 0.1.7 Download: QuickSave.zip Feedback on whether the keyboard shortcuts ctrl+s work under MS Windows would be great... ? Thanks and Greetings Chris
- 18 replies
-
- 12
-
Summary: If I have a site sitting on a server called testing.com, then on the server change it to mycompany.com, do I have to modify any settings in ProcessWire? After building several processwire for clients, the one question that I haven't had is about moving a processwire site from an old (temporary) domain to a new domain. For instance, I typically setup development sites for clients and register a temporary domain (and lock with a password). For instance, thee client can go test.com and get all their content finalized, change wording, add news, swap out photos -- everything to make the site production read. Next, on my hosting account I can have testing.com renamed to theircompany.com - and change the nameservers. A simple question here. If I have a hosting company rename the account from testing.com to theircompany.com, change my nameservers whereas going to theircompany.com loads the production site, Is there anything I need to change in the processwire configuration or in the PW database? In the past, I've just manually copied the site, and fresh-installed PW, and imported the data. Seems like a lot of hassle. I have a second part question about updating the PW core, however, after consideration I'll post it as a new topic.
- 9 replies
-
- move
- processwire
-
(and 8 more)
Tagged with:
-
EDIT: What I'm actually really looking for is a way to edit and add children of a page in a similar way as RepeaterMatrix fields: Easy to add new ones and easy to move, hide and modify inline: –––– I have a problem and am so close to a solution, but everything i've found so far only gets me about 95% and before I create something on my own want to ask is anyone knows a soltion or if I miss something. My simple requirement: Editing Children and creating new ones inside the current parent page context – eighter inline or in a Lightbox. Not working Option A: With page relation fields I can create new pages – but it requires me to select a fixed parent. If I don't provide a parent, no new link is present. Not working Option B: With the awesome AdminPageFieldEditLinks Module I can create new Pages directly without the need to provide a parant beforehand – but then I need to select it at runtime. There is a new link now – the link is: parent_id=0&template_id=51&modal=1 … if it only provided the correct parent_id!!! But now i have to select the parent: Not working Option C : That's what I do right now… Reordering the Child-Field to the first tab – but to maintain the context, I would need the edit and new button to open a lightbox instead of a page reload. Possible solutions: For A+B: If I could provide a selector as parent, this would solve my issue: "parent=page.id" or a checkbox "use parent page for new pages". Or I could use some hook? For C : I could write my own javascript to open the links in a Lightbox.
-
Note - I've not set this up, I'm not experienced, I'm probably omitting much relevant information as a result so this post will be a bit of a work in progress. The answer may be on the forum here - If it is I can't tell for lack of experience (I've looked). I cannot for the life of me get an install to work and I've tried a lot, and I've asked others who're also struggling but I'll try posting here before another CMS as I've heard it's nice. Info about the server : https://gist.github.com/65086fbc7b5dd03abd0f0461b9c0ec8b I'm using the `stable` version of Processwire. My `htaccess` file is working - you can test here http://rightangle.space/ and click on the admin page to see the internal server error. Here is the htaccess file https://gist.github.com/3b805b8ab3c7978aca90a6e39773da00 Here is the /etc/apache2/apache2.conf file https://gist.github.com/2b2f2518ce7df4af4739413bc967cf56 Here is the /etc/apache2/sites-enabled/000-default.conf file https://gist.github.com/400cc958ff32dfb6df80693fd8531f08 Here's the output of tree -fa /var/www/ https://gist.github.com/a3569becd9889b4b05c4f0d0a8a561d7
-
Hi, I'm brand new to ProcessWire and I found it when searching for a CMS to create my web site. The reason I'm interested is because I want to create a site which is exactly like the Skyscrapers demo site, but with different content obviously. I like how the site is formatted and the search options box, the summary list and detail pages, and the map. What is the quickest and easiest way of setting up a page like this with my own variables, enter my own records and have it formatted just like that demo page with the menu options, sorting and search options? I've had a look at the Tutorials page, but I can't see anything this specific. Thanks for your time & help!
-
Hey, I was wondering if there's a way to add more fields to specify when creating a new page. At the moment, the only two fields are required for creating a new page. Title Name (Automated) I've configured processwire so that the chosen page to create is limited to one template. Guess this would make the process to achieve the above a bit easier. Regards,
-
Hi, I'm working on a script that allows users to add a new Page to my installation of ProcessWire. I will explain how this script works below. The user enters some information into a simple form ^ This can include an image The form is validated with jQuery When valid, the form triggers a function through a class that handles the process I will include some of the code below. Form: <form id="entry" class="entry" method="post" action="./" name="entry" enctype="multipart/form-data"> <div class="row"> <input type="text" name="fullName" id="fullName" placeholder="Naam initiatiefhouder *" data-validation="required" /> </div> <div class="row"> <input type="text" name="projectName" id="projectName" placeholder="Projectnaam *" data-validation="required" /> </div> <div class="row"> <input type="email" name="emailAddress" id="emailAddress" placeholder="E-mailadres *" data-validation="required" /> </div> <div class="row"> <textarea name="projectDescription" id="projectDescription" placeholder="Beschrijf uw initiatief *" data-validation="required"></textarea> </div> <div class="row"> <input type="file" id="image" name="image" data-validation="mime size" data-validation-allowing="jpg, jpeg, png, gif" data-validation-max-size="2M" /> </div> <div class="row"> <input type="submit" name="submitEntry" id="submitEntry" value="Insturen" /> </div> </form> So basically the "image" field is the field that allows the user to add a file (jpg, jpeg, png, gif - max 2mb). Now, when all the information is valid it will post this form through the following function. public function pushEntry ($input, $file) { // Unset the array $this->array = []; // If there is any data if ($input) { // Get some of the variables needed $this->name = $this->sanitizer->text($input->fullName); $this->email = $this->sanitizer->email($input->emailAddress); $this->project = $this->sanitizer->text($input->projectName); $this->description = $this->sanitizer->text($input->projectDescription); // Get the date $this->date = date("d-m-Y H:i:s"); // Generate the title $this->title = "$this->project - $this->name"; $this->duplicate = $this->pages->find("title=$this->title"); // Generate the array $this->array = [ "title" => $this->title, "fullName" => $this->name, "emailAddress" => $this->email, "projectName" => $this->project, "projectDescription" => $this->description, "date" => $this->date ]; // Create the page $new = new Page(); $new->template = $this->templates->get("entry"); $new->parent = $this->pages->get("/entries/"); foreach ($this->array as $key => $value) { // Foreach key and value, create a new page $new->$key = $value; } // Check if there is any duplicates if ($this->duplicate->count() == 0) { $new->save(); } else { echo "Dit initiatief bestaat al."; exit; } // If there is an image if (!empty($file["image"]["name"])) { // Some variables $this->path = $this->config->paths->assets . "files/$new->id"; // Set the extensions $this->extensions = [ "jpg", "jpeg", "png", "gif" ]; // Do the Wire $this->image = new WireUpload($file["image"]["name"]); $this->image->setMaxFiles(1); $this->image->setOverwrite(false); $this->image->setDestinationPath($this->path); $this->image->setValidExtensions($this->extensions); // Execute and check for errors $files = $this->image->execute(); // Add the image to the page $this->fileName = $file["image"]["name"]; $this->fullPath = $this->path ."/". $this->fileName; // Move the file $new->image->add($this->fullPath); // Unlink the file unlink($this->fullPath); // Save the page $new->save($new->id); } } // Return the array return $this->array; } The script adds a page to my installation of ProcessWire perfectly; except for the file upload. I encounter the following errors; Warning: unlink(C:/wamp/www/gezondsteregio/site/assets/files/1135/dekkleden_header.1919x301.jpg): No such file or directory in C:\wamp\www\gezondsteregio\site\templates\controllers\home.php on line 106 Warning: filemtime(): stat failed for C:/wamp/www/gezondsteregio/site/assets/files/1135/dekkleden_header.1919x301.jpg in C:\wamp\www\gezondsteregio\wire\core\Pagefile.php on line 324 Warning: filemtime(): stat failed for C:/wamp/www/gezondsteregio/site/assets/files/1135/dekkleden_header.1919x301.jpg in C:\wamp\www\gezondsteregio\wire\core\Pagefile.php on line 324 I am really curious if someone can help me with this problem. I have tried this script on both my localhost (regular Apache) and my webhost (Fast CGI). Regards, Jim Oh, and I use the following script to trigger the function. $entry = new Entry(); // If there is a post if ($input->post->submitEntry && !empty($input->post->fullName) && !empty($input->post->emailAddress) && !empty($input->post->projectName) && !empty($input->post->projectDescription)): // Push the entry to the controller $entry->pushEntry($input->post, $_FILES); endif;
- 4 replies
-
- wireupload
- page
-
(and 2 more)
Tagged with:
-
New programs are constantly added to the website as they are developed and we need a talented & creative developer to help us implement the same, Location NY. Please PM or call / text to +1 929 266 5936 (929 266 5ZEN google voice, its safe and secure )
-
Hello Processwire-Community, i just wanted to greet you because i think its a better way to introduce myself. I didnt found a better Thread to do this, so i think im not wrong to post this here. If i missed the specific Thread, then dont mind moving my ass there. First of all, im German. Im 19 years old, very young and i have no idea how i found processwire. Maybe its because other CMS-Systems seems a little bit too packed for creating my stuff. If i wanna program something, i want to know why i writed this and where my mistakes are. Only then i can improve in this matter. So, with this in mind, i picked Pw, because most user say it gives a wide freedom to do stuff you wanna do. I already started with my project, but there re some questions rolling in my head, so i wanna ask them here. If you have knowledge about it, i would appreciate it if you could give me an answer. If not, post some random bbcode-spam under this thread and think of something joyful . 1. Processwire gives the option to create pages and so on. Its useful, yes, but what if i wanna display only the content of a .php-file over the URL and place it in my template? So that i dont need to write my whole template for every .php-file that i include? 2. And while we are at it: how does the parent- and child-system work with the URL? If i, say, make an "foreach" for every link i have posted in a database-table called "navigation_links" and now get the ROOT-path + this link, how can i tell processwire to accept it? If use use it like this: and try to use it, it says to me "404 not found", but i just navigate it to the .php file i have created in my folder. 3. @ryan: i have read your post about the login-example here: https://processwire.com/talk/topic/107-custom-login/ . if i wanna use this as an external .php-file, it works. But i wanna use it as an component on my site. For this, there is a little problem: First of all, if i click on the Login-button, it does nothing. The Page stays where it is and doesnt redirect me to a page called "login_successful.php". Second, if i watch in the database the session_throttle, it lets me stay in the attempts and the date. So the Informations didnt get transmitted. Here is the Code, i would appreciate it if you could give me help with this. Maybe im missing something. Please remember im just testing the functions. I will change it until i have my results.: /templates/login.php (Makes decisions if a User is LoggedIn or not and includes the file i need) <?php if($user->isLoggedin()) { include("loggedin_form.php"); } else { include("login_form.php"); } ?> /templates/login_form.php (Gives a Form to write username and password and transmit it) <!-- This Form gives an login-form to login or register to the site--> <?php if($input->post->user && $input->post->pass) { $user = $sanitizer->username($input->post->user); $pass = $input->post->pass; if($session->login($user, $pass)) { $session->redirect("login_successful.php"); } else { $session->redirect("login_unsuccessful.php"); } } ?> <div id="login_form"> <?php if($input->post->user) echo "<h2 class='error'>Login failed</h2>"; ?> <form action='./' method='post'></form> <input type='text' value="Username" name='user' /> <input type='password' value="password" name='pass' /> <input type='submit' name='submit' value='Login' /></p> </div> Register will follow later, i will use another table for that. 4. If i wanna use an function-library, which folder-structure is identical to my components-folder and wanna limit every component i have in it to the "function" folder and dont allow other functions to work unless i say it in an "func_global.php", how can i do that? Over URL? Or do i need to make an attempt for everytime i call my component to search in the function-folder for a folder with the same name as the folder my .php file is placed in? This seems a little bit too much coding, so if someone has a better idea, please dont mind posting it here. I would appreciate it. This seems enough for the start. Sorry for my bad english, i still need to learn stuff. But its better to ask than never know it. With Greetings, JamesHemmingworth
-
TL;DR : I'm looking to create dynamic forms which will take fields list from given template & create/save pages dynamically. Hello, I've been using PW for a while for creating web applications like ERP systems and similar applications which have tons of forms. So far I've been creating, processing & validating them manually. While researching I found this link which I found to be very helpful. Code given in that example allows user to create a form based on the fields of any page and save it, which is very cool. Based on that code I tried doing something like this: $p = new Page(); $p->template = "mytemplate"; //I've added few fields to this template $p->parent = "/someparent/"; $p->of(false); // make a form $form = $modules->get('InputfieldForm'); $form->method = 'post'; $form->action = './'; // add the page's fields to the form $form->add($p->getInputfields()); // add a submit button to the form $submit = $modules->get('InputfieldSubmit'); $sumit->name = 'submit'; $form->add($submit); // process the form if it was submitted if($input->post->submit){ $form->processInput($input->post); $p->name = date(dmYhisn); $p->save(); } It did create a page but without any data. I know this could be a very stupid thing to try, but I guess it was worth it. More research taught me that probably using ProcessPageAdd module I can create new pages. But I don't know how exactly that works. I'm looking for some guidance about modules & their use on fron-end. Thanks.
-
I've stumbled upon a weird issue with repeaters. I've created a repeaterfield with only a title field and assigned it to a template. When I create the first page everything goes well, but then when I'm creating additional pages I'm getting this error: ProcessPageAdd: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'for-page-23947-23799' for key 'name_parent_id' I'm not getting redirected (probably because of the error, but the page does get created with the RepeaterField correctly). The problem seems to exist in the file FieldtypeRepeater.module in the function 'getRepeaterPageParent'. I've modified the file to see what actually happens and it looks like the function doesn't find the required page of saves the page correctly. protected function getRepeaterPageParent(Page $page, Field $field) { $repeaterParent = $this->getRepeaterParent($field); $parent = $repeaterParent->child('name=' . self::repeaterPageNamePrefix . $page->id . ', include=all'); $this->message("L".__LINE__." | selectorresult: ".$parent->id); if($parent->id) return $parent; $parent = new Page(); $parent->template = $repeaterParent->template; $this->message("L".__LINE__." | template: ".$repeaterParent->template); $this->message("L".__LINE__." | parent: ".$repeaterParent->path); $parent->parent = $repeaterParent->id; $parent->name = self::repeaterPageNamePrefix . $page->id; $parent->title = $page->name; $parent->addStatus(Page::statusSystem); // exit early if a field is in the process of being deleted // so that a repeater page parent doesn't get automatically re-created if($this->deletePageField === $field->parent_id){ return $parent; } $parent->save(); $this->message("L".__LINE__." | looking for: ".self::repeaterPageNamePrefix . $page->id); $this->message("L".__LINE__." | current for: ".$parent->name); $this->message("L".__LINE__." | Created Repeater Page Parent: NAME={$parent->name} a " . $parent->path, Notice::debug); return $parent; } See the attachment for the output. IMO the second time FieldtypeRepeater: L574 | should output the previously created page... Anyone has an idea what's going wrong? I'm on the latest master branch.
-
I am new to ProcessWire. I just came across it via searching for platforms. I am wanting to build a social site that users can register, activate account via email confirmation, and fill in profile. They will be basically be able to share photos and people can give them a like or dislike. Pretty simple principal but I don't have any clue how to even start that with ProcessWire if it's even possible. Any suggestions? I was going to build it using Symfony or CakePHP...something I know will work as a platform. Thanks in advance.
- 4 replies
-
- new
- processwire
-
(and 2 more)
Tagged with: