Skip to content. | Skip to navigation

Personal tools

Navigation

You are here: Home / Tips / Integration

Integration

Plone 可以整合其他程式語言、資料庫、社群平台、雲端系統、行動裝置。

先備知識 Cross-Origin Resource Sharing (CORS) 分成 Server 和 Client 兩種處理方式: Same Origin Policy 是 Client 的限制,滿足下列任一項就行:

  • A Running Web Server
  • Firefox with security.fileuri.strict_origin_policy set to false
  • Chrome started with the --disable-web-security parameter
  • Safari with Disable Local File Restrictions

Python2: CGIHttpServer | Python3: --cgi

plone.api CannotGetPortalError content.find example Blog year-month Archive Path collective.easyform

from Products.PloneFormGen.interfaces import IPloneFormGenField
api.content.find(context=pfg_form, object_provides=IPloneFormGenField)

roman: 羅馬數字 Converter

JavaScript 呼叫 Python 更新網頁內容範例 jQuery 呼叫 Python 存取資料的範例: eea.facetednavigation/browser/javascript/edit.js 存取 JSON Object 範例

Web Crawler

Top 50 Web Crawlers: wget scrapy.org grablib.org http://www.clips.ua.ac.be/pages/pattern

網路爬蟲實戰教學: 如何使用 POST 抓取網頁內容 Scrapy

臺灣證券交易所資料: 頻繁抓取會擋半小時 間隔應5秒

iframe embeds a page from the same Plone site: <h2>Site Error</h2>

Plone Intranet Products.CMFNotification collective.fingerpointing: audit events

Kivy + Ubuntu + VirtualBox Screenshot

R vs Python PyDev + LiClipse

Editor: VIM Photoshop Dreamweaver Office ZopeEditManager collective.zopeedit Webflow

Paypal Instant Payment Notification with Rapido

XML: pyquery like jquery, using lxml

MIDI: music21 PyDX 2015

RTMP: Nginx + Docker

Pandas

Tableau: timeline

HiCharts, D3.js

Windows Subsystem for Linux (Bash on Windows) Cmder

neo4j: graph database

Slack Chat Bot

Text to Speech (TTS): fromtexttospeech.com [50000 chars, US English and 7 more, 5 voices]

Dragon CUDA GPU NumbaPro Python-to-GPU Compiler

SQL Database

資料庫的考量因素

整合關聯式資料庫,常見方式至少有兩種,一是利用 Database Adapter 和 ZSQL Method 來存取,二是利用 SQLAlchemy

collective.login_monitor: save login operation to an external database and provide a Plone interface for query

share points http://francescociriaci.wordpress.com/category/plone-evangelism

psycopg2: 'psyco_conn_get_exception' undeclared here (not in a function) 編譯 2.2.2 版本時遇到的錯誤,使用最新版就成功。

serverless

顧客購買後下個月再次購買的比率

Django

collective.django

Django Impression by a Plonista

Mezzanine CMS How to Make Wedding Site

Vue.js 官方套件各種雷 JWT + Auth0 建立 Form 範例 with Django

Pyramid

簡介與 TodoApp 範例

CRUD Srpint Summary

Build Complex Web Applications Having Fun

Software Management Project of Your Dreams

University of Coimbra in Portugal

ftw.bridge.proxy: pyramid based proxy application for proxying requests between plone instances.

Access Data in ZODB ZODB Image Store

WebDAV WSGI Publisher - zope.filerepresentation zope.publisher HEAD requests raise AttributeError on Browser Views ftw.caldav WebDAV Pyramid + Plone WebDAV client FTP Upload Dexterity Folder: No object with id "" exists.

PushHub: Syndicate Contents Across Plone and Drupal Sites Plone 與 Drupal 共存 不同系統的資料同步

Shout IRC

Flask

comparison

Video Streaming with Flask Example

PHP

php to python PHP to open Access-Control-Allow-Origin:* to iFrame

Integrate PHP Applications

