OrganizedFellow Posted November 25, 2019 Share Posted November 25, 2019 My videos page is only showing one page and not the others ? Link here -> http://biz265.inmotionhosting.com/~lovero8/videos/ Currently 4 videos are shown (as expeccted) and it is linking each accordingly. But each page only shows the first link to the first video, not each one like it's supposed to - UGH! I mean, each of the 4 pages only shows the link, description, etc. of the first posted video,thats not right. I cant figure out why. <?php namespace ProcessWire; $settings = $pages->get("template=settings"); $videos = $pages->get("template=videos"); ?> <nav pw-append='content-body'> <?=ukDescriptionListPages(page()->children)?> <?php echo "<p>{$videos->youtube_description}</p>"; echo "<p>{$videos->youtube_link}</p>"; ?> We would love if you shared this video. Please feel free to copy and share the link below: <p><input class="uk-input" type="text" value="<?php echo $videos->youtube_sharelink; ?>" id="myInput"></p> <p><button class="uk-button" onclick="myFunction()">Copy Link</button></p> </nav> <aside id='sidebar' pw-prepend> <?=ukNav(page()->rootParent, "depth=3")?> </aside> <script> function myFunction() { /* Get the text field */ var copyText = document.getElementById("myInput"); /* Select the text field */ copyText.select(); copyText.setSelectionRange(0, 99999); /*For mobile devices*/ /* Copy the text inside the text field */ document.execCommand("copy"); /* Alert the copied text */ alert("Copied the text: " + copyText.value); } </script> Link to comment Share on other sites More sharing options...
Klenkes Posted November 25, 2019 Share Posted November 25, 2019 In short: $pages->get is supposed to get 1 page only, and you can't use template as a selector. Try something like: $videos = $pages->get($page->id); This way you get the video of the current viewed page. Link to comment Share on other sites More sharing options...
MoritzLost Posted November 25, 2019 Share Posted November 25, 2019 I don't understand most of what's going on there, but the problem is probably that your $videos variable will always be the same page: $videos = $pages->get("template=videos"); Since you're using $pages->get this will always match the first page of template "video" on your site, independent of the current page. I don't know your tree structure, is the video a field of the current page, or a sub-page? In those cases you probably meant to use $page->get or $page->find. @Klenkes Beat me to it ^^ But you can normal selectors inside $pages->get, though the results may be unintuitive because it will always return the first page found. Just as a sidenote, check out the new Clipboard API, it's pretty cool. I'm using it here and it works well? Link to comment Share on other sites More sharing options...
OrganizedFellow Posted November 25, 2019 Author Share Posted November 25, 2019 5 minutes ago, Klenkes said: In short: $pages->get is supposed to get 1 page only, and you can't use template as a selector. Try something like: $videos = $pages->get($page->id); This way you get the video of the current viewed page. YUP! That was it, haahaa, I knew it was something simple. Thank you amigo. Link to comment Share on other sites More sharing options...
Macrura Posted November 26, 2019 Share Posted November 26, 2019 21 hours ago, Klenkes said: $pages->get is supposed to get 1 page only, and you can't use template as a selector. Not true, this it totally legit: $settings = $pages->get("template=settings"); When the setting template is set to only allow 1 page of that type, it will return the settings page; Similarly for the search page, you can do $search = $pages->get("template=search"); this can be safer than referencing by ID – in most cases the search page is 1000, BUT if a client mistakenly trashes the search page, and you create a new replacement search page, then the template selector ends up being safer. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now