За последние 24 часа нас посетили 17786 программистов и 1647 роботов. Сейчас ищут 886 программистов ...

doc(x) -> HTML -> doc(x) (google docs inside)

Тема в разделе "PHP для новичков", создана пользователем musica, 9 окт 2010.

  1. musica

    musica Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    46
    Симпатии:
    0
    подскажите, как реализовать сей функционал?
    com не вариант, на сервере unix
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    о, и мне интересно.
     
  3. musica

    musica Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    46
    Симпатии:
    0
    сузил поиск только для того чтобы прочитать

    p.s. тогда поставим вопрос по другому: реально с помощью Google Docs все это организовать. Скажем, когда происходит запрос на редактирование doc файла он отправляется в гугл, преобразовывается в html, скачивается, изменяется, и снова закачивается... других выходов не вижу
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а у гуглдокс есть апи?
     
  5. musica

    musica Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    46
    Симпатии:
    0
    вообще, задача решаема? направьте в каком направлении двигаться...
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну докс - открытый стандарт, пхпшкой его рендерить никто не будет 100%, значит это некая подключаемая библиотека, которой скармливается докс, на выходе - хтмл.

    а насчет док - вобще хз. ОпенОфис и тот ни док ни докс нормально открывать до сих пор не умеет. Что на его месте выглядит весьма странно...
     
  7. musica

    musica Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    46
    Симпатии:
    0
    меня интересует функционал которые реализован на monster.com (может встречали). файл с резюме загружается в визуальный текстовик где благополучно редактируется. и это делается как с док, так и докс. неужели админы монстра знают что то что не знают в опен офис...
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  9. musica

    musica Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    46
    Симпатии:
    0
    это вы к чему? реализовывать через гуглдокс?
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну как вариант. Написано, что мол принимает доки во всех видах, выдает - тоже, в том числе и хтмл.
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  12. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  13. musica

    musica Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    46
    Симпатии:
    0
    google docs тащит.
    но что то их api manual не очень френдли для начинающих девелоперов)

    из того что удалось отыскать принцип там строится на получение Security Token`a, а уже с помощью него осуществляется работа с файлами. то что мне нужно, но опять же.

    Используется curl (уже прикрутил к своему денверу:))

    получение токена
    # curl https://www.google.com/accounts/ClientLogin -d Email=user@quantumcrypto.de –d Passwd=mysecretpassword –d accountType=HOSTED_OR_GOOGLE -d source=cURL-Example -d service=wise

    получим что то типа

    длинного ID

    скачивание файла

    # curl --silent --header "Authorization: GoogleLogin auth=AUTHKEY" http://spreadsheets.google.com/feeds/do ... Format=xls

    хотя бы найти список вот этих заголовков и как их реализовать на php+curl
     
  14. musica

    musica Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    46
    Симпатии:
    0
    Код (Text):
    1. <?php
    2. $clientlogin_url = "https://www.google.com/accounts/ClientLogin";
    3. $clientlogin_post = array(
    4. "accountType" => "HOSTED_OR_GOOGLE",
    5. "Email" => "googlelogin",
    6. "Passwd" => "googlepass",
    7. "service" => "writely",
    8. "source" => "your application name"
    9. );
    10.  
    11.  
    12. $curl = curl_init($clientlogin_url);
    13.  
    14. curl_setopt($curl, CURLOPT_POST, true);
    15.  
    16. curl_setopt($curl, CURLOPT_POSTFIELDS, $clientlogin_post);
    17.  
    18. curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    19.  
    20. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    21.  
    22. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    23.  
    24.  
    25. $response = curl_exec($curl);
    26.  
    27. preg_match("/Auth=([a-z0-9_\-]+)/i", $response, $matches);
    28.  
    29. $auth = $matches[1];
    30.  
    31. echo "The security ticket is: " . $auth;
    32. ?>
    ну вот тикет получен благодаря гуглу и одному таланливому разработчику из москвы, теперь бы разобраться с оставшейся частью, а именно аплоад и даунлоад файлов
     
  15. musica

    musica Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    46
    Симпатии:
    0
    need help((
     
  16. musica

    musica Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    46
    Симпатии:
    0
    вообщем я почти разобрался
    коряво получилось, но примерно то что я и хотел

    1. Наш пользователь грузит файл doc в Google Docs
    для этого пришлось скачать Zend Gdata, и нагородить вот это:

    Код (Text):
    1. <?php
    2. set_include_path(get_include_path() . PATH_SEPARATOR . "/home/localhost/www/libraries/zend/library/");
    3. require_once("Zend/Loader.php");
    4. Zend_Loader::loadClass('Zend_Gdata');
    5. Zend_Loader::loadClass('Zend_Gdata_Query');
    6. Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
    7. Zend_Loader::loadClass('Zend_Gdata_Docs');
    8. Zend_Loader::loadClass('Zend_Gdata_App_IOException');
    9.  
    10.  
    11.  
    12. $username = 'ччч';
    13. $password = 'ччч';
    14.  
    15. $service = Zend_Gdata_Docs::AUTH_SERVICE_NAME;
    16. $httpClient = Zend_Gdata_ClientLogin::getHttpClient($username, $password,
    17.     $service);
    18. $docs = new Zend_Gdata_Docs($httpClient);
    19.  
    20. // Actually upload the file, the second parameter here is the document title
    21. $newDocumentEntry = $docs->uploadFile('Resume.doc', 'Resume.doc',
    22.     'application/msword', Zend_Gdata_Docs::DOCUMENTS_LIST_FEED_URI);
    23. ?>
    тут, как видно, грузится файл Resume.doc

    затем наступает необходимость его редактировать. Каждому файлу в Google Docs присваевается 45 значный статичный id. Мы его не знаем, зато знаем имя, по ниму и получаем его.

    Код (Text):
    1. <?php
    2. set_include_path(get_include_path() . PATH_SEPARATOR . "/home/localhost/www/libraries/zend/library/");
    3. require_once("Zend/Loader.php");
    4. Zend_Loader::loadClass('Zend_Gdata');
    5. Zend_Loader::loadClass('Zend_Gdata_Query');
    6. Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
    7. Zend_Loader::loadClass('Zend_Gdata_Docs');
    8. Zend_Loader::loadClass('Zend_Gdata_Docs_Query');
    9.  
    10. $username = 'ччч';
    11. $password = 'ччч';
    12.  
    13. $service = Zend_Gdata_Docs::AUTH_SERVICE_NAME;
    14. $httpClient = Zend_Gdata_ClientLogin::getHttpClient($username, $password,
    15.     $service);
    16. $docs = new Zend_Gdata_Docs($httpClient);
    17.  
    18. $feed = $docs->getDocumentListFeed();
    19.  
    20. foreach ($feed->entries as $entry) {
    21. $titleid=$entry->title;
    22. $fileid=$entry->id;
    23. $cut = substr($fileid, 63);
    24.  
    25. echo "$cut - $titleid<BR><BR>";
    26. }
    27. ?>
    Теперь остался последний шаг - научится скачивать файлы с Google Docs. Как известно там есть возможность конвертации doc <-> docx <-> rtf <-> html <-> pdf.

    Кто знает как написать класс на экспорт - очень прошу сделать это :)
     
  17. musica

    musica Активный пользователь

    С нами с:
    24 сен 2010
    Сообщения:
    46
    Симпатии:
    0
    ппц в zend gdata нет функции на download файла...................................