Jump to content

How to find out if a urlSegment is inside a PageArray


ngrmm
 Share

Recommended Posts

i have a event-page with a table.
first column in this table is page-reference-field

how can i find out if a urlSegment matches one of the rows having the same page-reference-field (page-id)?

// all guests
$allguests = new pageArray();
foreach($page->event_guests_table as $event_guests_table_row) {
	$allguests->prepend($event_table_row->guest);
}

// echo allguests would output: 1101|1102|1103|…
// domain.tld/event/1101/

// show content if guest is in the table or redirect
if($input->urlSegment1 ~= $allguests ) {
	// show content
}
else {
	// redirect
}

 

which selector operator do i have to use? the one above does not work

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Similar Content

    • By dfile
      Hello,
      I am running ProcessWire 3.0.165 but $input->urlSegmentLast or $input->urlSegment(-1) does not work as expected.
      Or do I something wrong?
      Thank you.

    • By jds43
      Hello,
      I'm trying to paginate results that may have Url Segments and I want to modify the Base Url. How do I accomplish this within renderPager? I found docs here: https://processwire.com/api/ref/markup-pager-nav/render/, but it hasn't pointed me in the right direction. 
      $pager->setBaseUrl(string $url);
      echo "<div id='pagination' class='uk-container uk-container-medium uk-margin-large-top'>"; echo $matches->renderPager(array( 'nextItemLabel' => "Next", 'previousItemLabel' => "Prev", 'currrentItemClass' => "uk-active", 'listMarkup' => "<ul class='row uk-flex-right'>{out}</ul>", 'itemMarkup' => "<li class='{class}'>{out}</li>", 'linkMarkup' => "<a href='{url}' class='uk-button uk-background-secondary'><span class=''>{out}</span></a>", )); echo "</div>"; Or, does anyone know of a better option?
    • By Sanyaissues
      Hi, I have a page with a repeater called teams with two fields: team (a pageReference with a list of teams) and people (a pageReference with a list of people who likes this team).
      I'm trying to populate the people field in the repeater according to the value of the team field in the same repeater. So far. I'm able to get the pageArray that I want to assign to the people field, but i don't know how to "save" the value for each instance of the repeater.
      I hope somebody can give me a light. Thanks in advance.
       
      $wire->addHookAfter('InputfieldPage::getSelectablePages', function($event) { if($event->object->hasField == 'people') { $repeaterField = $event->arguments('page')->teams; foreach ($repeaterField as $t) { // Is this the way to loop the instances of the repeater? $team = $t->team->id; $t->people = $event->pages->find("template=user, team={$team}"); var_dump($t->people); // This returns the values that i want to assign for each repeate instance $event->return = $t->people; // I hope this assign a custom pageArray for each repeater, but it assigns the same for all the instances of the repeater } } });  
    • By Martin Muzatko
      Hello there!
      I'd love to see more array operation functions such as map/reduce. There are already a few helpful functions there like pop, shift, etc.
      I find myself turning pageArrays into arrays, do array_map or similar and create pageArrays again from that data.
      For Processwire, it would be really helpful to perform forEach operations more comfortably.
      E.g.
      <?php $allTitles = $pages->map(function($page){return $page->title}); // vs traditionally: $allTitles = []; foreach($pages as $page) { array_push($allTitles, $page->title); } $pages->reduce would be really helpful too. This would avoid many in-between variables when calculating sums of fields stored in individual pages.
       
      Thank you in advance
      Best,
      Martin
    • By Davidov
      Good Day!
      I am a beginer of processwire project. Thanks developers for your great work. this CMS is very Good!
      I have a question: how get Pageimage object of PageArray from "Page" (PageArray) field type?
      I have too tamplates: affiliates and their teachers. The template of affiliates have a field "teachers_list" wich is "Page" (PageArray) type.
      When I vaffiliate teachers in a cycle, I can not access the teacher photo object and change its size.   I get an error returning: " Fatal error: Call to a member function maxWidth() on null ". When i trying get URL attribute : $teacherItem->teacher_photo->url, i receive message: " Trying to get property of non-object ".   But this code works: $teacherItem->teacher_photo["url"].   The print_r function outputs the following information: "ProcessWire \ Pageimage Object ([changes] => Array ([0] => formatted) [hooks] => Array ([Pageimage :: pim2Load] => PageImageManipulator02-> getPageImageManipulator02 () in PageImageManipulator02.module ) [Data] => Array ([basename] => p16.jpg [description] => .... - ..... [tags] => [formatted] => 1 [modified] => 1487079115 [created ] => 1487079115))".   my PHP code: foreach ($page->teacher_list as $teacherItem): $out .= " <tr> <td class=\"alignTop\"> /* !!! my truble */ <img src=\"{$teacherItem->teacher_photo->maxWidth(250)->url}\" /> /* !!! my truble */ </td> <td class=\"alignTop\"> <div class=\"teach_style12\"> <strong>$teacherItem->fio</strong><br/> $teacherItem->degree<br/> $teacherItem->headline_detail </div> <div class=\"teach_style9\"> $teacherItem->body </div> </td> </tr>"; endforeach; Please, help me. Where is my error?
       
×
×
  • Create New...