Beispiel #1
0
 /**
  * Tag management (let admins rename tags, remove tags, etc).
  * TODO: manage the Plugins.Tagging.Required boolean setting that makes tagging required or not.
  * @param SettingsController $Sender
  */
 public function SettingsController_Tagging_Create($Sender, $Args)
 {
     $Sender->Permission('Garden.Settings.Manage');
     $Sender->Title('Tagging');
     $Sender->AddSideMenu('settings/tagging');
     $Sender->AddCSSFile('plugins/Tagging/design/tagadmin.css');
     $Sender->AddJSFile('plugins/Tagging/admin.js');
     $SQL = Gdn::SQL();
     $Sender->Form->Method = 'get';
     $Sender->Form->InputPrefix = '';
     $Sender->Form->Action = '/settings/tagging';
     list($Offset, $Limit) = OffsetLimit($Sender->Request->Get('Page'), 100);
     $Sender->SetData('_Limit', $Limit);
     if ($Search = $Sender->Request->Get('Search')) {
         $SQL->Like('Name', $Search, 'right');
     }
     $Data = $SQL->Select('t.*')->From('Tag t')->OrderBy('t.Name', 'asc')->OrderBy('t.CountDiscussions', 'desc')->Limit($Limit, $Offset)->Get()->ResultArray();
     $Sender->SetData('Tags', $Data);
     if ($Search = $Sender->Request->Get('Search')) {
         $SQL->Like('Name', $Search, 'right');
     }
     $Sender->SetData('RecordCount', $SQL->GetCount('Tag'));
     $Sender->Render('Tagging', '', 'plugins/Tagging');
 }
 /**
  * List all tags and allow searching
  *
  * @param SettingsController $Sender
  */
 public function SettingsController_Tagging_Create($Sender, $Search = NULL, $Type = NULL, $Page = NULL)
 {
     $Sender->Title('Tagging');
     $Sender->AddSideMenu('settings/tagging');
     $Sender->AddCSSFile('plugins/Tagging/design/tagadmin.css');
     $Sender->AddJSFile('plugins/Tagging/js/admin.js');
     $SQL = Gdn::SQL();
     // Get all tag types
     $TagModel = TagModel::instance();
     $TagTypes = $TagModel->getTagTypes();
     $Sender->Form->Method = 'get';
     $Sender->Form->InputPrefix = '';
     list($Offset, $Limit) = OffsetLimit($Page, 100);
     $Sender->SetData('_Limit', $Limit);
     if ($Search) {
         $SQL->Like('FullName', $Search, 'right');
     }
     // This type doesn't actually exist, but it will represent the
     // blank types in the column.
     if (strtolower($Type) == 'tags') {
         $Type = '';
     }
     if (!$Search) {
         if ($Type !== NULL) {
             if ($Type === 'null') {
                 $Type = NULL;
             }
             $SQL->Where('Type', $Type);
         } else {
             if ($Type == '') {
                 $SQL->Where('Type', '');
             }
         }
     } else {
         $Type = 'Search Results';
         // This is made up, and exists so search results can be placed in
         // their own tab.
         $TagTypes[$Type] = array('key' => $Type);
     }
     $TagTypes = array_change_key_case($TagTypes, CASE_LOWER);
     // Store type for view
     $TagType = !empty($Type) ? $Type : 'Tags';
     $Sender->SetData('_TagType', $TagType);
     // Store tag types
     $Sender->SetData('_TagTypes', $TagTypes);
     // Determine if new tags can be added for the current type.
     $CanAddTags = !empty($TagTypes[$Type]['addtag']) && $TagTypes[$Type]['addtag'] ? 1 : 0;
     $Sender->SetData('_CanAddTags', $CanAddTags);
     $Data = $SQL->Select('t.*')->From('Tag t')->OrderBy('t.FullName', 'asc')->OrderBy('t.CountDiscussions', 'desc')->Limit($Limit, $Offset)->Get()->ResultArray();
     $Sender->SetData('Tags', $Data);
     if ($Search) {
         $SQL->Like('Name', $Search, 'right');
     }
     // Make sure search uses its own search type, so results appear
     // in their own tab.
     $Sender->Form->Action = Url('/settings/tagging/?type=' . $TagType);
     // Search results pagination will mess up a bit, so don't provide a type
     // in the count.
     $RecordCountWhere = array('Type' => $Type);
     if ($Type == '') {
         $RecordCountWhere = array('Type' => '');
     }
     if ($Search) {
         $RecordCountWhere = array();
     }
     $Sender->SetData('RecordCount', $SQL->GetCount('Tag', $RecordCountWhere));
     $Sender->Render('tagging', '', 'plugins/Tagging');
 }
 /**
  * List all tags and allow searching
  *
  * @param SettingsController $Sender
  */
 public function SettingsController_Tagging_Create($Sender, $Search = NULL, $Type = NULL, $Page = NULL)
 {
     $Sender->Title('Tagging');
     $Sender->AddSideMenu('settings/tagging');
     $Sender->AddCSSFile('plugins/Tagging/design/tagadmin.css');
     $Sender->AddJSFile('plugins/Tagging/js/admin.js');
     $SQL = Gdn::SQL();
     $Sender->Form->Method = 'get';
     $Sender->Form->InputPrefix = '';
     //$Sender->Form->Action = '/settings/tagging';
     list($Offset, $Limit) = OffsetLimit($Page, 100);
     $Sender->SetData('_Limit', $Limit);
     if ($Search) {
         $SQL->Like('FullName', $Search, 'right');
     }
     if ($Type !== NULL) {
         if ($Type === 'null') {
             $Type = NULL;
         }
         $SQL->Where('Type', $Type);
     }
     $Data = $SQL->Select('t.*')->From('Tag t')->OrderBy('t.FullName', 'asc')->OrderBy('t.CountDiscussions', 'desc')->Limit($Limit, $Offset)->Get()->ResultArray();
     $Sender->SetData('Tags', $Data);
     if ($Search = $Sender->Request->Get('Search')) {
         $SQL->Like('Name', $Search, 'right');
     }
     $Sender->SetData('RecordCount', $SQL->GetCount('Tag'));
     $Sender->Render('tagging', '', 'plugins/Tagging');
 }