コード例 #1
0
 public function index($param)
 {
     // get installed CSS themes
     $files = Fari_File::listing('/public');
     $themes = array();
     foreach ($files as $file) {
         $css = end(explode('/', $file['path']));
         // its cheap
         if ($file['type'] == 'file' && substr($css, -4) == '.css') {
             $themes[] = substr($css, 0, -4);
         }
     }
     natsort(&$themes);
     $this->view->themes = $themes;
     // are we saving changes?
     if ($_POST) {
         $css = Fari_Escape::text($_POST['css']);
         $title = Fari_Escape::text($_POST['title']);
         Fari_Db::update('settings', array('value' => $css), array('name' => 'theme'));
         Fari_Db::update('settings', array('value' => $title), array('name' => 'title'));
         Fari_Message::success('Settings change successful.');
     }
     $this->view->messages = Fari_Message::get();
     $this->view->settings = Fari_Db::toKeyValues(Fari_Db::select('settings', 'name, value'), 'name');
     $this->view->display('settings');
 }
コード例 #2
0
ファイル: Sitemap.php プロジェクト: radekstepan/Knowledgebase
 /**
  * Builds and returns an XML sitemap.
  * @uses date in standard db form, W3C Datetime (YYYY-MM-DD)
  *
  * @param string/array $items Database table we work with or array of data already
  * @param string $linksURL URL to append slug links to (e.g., http://.$_SERVER['HTTP_HOST'].WWW_DIR.Controller)
  * @return XML sitemap
  */
 public function create($items, $linksURL = NULL)
 {
     // try determining this server's address if URL is not provided
     if (!isset($linksURL)) {
         $linksURL = 'http://' . $_SERVER['SERVER_NAME'] . WWW_DIR;
     }
     // add a trailing slash to URL
     $linksURL = Fari_File::addTrailingSlash($linksURL);
     // start dom string
     $DOMDocument = new DOMDocument('1.0', 'UTF-8');
     // <urlset> root
     $rootNode = $DOMDocument->appendChild($DOMDocument->createElementNS('http://www.sitemaps.org/schemas/sitemap/0.9', 'urlset'));
     // get items from the database if we are not passing a formed array already
     if (!is_array($items)) {
         // last modification date and page priority won't be provided
         if (!isset($this->lastModificationDate) && !isset($this->pagePriority)) {
             $columns = $this->linkSlug;
             // last modification date won't be provided
         } elseif (!isset($this->lastModificationDate)) {
             $columns = $this->linkSlug . ', ' . $this->pagePriority;
             // page priority won't be provided
         } elseif (!isset($this->pagePriority)) {
             $columns = $this->linkSlug . ', ' . $this->lastModificationDate;
             // we will be provided with all params
         } else {
             $columns = $this->linkSlug . ',' . $this->lastModificationDate . ',' . $this->pagePriority;
         }
         // the actual call to the db
         $items = Fari_Db::select($items, $columns);
     }
     // set default element text, page priority
     $pagePriorityText = self::LINK_PRIORITY;
     // set default element text, generate last modification date as now
     $lastModificationText = date('Y-m-d');
     // traverse through all records
     foreach ($items as $item) {
         // <urlset><url>
         $URLNode = $rootNode->appendChild($DOMDocument->createElement('url'));
         // <urlset><url><loc> link address
         $URLNode->appendChild($DOMDocument->createElement('loc', $linksURL . $item[$this->linkSlug]));
         // <urlset><url><lastmod> last modification date of the page
         if (isset($this->lastModificationDate)) {
             $lastModificationText = $item[$this->lastModificationDate];
             // convert UNIX timestamp to well formed date if present
             if (strlen($lastModificationText) == 10 && $lastModificationText > 1000000000) {
                 $lastModificationText = date('Y-m-d', $lastModificationText);
             }
         }
         $URLNode->appendChild($DOMDocument->createElement('lastmod', $lastModificationText));
         // <urlset><url><priority> page priority
         if (isset($this->pagePriority)) {
             $pagePriorityText = $item[$this->pagePriority];
         }
         $URLNode->appendChild($DOMDocument->createElement('priority', $pagePriorityText));
     }
     // generate XML and return
     $DOMDocument->formatOutput = TRUE;
     return $DOMDocument->saveXML();
 }