blog->id; $blog_status = $core->blog->status; $blog_name = $core->blog->name; $blog_desc = $core->blog->desc; $blog_settings = $core->blog->settings; $blog_url = $core->blog->url; $action = 'blog_pref.php'; $redir = 'blog_pref.php'; } else { dcPage::checkSuper(); try { if (empty($_REQUEST['id'])) { throw new Exception(__('No given blog id.')); } $rs = $core->getBlog($_REQUEST['id']); if (!$rs) { throw new Exception(__('No such blog.')); } $blog_id = $rs->blog_id; $blog_status = $rs->blog_status; $blog_name = $rs->blog_name; $blog_desc = $rs->blog_desc; $blog_settings = new dcSettings($core,$blog_id); $blog_url = $rs->blog_url ; } catch (Exception $e) { $core->error->add($e->getMessage()); } $action = 'blog.php'; $redir = 'blog.php?id=%s'; } # Language codes $lang_combo = dcAdminCombos::getAdminLangsCombo(); # Status combo $status_combo = dcAdminCombos::getBlogStatusescombo(); # Date format combo $now = time(); $date_formats = unserialize($blog_settings->system->date_formats); $time_formats = unserialize($blog_settings->system->time_formats); $date_formats_combo = array('' => ''); foreach ($date_formats as $format) { $date_formats_combo[dt::str($format, $now)] = $format; } $time_formats_combo = array('' => ''); foreach ($time_formats as $format) { $time_formats_combo[dt::str($format, $now)] = $format; } # URL scan modes $url_scan_combo = array( 'PATH_INFO' => 'path_info', 'QUERY_STRING' => 'query_string' ); # Post URL combo $post_url_combo = array( __('year/month/day/title') => '{y}/{m}/{d}/{t}', __('year/month/title') => '{y}/{m}/{t}', __('year/title') => '{y}/{t}', __('title') => '{t}', __('post id/title') => '{id}/{t}', __('post id') => '{id}' ); if (!in_array($blog_settings->system->post_url_format,$post_url_combo)) { $post_url_combo[html::escapeHTML($blog_settings->system->post_url_format)] = html::escapeHTML($blog_settings->system->post_url_format); } # Note title tag combo $note_title_tag_combo = array( __('H4') => 0, __('H3') => 1, __('P') => 2 ); # Image title combo $img_title_combo = array( __('(none)') => '', __('Title') => 'Title ;; separator(, )', __('Title, Date') => 'Title ;; Date(%b %Y) ;; separator(, )', __('Title, Country, Date') => 'Title ;; Country ;; Date(%b %Y) ;; separator(, )', __('Title, City, Country, Date') => 'Title ;; City ;; Country ;; Date(%b %Y) ;; separator(, )', ); if (!in_array($blog_settings->system->media_img_title_pattern,$img_title_combo)) { $img_title_combo[html::escapeHTML($blog_settings->system->media_img_title_pattern)] = html::escapeHTML($blog_settings->system->media_img_title_pattern); } # Image default size combo $img_default_size_combo = array(); try { $media = new dcMedia($core); $img_default_size_combo[__('original')] = 'o'; foreach ($media->thumb_sizes as $code => $size) { $img_default_size_combo[__($size[2])] = $code; } } catch (Exception $e) { $core->error->add($e->getMessage()); } # Image default alignment combo $img_default_alignment_combo = array( __('None') => 'none', __('Left') => 'left', __('Right') => 'right', __('Center') => 'center' ); # Robots policy options $robots_policy_options = array( 'INDEX,FOLLOW' => __("I would like search engines and archivers to index and archive my blog's content."), 'INDEX,FOLLOW,NOARCHIVE' => __("I would like search engines and archivers to index but not archive my blog's content."), 'NOINDEX,NOFOLLOW,NOARCHIVE' => __("I would like to prevent search engines and archivers from indexing or archiving my blog's content."), ); # Update a blog if ($blog_id && !empty($_POST) && $core->auth->check('admin',$blog_id)) { $cur = $core->con->openCursor($core->prefix.'blog'); if ($core->auth->isSuperAdmin()) { $cur->blog_id = $_POST['blog_id']; $cur->blog_url = preg_replace('/\?+$/','?',$_POST['blog_url']); if (in_array($_POST['blog_status'],$status_combo)) { $cur->blog_status = (integer) $_POST['blog_status']; } } $cur->blog_name = $_POST['blog_name']; $cur->blog_desc = $_POST['blog_desc']; $media_img_t_size = abs((integer) $_POST['media_img_t_size']); if ($media_img_t_size < 0) { $media_img_t_size = 100; } $media_img_s_size = abs((integer) $_POST['media_img_s_size']); if ($media_img_s_size < 0) { $media_img_s_size = 240; } $media_img_m_size = abs((integer) $_POST['media_img_m_size']); if ($media_img_m_size < 0) { $media_img_m_size = 448; } $nb_post_per_page = abs((integer) $_POST['nb_post_per_page']); if ($nb_post_per_page <= 1) { $nb_post_per_page = 1; } $nb_post_per_feed = abs((integer) $_POST['nb_post_per_feed']); if ($nb_post_per_feed <= 1) { $nb_post_per_feed = 1; } $nb_comment_per_feed = abs((integer) $_POST['nb_comment_per_feed']); if ($nb_comment_per_feed <= 1) { $nb_comment_per_feed = 1; } try { if ($cur->blog_id != null && $cur->blog_id != $blog_id) { $rs = $core->getBlog($cur->blog_id); if ($rs) { throw new Exception(__('This blog ID is already used.')); } } # --BEHAVIOR-- adminBeforeBlogUpdate $core->callBehavior('adminBeforeBlogUpdate',$cur,$blog_id); if (!preg_match('/^[a-z]{2}(-[a-z]{2})?$/',$_POST['lang'])) { throw new Exception(__('Invalid language code')); } $core->updBlog($blog_id,$cur); # --BEHAVIOR-- adminAfterBlogUpdate $core->callBehavior('adminAfterBlogUpdate',$cur,$blog_id); if ($cur->blog_id != null && $cur->blog_id != $blog_id) { if ($blog_id == $core->blog->id) { $core->setBlog($cur->blog_id); $_SESSION['sess_blog_id'] = $cur->blog_id; $blog_settings = $core->blog->settings; } else { $blog_settings = new dcSettings($core,$cur->blog_id); } $blog_id = $cur->blog_id; } $blog_settings->addNameSpace('system'); $blog_settings->system->put('editor',$_POST['editor']); $blog_settings->system->put('copyright_notice',$_POST['copyright_notice']); $blog_settings->system->put('post_url_format',$_POST['post_url_format']); $blog_settings->system->put('lang',$_POST['lang']); $blog_settings->system->put('blog_timezone',$_POST['blog_timezone']); $blog_settings->system->put('date_format',$_POST['date_format']); $blog_settings->system->put('time_format',$_POST['time_format']); $blog_settings->system->put('comments_ttl',abs((integer) $_POST['comments_ttl'])); $blog_settings->system->put('trackbacks_ttl',abs((integer) $_POST['trackbacks_ttl'])); $blog_settings->system->put('allow_comments',!empty($_POST['allow_comments'])); $blog_settings->system->put('allow_trackbacks',!empty($_POST['allow_trackbacks'])); $blog_settings->system->put('comments_pub',empty($_POST['comments_pub'])); $blog_settings->system->put('trackbacks_pub',empty($_POST['trackbacks_pub'])); $blog_settings->system->put('comments_nofollow',!empty($_POST['comments_nofollow'])); $blog_settings->system->put('wiki_comments',!empty($_POST['wiki_comments'])); $blog_settings->system->put('enable_xmlrpc',!empty($_POST['enable_xmlrpc'])); $blog_settings->system->put('note_title_tag',$_POST['note_title_tag']); $blog_settings->system->put('nb_post_per_page',$nb_post_per_page); $blog_settings->system->put('use_smilies',!empty($_POST['use_smilies'])); $blog_settings->system->put('inc_subcats',!empty($_POST['inc_subcats'])); $blog_settings->system->put('media_img_t_size',$media_img_t_size); $blog_settings->system->put('media_img_s_size',$media_img_s_size); $blog_settings->system->put('media_img_m_size',$media_img_m_size); $blog_settings->system->put('media_img_title_pattern',$_POST['media_img_title_pattern']); $blog_settings->system->put('media_img_use_dto_first',!empty($_POST['media_img_use_dto_first'])); $blog_settings->system->put('media_img_default_size',$_POST['media_img_default_size']); $blog_settings->system->put('media_img_default_alignment',$_POST['media_img_default_alignment']); $blog_settings->system->put('media_img_default_link',!empty($_POST['media_img_default_link'])); $blog_settings->system->put('nb_post_per_feed',$nb_post_per_feed); $blog_settings->system->put('nb_comment_per_feed',$nb_comment_per_feed); $blog_settings->system->put('short_feed_items',!empty($_POST['short_feed_items'])); if (isset($_POST['robots_policy'])) { $blog_settings->system->put('robots_policy',$_POST['robots_policy']); } # --BEHAVIOR-- adminBeforeBlogSettingsUpdate $core->callBehavior('adminBeforeBlogSettingsUpdate',$blog_settings); if ($core->auth->isSuperAdmin() && in_array($_POST['url_scan'],$url_scan_combo)) { $blog_settings->system->put('url_scan',$_POST['url_scan']); } dcPage::addSuccessNotice(__('Blog has been successfully updated.')); http::redirect(sprintf($redir,$blog_id)); } catch (Exception $e) { $core->error->add($e->getMessage()); } } if ($standalone) { $breadcrumb = dcPage::breadcrumb( array( html::escapeHTML($blog_name) => '', __('Blog settings') => '' ) ); } else { $breadcrumb = dcPage::breadcrumb( array( __('System') => '', __('Blogs') => 'blogs.php', __('Blog settings').' : '.html::escapeHTML($blog_name) => '' )); } dcPage::open(__('Blog settings'), '". dcPage::jsConfirmClose('blog-form'). dcPage::jsLoad('js/_blog_pref.js'). # --BEHAVIOR-- adminBlogPreferencesHeaders $core->callBehavior('adminBlogPreferencesHeaders'). dcPage::jsPageTabs(), $breadcrumb ); if ($blog_id) { if (!empty($_GET['add'])) { dcPage::success(__('Blog has been successfully created.')); } if (!empty($_GET['upd'])) { dcPage::success(__('Blog has been successfully updated.')); } echo '
'. '

