function pieRefererList($resource, $context) { $page = new Page(); $referers = array(); // Traverse all pages and search for matching links. for ($item = $page->first(); $item; $item = $page->next()) { if (!$page->read($item, 0)) { return false; } // Check for aliases that refer to originals. if ($page->meta['type'] == "alias" && $page->meta['original'] == $resource) { $referers[$item] = true; continue; } if ($context == "page") { if (!$page->meta['pages']) { continue; } $links = explode(" ", $page->meta['pages']); } elseif ($context == "file") { if (!$page->meta['files']) { continue; } $links = explode(" ", $page->meta['files']); } else { return false; } if (!in_array($resource, $links)) { continue; } // $item refers to $resource. $referers[$item] = true; } $referers = array_keys($referers); sort($referers); return $referers; }
$hint_show = $GLOBALS['pie']['locale']->key("Show"); $hint_edit = $GLOBALS['pie']['locale']->key("Edit"); $ip = pieMakeString('[[$^icon_link]]'); foreach ($referers as $name => $i) { $n++; print '<tr class="' . ($n % 2 ? "oddRow" : "evenRow") . '">' . '<td>' . pieMakeLink(htmlspecialchars($name), array('page' => $name), array('class' => "itemLink")) . '</td>' . "<td style=\"text-align: right;\">{$i}</td>" . '<td>' . pieMakeLink("<img src=\"{$ip}/information.png\" />", array('action' => "pageinfo", 'page' => $name), array('title' => $hint_info)) . '</td>' . '<td>' . pieMakeLink("<img src=\"{$ip}/page_edit.png\" />", array('action' => "edit", 'page' => $name), array('title' => $hint_edit)) . '</td>' . "</tr>\n"; } print "</table>\n"; } elseif (@$_REQUEST['mode'] == "links") { // Walk all pages and examine their links. // Collect a list of _links_, i. e. destinations of broken links. $page = new Page(); $file = new File(); $deadpages = array(); $deadfiles = array(); for ($name = $page->first(); $name; $name = $page->next()) { if (!$page->read($name, 0)) { pieError("SourceReadError"); } if ($page->meta['pages']) { // There are page links that are to be checked. $list = explode(" ", $page->meta['pages']); foreach ($list as $i) { if (!$page->exists($i)) { $deadpages[$i]++; } } } if ($page->meta['files']) { // There are file links that are to be checked. $list = explode(" ", $page->meta['files']);
/** @test **/ public function it_fetches_the_carousel_images_associated_with_the_page() { $this->createComponent('pages'); $this->createComponent('carousel', function ($component) { $component->string('image'); }); $this->insertOn('pages', ['title' => 'Landing Page']); $this->insertOn('carousel', ['image' => '/path/to/image1.jpg']); $this->insertOn('carousel', ['image' => '/path/to/image2.jpg']); $this->insertOn('carousel', ['image' => '/path/to/image3.jpg']); Page::first()->usesMany(Carousel::class); Carousel::get()->each(function ($carousel) { $carousel->registerTo(Page::first()); }); $carousel = Page::first()->carousel; $this->assertEquals('/path/to/image1.jpg', $carousel[0]->image); $this->assertEquals('/path/to/image2.jpg', $carousel[1]->image); $this->assertEquals('/path/to/image3.jpg', $carousel[2]->image); }
} $diff1 = $activity->start->diff($activity->end); $now = new ActiveRecord\DateTime(); $diff2 = $now->diff($activity->end); $is_end = $activity->end->getTimestamp() - $now->getTimestamp() > 0 ? false : true; if ($diff2->days == 0 || $diff1->days == 0) { $res->diff = $is_end ? 100 : 99; } else { $res->diff = round(($diff1->days - $diff2->days) / $diff1->days * 100, 0, PHP_ROUND_HALF_DOWN); } $res->is_end = $is_end; switch ($activity->status) { case 2: $res->status_bar = "success"; $res->is_end = true; $res->diff = 100; break; case 1: $res->status_bar = "-striped progress-info"; break; default: $res->status_bar = "info"; break; } $res->home = Page::first(array('conditions' => array('activity_id' => $activity->id, 'title' => 'home'))); $res->pages = Page::all(array('conditions' => array('activity_id' => $activity->id)))->asArray(); $res->questions = "Les questions manquent là... :-)"; $res->comments = $activity->getComments()->asArray(); $res->organizers = $activity->getOrganizers()->asArray(); $res->activity = $activity; $res->useTemplate("Liste des activités");