How to include output of PHP script in Python driven Plone site?

Apache SSI Include FilterChain

Convert Site from Wordpress to Plone: comparison export XML wordpress2plone github collective

Access-ZODB via PHP + JSON

http://plone.org/documentation/kb/embed-viewcvs-in-plone

http://pypi.python.org/pypi/collective.chimpfeed

persona.org pas.plugins.velruse

oauth2 https://github.com/codesyntax/cs.auth.facebook https://github.com/codesyntax/cs.auth.twitter

https://github.com/codesyntax/cs.auth.googleplus

Disqus: version 2.0 is not compatible with previous releases.

# callback method to notify comments for Archetypes object owner
function disqus_config() {
    this.callbacks.onNewComment = [function(comment) {
        $.post('%(document_url)s/disqus_notify', {comment: comment});
    }];
}

Pinterest jQuery Plugins to Retrieve Social Data

Switching from PHP to Zope/Python: 2004 article by salimfadhley

export data from ZODB: Simple ZODB Viewer in wxPython

XMLRPC DBus Testing

Check If a Folder Existing with xmlrpclib wsapi4plone

Mass File and Page Changes: atreal.massloader

Plone + ASP .Net

twitter: http://pypi.python.org/pypi/fourdigits.portlet.twitter/

Active Directory

facebook like development mode

Continuous Integration: Jenkins Timo Stollenwerk Docker + Jenkins

rm -f pylint.log
for f in `find . -name *.py|egrep -v '^./tests/'`; do
pylint --output-format=parseable --reports=y $f >> pylint.log
done || :

git with python implementation dulwich

git plone.gitpush

branch theme in plone.app.theming
cd src/mytheme/static
git pull http://localhost:8080/Plone/++theme++mytheme/@@git themev3
develop site using IDE etc
git push http://localhost:8080/Plone/++theme++mytheme/@@git
theme switchd and recompiled in production

collective.googleanalytics: plone5 compatible oauth1 to oauth2 piwik collective.analyticspanel wildcard.media tracking

Testable Documentation with Robot Framework

New Relic: Python Agent Connects Only If Running in Debug Mode

Matplotlib: 顯示中文

plt.rcParams['font.family']='SimHei'
[f.name for f in matplotlib.font_manager.fontManager.ttflist]

Parse

PDF Parsing

NLTK spaCy displaCy Medical Info Extraction Death Time BioPython

JSON

dumps vs dump export script on github collective.jsonify plone.jsonserializer

example converting icalendar into JSON

multiple RSS

plone.jsonapi.core 開發源起 core routes 文件 example Linked Data

RESTful: plone.restapi TalkList Implementation with Mobile Angular UI

XML-RPC

Java Connector

XMPP collaborative editing Jabber auto login Converse.js: XMPP with Javascript

Asynchronous PyPI Query

Python interface for libuv

RabbitMQ: collective.zamqp zc.async plone.app.async

cyn.in

collective.rcse

Open Data API: collective.opendata

Lucene Solr ElasticSearch: 簡介 Livecoding.tv API

Solr 5.2 provides a new start script collective.recipe.solrinstance

eBook PDF Print: xml-director web2print

Paid Subscription Service Getpaid eCommerce Odoo OpenERP: bda.plone.shop

collective.documentgeneration: PDF LibreOffice Appy Framework

Content Migration

inline editing: background Etherpad

Collaborative Editing with Nimudocs Editor

CMIS SharePoint Comparison Document Authentication System

DMS (Document Management System) 移植大量內容到 Plone

Export Data from ZODB to Text Files

Python Engineering at Microsoft Microsoft Office File Format Download OpenOffice UNO Bridge Products.OpenXml

Wiki: collective.simplewiki wicked

reStructured Text (rst): online editor hovercraft

markup markdown: collective.markitup stackedit.io

collective.externaleditor

booking: rg.prenotazioni

