예제 #1
0
 /**
  * Gets an array of kshow objects which contain a foreign key that references this object.
  *
  * If this collection has already been initialized with an identical Criteria, it returns the collection.
  * Otherwise if this kuser has previously been saved, it will retrieve
  * related kshows from storage. If this kuser is new, it will return
  * an empty collection or the current collection, the criteria is ignored on a new object.
  *
  * @param      PropelPDO $con
  * @param      Criteria $criteria
  * @return     array kshow[]
  * @throws     PropelException
  */
 public function getkshows($criteria = null, PropelPDO $con = null)
 {
     if ($criteria === null) {
         $criteria = new Criteria(kuserPeer::DATABASE_NAME);
     } elseif ($criteria instanceof Criteria) {
         $criteria = clone $criteria;
     }
     if ($this->collkshows === null) {
         if ($this->isNew()) {
             $this->collkshows = array();
         } else {
             $criteria->add(kshowPeer::PRODUCER_ID, $this->id);
             kshowPeer::addSelectColumns($criteria);
             $this->collkshows = kshowPeer::doSelect($criteria, $con);
         }
     } else {
         // criteria has no effect for a new object
         if (!$this->isNew()) {
             // the following code is to determine if a new query is
             // called for.  If the criteria is the same as the last
             // one, just return the collection.
             $criteria->add(kshowPeer::PRODUCER_ID, $this->id);
             kshowPeer::addSelectColumns($criteria);
             if (!isset($this->lastkshowCriteria) || !$this->lastkshowCriteria->equals($criteria)) {
                 $this->collkshows = kshowPeer::doSelect($criteria, $con);
             }
         }
     }
     $this->lastkshowCriteria = $criteria;
     return $this->collkshows;
 }
예제 #2
0
 public function executeImpl($partner_id, $subp_id, $puser_id, $partner_prefix, $puser_kuser)
 {
     myDbHelper::$use_alternative_con = myDbHelper::DB_HELPER_CONN_PROPEL3;
     // TODO -  verify permissions for viewing lists
     $detailed = $this->getP("detailed", false);
     $limit = $this->getP("page_size", 10);
     $page = $this->getP("page", 1);
     //$order_by = int( $this->getP ( "order_by" , -1 ) );
     $puser_kuser = null;
     $use_filter_puser_id = $this->getP("use_filter_puser_id", 1);
     if ($use_filter_puser_id == "false") {
         $use_filter_puser_id = false;
     }
     $offset = ($page - 1) * $limit;
     kuserPeer::setUseCriteriaFilter(false);
     entryPeer::setUseCriteriaFilter(false);
     $c = new Criteria();
     // filter
     $filter = new kshowFilter();
     $fields_set = $filter->fillObjectFromRequest($this->getInputParams(), "filter_", null);
     $this->setExtraFilters($filter);
     if ($use_filter_puser_id) {
         // if so - assume the producer_id is infact a puser_id and the kuser_id should be retrieved
         $target_puser_id = $filter->get("_eq_producer_id");
         //$this->getP ( "filter__eq_producer_id" );
         if ($target_puser_id) {
             // TODO - shoud we use the subp_id to retrieve the puser_kuser ?
             $puser_kuser = PuserKuserPeer::retrieveByPartnerAndUid($partner_id, null, $target_puser_id, false);
             if ($puser_kuser) {
                 $filter->set("_eq_producer_id", $puser_kuser->getkuserId());
                 //$this->setP ( "filter__eq_producer_id" , $puser_kuser->getkuserId() );
             }
         }
     }
     $filter->attachToCriteria($c);
     //if ($order_by != -1) kshowPeer::setOrder( $c , $order_by );
     $count = kshowPeer::doCount($c);
     $offset = ($page - 1) * $limit;
     $c->setLimit($limit);
     if ($offset > 0) {
         $c->setOffset($offset);
     }
     if ($detailed) {
         $list = kshowPeer::doSelectJoinAll($c);
         $level = objectWrapperBase::DETAIL_LEVEL_DETAILED;
         // will have to populate the show_entry before according to the ids
         fdb::populateObjects($list, new entryPeer(), "showentryid", "showentry", false);
     } else {
         $list = kshowPeer::doSelect($c);
         $level = objectWrapperBase::DETAIL_LEVEL_REGULAR;
         // will have to populate the show_entry before according to the ids - we display the thumbnail from the showentry
         fdb::populateObjects($list, new entryPeer(), "showentryid", "showentry", false);
     }
     $this->addMsg("count", $count);
     $this->addMsg("page_size", $limit);
     $this->addMsg("page", $page);
     $wrapper = objectWrapperBase::getWrapperClass($list, $level);
     $this->addMsg("kshows", $wrapper);
     if ($use_filter_puser_id) {
         $this->addMsg("user", objectWrapperBase::getWrapperClass($puser_kuser, objectWrapperBase::DETAIL_LEVEL_REGULAR));
     }
     /*
     		$i=0;
     		foreach ( $list as $kshow )
     		{
     			$i++;
     			$wrapper =  objectWrapperBase::getWrapperClass( $kshow  , $level );
     			$this->addMsg ( "kshow$i" , $wrapper ) ;
     		}
     */
     //		echo "bbb count: " . count ($list );
     //		echo "ccc";
     //$this->addMsg ( "kshows" , $wrapper ) ;
 }
