Example #1
0
 public static function load($lang)
 {
     self::$lazy = true;
     if (file_exists(self::$dir . '/' . self::$domain . '/' . $lang . '.po')) {
         self::$messages[$lang] = self::compress(self::read(self::$dir . '/' . self::$domain . '/' . $lang . '.po'));
     } else {
         if (class_exists('Intl_' . $lang)) {
             call_user_func_array(array('Intl_' . $lang, 'init'), array(&self::$messages));
         }
     }
     return isset(self::$messages[$lang]) ? self::$messages[$lang] : array();
 }
Example #2
0
 /**
  * Update channel and return feed information error, lastUpdate
  * and newItems
  *
  * @param string $feedHash Hash corresponding to a feed
  *
  * @return empty string
  */
 public function updateFeedsHash($feedsHash, $force, $format = '')
 {
     $i = 0;
     $errorCount = 0;
     $noUpdateCount = 0;
     $successCount = 0;
     $nbItemsAdded = 0;
     $feedsHash = $this->orderFeedsForUpdate($feedsHash);
     $nbFeeds = count($feedsHash);
     ob_end_flush();
     if (ob_get_level() == 0) {
         ob_start();
     }
     if ($format === 'html') {
         echo '<table class="table table-striped">
           <thead>
             <tr>
               <th>#</th>
               <th>' . Intl::msg('Feed') . '</th>
               <th>' . Intl::msg('New items') . '</th>
               <th>' . Intl::msg('Time') . '</th>
               <th>' . Intl::msg('Status') . '</th>
             </tr>
           </thead>
           <tbody>';
     }
     $start = microtime(true);
     $lastTime = $start;
     foreach ($feedsHash as $feedHash) {
         $i++;
         $feed = $this->getFeed($feedHash);
         $strBegin = "\n" . '<tr><td>' . str_pad($i . '/' . $nbFeeds, 7, ' ', STR_PAD_LEFT) . '</td><td> <a href="?currentHash=' . $feedHash . '">' . substr(str_pad($feed['title'], 50), 0, 50) . '</a> </td><td>';
         if ($format === 'html') {
             echo str_pad($strBegin, 4096);
             ob_flush();
             flush();
         }
         $strEnd = '';
         $time = microtime(true) - $lastTime;
         $lastTime += $time;
         if ($force or $this->needUpdate($feed)) {
             $info = $this->updateChannel($feedHash, $force);
             $countItems = count($info['newItems']);
             $strEnd .= '<span class="text-success">' . str_pad($countItems, 3, ' ', STR_PAD_LEFT) . '</span> </td><td>' . str_pad(number_format($time, 1), 6, ' ', STR_PAD_LEFT) . 's </td><td>';
             if (empty($info['error'])) {
                 $strEnd .= Intl::msg('Successfully updated') . '</td></tr>';
                 $successCount++;
                 $nbItemsAdded += $countItems;
             } else {
                 $strEnd .= '<span class="text-error">' . $info['error'] . '</span></td></tr>';
                 $errorCount++;
             }
         } else {
             $strEnd .= str_pad('0', 3, ' ', STR_PAD_LEFT) . ' </td><td>' . str_pad(number_format($time, 1), 6, ' ', STR_PAD_LEFT) . 's </td><td><span class="text-warning">' . Intl::msg('Already up-to-date') . '</span></td></tr>';
             $noUpdateCount++;
         }
         if ($format === 'html') {
             echo str_pad($strEnd, 4096);
             ob_flush();
             flush();
         } else {
             echo strip_tags($strBegin . $strEnd);
         }
     }
     // summary
     $strBegin = "\n" . '<tr><td></td><td> ' . Intl::msg('Total:') . ' ' . $nbFeeds . ' ' . ($nbFeeds > 1 ? Intl::msg('items') : Intl::msg('item')) . '</td><td>';
     if ($format === 'html') {
         echo str_pad($strBegin, 4096);
         ob_flush();
         flush();
     }
     $strEnd = str_pad($nbItemsAdded, 3, ' ', STR_PAD_LEFT) . ' </td><td>' . str_pad(number_format(microtime(true) - $start, 1), 6, ' ', STR_PAD_LEFT) . 's </td><td>' . '<span class="text-success">' . $successCount . ' ' . ($successCount > 1 ? Intl::msg('Successes') : Intl::msg('Success')) . ' </span><br />' . '<span class="text-warning">' . $noUpdateCount . ' ' . Intl::msg('Up-to-date') . ' </span><br />' . '<span class="text-error">' . $errorCount . ' ' . ($errorCount > 1 ? Intl::msg('Errors') : Intl::msg('Error')) . ' </span></td></tr>';
     if ($format === 'html') {
         echo str_pad($strEnd, 4096);
         ob_flush();
         flush();
     } else {
         echo strip_tags($strBegin . $strEnd);
     }
     if ($format === 'html') {
         echo '</tbody></table>';
     }
     return '';
 }