Dashboard: Metabase: BigQuery, Crate, Druid, Google Analytics, H2, MongoDB, MySQL, PostgreSQL, Presto, Amazon Redshift, SQLite, SQL Server

Google Services

GMail Plugins Trello

Common Library: Abseil GCP: Google Cloud Platform API

Geocode with Alteryx + Google API API Apps Script

Tensorflow: Ubuntu install Image Recognition 教電腦畫畫 Serialization MIDI: Magenta

Maps

Embed Multiple Locations Google Maps StreetView: Panorama ID

Analytics

Google Search Appliance (GSA) Google Custom Search Translate API JavaScript 內嵌翻譯範例

Google Photos PicasaWeb Embed Images from Google Drive Online Photo Storage

Google Services XML Director: Dropbox Dropbox-like DropZoneJS

Analytics collective.googleanalytics 1.4 之後才支援新版 API Google PAM

Visualization Bokeh + D3.js

mod_pagespeed

Two Step Verification Google Authenticator

Youtube API OAuth 2.0 Authentication Transcript wildcard.media: screen

YouTube Player API Reference for iframe Embeds YouTube Embedded Players and Player Parameters Get Current Video Time

FlickrIt FlickrAPI: 2.0.x requires six>1.8.0, 1.4.x works with six=1.2.0 (Plone 4.3.4 ships with six=1.2.0) collective.plonetruegallery requires flickrapi > 1.2

Event Schedule: sched

Cloud

Firefox Send DatProject

MongoDB: Caution Drupal Case

CMS as a Service plone.cpanel

fabric:

collective.newrelic collective.hostout statuspage.io

collective.cloudflare

chef puppet

ITYOU ESI redis Redis Cluster on Ubuntu collective.firehose collective.taskqueue session backend to beaker ploneintra

celery collective.taskqueue

Dropbox in Text-based Linux dropbox dropbox + nginx mr.mount simpledropbox

Azure Notebooks + Tensorflow

AppNeta Tracelytics: collective.traceview

heroku: isotoma.plone.heroku

DotCloud: without WSGI Cloud9 IDE

Cloud Social Vision API

Salesforce.com: Jazkarta collective.salesforcecontent collective.salesforce.authplugin improvement

OpenShift Interactive Tutorial collective.generic.webbuilder quickstart respository set up github public key

Rackspace: $14/mo

重建或重啟時要記得把 Elastic IP 指回 Amazon EC2: mr.awsome boto

[buildout]
parts = aws

[aws]
recipe = zc.recipe.egg
eggs = mr.awsome
entry-points =
    aws=mr.awsome:aws
    assh=mr.awsome:aws_ssh
arguments = configpath="${buildout:directory}/etc"

AWS Lambda: lambda-git

GitHub

API Sample: octohatrack API Note Plone 產生內容再由 HTTrack 上傳到 GitHub Page

gitter Trello API Note

JekyllEdit

Mobile

Thunkable Mobile Platform Tips and Tricks

Making a Mobile Version of Your Plone Site Pencil: App Prototyping

QuintaGroup Demo Sites: PolicyTracker http://m.policytracker.com/

PhoneGap App Launch Website as a Mobile App Using PhoneGap / Apache Cordova

OpenCV collective.takeaportrait

Flash: 從 <embed /> 找 src 檔案位置,必要時可測試完整網址,再找 <script type="text/javascript"> SWFObject 設定值。

Mail Queue / Forum / Message Board

Free Email Server MailHost secureSend 已成舊版 Plone 5.1 已完全移除 SecureMailHost collective.watcherlist

Ploneboard

Askbot Discourse GroupServer

Redmine: vnccolab.redmine

Zimbra: vnccolab.zimbra

Micro Sites

University of Wisconsin Oshkosh

SematicWeb

semantic markup implementation using schema.org and RDFa

Plomino: slide demo update script

Convert Plone Site to RestructuredText

Python Web Apps on Windows IIS

Document Editors

LLVM

PyLLVM

Blender SketchUp