Jump to content

gunter

Members
  • Content Count

    70
  • Joined

  • Last visited

Community Reputation

12 Good

About gunter

  • Rank
    Distinguished Member

Profile Information

  • Gender
    Male
  • Location
    Vienna
  • Interests
    Climbing, Yoga, Martial Arts

Recent Profile Visitors

2,215 profile views
  1. I want show a fullcalendar in an inputfield... and send data via ajax back to the module (new event, move event, resize event...) catching the ajax call in the init method works... public function init() { parent::init(); if ($this->config->ajax){ echo "<pre>ajax intercepted!!!"; print_r($_GET); print_r($_POST); exit(0); } } when I POST data via ajax back to the server comes this error: "This request was aborted because it appears to be forged". Maybe I can fix this when I give the POST variables proper names, with the inputfield name as prefix, because now the POST variables have just normal names like title, start or end... $.ajax( { url:'".$ajaxurl2.", type:'POST', data:{title:title, start:start, end:end, id:id}, }); using GET variables works... maybe I should just use them... or do you have an easier solution? $.ajax( { url:'".$ajaxurl2."&update=true&title='+title+'&start='+start+'&end='+end, // type:'POST', // data:{title:title, start:start, end:end, id:id}, ....
  2. Gadgetto thanks for your solution! 🙂 Guys, I found what I was looking for: https://processwire.com/talk/topic/9007-utility-to-help-generate-module-install-function/ it just uses normal processwire json export strings for fields and templates and seems for me to be the simpliest solution... I used it once somewhere in a module, it worked, but I forget where I had it.. 🙂
  3. Thanks, that´s nice what your example does, because I was looking for an example that uses pages like your module does... in the admin, too! 😉
  4. Do you know a module that installs some new templates and fields - so I can take it as example? It should loop trough the templates/fields it has to install and checking their existence before it installs them and it would be nice, if they are deinstalled too, if they are not used. I had once an example, but I forget where 🙂
  5. so the full line is this with the %s as variable for the folder name # ProcessWire ProcessWire=composer create-project processwire/processwire %s --stability=dev
  6. ok, thanks elabx for the hint to look at this.. I compared the html output against a working datetime inputfield... the solution is, I have to set the class by hand... I tought it works automatically by setting $field>datepicker... but thats not true $field->attr("class", "FieldtypeDatetime InputfieldDatetimeDatepicker InputfieldDatetimeDatepicker1"); // I have to set the datepicker class by hand (1, 2 or 3) $field->datepicker = InputfieldDatetime::datepickerClick; // this is not needed, because it´s not working so... I have a working date/time picker now, by setting the right class like this
  7. For a custom fieldtype/inputfield that contains two datetime variables (start + end) I want use two datetime inputfields in the render method. Everything works, except the datepicker does not appear... does anybody know why? public function ___render() { $name = $this->attr('name'); $value = $this->attr('value'); //getting values for start and end $start = $value->data["start"]->toDateTimeString();; $end = $value->data["end"]->toDateTimeString(); //preparing inputfield $field = $this->modules->get('InputfieldDatetime'); $field->set("label", __("Date")); $field->attr("class", "uk-form-width-medium "); $field->required = true; $field->datepicker = InputfieldDatetime::datepickerClick; $field->dateInputFormat = 'Y-m-d'; $field->timeInputFormat = 'H:i'; $field->timeInputSelect = 1; //setting first inputfield $field->attr("id+name",$name."_start"); $field->attr("value",$start); $renderedFieldStart = $field->render(); //setting second inputfield $field->attr("id+name",$name."_end"); $field->attr("value",$end); $renderedFieldEnd = $field->render(); $out = $renderedFieldStart.$renderedFieldEnd; return $out; }
  8. This is a small tutorial... If you want add another field to this fieldtype... first in FieldtypeEvents.module in getDatabaseSchema() add a line that suit your needs, so your new field gets stored to the database $schema['newValue'] = 'TINYTEXT NOT NULL'; try if you can install the module and add a field to a template and check if it works like before add the property to the constructor in Events.php $this->set('newValue', ""); then modify set() and get() so you can modify your new property... now try in your template,´if you can modify and output the new property foreach($page->events as $event){ $event->newValue = "hello new value"; echo "yes it works, we we welcome the new value: ". $event->newValue."<br>"; } if this works properly then go back to FieldtyeEvents.module: add this line in __wakeupValue() to the foreach loop $event->newValue = $v['newValue']; and in _sleepValue() 'newValue' => $event->newValue, in file InputfieldEvents.module in renderRow() method make sure, a $newValue variable gets gets sanitized from $newValue = $this->sanitizer->entities($event->newValue); change $out = " <tr class='Event$cnt $class'> <td><a href='#' class='EventClone'><span class='ui-icon ui-icon-copy'></span></a></td> <td><input type='text' name='{$name}_date[]' value='$date' class='datepicker' /></td> <td><input type='text' name='{$name}_newValue[]' value='$_newValue' /></td> //add this line add your field in __render() <table class='InputfieldEvents'> <thead> <tr class=''> <th class='EventClone'>&nbsp;</th> <th class='EventDate'>Date</th> <th class='EventDate'>newValue</th> //I´ve chosen EventDate class because its narrow and in __processInput() $event->newValue = $input->{"{$name}_newValue"}[$cnt]; I hope I didn´t forget anything, good luck!
  9. Which kind of magic is used so that the BaseFieldtypeRuntime does not appear in the fieldtype list? I want extend my own base fieldtype, thats why I want to know this.
  10. problem solved! I have to set a unique id -> then the code from my last posting works - without setting the id -> just one page (the last one) is getting added to the page array $p->id = rand();
  11. $days = 20; $selector = "template=basic-page"; $resultPageArray = $this->pages->find($selector); for($i=0;$i<=$days;$i++){ $p= new Page(); $p->template = 'basic-page'; // set template $p->title = rand(); $p->name = "virtual-page".rand(); $resultPageArray->add( $p); } d($resultPageArray); the dumping function is very useful! Unfortunately I have a problem, this code should in my opionion add 20 pages to items... but only one page gets added, the rest are under $resultPageArray->itemsAdded
  12. Adrian,please... how did you get that clean pagearray debugging info into the bottom screen? 🙂
  13. Aaahhhh!! A name! That's it, I didn'nt gave one! Thanks so much, Adrian!!!
  14. $calendarPageArray = pages->find($selector); $p = new Page(); // create new page object //some page stuff... $calendarPageArray->add($p); I found out that it doesn´t seem to be possible to add an unsaved page to the pagearray... It´s for a worktime scheduling calendar... a have some real pages with the weekdays and their worktime... and I have also pages with special calendar days with special worktime.. I want get the calendar days from the pagetree into a pagearray... and then adding the generic weekdays as somehow virtual unsaved pages into that pagearray...
×
×
  • Create New...