Example #3
0
 /**
  * Import feed from opml file (as exported by google reader,
  * tiny tiny rss, rss lounge... using
  */
 public static function importOpml($kfData)
 {
     $feeds = $kfData['feeds'];
     $folders = $kfData['folders'];
     $filename = $_FILES['filetoupload']['name'];
     $filesize = $_FILES['filetoupload']['size'];
     $data = file_get_contents($_FILES['filetoupload']['tmp_name']);
     $overwrite = isset($_POST['overwrite']);
     $opml = new DOMDocument('1.0', 'UTF-8');
     $importCount = 0;
     if ($opml->loadXML($data)) {
         $body = $opml->getElementsByTagName('body');
         $xmlArray = Opml::getArrayFromXml($body->item(0));
         $array = Opml::convertOpmlArray($xmlArray['outline']);
         foreach ($array as $hashUrl => $arrayInfo) {
             $title = '';
             if (isset($arrayInfo['title'])) {
                 $title = $arrayInfo['title'];
             } else {
                 if (isset($arrayInfo['text'])) {
                     $title = $arrayInfo['text'];
                 }
             }
             $foldersHash = array();
             if (isset($arrayInfo['folders'])) {
                 foreach ($arrayInfo['folders'] as $folder) {
                     $folderTitle = html_entity_decode($folder, ENT_QUOTES, 'UTF-8');
                     $folderHash = MyTool::smallHash($folderTitle);
                     if (!isset($folders[$folderHash])) {
                         $folders[$folderHash] = array('title' => $folderTitle, 'isOpen' => true);
                     }
                     $foldersHash[] = $folderHash;
                 }
             }
             $timeUpdate = 'auto';
             $lastUpdate = 0;
             $xmlUrl = '';
             if (isset($arrayInfo['xmlUrl'])) {
                 $xmlUrl = $arrayInfo['xmlUrl'];
             }
             $htmlUrl = '';
             if (isset($arrayInfo['htmlUrl'])) {
                 $htmlUrl = $arrayInfo['htmlUrl'];
             }
             $description = '';
             if (isset($arrayInfo['description'])) {
                 $description = $arrayInfo['description'];
             }
             // create new feed
             if (!empty($xmlUrl)) {
                 $oldFeed = array('nbUnread' => 0, 'nbAll' => 0);
                 if (isset($feeds[$hashUrl])) {
                     $oldFeed['nbUnread'] = $feeds[$hashUrl]['nbUnread'];
                     $oldFeed['nbAll'] = $feeds[$hashUrl]['nbAll'];
                 }
                 $currentFeed = array('title' => html_entity_decode($title, ENT_QUOTES, 'UTF-8'), 'description' => html_entity_decode($description, ENT_QUOTES, 'UTF-8'), 'htmlUrl' => html_entity_decode($htmlUrl, ENT_QUOTES, 'UTF-8'), 'xmlUrl' => html_entity_decode($xmlUrl, ENT_QUOTES, 'UTF-8'), 'nbUnread' => $oldFeed['nbUnread'], 'nbAll' => $oldFeed['nbAll'], 'foldersHash' => $foldersHash, 'timeUpdate' => $timeUpdate, 'lastUpdate' => $lastUpdate);
                 if ($overwrite || !isset($feeds[$hashUrl])) {
                     $feeds[$hashUrl] = $currentFeed;
                     $importCount++;
                 }
             }
         }
         FeedPage::$pb->assign('class', 'text-success');
         FeedPage::$pb->assign('message', sprintf(Intl::msg('File %s (%s) was successfully processed: %d links imported'), htmlspecialchars($filename), MyTool::humanBytes($filesize), $importCount));
         FeedPage::$pb->assign('button', Intl::msg('Continue'));
         FeedPage::$pb->assign('referer', MyTool::getUrl());
         FeedPage::$pb->renderPage('message', false);
         $kfData['feeds'] = $feeds;
         $kfData['folders'] = $folders;
         return $kfData;
     } else {
         FeedPage::$pb->assign('message', sprintf(Intl::msg('File %s (%s) has an unknown file format. Check encoding, try to remove accents and try again. Nothing was imported.'), htmlspecialchars($filename), MyTool::humanBytes($filesize)));
         FeedPage::$pb->renderPage('message');
     }
 }
Example #4
0
<?php

