<?php if($this->fields->my_field): ?>
<p><b>Дополнительное поле:</b> <?php echo $this->fields->my_field; ?></p>
<?php endif; ?>
<?php if($this->fields->my_field): ?>
<p><b>Дополнительное поле:</b> <?php echo $this->fields->my_field; ?></p>
<?php else: ?>
<p>Контент по умолчанию.</p>
<?php endif; ?>
<?php $images = $child->images->findAll(); ?>
<?php if ($images): ?>
<?php foreach($images as $image): ?>
<img src="<?php echo $image->url(); ?>" alt="Description" />
<?php endforeach; ?>
<?php endif; ?>
<?php
if (!function_exists('menu_multilevel')) {
function menu_multilevel($page) {
$out = '<ul>';
if ($page->childrenCount() > 0) {
foreach ($page->children() as $child) {
$out .= '<li>';
$out .= $child->link();
if ($child->childrenCount() > 0) {
$out .= menu_multilevel($child);
}
$out .= '</li>';
}
}
return $out . '</ul>';
}
}
echo menu_multilevel($this->parent(0));
?>
<?php $this->includeSnippet('menu_multilevel'); ?>
Dispatcher::addRoute(array(
'/somewhere' => 'myplugin/myfunction'
));
class MypluginController extends Controller {
public function myfunction()
{
}
}
public function settings($args)
{
print_r($args)
}
Приветствую. Никак не могу взять в толк, каким образом заменить вывод "body" на собственный. Необходимо заменить его содержимое, сохранив шаблон. Как это можно сделать?
Behavior::add('content', 'myplugin/content.php');
class Content {
public function __construct( &$page, $params )
{
$page->part = new stdClass;
$page->part->body = new stdClass;
$page->part->body->name = 'body';
$page->part->body->content_html = 'content';
}
}
Получилось реализовать? Я пробовал сделать model аналогичную FrontPage, Но при такой реализации не работает PageFields, да и как-то это неправильно.
<?
$child = $this->children();
redirect( '/'.$child[0]->getUri() );
?>
<?
$child = $this->children();
redirect( '/'.$child[0]->url );
?>
Привет.
У каждой страницы есть заголовок, который задаётся в админке.
Допустим у нас есть страница "новость"
При входе на эту страницу в шаблон передаётся заголовок "новость"
Можно ли написать php-код, который переопределит данный заголовок?
Вставлять в шаблон до вывода заголовка (echo $this->title)
30 июня 2012 г., 1:24 пользователь riartem <ria...@gmail.com> написал:
Так в этом и проблема.
Заголовок ведь выводится в title
/^((?>[a-zA-Z\d!#$%&\'*+\-\/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&\'*+\-\/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$/
Зачем в helpers/email.php такая регулярка страшная?/^((?>[a-zA-Z\d!#$%&\'*+\-\/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&\'*+\-\/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$/
Выдрал функцию из joomla 1.5 и засунул в ядро. ИМХО, более-менее валидная, да и не требует включения громоздкого класса.
$web = $this->find('web');
$apps = $this->find('apps');
?>
<div id="scroll_container" class="scroll_container">
<div class="scroll_nav">
<span id="scroll_prev" class="scroll_prev">Previous</span>
<span id="scroll_next" class="scroll_next">Next</span>
</div>
<div class="scroll_wrapper">
<ul class="scroll_gallery">
<?php foreach ($apps->children(array('limit' => 10)) as $item): ?>
<li><div class="box">
<a href="<?php echo $item->url(); ?>"><div class="item"><?php echo $item->content('short'); ?></div></a>
</div><div class="work_overlay"><?php echo $item->link(); ?></div></li>
<?php endforeach; ?>
<?php foreach ($web->children(array('limit' => 10)) as $item): ?>
<li><div class="box">
<a href="<?php echo $item->url(); ?>"><div class="item"><?php echo $item->content('short'); ?></div></a>
</div><div class="work_overlay"><?php echo $item->link(); ?></div></li>
<?php endforeach; ?>
</ul>
</div>
</div><!--/.articles-list-->
Только в качестве параметра необходимо передать массив с перечнем ID разделов.<?phpclass FrontPageExt extends FrontPage{public static function findChildrens($id, $args=null, $value=array(), $include_hidden=false){$connection = Record::getConnection();// Collect attributes...$where = isset($args['where']) ? $args['where']: '';$order = isset($args['order']) ? $args['order']: 'position, id';$limit = isset($args['limit']) ? $args['limit']: 0;$offset = 0;// Prepare query parts$where_string = trim($where) == '' ? '' : "AND ".$where;$limit_string = $limit > 0 ? "LIMIT $offset, $limit" : '';$page_class = __CLASS__;
$sql = 'SELECT page.*, author.name AS author, author.id AS author_id, updator.name AS updator, updator.id AS updator_id '. 'FROM '.TABLE_PREFIX.'page AS page '. 'LEFT JOIN '.TABLE_PREFIX.'user AS author ON author.id = page.created_by_id '. 'LEFT JOIN '.TABLE_PREFIX.'user AS updator ON updator.id = page.updated_by_id '. 'WHERE parent_id IN(' . join(',', $id) . ') AND published_on <= NOW() AND (status_id='.self::STATUS_REVIEWED.' OR status_id='.self::STATUS_PUBLISHED.($include_hidden ? ' OR status_id='.self::STATUS_HIDDEN: '').') '. "$where_string ORDER BY $order $limit_string";
$stmt = $connection->prepare( $sql );$stmt->execute($value);if ($stmt->rowCount() > 0){$result = array();while ($page = $stmt->fetchObject()) {if ($page->parent_id)$parent = self::findById($page->parent_id);else$parent = null;// hook to be able to redefine the page class with behaviorif ( !empty($parent->behavior_id) ){// will return Page by default (if not found!)$page_class = Behavior::loadPageHack($parent->behavior_id);}// create the object page$page = new $page_class($page, $parent);Observer::notify('frontpage_children_found', array($page));
$result[] = $page;}return $result;}elsereturn null;}}$pages = FrontPageExt::findChildrens(array(39, 22));echo '<p>Разделы: Тестовый полигон, Расширения: </p><ul>';foreach ($pages as $page) {echo '<li>' . $page->parent->title() . ': '. $page->title() . '</li>';}echo '</ul>'
?>
$pages = FrontPageExt::findChildrens(array(39, 22), array('order' => 'created_on'));
Вот самая надежная регулярка на валидацию email, но больно уж страшная.
http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html
Здравствуйте! Хочу на 1 действующий сайт под вашей CMS добавить несколько новых страниц 4-го уровня вложенности. Все вроде нормально, делаю по аналогии с другими страницами такой же вложенности, но когда хочу посмотреть как выглядит данная страница на сайте, то почему-то не получается. В адресной строке пишет нужный адрес, а в реальности перебрасывает на страницу уровнем выше. Не пойму в чем дело, ведь все необходимое заполнил, опубликовал, для теста даже скопировал 1 в 1 пару страниц и ничего - старые открываются, новые - нет. Подскажите в чем может быть проблема? Сам этот сайт не разрабатывал, впервые ваш движок вижу изнутри, может что-то не заметил.