Exemple #1
0
 $count = 0;
 if ($items = Categories::list_by_date(0, 1000, 'raw')) {
     // retrieve the id and all attributes
     $errors_count = 0;
     foreach ($items as $id => $item) {
         // animate user screen and take care of time
         $count++;
         if (!($count % 100)) {
             $context['text'] .= sprintf(i18n::s('%d records have been processed'), $count) . BR . "\n";
             // ensure enough execution time
             Safe::set_time_limit(30);
         }
         // rebuild titles path
         $path = '';
         if ($item['anchor']) {
             $path .= Categories::build_path($item['anchor']) . '|';
         }
         $path .= strip_tags($item['title']);
         // save in the database
         $query = "UPDATE " . SQL::table_name('categories') . " SET " . " path='" . SQL::escape($path) . "'" . " WHERE id = " . SQL::escape($item['id']);
         if (SQL::query($query) === FALSE) {
             if (++$errors_count >= 5) {
                 $context['text'] .= i18n::s('Too many successive errors. Aborted') . BR . "\n";
                 break;
             }
         } else {
             $errors_count = 0;
         }
     }
 }
 // ending message
Exemple #2
0
 /**
  * put an updated category in the database
  *
  * @param array an array of fields
  * @return string either a null string, or some text describing an error to be inserted into the html response
  **/
 public static function put(&$fields)
 {
     global $context;
     // id cannot be empty
     if (!$fields['id'] || !is_numeric($fields['id'])) {
         return i18n::s('No item has the provided id.');
     }
     // title cannot be empty
     if (!$fields['title']) {
         return i18n::s('No title has been provided.');
     }
     // sanity filter
     $fields['title'] = strip_tags($fields['title'], '<br>');
     // protect from hackers
     if (isset($fields['icon_url'])) {
         $fields['icon_url'] = encode_link($fields['icon_url']);
     }
     if (isset($fields['thumbnail_url'])) {
         $fields['thumbnail_url'] = encode_link($fields['thumbnail_url']);
     }
     // set default values for this editor
     Surfer::check_default_editor($fields);
     // reinforce date formats
     if (!isset($fields['expiry_date']) || $fields['expiry_date'] <= NULL_DATE) {
         $fields['expiry_date'] = NULL_DATE;
     }
     // set layout for categories
     if (!isset($fields['categories_layout']) || !$fields['categories_layout']) {
         $fields['categories_layout'] = 'decorated';
     } elseif ($fields['categories_layout'] == 'custom') {
         if (isset($fields['categories_custom_layout']) && $fields['categories_custom_layout']) {
             $fields['categories_layout'] = $fields['categories_custom_layout'];
         } else {
             $fields['categories_layout'] = 'decorated';
         }
     }
     // set layout for sections
     if (!isset($fields['sections_layout']) || !$fields['sections_layout']) {
         $fields['sections_layout'] = 'decorated';
     } elseif ($fields['sections_layout'] == 'custom') {
         if (isset($fields['sections_custom_layout']) && $fields['sections_custom_layout']) {
             $fields['sections_layout'] = $fields['sections_custom_layout'];
         } else {
             $fields['sections_layout'] = 'decorated';
         }
     }
     // set layout for articles
     if (!isset($fields['articles_layout']) || !$fields['articles_layout']) {
         $fields['articles_layout'] = 'decorated';
     } elseif ($fields['articles_layout'] == 'custom') {
         if (isset($fields['articles_custom_layout']) && $fields['articles_custom_layout']) {
             $fields['articles_layout'] = $fields['articles_custom_layout'];
         } else {
             $fields['articles_layout'] = 'decorated';
         }
     }
     // set layout for users
     if (!isset($fields['users_layout']) || !$fields['users_layout']) {
         $fields['users_layout'] = 'decorated';
     } elseif ($fields['users_layout'] == 'custom') {
         if (isset($fields['users_custom_layout']) && $fields['users_custom_layout']) {
             $fields['users_layout'] = $fields['users_custom_layout'];
         } else {
             $fields['users_layout'] = 'decorated';
         }
     }
     // set default values
     if (!isset($fields['active_set'])) {
         $fields['active_set'] = 'Y';
     }
     // cascade anchor access rights
     if (isset($fields['anchor']) && ($anchor = Anchors::get($fields['anchor']))) {
         $fields['active'] = $anchor->ceil_rights($fields['active_set']);
     } else {
         $fields['active'] = $fields['active_set'];
     }
     // build path information
     $path = '';
     if (isset($fields['anchor']) && $fields['anchor']) {
         $path .= Categories::build_path($fields['anchor']) . '|';
     }
     $path .= $fields['title'];
     // update an existing record
     $query = "UPDATE " . SQL::table_name('categories') . " SET ";
     if ($fields['nick_name']) {
         $query .= "nick_name='" . SQL::escape($fields['nick_name']) . "',";
     }
     $query .= "anchor='" . SQL::escape(isset($fields['anchor']) ? $fields['anchor'] : '') . "'," . "active='" . SQL::escape($fields['active']) . "'," . "active_set='" . SQL::escape($fields['active_set']) . "'," . "articles_layout='" . SQL::escape($fields['articles_layout']) . "'," . "background_color='" . SQL::escape(isset($fields['background_color']) ? $fields['background_color'] : '') . "'," . "categories_count='" . SQL::escape($fields['categories_count']) . "' ," . "categories_layout='" . SQL::escape($fields['categories_layout']) . "'," . "categories_overlay='" . SQL::escape(isset($fields['categories_overlay']) ? $fields['categories_overlay'] : '') . "'," . "description='" . SQL::escape($fields['description']) . "'," . "display='" . SQL::escape(isset($fields['display']) ? $fields['display'] : '') . "'," . "expiry_date='" . SQL::escape($fields['expiry_date']) . "'," . "extra='" . SQL::escape(isset($fields['extra']) ? $fields['extra'] : '') . "'," . "icon_url='" . SQL::escape($fields['icon_url']) . "'," . "introduction='" . SQL::escape(isset($fields['introduction']) ? $fields['introduction'] : '') . "'," . "keywords='" . SQL::escape($fields['keywords']) . "'," . "options='" . SQL::escape($fields['options']) . "'," . "overlay='" . SQL::escape(isset($fields['overlay']) ? $fields['overlay'] : '') . "'," . "overlay_id='" . SQL::escape(isset($fields['overlay_id']) ? $fields['overlay_id'] : '') . "'," . "path='" . SQL::escape($path) . "'," . "prefix='" . SQL::escape(isset($fields['prefix']) ? $fields['prefix'] : '') . "'," . "rank='" . SQL::escape($fields['rank']) . "'," . "sections_layout='" . SQL::escape($fields['sections_layout']) . "'," . "suffix='" . SQL::escape(isset($fields['suffix']) ? $fields['suffix'] : '') . "'," . "thumbnail_url='" . SQL::escape($fields['thumbnail_url']) . "'," . "title='" . SQL::escape($fields['title']) . "'," . "trailer='" . SQL::escape(isset($fields['trailer']) ? $fields['trailer'] : '') . "'," . "users_layout='" . SQL::escape($fields['users_layout']) . "'";
     // maybe a silent update
     if (!isset($fields['silent']) || $fields['silent'] != 'Y') {
         $query .= ",\n" . "edit_name='" . SQL::escape($fields['edit_name']) . "',\n" . "edit_id=" . SQL::escape($fields['edit_id']) . ",\n" . "edit_address='" . SQL::escape($fields['edit_address']) . "',\n" . "edit_action='category:update',\n" . "edit_date='" . SQL::escape($fields['edit_date']) . "'";
     }
     // actual update query
     $query .= " WHERE id = " . SQL::escape($fields['id']);
     SQL::query($query);
     // clear the cache for categories
     Categories::clear($fields);
     // end of job
     return NULL;
 }