if (!class_exists('Intl_fr')) {
    class Intl_fr
    {
        public static function init(&$messages)
        {
            $messages['fr'] = unserialize(gzinflate(base64_decode("\n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")));
        }
    }
    Intl::addLang('fr', 'Français', 'flag-fr');
}
Example #5
0
                $hashView = 'Folder (' . $kf->getFolderTitle($currentHash) . '): <span id="nb-unread">' . $unread . '</span><span class="hidden-phone"> ' . Intl::msg('unread items') . '</span>';
                break;
            default:
                $hashView = '<span id="nb-unread">' . $unread . '</span><span class="hidden-phone"> ' . Intl::msg('unread items') . '</span>';
                break;
        }
        $menu = $kfc->getMenu();
        $paging = $kfc->getPaging();
        $pb->assign('menu', $menu);
        $pb->assign('paging', $paging);
        $pb->assign('currentHashType', $currentHashType);
        $pb->assign('currentHashView', $hashView);
        $pb->assign('currentPage', (int) $currentPage);
        $pb->assign('maxPage', (int) $maxPage);
        $pb->assign('currentItemHash', $currentItemHash);
        $pb->assign('nbItems', $nbItems);
        $pb->assign('items', $listItems);
        if ($listFeeds == 'show') {
            $pb->assign('feedsView', $kf->getFeedsView());
        }
        $pb->assign('pagetitle', strip_tags($kfc->title));
        $pb->renderPage('index');
    } else {
        $pb->assign('pagetitle', Intl::msg('Sign in') . ' - ' . strip_tags($kfc->title));
        if (!empty($_SERVER['QUERY_STRING'])) {
            $pb->assign('referer', MyTool::getUrl() . '?' . $_SERVER['QUERY_STRING']);
        }
        $pb->assign('token', Session::getToken());
        $pb->renderPage('login');
    }
}
Example #6
0
 /**
  * Update variable info on the fly after a variable has been edited
  */
 public function updateInfoAction()
 {
     $this->view->disable();
     if ($this->request->isAjax()) {
         $intlvar = $this->request->get('intlvar');
         $info = Intl::find(['columns' => 'lang, controller, action, intltext', 'conditions' => "intlvar='{$intlvar}'"])->toArray();
         $info_array = ['intltext' => $info[0]['intltext'], 'controller' => $info[0]['controller'], 'action' => $info[0]['action']];
         foreach ($info as $li) {
             $info_array['langs'][$li['lang']] = !empty($li['intltext']);
         }
         echo json_encode($info_array);
     }
 }
Example #7
0
 * \section LICENSE
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details at
 * http://www.gnu.org/copyleft/gpl.html
 *
 * \section DESCRIPTION
 *
 * This file tests the behavior of the Intl class, and how it responds for a translation.
 * This file will NOT be further documented.
 */
include '../../core/intl.class.php';
$intl = new Intl();
if (!$intl) {
    exit("Failure.\n");
}
if (!$intl->setRoot('data')) {
    exit("Failure.\n");
}
if (!$intl->setLocale('fr')) {
    exit("Failure.\n");
}
echo $intl->translate('startup') . "\n";
echo $intl->translate('shutdown') . "\n";
Example #8
0
 /**
  * Installation of the configuration file
  */
 private function _install()
 {
     if (!empty($_POST['setlogin']) && !empty($_POST['setpassword'])) {
         $this->setSalt(sha1(uniqid('', true) . '_' . mt_rand()));
         $this->setLogin($_POST['setlogin']);
         $this->setHash($_POST['setpassword']);
         $this->write();
         FeedPage::$pb->assign('pagetitle', 'KrISS feed installation');
         FeedPage::$pb->assign('class', 'text-success');
         FeedPage::$pb->assign('message', Intl::msg('Your simple and smart (or stupid) feed reader is now configured.'));
         FeedPage::$pb->assign('referer', MyTool::getUrl() . '?import');
         FeedPage::$pb->assign('button', Intl::msg('Continue'));
         FeedPage::$pb->renderPage('message');
     } else {
         FeedPage::$pb->assign('pagetitle', Intl::msg('KrISS feed installation'));
         FeedPage::$pb->assign('token', Session::getToken());
         FeedPage::$pb->renderPage('install');
     }
     exit;
 }
Example #9
0
 /**
  * Get human readable error
  *
  * @param integer $error Number of error occured during a feed update
  *
  * @return string String of the corresponding error
  */
 public static function getError($error)
 {
     switch ($error) {
         case self::ERROR_UNKNOWN_CODE:
             return Intl::msg('Http code not valid');
             break;
         case self::ERROR_LOCATION:
             return Intl::msg('Location not found');
             break;
         case self::ERROR_TOO_MANY_REDIRECTS:
             return Intl::msg('Too many redirects');
             break;
         case self::ERROR_NO_CURL:
             return Intl::msg('Error when loading without curl');
             break;
         default:
             return $error;
             break;
     }
 }