示例#1
0
			/**
			 * Checks DB for all possible searchable_fields
			 * @return void
			 */
			function viewer_searchable_fields() // {{{
			{
				if($this->viewer_id)
				{
					$e = new entity( $this->viewer_id );
					$fields = get_fields_by_type( $this->type_id );
					$column_add = $e->get_left_relationship( 'view_searchable_fields' );
					foreach( $column_add AS $value )
					{
						if(!empty($fields[ $value->get_value( 'name' ) ] ) )
							$this->add_filter( $value->get_value( 'name' ) );
					}
				}
			} // }}}
 /**
  * Returns the HTML for displaying a given theme's primary image
  * 
  * @param entity $theme the themes whose image we're selecting
  * @return string HTML for image
  */
 function get_theme_image($theme)
 {
     $image = $theme->get_left_relationship('theme_to_primary_image');
     $image = empty($image[0]) ? '' : $image[0];
     if (!empty($image)) {
         ob_start();
         show_image($image, true, true, false);
         $ret = ob_get_contents();
         ob_end_clean();
         return $ret;
     } else {
         return '';
     }
 }
示例#3
0
 function _add_bedrich_theme()
 {
     $theme_id = id_of('bedrich_theme');
     $created_theme = false;
     $created_template = false;
     $created_css = false;
     if (empty($theme_id)) {
         if ($this->_testmode) {
             $this->_report[] = 'Would have created the Bedrich theme';
         } else {
             $theme_id = reason_create_entity(id_of('master_admin'), id_of('theme_type'), $this->_user_id, 'Bedrich', array('unique_name' => 'bedrich_theme'));
             $this->_report[] = 'Created the Bedrich theme (id: ' . $theme_id . ')';
             $created_theme = true;
         }
     } else {
         $this->_report[] = 'Bedrich theme exists. No need to create it.';
     }
     $es = new entity_selector(id_of('master_admin'));
     $es->add_type(id_of('minisite_template'));
     $es->add_relation('entity.name = "bedrich"');
     $es->set_num(1);
     $templates = $es->run_one();
     if (empty($templates)) {
         if ($this->_testmode) {
             $this->_report[] = 'Would have created the Bedrich template';
         } else {
             $template_id = reason_create_entity(id_of('master_admin'), id_of('minisite_template'), $this->_user_id, 'bedrich');
             $this->_report[] = 'Created the Bedrich template (id: ' . $template_id . ')';
             $created_template = true;
         }
     } else {
         $template = current($templates);
         $template_id = $template->id();
         $this->_report[] = 'bedrich template exists. No need to create it.';
     }
     $es = new entity_selector(id_of('master_admin'));
     $es->add_type(id_of('css'));
     $es->add_relation('url = "css/bedrich/bedrich.css"');
     $es->set_num(1);
     $css = $es->run_one();
     if (empty($css)) {
         if ($this->_testmode) {
             $this->_report[] = 'Would have created the Bedrich css';
         } else {
             $css_id = reason_create_entity(id_of('master_admin'), id_of('css'), $this->_user_id, 'bedrich', array('url' => 'css/bedrich/bedrich.css', 'css_relative_to_reason_http_base' => 'true'));
             $this->_report[] = 'Created the Bedrich css (id: ' . $css_id . ')';
             $created_css = true;
         }
     } else {
         $c = current($css);
         $css_id = $c->id();
         $this->_report[] = 'bedrich css exists. No need to create it.';
     }
     if (!empty($theme_id)) {
         $theme = new entity($theme_id);
         if (!empty($css_id) && !$theme->get_left_relationship('theme_to_external_css_url')) {
             create_relationship($theme_id, $css_id, relationship_id_of('theme_to_external_css_url'));
             $this->_report[] = 'attached bedrich css to bedrich theme';
         } else {
             $this->_report[] = 'bedrich theme already attached to css. No need to attach css.';
         }
         if (!empty($template_id) && !$theme->get_left_relationship('theme_to_minisite_template')) {
             create_relationship($theme_id, $template_id, relationship_id_of('theme_to_minisite_template'));
             $this->_report[] = 'attached bedrich template to bedrich theme';
         } else {
             $this->_report[] = 'berich theme already attached to template. No need to attach template.';
         }
     }
 }
 function process($test = true)
 {
     $ret = '';
     foreach ($this->get_entity_info() as $type_uname => $entities) {
         foreach ($entities as $entity) {
             if (!reason_unique_name_exists($entity['unique_name'])) {
                 if ($test) {
                     $ret .= '<p>Would create ' . $type_uname . ' ' . $entity['name'] . '</p>';
                 } elseif (reason_create_entity(id_of('master_admin'), id_of($type_uname), $this->user_id, $entity['name'], $entity)) {
                     $ret .= '<p>Created ' . $type_uname . ' ' . $entity['name'] . '</p>';
                 } else {
                     $ret .= '<p>ERROR: Unable to create ' . $type_uname . ' ' . $entity['name'] . '</p>';
                 }
             }
         }
     }
     foreach ($this->get_theme_rels() as $theme_uname => $rels) {
         if (reason_unique_name_exists($theme_uname)) {
             $theme = new entity(id_of($theme_uname));
             foreach ($rels as $rel_name => $rel_unames) {
                 $rel_id = relationship_id_of($rel_name);
                 if (empty($rel_id)) {
                     $ret .= '<p>ERROR: unable to create relationships with name ' . $rel_name . ' -- not found</p>';
                     continue;
                 }
                 $rel_entities = $theme->get_left_relationship($rel_name);
                 $rel_unames_in_db = array();
                 foreach ($rel_entities as $rel_entity) {
                     if ($rel_entity->get_value('unique_name')) {
                         $rel_unames_in_db[] = $rel_entity->get_value('unique_name');
                     }
                 }
                 $unrelated = array_diff($rel_unames, $rel_unames_in_db);
                 foreach ($unrelated as $unrelated_uname) {
                     if (!$test) {
                         if (!reason_unique_name_exists($unrelated_uname)) {
                             $ret .= '<p>ERROR: unable to create relationships with unique name ' . $unrelated_uname . ' -- not found</p>';
                             continue;
                         } else {
                             $unrelated_id = id_of($unrelated_uname);
                         }
                     }
                     if ($test) {
                         $ret .= '<p>Would create relationship from ' . $theme_uname . ' to ' . $unrelated_uname . '</p>';
                     } elseif (create_relationship($theme->id(), $unrelated_id, $rel_id)) {
                         $ret .= '<p>Created relationship from ' . $theme_uname . ' to ' . $unrelated_uname . '</p>';
                     } else {
                         $ret .= '<p>ERROR: Unable to create relationship from ' . $theme_uname . ' to ' . $unrelated_uname . '</p>';
                     }
                 }
             }
         } elseif ($test) {
             $ret .= '<p>Would create relationships from ' . $theme_uname . ' to css and templates.</p>';
         } else {
             trigger_error('Unable to create relationship with theme ' . $theme_uname . ' -- it doesn\'t appear to exist!');
             $ret .= '<p>ERROR: Unable to create relationship with theme ' . $theme_uname . ' -- it doesn\'t appear to exist!. Please try running this script again.</p>';
         }
     }
     if (empty($ret)) {
         $ret .= '<p>Upgrade complete; nothing to do</p>';
     }
     return $ret;
 }