예제 #3
0
 public static function retrieveByIndexedCustomData3($name)
 {
     $c = new Criteria();
     $c->add(kshowPeer::INDEXED_CUSTOM_DATA_3, $name);
     $kshows = kshowPeer::doSelect($c);
     if ($kshows != null) {
         return $kshows[0];
     }
     return null;
 }
예제 #4
0
 /**
  * Retrieve multiple objects by pkey.
  *
  * @param      array $pks List of primary keys
  * @param      PropelPDO $con the connection to use
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function retrieveByPKs($pks, PropelPDO $con = null)
 {
     $objs = null;
     if (empty($pks)) {
         $objs = array();
     } else {
         $criteria = new Criteria(kshowPeer::DATABASE_NAME);
         $criteria->add(kshowPeer::ID, $pks, Criteria::IN);
         $objs = kshowPeer::doSelect($criteria, $con);
     }
     return $objs;
 }
 /**
  * Will investigate a single entry
  */
 public function execute()
 {
     $this->forceSystemAuthentication();
     myDbHelper::$use_alternative_con = myDbHelper::DB_HELPER_CONN_PROPEL2;
     entryPeer::setUseCriteriaFilter(false);
     $this->result = NULL;
     $fast = $this->getRequestParameter("fast", "") != "";
     $this->fast = $fast;
     $kshow_id = $this->getRequestParameter("kshow_id");
     $this->kshow_id = $kshow_id;
     $this->kshow = NULL;
     $entry_id = $this->getRequestParameter("entry_id");
     $this->entry_id = $entry_id;
     $this->entry = NULL;
     $this->error = $this->getRequestParameter("error");
     $this->bg_entry = NULL;
     if (!empty($kshow_id)) {
         $c = new Criteria();
         $c->add(kshowPeer::ID, $kshow_id);
         $kshows = kshowPeer::doSelect($c);
         $kshow = new kshow();
         if (!$kshows) {
             $this->result = "No kshow [{$kshow_id}] in DB";
             return;
         }
         $kshow_original = $kshows[0];
         $kshow_original->getShowEntry();
         // pre fetch
         $kshow_original->getIntro();
         // pre fetch
         $this->kshow_original = $kshows[0];
         $this->kshow = new genericObjectWrapper($this->kshow_original, true);
         $alredy_exist_entries = array();
         $alredy_exist_entries[] = $kshow_original->getShowEntryId();
         if ($kshow_original->getIntroId()) {
             $alredy_exist_entries[] = $kshow_original->getIntroId();
         }
         $skin_obj = $this->kshow_original->getSkinObj();
         $bg_entry_id = $skin_obj->get("bg_entry_id");
         if ($bg_entry_id) {
             $alredy_exist_entries[] = $bg_entry_id;
             $this->bg_entry = new genericObjectWrapper(entryPeer::retrieveByPK($bg_entry_id), true);
         }
         $c = new Criteria();
         $c->add(entryPeer::ID, $alredy_exist_entries, Criteria::NOT_IN);
         $c->setLimit(100);
         $this->kshow_entries = $this->kshow_original->getEntrysJoinKuser($c);
         return;
         //return "KshowSuccess";
     }
     if (empty($entry_id)) {
         return;
     }
     entryPeer::setUseCriteriaFilter(false);
     // from entry table
     $c = new Criteria();
     $c->add(entryPeer::ID, $entry_id);
     //$entries = entryPeer::doSelectJoinAll ( $c );
     $entries = entryPeer::doSelect($c);
     if (!$entries) {
         $this->result = "No entry [{$entry_id}] in DB";
         return;
     }
     $this->entry = new genericObjectWrapper($entries[0], true);
     // from conversion table
     $c = new Criteria();
     $c->add(conversionPeer::ENTRY_ID, $entry_id);
     $original_conversions = conversionPeer::doSelect($c);
     //$this->conversions = array() ; //
     $this->conversions = $original_conversions;
     //new genericObjectWrapper( $original_conversions );
     // find all relevant batches in DB
     // from batch_job table
     $c = new Criteria();
     //$c->add ( BatchJobPeer::DATA , "%\"entryId\";i:" . $entry_id . ";%" , Criteria::LIKE );
     $c->add(BatchJobPeer::ENTRY_ID, $entry_id);
     $original_batch_jobs = BatchJobPeer::doSelect($c);
     $this->batch_jobs = $original_batch_jobs;
     // new genericObjectWrapper( $original_batch_jobs );
     // use this as a refernece of all the directories
     //		myBatchFileConverterServer::init( true );
     $entry_patttern = "/" . $entry_id . "\\..*/";
     $getFileData_method = array('kFile', 'getFileData');
     $getFileDataWithContent_method = array('kFile', 'getFileDataWithContent');
     // find all relevant files on disk
     $c = new Criteria();
     $c->add(FileSyncPeer::OBJECT_TYPE, FileSyncObjectType::ENTRY);
     $c->add(FileSyncPeer::OBJECT_ID, $entry_id);
     // order by OBJECT SUB TYPE
     $c->addAscendingOrderByColumn(FileSyncPeer::OBJECT_SUB_TYPE);
     $this->file_syncs = FileSyncPeer::doSelect($c);
     $file_sync_links = array();
     $flavors = assetPeer::retrieveFlavorsByEntryId($entry_id);
     $flavor_ids = array();
     $this->flavors = array();
     foreach ($flavors as $f) {
         $flavor_ids[] = $f->getId();
         $f->getflavorParamsOutputs();
         $f->getflavorParams();
         $f->getmediaInfos();
         $this->flavors[] = $f;
     }
     // find all relevant files on disk
     $c = new Criteria();
     $c->add(FileSyncPeer::OBJECT_TYPE, FileSyncObjectType::FLAVOR_ASSET);
     $c->add(FileSyncPeer::OBJECT_ID, $flavor_ids, Criteria::IN);
     // order by OBJECT SUB TYPE
     $c->addAscendingOrderByColumn(FileSyncPeer::OBJECT_SUB_TYPE);
     $flavors_file_syncs = FileSyncPeer::doSelect($c);
     $this->flavors_file_syncs = array();
     foreach ($flavors as $flav) {
         foreach ($flavors_file_syncs as $f) {
             if ($f->getLinkedId()) {
                 $file_sync_links[] = $f->getLinkedId();
             }
             if ($f->getObjectId() == $flav->getId()) {
                 $this->flavors_file_syncs[$flav->getId()][] = $f;
             }
         }
     }
     if ($this->file_syncs) {
         $this->file_syncs_by_sub_type = array();
         foreach ($this->file_syncs as $fs) {
             if ($fs->getLinkedId()) {
                 $file_sync_links[] = $fs->getLinkedId();
             }
             $sub_type = $fs->getObjectSubType();
             if (!isset($this->file_syncs_by_sub_type[$sub_type])) {
                 // create the array
                 $this->file_syncs_by_sub_type[$sub_type] = array();
             }
             $this->file_syncs_by_sub_type[$sub_type][] = $fs;
         }
     } else {
         $this->file_syncs_by_sub_type = array();
     }
     $file_sync_criteria = new Criteria();
     $file_sync_criteria->add(FileSyncPeer::ID, $file_sync_links, Criteria::IN);
     $this->file_sync_links = FileSyncPeer::doSelect($file_sync_criteria);
     $track_entry_c = new Criteria();
     $track_entry_c->add(TrackEntryPeer::ENTRY_ID, $entry_id);
     $track_entry_list = TrackEntryPeer::doSelect($track_entry_c);
     $more_interesting_track_entries = array();
     foreach ($track_entry_list as $track_entry) {
         if ($track_entry->getTrackEventTypeId() == TrackEntry::TRACK_ENTRY_EVENT_TYPE_ADD_ENTRY) {
             $more_interesting_track_entries[] = $track_entry->getParam3Str();
         }
     }
     $track_entry_list2 = array();
     //very heavy query, skip this
     /*
     // add all the track_entry objects that are related (joined on PARAM_3_STR)
     $track_entry_c2 = new Criteria();
     $track_entry_c2->add ( TrackEntryPeer::TRACK_EVENT_TYPE_ID , TrackEntry::TRACK_ENTRY_EVENT_TYPE_UPLOADED_FILE );
     $track_entry_c2->add ( TrackEntryPeer::PARAM_3_STR , $more_interesting_track_entries , Criteria::IN );
     $track_entry_list2 = TrackEntryPeer::doSelect ( $track_entry_c2 );
     */
     // first add the TRACK_ENTRY_EVENT_TYPE_UPLOADED_FILE - they most probably happend before the rest
     $this->track_entry_list = array_merge($track_entry_list2, $track_entry_list);
 }