'.__('Parameters').'

'. '
'; echo '

'.__('Blog details').'

'. $core->formNonce(); if ($core->auth->isSuperAdmin()) { echo '

'. form::field('blog_id',30,32,html::escapeHTML($blog_id)).'

'. '

'.__('At least 2 characters using letters, numbers or symbols.').'

'. '

'.__('Please note that changing your blog ID may require changes in your public index.php file.').'

'; } echo '

'. form::field('blog_name',30,255,html::escapeHTML($blog_name)).'

'; if ($core->auth->isSuperAdmin()) { echo '

'. form::field('blog_url',50,255,html::escapeHTML($blog_url)).'

'. '

'. form::combo('url_scan',$url_scan_combo,$blog_settings->system->url_scan).'

'; try { # Test URL of blog by testing it's ATOM feed $file = $blog_url.$core->url->getURLFor('feed','atom'); $path = ''; $status = '404'; $content = ''; $client = netHttp::initClient($file,$path); if ($client !== false) { $client->setTimeout(4); $client->setUserAgent($_SERVER['HTTP_USER_AGENT']); $client->get($path); $status = $client->getStatus(); $content = $client->getContent(); } if ($status != '200') { // Might be 404 (URL not found), 670 (blog not online), ... echo '

'. sprintf(__('The URL of blog or the URL scan method might not be well set (%s return a %s status).'), $file,$status). '

'; } else { if (substr($content,0,6) != ''. sprintf(__('The URL of blog or the URL scan method might not be well set (%s does not return an ATOM feed).'), $file). '

'; } } } catch (Exception $e) { $core->error->add($e->getMessage()); } echo '

'. form::combo('blog_status',$status_combo,$blog_status).'

'; } echo '

'. form::textarea('blog_desc',60,5,html::escapeHTML($blog_desc)).'

'. '
'; echo '

'.__('Blog configuration').'

'. '
'. '
'. '

'. form::field('editor',30,255,html::escapeHTML($blog_settings->system->editor)). '

'. '

'. form::combo('lang',$lang_combo,$blog_settings->system->lang,'l10n'). '

'. '

'. form::combo('blog_timezone',dt::getZones(true,true),html::escapeHTML($blog_settings->system->blog_timezone)). '

'. '

'. form::field('copyright_notice',30,255,html::escapeHTML($blog_settings->system->copyright_notice)). '

'. '
'. '
'. '

'. form::combo('post_url_format',$post_url_combo,html::escapeHTML($blog_settings->system->post_url_format)). '

'. '

'. form::combo('note_title_tag',$note_title_tag_combo,$blog_settings->system->note_title_tag). '

'. '

'. form::checkbox('enable_xmlrpc','1',$blog_settings->system->enable_xmlrpc). __('Enable XML/RPC interface').'

'; echo '

'.__('XML/RPC interface allows you to edit your blog with an external client.').'

'; if ($blog_settings->system->enable_xmlrpc) { echo '

'.__('XML/RPC interface is active. You should set the following parameters on your XML/RPC client:').'

'. '
    '. '
  • '.__('Server URL:').' '. sprintf(DC_XMLRPC_URL,$core->blog->url,$core->blog->id). '
  • '. '
  • '.__('Blogging system:').' Movable Type
  • '. '
  • '.__('User name:').' '.$core->auth->userID().'
  • '. '
  • '.__('Password:').' <'.__('your password').'>
  • '. '
  • '.__('Blog ID:').' 1
  • '. '
'; } echo '
'. '
'. '
'. //Opera sucks '
'; echo '

'.__('Comments and trackbacks').'

'. '
'. '
'. '

'. '

'. '

'. '

'.__('No limit: leave blank.').'

'. '

'. '
'. '
'. '

'. '

'. '

'. '

'.__('No limit: leave blank.').'

'. '

'. '
'. '
'. //Opera sucks '
'. '
'. //Opera sucks '
'; echo '

'.__('Blog presentation').'

'. '
'. '
'. '

'. form::field('date_format',30,255,html::escapeHTML($blog_settings->system->date_format)). form::combo('date_format_select',$date_formats_combo,'','','',false,'title="'.__('Pattern of date').'"'). '

'. '

'.__('Sample:').' '.dt::str(html::escapeHTML($blog_settings->system->date_format)).'

'. '

'. form::field('time_format',30,255,html::escapeHTML($blog_settings->system->time_format)). form::combo('time_format_select',$time_formats_combo,'','','',false,'title="'.__('Pattern of time').'"'). '

'. '

'.__('Sample:').' '.dt::str(html::escapeHTML($blog_settings->system->time_format)).'

'. '

'. '
'. '
'. '

'. '

'. '

'. '

'. '

'. '
'. '
'. '
'. //Opera sucks '
'; echo '

'.__('Media and images').'

'. '

'. __('Please note that if you change current settings bellow, they will now apply to all new images in the media manager.'). ' '.__('Be carefull if you share it with other blogs in your installation.').'

'. '
'. '
'. '
'.__('Generated image sizes (in pixels)').'
'. '

'. form::field('media_img_t_size',3,3,$blog_settings->system->media_img_t_size).'

'. '

'. form::field('media_img_s_size',3,3,$blog_settings->system->media_img_s_size).'

'. '

'. form::field('media_img_m_size',3,3,$blog_settings->system->media_img_m_size).'

'. '
'. '
'. '
'.__('Default image insertion attributes').'
'. '

'. form::combo('media_img_title_pattern',$img_title_combo,html::escapeHTML($blog_settings->system->media_img_title_pattern)).' '. '

'. '

'.__('It is retrieved from the picture\'s metadata.').'

