Jump to content
Sign in to follow this  
louisstephens

[SOLVED] Appending new item into foreach grid

Recommended Posts

From my last post, I was given a good idea on how to count the repeater items, and it worked wonderfully. I got my code working well and the columns (based on the count) all work well as well. Now, I have a head scratcher on my hands. 

<?php
	$buttonsIncluded = $page->special_custom_buttons->find('special_custom_buttons_include=1');
	$buttonsIncludedCount = count($buttonsIncluded);
	$buttonsIncludedCountAdditional = $buttonsIncludedCount +1;
	echo $buttonsIncludedCount;
?>

<div class="row">
	<?php foreach($buttonsIncluded as $button): ?>
	<?php if($button->custom_buttons_include): ?>
		<?php if($buttonsIncludedCountAdditional == 2): ?>
			<div class="col-6">
				<a href=""><?php echo $button->custom_buttons_text; ?></a>
			</div>
		<?php elseif($buttonsIncludedCountAdditional == 3): ?>
			<div class="col-4">
				<a href=""><?php echo $button->custom_buttons_text; ?></a>
			</div>
		<?php elseif($buttonsIncludedCountAdditional == 4): ?>
			<div class="col-3">
				<a href=""><?php echo $button->custom_buttons_text; ?></a>
			</div>

		<?php endif; ?>
	<?php endif; ?>
	<?php endforeach; ?>
</div>

All of this is included in a larger foreach statement that is pulling in other data (like body copy etc etc) from a Page Table field. As you can see in my code above, I am adding "1" to the count, so I can have space in the grid layout for a new button.

So, right now: it looks something like: 

[repeater button]		[repeater button]		[repeater button]		[space for new button]

What I really need to do is to pull in the button from the Page Table and add it into the new space so it looks like:

[repeater button]		[repeater button]		[repeater button]		[button from Page Table]

Is this even possible todo, or is there a better way to go about this? 

 

*Edit*

So, I really just overlooked something quite easy here. Since the grid is based on 12 columns, I could just take 12 and divide by $buttonsIncludedCountAdditional which would give me the remaining col width to use outside the foreach loop. I was trying to make this too complicated.

Share this post


Link to post
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
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By rjgamer
      Hi,
      is there a hook after the current (active) page got created? Or which method got called in the Page class after the Constructor of the current page got initialized?
      Thanks.
       
    • By killedfriendz
      I am very sorry for asking this but i totally do not understand how to set values of checbox using API. 
      I have checbox field on my page with name "order_status". 
      So i've tried few ways to make it checked but it still doesn't work:
       
      $userPage->order_status->value = 1; $userPage->order_status->add(1); $userPage->order_status->add(true); Could you please tell me how to do it?
    • By rjgamer
      Hi guys,
      the field "redirect_last" of type DateTime got not updated. The update on the field "redirect_counter" works and got saved.
      Does anybody know what I did wrong in my code?
      if ($input->urlSegment(1) === 'redirect') { $page->of(false); $page->redirect_last = time(); $page->redirect_counter += 1; if ($page->save('redirect_counter')) { $session->redirect($page->website_url, 302); } } Thanks.
    • By totoff
      Dear all,
      I'm upgrading an older side with the new custom fields for images feature as of 3.0.142. My image field is set to "Automatic" and holds a bunch of images together with their respective description on each page. New custom fields include "caption" among others and to make my live easier I I'm trying to populate "caption" with the value from the (default) description field. But unfortunately I can't seem to find out how to save the newly set values. This is my code:
      <?php foreach (page()->images as $image) { $image->set('caption', $image->description); bd($image->caption); echo files()->render("markup/views/view-card-image-fancybox.php", array('image'=>$image)); } ?> <?php $page->save(); bd($page->save()); ?> This sets the value as intended (see screenshot) but doesn't save it permanently to the database. What am I doing wrong?
      Thanks!
       

    • By SwimToWin
      As an admin I want to use the API to ask if a page is published - using the $page->isPublished() method - so that I know it's published - as opposed to unpublished or trashed pages. That includes hidden pages.
      This method will correspond to Settings -> Status when editing pages:

      (Published is also mentioned explicitly where the edit page says "Published on [?]".)
      I would expect the API - and specifically the $page->hasStatus() method - to ask if a page has status published.
      But as I can see, it's only possible to ask for exceptions such as isUnpublished() and isHidden().
      <?php // This fails with "Fatal Error: Uncaught Error: Undefined class constant 'statusPublished'" if($page->hasStatus(Page::statusPublished)) { echo 1; } ?> PS: My current use case is that I want to count number of published vs. unpublished pages. I can only do that by getting all pages (include=all), then subtract any unpublished pages.
×
×
  • Create New...