Search the Community

Showing results for tags 'frontend editing'.

More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Welcome to ProcessWire
    • News & Announcements
    • Showcase
    • Wishlist & Roadmap
  • Community Support
    • Getting Started
    • Tutorials
    • FAQs
    • General Support
    • API & Templates
    • Modules/Plugins
    • Themes and Profiles
    • Multi-Language Support
    • Security
    • Jobs
  • Off Topic
    • Pub
    • Dev Talk

Found 2 results

  1. Hello all, i have a question regarding the following scenario: My customer wants to edit a menu card of a restaurant website directly in the frontend. Each dish / menu is displayed in a row with 4 simple textfields (position nmbr, name, quantity (optional, for drinks) , price). My customer preferably not only wishes to edit/update existing fields/rows, but also add a new one, delete one, or move an existing one up or down to a new position in the card. Would these actions be possible per default in the frontend edit mode, if i'd have e.g. a table profield storing the 4 textfields per dish? Or is this only functional in the backend? In a demo video of a Profield (-> fieldtype table) i saw the requested edit functionality (edit or add a row of fields, drag a row up/down, delete a row, safe) in the backend... Btw., regarding this concrete use case of a menu card: Would i have to use at all a Profield like table or could i accomplish the task also with a Repeater Field or a Pagetable fieldtype? In any case at least i don't want to let my customer mess around with a richtext field / inserting a table within CKEditor in the backend... Maybe there are better approaches than the above mentioned. Edit: I should add, that the site is a static one, equipped with an meanwhile dysfunctional inline frontend editor (that had the capabilitiy of editing, moving, deleting such rows directly inline in the frontend). Now i want to replace this editor with processwire. Thanks in advance
  2. Hello, the frontend edit mode in pw3 is allready great. But I'n looking for a solution where I can have the create/update form on a edite page. (url/urlsegmaent=edit). With all the released code here I was able to put together some code that does that. So far it works to fill the page for the first time, but unfortunaly it dosen't work so great on updating the page. When I try to update, the page disappears from the frontend. Its still visible in the backend but seems to be corrupt. Here is the code I used: <?php namespace ProcessWire; ?> <?php $content =''; ?> <?php $content = ''; $out = ''; if ($input->urlSegment(1 ) =='edit'): if(!isPageOwner()) throw new Wire404Exception(); // Edit Form // get a page $editpage = $page->setOutputFormatting(false); $ignorefields = array("isOld","user_activation","language_published","roles","admin_theme"); $form = $modules->get("InputfieldForm"); $form->method = 'post'; $form->action = './'; // get the collection of inputs that can populate this page's fields $inputfields = $editpage->getInputfields(); // make all the fields required and add them to the form foreach($inputfields as $inputfield) { if(in_array($inputfield->name, $ignorefields)) continue; $form->add($inputfield); } // the inputfields don't already have a submit button, so we'll add one. $submit = $modules->get("InputfieldSubmit"); $submit->name = "submit"; $submit->value = 'Submit'; // add the submit button the the form $form->add($submit); // process the form var_dump($editpage->snippet_repeaterblock->first()); echo '<hr>'; var_dump($editpage->snippet_repeaterblock); echo '<hr>'; $rpf_count = $editpage->snippet_repeaterblock->count(); echo $rpf_count; if($this->input->post->submit) { echo $firstRepeaterId; $n = 1; $codesnippet = "snippet_code_repeater$n"; $codelanguage = "snippet_select_codelanguage_repeater$n"; $snippet_repeaterblocks = $editpage->snippet_repeaterblock; // the repeaters foreach ($snippet_repeaterblocks as $item){ # $item = $pages->get("id=$snippet_repeaterblock->id"); // the repeater page we want to update $item->of(false); // update repeater fields $item->snippet_code_repeater = $input->post->$codesnippet; $item->snippet_select_codelanguage_repeater = $input->post->$codelanguage; // save the repeater page $item->save(); // update counter etc $n++; $codesnippet = "snippet_code_repeater$n"; $codelanguage = "snippet_select_codelanguage_repeater$n"; } # New Code End // now we assume the form has been submitted. // tell the form to process input from the post vars. $form->processInput($this->input->post); // see if any errors occurred if( count( $form->getErrors() )) { // re-render the form, it will include the error messages $out .= $form->render(); } else { // successful form submission, so populate the page with the new values. foreach($form as $field) { $donotpopulate = array("snippet_repeaterblock"); if(in_array($field->name, $donotpopulate)) continue; $editpage->set($field->name, $field->value); echo $field->name; echo ':'; echo $field->value; echo '<hr />'; } // save it $editpage->of(false); $editpage->save(); $out .= "Page saved."; $out .= $form->render(); $content .= $out; } } else { $out .= $form->render(); $content .= $out; } else: ?> <?php /* -------------------- UserProfile */ ?> <?php $cuser = $page->createdUser->id; ?> <?php $cusername = $users->get($cuser)->name; ?> <?php $cusermail = $users->get($cuser)->email; ?> <?php # print_r($page->createdUser); ?> <?php /* -------------------- TAGS*/ ?> <?php $snippet_tag_count = count($page->get("snippet_tag")); $allsnippettags = $page->get("snippet_tag"); if ($snippet_tag_count > 0 ): $tagcontent ='<ul class="snippet_tags">'; $tagcontent =''; $tagcontent .='<ul class="all-tags">'; foreach ($allsnippettags as $allsnippettag) : $alltagtitle = $allsnippettag['title']; $alltagid = $allsnippettag['id']; $alltagpath = $allsnippettag['path']; $alltagurl = $baseurl.$alltagpath; $tagcontent .='<li class="all-snippet_tag">Tag: <a href="'.$alltagurl.'">'.$alltagtitle.'</a>'; # print_r($allsnippettag); ?> <?php $tag = $allsnippettag['name']; $matches = $pages->find("snippet_tag=$tag"); $matchescount = count($matches); $tagcontent .='<ul class="tags">'; foreach ($matches as $match) : $tagtitle = $match['title']; $tagid = $match['id']; $tagpath = $match['path']; $tagurl = $baseurl.$tagpath; $tagcontent .='<li class="snippet_tag "><a href="'.$tagurl.'">'.$tagtitle.'</a></li>'; endforeach; $tagcontent .='</ul>'; $tagcontent .='</li>'; endforeach; $tagcontent .='</ul>'; endif; ?> <?php $content .= "<div id='snippet' edit='snippet_repeaterblock,snippet_tag'>"; $content .= "<p>Create Snippet</p>"; foreach ($page->snippet_repeaterblock as $repeater_item) { if ($repeater_item->get("cb_desc_code")): $content .= "<div class='snippet_description'>" . $repeater_item->get("snippet_description") . "</div>"; else : $content .= "<pre><code>" . $repeater_item->get("snippet_code") . "</code></pre>"; endif; } $content .= '</div>'; $content .= $tagcontent; $content .= '<div class="CreatedUser"><a href="'.$baseurl.'snippets/'.$page->createdUser.'" >'.$cusername.'</a></div>'; If someone has some ideas that would be great. Best Nico