'. '

'. form::combo('media_img_default_size',$img_default_size_combo, (html::escapeHTML($blog_settings->system->media_img_default_size) != '' ? html::escapeHTML($blog_settings->system->media_img_default_size) : 'm')). '

'. '

'. form::combo('media_img_default_alignment',$img_default_alignment_combo,html::escapeHTML($blog_settings->system->media_img_default_alignment)). '

'. '

'. '
'. '
'. '
'. //Opera sucks '
'; echo '

'.__('Search engines robots policy').'

'; $i = 0; foreach ($robots_policy_options as $k => $v) { echo '

'; $i++; } echo '
'; # --BEHAVIOR-- adminBlogPreferencesForm $core->callBehavior('adminBlogPreferencesForm',$core,$blog_settings); echo '

'. (!$standalone ? form::hidden('id',$blog_id) : ''). '

'. '
'; if ($core->auth->isSuperAdmin() && $blog_id != $core->blog->id) { echo '
'. '

'. form::hidden(array('blog_id'),$blog_id). $core->formNonce().'

'. '
'; } else { if ($blog_id == $core->blog->id) { echo '

'.__('The current blog cannot be deleted.').'

'; } else { echo '

'.__('Only superadmin can delete a blog.').'

'; } } echo '
'; # # Users on the blog (with permissions) $blog_users = $core->getBlogPermissions($blog_id,$core->auth->isSuperAdmin()); $perm_types = $core->auth->getPermissionsTypes(); echo '
'. '

