本文整理匯總了PHP中Icon::setApp方法的典型用法代碼示例。如果您正苦於以下問題:PHP Icon::setApp方法的具體用法?PHP Icon::setApp怎麽用?PHP Icon::setApp使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類Icon
的用法示例。
在下文中一共展示了Icon::setApp方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: icons_in_post
protected function icons_in_post($full_post)
{
$post = $full_post['.postmsg'][0];
if (strpos($post->html(), '<img') === false) {
return array();
}
$post_text = self::clean_up_post($post);
$artist_name = $full_post['.postleft dt'][0]->text();
$post_imgs = $post['img.postimg'];
if (empty($post_imgs)) {
return array();
}
$icons = self::find_icon_names_in_post($post_imgs, $post_text);
$post_icons = array();
foreach ($icons as $img_src => $name) {
$icon = Make::an('Icon')->like('src', $img_src)->first();
$changed = false;
if (!$icon) {
$icon = new Icon();
$icon->src = $img_src;
$icon->theme_id = $this->theme->id;
// TODO: make this DRYer too
if ($artist_name) {
$artist = Make::an('Artist')->like('name', $artist_name)->first();
if (!$artist) {
$artist = new Artist();
$artist->name = $artist_name;
$artist->save();
}
$icon->setArtist($artist);
}
$changed = true;
}
if ($name && !$icon->app()) {
$app = Make::an('App')->like('name', $name)->first();
if (!$app) {
$app = new App();
$app->name = $name;
$app->save();
}
$icon->setApp($app);
$changed = true;
}
if ($changed) {
$icon->save();
}
$post_icons[] = $icon;
}
/*
$matches = array();
$maybe_names = array();
if (preg_match('/(([a-z0-9\-]{2,}), )+([a-z0-9\- ]{2,})/i', $post_text, $matches)) {
$maybe_names = explode(',', $matches[0]); # [0] == entire match
$maybe_names = array_map('trim', $maybe_names);
} else {
$w = self::WORD_REGEXP;
$and_match = array();
if (preg_match('/'.$w.' and '.$w.'/iu', $post_text, $and_match)) {
$maybe_names = explode(' and ', $and_match[0]);
$maybe_names = array_map('trim', $maybe_names);
}
}
if ($maybe_names) {
foreach ($post_icons as &$post_icon) {
$post_icon->maybe_names = array_merge($post_icon->maybe_names, $maybe_names);
}
}
*/
return $post_icons;
}