Skip to content. | Skip to navigation

Personal tools


You are here: Home / Tips / Integration


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

webhook github discord Python for Java Developers 高頻指數選擇權

avoiding-double-payments in a distributed payments system a-simple-data-lake-etl-pipeline tips-to-deploy-python-package-on-aws-lambda 7-python-libraries every-back-end-developer-should-know

oauth2 intro Visual Studio Code for Front-end Developers

import matplotlib.font_manager as fm
fp1 = fm.FontProperties(fname="YourFontPath")
G = nx.Graph()
nx.draw(G, with_labels=True)

xss attack-and-defense 先備知識 Cross-Origin Resource Sharing (CORS) 本質不算一種 Error 而是設計機制就想達到安全的效果,分成 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

JSONP 只支援 GET 而 CORS 支援所有類型

Disable Same Origin Policy in Chrome

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 範例

Hardware Firmware

Porting Python to Run without OS: EFFI

MicroPython on ESP with Jupyter notebook micropython-on-esp-using-jupyter

Web Crawler

Python Tutorial: Web Scraping with BeautifulSoup and Requests

import requests
import json

access_token = "..."
def get_data(page_id):
    url = ""+page_id+"/posts?access_token="+access_token
    data = requests.get(url)
    json_data = json.loads(data.text)
    for post in json_data['data']:
        if 'message' in post:
            print post['message']
            print "- end of message -"

urllib Top 50 Web Crawlers: wget 50 Lines Example

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

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

Login Session Cookie C# example requests.Session()

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

JVM: python-jvm-interpreter


Tableau: timeline Google DataStudio vs Tableau

HiCharts, D3.js Indesign Server

Windows Subsystem for Linux (Bash on Windows) Cmder

neo4j: graph database

Simple Chatbot with NLTK Slack Chat Bot Slacker: Python Interface to Slack API Slack Discovery API vs Web API Instagram Bot Instagram with Vue.js video

Text to Speech (TTS): [50000 chars, US English and 7 more, 5 voices] Google Translate

Dragon CUDA GPU NumbaPro Python-to-GPU Compiler

WebGL shader in WebAssembly


url = ''
requests.get('%s?UID=0939586835&PWD=zqud&SB=簡訊測試&MSG=%s&DEST=%s&ST=' % (url, message, cell))

SQL Database


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

SQLAlchemy for ETL (Extract Transform Load) Apache Airflow

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

share points

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





Django Impression by a Plonista

Mezzanine CMS How to Make Wedding Site

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


簡介與 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. FTP Connection Passive Mode

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

Shout IRC



Video Streaming with Flask Example


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

Integrate PHP Applications Moodle

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

GoHugo Elixir #2 pas.plugins.velruse


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


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
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 tracking

Testable Documentation with Robot Framework

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

Matplotlib: 顯示中文

[ for f in matplotlib.font_manager.fontManager.ttflist]


PDF Parsing searchable PDF with redaction

NLTK spaCy displaCy Medical Info Extraction Death Time BioPython


JSON Validator 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


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


Open Data API: collective.opendata

Lucene Solr ElasticSearch: 簡介 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:

collective.documentgeneration: PDF LibreOffice Appy Framework

HTML to PDF: wkhtmltopdf wkhtmltoimage

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 Extract Data from MS Word Documents Microsoft Office File Format Download OpenOffice UNO Bridge Products.OpenXml

Wiki: collective.simplewiki wicked

reStructured Text (rst): online editor hovercraft

markup markdown: collective.markitup


booking: rg.prenotazioni

Networkx vs graph-tool 3-tuple data

Google Services

etblue: Storyliner Google Tag Manager GTM GA

Google Docs Imitation

GMail Plugins Trello

Common Library: Abseil GCP: Google Cloud Platform API 機器自動停止服務

Geocode with Alteryx + Google API API Google Drive APIs : REST Apps Script

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


Embed Multiple Locations Google Maps StreetView: Panorama ID

Weather DarkSky API


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


Two Step Verification Google Authenticator

Youtube API downloader OAuth 2.0 Authentication Transcript screen

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

YouTube v3 API iframe in Angular2

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


Realtime Data CDN: Fastly Fanout

Firefox Send DatProject

MongoDB: Caution Drupal Case Mobile App + RabbitMQ

CMS as a Service plone.cpanel


collective.newrelic collective.hostout


chef puppet

ITYOU ESI redis Redis Cluster Redis for Autocomplete on Ubuntu 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 Jazkarta collective.salesforcecontent collective.salesforce.authplugin improvement

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

Rackspace: $14/mo

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

parts = aws

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

AWS Lambda: lambda-git


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

gitter Trello API Note



Thunkable Mobile Platform Tips and Tricks

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

QuintaGroup Demo Sites: PolicyTracker

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

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

Mail Queue / Forum / Message Board

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


Askbot Discourse GroupServer

Redmine: vnccolab.redmine PivotalTracker

Zimbra: vnccolab.zimbra

prezi impress.js

Micro Sites

University of Wisconsin Oshkosh


semantic markup implementation using and RDFa

Plomino: slide demo update script

Convert Plone Site to RestructuredText

Python Web Apps on Windows IIS

Document Editors



Blender SketchUp


Ethereum Smart Contracts in Python: a comprehensive(ish) Guide alex liau to Victor: Ethereum的Smart Contract, 後面可以看看我們Cybermiles的新VM發表