// fetch #contribs and #entries per kshow
$kshow_ids = array();
$entry_ids = array();
foreach ($widget_log_list as $widget_log) {
    $kshow_id = $widget_log->getKshowId();
    if ($kshow_id) {
        $kshow_ids[] = $kshow_id;
    }
    $entry_id = $widget_log->getEntryId();
    if ($entry_id) {
        $entry_ids[] = $entry_id;
    }
}
$c = new Criteria();
$c->add(kshowPeer::ID, $kshow_ids, Criteria::IN);
$kshows = kshowPeer::doSelect($c);
$kshows_data = array();
foreach ($kshows as $kshow) {
    $kshows_data[$kshow->getId()] = $kshow;
}
// fetch sum of plays per entry_id
$c = new Criteria();
$c->addSelectColumn(WidgetLogPeer::ENTRY_ID);
$c->addSelectColumn("SUM(" . WidgetLogPeer::PLAYS . ")");
$c->addSelectColumn("SUM(" . WidgetLogPeer::VIEWS . ")");
$c->add(WidgetLogPeer::ENTRY_ID, $entry_ids, Criteria::IN);
$c->addGroupByColumn(WidgetLogPeer::ENTRY_ID);
$rs = WidgetLogPeer::doSelectStmt($c);
$entries_data = array();
$res = $rs->fetchAll();
foreach ($res as $record) {
예제 #7
0
 /**
  * 
  */
 public function execute()
 {
     $this->forceSystemAuthentication();
     $kshow_ids = $this->getP("kshow_ids");
     $partner_id = $this->getP("partner_id");
     //		$subp_id = $this->getP ( "subp_id") ;
     $source_widget_id = $this->getP("source_widget_id", 201);
     $submitted = $this->getP("submitted");
     $method = $this->getP("method", "partner");
     $create = $this->getP("create");
     $limit = $this->getP("limit", 20);
     if ($limit > 300) {
         $limit = 300;
     }
     $this->kshow_ids = $kshow_ids;
     $this->partner_id = $partner_id;
     //		$this->subp_id = $subp_id;
     $this->source_widget_id = $source_widget_id;
     $this->method = $method;
     $this->create = $create;
     $this->limit = $limit;
     $errors = array();
     $res = array();
     $this->errors = $errors;
     if ($submitted) {
         // fetch all kshows that don't have widgets
         $c = new Criteria();
         $c->setLimit($limit);
         if ($method == "list") {
             $c->add(kshowPeer::ID, @explode(",", $kshow_ids), Criteria::IN);
         } else {
             $c->add(kshowPeer::PARTNER_ID, $partner_id);
             if ($create) {
                 // because we want to create - select those kshows that are not marked as "have widgets"
                 $c->add(kshowPeer::INDEXED_CUSTOM_DATA_3, NULL, Criteria::EQUAL);
             }
         }
         $c->addAscendingOrderByColumn(kshowPeer::CREATED_AT);
         // start at a specific int_id
         // TODO
         $kshows = kshowPeer::doSelect($c);
         $kshow_id_list = $this->getIdList($kshows, $partner_id, $errors);
         $fixed_kshows = array();
         //			$res [] = print_r ( $kshow_id_list ,true );
         $this->res = $res;
         //return;
         $this->errors = $errors;
         if ($kshow_id_list) {
             //	$kshow_id_list_copy = array_  $kshow_id_list ;
             $widget_c = new Criteria();
             $widget_c->add(widgetPeer::PARTNER_ID, $partner_id);
             $widget_c->add(widgetPeer::KSHOW_ID, $kshow_id_list, Criteria::IN);
             $widgets = widgetPeer::doSelect($widget_c);
             // - IMPORTANT - add the kshow->setIndexedCustomData3 ( $widget_id ) for wikis
             foreach ($widgets as $widget) {
                 $kshow_id = $widget->getKshowId();
                 if (in_array($kshow_id, $fixed_kshows)) {
                     continue;
                 }
                 // mark the kshow as one that has a widget
                 $kshow = $this->getKshow($kshows, $kshow_id);
                 $kshow->setIndexedCustomData3($widget->getId());
                 $kshow->save();
                 unset($kshow_id_list[$kshow_id]);
                 $fixed_kshows[$kshow_id] = $kshow_id;
                 //					print_r ( $kshow_id_list );
             }
             // create widgets for those who are still on the list === don't have a widget
             foreach ($kshow_id_list as $kshow_id) {
                 if (in_array($kshow_id, $fixed_kshows)) {
                     continue;
                 }
                 $kshow = $this->getKshow($kshows, $kshow_id);
                 $widget = widget::createWidget($kshow, null, $source_widget_id, null);
                 $kshow->setIndexedCustomData3($widget->getId());
                 $kshow->save();
                 $fixed_kshows[$kshow_id] = $kshow_id;
             }
         }
         // create a log file of the kaltura-widget tagss for wiki
         $partner = PartnerPeer::retrieveByPK($partner_id);
         if ($partner) {
             $secret = $partner->getSecret();
             foreach ($kshows as $kshow) {
                 $kshow_id = $kshow->getId();
                 $article_name = "Video {$kshow_id}";
                 $widget_id = $kshow->getIndexedCustomData3();
                 // by now this kshow should have the widget id
                 $subp_id = $kshow->getSubpId();
                 $md5 = md5($kshow_id . $partner_id . $subp_id . $article_name . $widget_id . $secret);
                 $hash = substr($md5, 1, 10);
                 $values = array($kshow_id, $partner_id, $subp_id, $article_name, $widget_id, $hash);
                 $str = implode("|", $values);
                 $base64_str = base64_encode($str);
                 $res[] = "kalturaid='{$kshow_id}'\tkwid='{$base64_str}'\t'{$str}'\n";
             }
         }
     }
     $this->res = $res;
 }
예제 #8
0
 private function getKshowsForKuser($kuser, $kshow)
 {
     $c = new Criteria();
     $c->add(kshowPeer::PRODUCER_ID, $kuser->getId());
     if ($kshow) {
         $c->add(KshowPeer::ID, $kshow->getId(), Criteria::NOT_EQUAL);
     }
     $other_kshows_by_producer = kshowPeer::doSelect($c);
     return $other_kshows_by_producer;
 }