'.__('Users on this blog').'

'; if (empty($blog_users)) { echo '

'.__('No users').'

'; } else { if ($core->auth->isSuperAdmin()) { $user_url_p = '%1$s'; } else { $user_url_p = '%1$s'; } # Sort users list on user_id key ksort($blog_users); $post_type = $core->getPostTypes(); $current_blog_id = $core->blog->id; if ($blog_id != $core->blog->id) { $core->setBlog($blog_id); } foreach ($blog_users as $k => $v) { if (count($v['p']) > 0) { echo '
'. '

'.sprintf($user_url_p,html::escapeHTML($k)). ' ('.html::escapeHTML(dcUtils::getUserCN( $k, $v['name'], $v['firstname'], $v['displayname'] )).')

'; if ($core->auth->isSuperAdmin()) { echo '

'.__('Email:').' '. ($v['email'] != '' ? ''.$v['email'].'' : __('(none)')). '

'; } echo '
'.__('Publications on this blog:').'
'. ''; echo '
'.__('Permissions:').'
'. ''; if (!$v['super'] && $core->auth->isSuperAdmin()) { echo '
'. '

'. form::hidden(array('redir'),'blog_pref.php?id='.$k). form::hidden(array('action'),'perms'). form::hidden(array('users[]'),$k). form::hidden(array('blogs[]'),$blog_id). $core->formNonce(). '

'. '
'; } echo '
'; } } if ($current_blog_id != $core->blog->id) { $core->setBlog($current_blog_id); } } echo '
'; } dcPage::helpBlock('core_blog_pref'); dcPage::close(); ?>